<?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>210967</bug_id>
          
          <creation_ts>2020-04-24 06:55:16 -0700</creation_ts>
          <short_desc>[GTK4] Make it possible to build with GTK4 without errors</short_desc>
          <delta_ts>2020-04-27 06:10:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=210100</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>210100</blocked>
    
    <blocked>211021</blocked>
    
    <blocked>211045</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annulen</cc>
    
    <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jbedard</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1645172</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-24 06:55:16 -0700</bug_when>
    <thetext>Therew will be warnings for sure, though. The idea is to ifdef everything so that we can have a complete build with GTK4 and then start working on every feature independently checking it actually works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645177</commentid>
    <comment_count>1</comment_count>
      <attachid>397453</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-24 07:06:11 -0700</bug_when>
    <thetext>Created attachment 397453
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645178</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-04-24 07:06:57 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645184</commentid>
    <comment_count>3</comment_count>
      <attachid>397455</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-24 07:13:29 -0700</bug_when>
    <thetext>Created attachment 397455
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645584</commentid>
    <comment_count>4</comment_count>
      <attachid>397562</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-25 06:45:58 -0700</bug_when>
    <thetext>Created attachment 397562
Patch

This should fix the api tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645971</commentid>
    <comment_count>5</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-27 05:59:17 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #3)
&gt; Created attachment 397455 [details]
&gt; Patch

Let&apos;s land this. I think we will have more patch review discussion when
implementing back some of the things which will be left unimplemented
for GTK4 with this, but for now stubbing them out to allow the build to
complete is fine, IMO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645975</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-27 06:10:18 -0700</bug_when>
    <thetext>Committed r260752: &lt;https://trac.webkit.org/changeset/260752&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397453</attachid>
            <date>2020-04-24 07:06:11 -0700</date>
            <delta_ts>2020-04-24 07:13:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wkgtk-gtk4.diff</filename>
            <type>text/plain</type>
            <size>202546</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA4NDM5Y2RhOWY3YjYuLjdi
YjM2MTQ4MDUwYSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDIwLTA0LTI0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KKworICAgICAgICBbR1RLNF0gTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCB3aXRo
IEdUSzQgd2l0aG91dCBlcnJvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMDk2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIERpc2FibGUgQVBJIHRlc3RzIGFuZCBHT2JqZWN0IGludHJvc3BlY3Rpb24g
d2hlbiBidWlsZGluZyB3aXRoIEdUSzQuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9u
c0dUSy5jbWFrZToKKwogMjAyMC0wNC0yMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgogCiAgICAgICAgIE1ha2UgSlNDT25seSB3b3JrIG9uIG1hY09TCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTcyYjU1OTIzNmQxLi41ODg3NDBhMDU2ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAor
MjAyMC0wNC0yNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0dUSzRdIE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgd2l0aCBHVEs0IHdpdGhv
dXQgZXJyb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTA5NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHBsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5UmVmcmVzaE1vbml0b3I6OmNyZWF0ZURlZmF1bHREaXNwbGF5UmVmcmVzaE1vbml0b3IpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0
b3JHdGsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvR2RrQ2Fpcm9VdGlsaXRp
ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0RGVmYXVsdENhaXJvRm9udE9wdGlvbnMpOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlQ3VzdG9tQ3Vyc29yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvRHJhZ0ltYWdlR3Rr
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL0dSZWZQdHJHdGsuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9HUmVmUHRyR3RrLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0dVbmlxdWVQdHJHdGsu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvR3RrVmVyc2lvbmluZy5oOgorICAgICAgICAoZ2Rr
X2V2ZW50X2NvcHkpOgorICAgICAgICAoZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKToKKyAgICAg
ICAgKGd0a193aWRnZXRfcXVldWVfcmVzaXplX25vX3JlZHJhdyk6CisgICAgICAgIChnZGtfZXZl
bnRfZ2V0X3N0YXRlKToKKyAgICAgICAgKGdka19ldmVudF9nZXRfY29vcmRzKToKKyAgICAgICAg
KGdka19ldmVudF9nZXRfcm9vdF9jb29yZHMpOgorICAgICAgICAoZ2RrX2V2ZW50X2lzX3Njcm9s
bF9zdG9wX2V2ZW50KToKKyAgICAgICAgKGdka19ldmVudF9nZXRfc2Nyb2xsX2RpcmVjdGlvbik6
CisgICAgICAgIChnZGtfZXZlbnRfZ2V0X3Njcm9sbF9kZWx0YXMpOgorICAgICAgICAoZ2RrX2V2
ZW50X2dldF9idXR0b24pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVy
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50Ojptb2RpZmllcnNDb250YWluQ2Fwc0xvY2sp
OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybVBhc3RlYm9hcmRHdGsuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjpQbGF0Zm9ybVBhc3RlYm9hcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZVRvQ2xpcGJvYXJkKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUGFzdGVib2FyZDo6cmVhZEZyb21DbGlwYm9hcmQp
OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpnZXRDdXJyZW50U2NyZWVuTW9uaXRvcik6CisKIDIwMjAtMDQtMjMgIFJvYiBC
dWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBNYWtlIENhY2hlZFJlc291cmNlTG9h
ZGVyIG1vcmUgY29uZm9ybWluZyB0byBGZXRjaCBzcGVjaWZpY2F0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCmluZGV4IDJmYjZlNTMzZTY4NC4uN2Rm
Zjc3ZDAzNmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBh
c3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9h
cmQuaApAQCAtMTI2LDcgKzEyNiw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKICAgICBSZXRhaW5QdHI8aWQ+IG1fcGFzdGVib2FyZDsKICNlbmRpZgotI2lmIFBMQVRGT1JN
KEdUSykKKyNpZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkKICAgICBHdGtDbGlwYm9hcmQq
IG1fY2xpcGJvYXJkOwogI2VuZGlmCiAjaWYgVVNFKExJQldQRSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3Bw
CmluZGV4IDc2YTIwODEzYTY1NS4uNWQ2ZTUzNDkyZDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAK
QEAgLTUwLDcgKzUwLDcgQEAgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gRGlzcGxheVJl
ZnJlc2hNb25pdG9yOjpjcmVhdGVEZWZhdWx0RGlzcGxheVJlZnJlc2gKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIHJldHVybiBEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OmNyZWF0ZShk
aXNwbGF5SUQpOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykg
JiYgIVVTRShHVEs0KQogICAgIHJldHVybiBEaXNwbGF5UmVmcmVzaE1vbml0b3JHdGs6OmNyZWF0
ZShkaXNwbGF5SUQpOwogI2VuZGlmCiAgICAgVU5VU0VEX1BBUkFNKGRpc3BsYXlJRCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGlzcGxheVJlZnJl
c2hNb25pdG9yR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9E
aXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuY3BwCmluZGV4IDA5YThiODVkODBhZi4uZmI0YjU0Zjc0
NDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGlz
cGxheVJlZnJlc2hNb25pdG9yR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ndGsvRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrLmNwcApAQCAtMjYsNyArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRpc3BsYXlSZWZyZXNoTW9uaXRvckd0
ay5oIgogCi0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikK
KyNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKSAmJiAhVVNF
KEdUSzQpCiAKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4K
QEAgLTk0LDQgKzk0LDQgQEAgdm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JHdGs6OmRpc3BsYXlM
aW5rRmlyZWQoKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoUkVR
VUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorI2VuZGlmIC8vIFVTRShSRVFV
RVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpICYmICFVU0UoR1RLNCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVz
aE1vbml0b3JHdGsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNw
bGF5UmVmcmVzaE1vbml0b3JHdGsuaAppbmRleCA5YmQxMzU3YWEzZTguLmUyYTBlNGM1MGUzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0Rpc3BsYXlS
ZWZyZXNoTW9uaXRvckd0ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJh
Z21hIG9uY2UKIAotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklU
T1IpCisjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikgJiYg
IVVTRShHVEs0KQogCiAjaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yLmgiCiAKQEAgLTUz
LDQgKzUzLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYg
Ly8gVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKKyNlbmRpZiAv
LyBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKSAmJiAhVVNFKEdU
SzQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvR2Rr
Q2Fpcm9VdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L0dka0NhaXJvVXRpbGl0aWVzLmNwcAppbmRleCBkMmI0MGNhYWRkMzYuLjBlYzFkYzg0NzAyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0dka0NhaXJv
VXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsv
R2RrQ2Fpcm9VdGlsaXRpZXMuY3BwCkBAIC0zOCwxMCArMzgsMTIgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjb25zdCBjYWlyb19mb250X29wdGlvbnNfdCogZ2V0RGVmYXVsdENhaXJvRm9udE9w
dGlvbnMoKQogeworI2lmICFVU0UoR1RLNCkKICAgICBpZiAoYXV0byogc2NyZWVuID0gZ2RrX3Nj
cmVlbl9nZXRfZGVmYXVsdCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBvcHRpb25zID0gZ2RrX3Nj
cmVlbl9nZXRfZm9udF9vcHRpb25zKHNjcmVlbikpCiAgICAgICAgICAgICByZXR1cm4gb3B0aW9u
czsKICAgICB9CisjZW5kaWYKIAogICAgIHN0YXRpYyBjYWlyb19mb250X29wdGlvbnNfdCogb3B0
aW9uczsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgZmxhZzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAKaW5kZXggMmExYWFlZTEyZTk1Li4xYmEzZjI1ZGY4MDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwCkBAIC02Myw4ICs2
MywxNCBAQCBzdGF0aWMgR1JlZlB0cjxHZGtDdXJzb3I+IGNyZWF0ZUN1c3RvbUN1cnNvcihJbWFn
ZSogaW1hZ2UsIGNvbnN0IEludFBvaW50JiBob3RTcAogCiAjaWYgVVNFKEdUSzQpCiAgICAgQVNT
RVJUKGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2Zvcm1hdChzdXJmYWNlLmdldCgpKSA9PSBDQUlS
T19GT1JNQVRfQVJHQjMyKTsKLSAgICBhdXRvIHRleHR1cmUgPSBhZG9wdEdSZWYoZ2RrX21lbW9y
eV90ZXh0dXJlX25ldyhjYWlyb19pbWFnZV9zdXJmYWNlX2dldF93aWR0aChzdXJmYWNlLmdldCgp
KSwgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfaGVpZ2h0KHN1cmZhY2UuZ2V0KCkpLAotICAgICAg
ICBHREtfTUVNT1JZX0E4UjhHOEI4X1BSRU1VTFRJUExJRUQsIGNhaXJvX2ltYWdlX3N1cmZhY2Vf
Z2V0X2RhdGEoc3VyZmFjZS5nZXQoKSksIGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShz
dXJmYWNlLmdldCgpKSkpOworICAgIGF1dG8gd2lkdGggPSBjYWlyb19pbWFnZV9zdXJmYWNlX2dl
dF93aWR0aChzdXJmYWNlLmdldCgpKTsKKyAgICBhdXRvIGhlaWdodCA9IGNhaXJvX2ltYWdlX3N1
cmZhY2VfZ2V0X2hlaWdodChzdXJmYWNlLmdldCgpKTsKKyAgICBhdXRvIHN0cmlkZSA9IGNhaXJv
X2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShzdXJmYWNlLmdldCgpKTsKKyAgICBHUmVmUHRyPEdC
eXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoZ19ieXRlc19uZXdfd2l0aF9mcmVlX2Z1bmMoY2Fpcm9f
aW1hZ2Vfc3VyZmFjZV9nZXRfZGF0YShzdXJmYWNlLmdldCgpKSwgaGVpZ2h0ICogc3RyaWRlLAor
ICAgICAgICBbXShncG9pbnRlciBkYXRhKSB7CisgICAgICAgICAgICBjYWlyb19zdXJmYWNlX2Rl
c3Ryb3koc3RhdGljX2Nhc3Q8Y2Fpcm9fc3VyZmFjZV90Kj4oZGF0YSkpOworICAgICAgICB9LCBz
dXJmYWNlLmxlYWtSZWYoKSkpOworICAgIGF1dG8gdGV4dHVyZSA9IGFkb3B0R1JlZihnZGtfbWVt
b3J5X3RleHR1cmVfbmV3KHdpZHRoLCBoZWlnaHQsIEdES19NRU1PUllfQThSOEc4QjhfUFJFTVVM
VElQTElFRCwgYnl0ZXMuZ2V0KCksIHN0cmlkZSkpOwogICAgIHJldHVybiBhZG9wdEdSZWYoZ2Rr
X2N1cnNvcl9uZXdfZnJvbV90ZXh0dXJlKHRleHR1cmUuZ2V0KCksIGVmZmVjdGl2ZUhvdFNwb3Qu
eCgpLCBlZmZlY3RpdmVIb3RTcG90LnkoKSwgZmFsbGJhY2tDdXJzb3IoKS5nZXQoKSkpOwogI2Vs
c2UKICAgICByZXR1cm4gYWRvcHRHUmVmKGdka19jdXJzb3JfbmV3X2Zyb21fc3VyZmFjZShnZGtf
ZGlzcGxheV9nZXRfZGVmYXVsdCgpLCBzdXJmYWNlLmdldCgpLCBlZmZlY3RpdmVIb3RTcG90Lngo
KSwgZWZmZWN0aXZlSG90U3BvdC55KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0RyYWdJbWFnZUd0ay5jcHAKaW5kZXggODQ1ZmRhYWVhNmMwLi42YTFhNzNmOWQ3ZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3BwCkBAIC03Miw4ICs3
MiwxMCBAQCBEcmFnSW1hZ2VSZWYgZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJbWFn
ZVJlZiBpbWFnZSwgZmxvYXQgZnJhY3Rpb24pCiAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKKyNpZiAhVVNFKEdUSzQpCiAgICAgaWYgKCFnZGtfc2NyZWVuX2lzX2Nv
bXBvc2l0ZWQoZ2RrX3NjcmVlbl9nZXRfZGVmYXVsdCgpKSkKICAgICAgICAgcmV0dXJuIGltYWdl
OworI2VuZGlmCiAKICAgICBSZWZQdHI8Y2Fpcm9fdD4gY29udGV4dCA9IGFkb3B0UmVmKGNhaXJv
X2NyZWF0ZShpbWFnZS5nZXQoKSkpOwogICAgIGNhaXJvX3NldF9vcGVyYXRvcihjb250ZXh0Lmdl
dCgpLCBDQUlST19PUEVSQVRPUl9ERVNUX0lOKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9HUmVmUHRyR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9HUmVmUHRyR3RrLmNwcAppbmRleCBiNzY4YzhmZGU2OGMuLjEyMGM2MjJiZWQwOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dSZWZQdHJHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HUmVmUHRyR3RrLmNwcApAQCAtMzEsNiArMzEsNyBA
QAogCiBuYW1lc3BhY2UgV1RGIHsKIAorI2lmICFVU0UoR1RLNCkKIHRlbXBsYXRlIDw+IEd0a1Rh
cmdldExpc3QqIHJlZkdQdHIoR3RrVGFyZ2V0TGlzdCogcHRyKQogewogICAgIGlmIChwdHIpCkBA
IC00Myw2ICs0NCw3IEBAIHRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEd0a1RhcmdldExpc3Qq
IHB0cikKICAgICBpZiAocHRyKQogICAgICAgICBndGtfdGFyZ2V0X2xpc3RfdW5yZWYocHRyKTsK
IH0KKyNlbmRpZgogCiAjaWYgVVNFKExJQlNFQ1JFVCkKIHRlbXBsYXRlIDw+IFNlY3JldFZhbHVl
KiByZWZHUHRyKFNlY3JldFZhbHVlKiBwdHIpCkBAIC01OSw2ICs2MSw3IEBAIHRlbXBsYXRlIDw+
IHZvaWQgZGVyZWZHUHRyKFNlY3JldFZhbHVlKiBwdHIpCiB9CiAjZW5kaWYKIAorI2lmICFVU0Uo
R1RLNCkKIHRlbXBsYXRlIDw+IEd0a1dpZGdldFBhdGgqIHJlZkdQdHIoR3RrV2lkZ2V0UGF0aCog
cHRyKQogewogICAgIGlmIChwdHIpCkBAIC03MSw1ICs3NCw2IEBAIHRlbXBsYXRlIDw+IHZvaWQg
ZGVyZWZHUHRyKEd0a1dpZGdldFBhdGgqIHB0cikKICAgICBpZiAocHRyKQogICAgICAgICBndGtf
d2lkZ2V0X3BhdGhfdW5yZWYocHRyKTsKIH0KKyNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR1JlZlB0ckd0ay5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0dSZWZQdHJHdGsuaAppbmRleCBkMjZiMDU1ZGE4MzIuLmRjYzNiNmEzZTg1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dSZWZQdHJHdGsuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR1JlZlB0ckd0ay5oCkBAIC0yNywxNiArMjcs
MjAgQEAgdHlwZWRlZiBzdHJ1Y3QgX1NlY3JldFZhbHVlIFNlY3JldFZhbHVlOwogCiBuYW1lc3Bh
Y2UgV1RGIHsKIAorI2lmICFVU0UoR1RLNCkKIHRlbXBsYXRlIDw+IEd0a1RhcmdldExpc3QqIHJl
ZkdQdHIoR3RrVGFyZ2V0TGlzdCogcHRyKTsKIHRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEd0
a1RhcmdldExpc3QqIHB0cik7CisjZW5kaWYKIAogI2lmIFVTRShMSUJTRUNSRVQpCiB0ZW1wbGF0
ZSA8PiBTZWNyZXRWYWx1ZSogcmVmR1B0cihTZWNyZXRWYWx1ZSogcHRyKTsKIHRlbXBsYXRlIDw+
IHZvaWQgZGVyZWZHUHRyKFNlY3JldFZhbHVlKiBwdHIpOwogI2VuZGlmCiAKKyNpZiAhVVNFKEdU
SzQpCiB0ZW1wbGF0ZSA8PiBHdGtXaWRnZXRQYXRoKiByZWZHUHRyKEd0a1dpZGdldFBhdGgqIHB0
cik7CiB0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHdGtXaWRnZXRQYXRoKiBwdHIpOworI2Vu
ZGlmCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dVbmlx
dWVQdHJHdGsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HVW5pcXVlUHRyR3RrLmgK
aW5kZXggZGI5NzYwYmFlNWI1Li44ODZhNzgzNGVjZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9HVW5pcXVlUHRyR3RrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0dVbmlxdWVQdHJHdGsuaApAQCAtMjUsNyArMjUsMTIgQEAKIAogbmFtZXNwYWNl
IFdURiB7CiAKKyNpZiBVU0UoR1RLNCkKKy8vIEZJWE1FOiBVc2UgR1JlZlB0ciBpbiBHVEs0LCB0
aGlzIGlzIGp1c3QgdG8gZml4IHRoZSBidWlsZCBmb3Igbm93LgorV1RGX0RFRklORV9HUFRSX0RF
TEVURVIoR2RrRXZlbnQsIGdka19ldmVudF91bnJlZikKKyNlbHNlCiBXVEZfREVGSU5FX0dQVFJf
REVMRVRFUihHZGtFdmVudCwgZ2RrX2V2ZW50X2ZyZWUpCisjZW5kaWYKIFdURl9ERUZJTkVfR1BU
Ul9ERUxFVEVSKEd0a1RyZWVQYXRoLCBndGtfdHJlZV9wYXRoX2ZyZWUpCiAKIH0gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1ZlcnNp
b25pbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtWZXJzaW9uaW5nLmgKaW5k
ZXggNzNmM2Y2ZjNhNDg0Li5hODJlZmE1ZWYzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9HdGtWZXJzaW9uaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL0d0a1ZlcnNpb25pbmcuaApAQCAtMjQsNiArMjQsMTEgQEAKIAogI2lmIFVTRShHVEs0
KQogCisjZGVmaW5lIEdES19NT0QxX01BU0sgR0RLX0FMVF9NQVNLCisKK3R5cGVkZWYgR2RrS2V5
RXZlbnQgR2RrRXZlbnRLZXk7Cit0eXBlZGVmIEdka0ZvY3VzRXZlbnQgR2RrRXZlbnRGb2N1czsK
Kwogc3RhdGljIGlubGluZSBnYm9vbGVhbgogZ3RrX3dpZGdldF9pc190b3BsZXZlbChHdGtXaWRn
ZXQqIHdpZGdldCkKIHsKQEAgLTU3LDU5ICs2Miw3NyBAQCBndGtfaW5pdF9jaGVjayhpbnQqLCBj
aGFyKioqKQogICAgIHJldHVybiBndGtfaW5pdF9jaGVjaygpOwogfQogCi0jZGVmaW5lIEdES19N
T0QxX01BU0sgR0RLX0FMVF9NQVNLCitzdGF0aWMgaW5saW5lIEdka0V2ZW50KgorZ2RrX2V2ZW50
X2NvcHkoR2RrRXZlbnQqIGV2ZW50KQoreworICAgIHJldHVybiBnZGtfZXZlbnRfcmVmKGV2ZW50
KTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUoR3Rr
V2lkZ2V0KiB3aWRnZXQsIEd0a0FsbG9jYXRpb24qIGFsbG9jYXRpb24pCit7CisgICAgZ3RrX3dp
ZGdldF9zaXplX2FsbG9jYXRlKHdpZGdldCwgYWxsb2NhdGlvbiwgLTEpOworfQorCitzdGF0aWMg
aW5saW5lIHZvaWQKK2d0a193aWRnZXRfcXVldWVfcmVzaXplX25vX3JlZHJhdyhHdGtXaWRnZXQq
IHdpZGdldCkKK3sKKyAgICBndGtfd2lkZ2V0X3F1ZXVlX3Jlc2l6ZSh3aWRnZXQpOworfQogCiBz
dGF0aWMgaW5saW5lIGdib29sZWFuCi1nZGtfZXZlbnRfZ2V0X3N0YXRlKEdka0V2ZW50ICpldmVu
dCwgR2RrTW9kaWZpZXJUeXBlICpzdGF0ZSkKK2dka19ldmVudF9nZXRfc3RhdGUoY29uc3QgR2Rr
RXZlbnQgKmV2ZW50LCBHZGtNb2RpZmllclR5cGUgKnN0YXRlKQogewotICAgICpzdGF0ZSA9IGdk
a19ldmVudF9nZXRfbW9kaWZpZXJfc3RhdGUoZXZlbnQpOworICAgICpzdGF0ZSA9IGdka19ldmVu
dF9nZXRfbW9kaWZpZXJfc3RhdGUoY29uc3RfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSk7CiAgICAg
Ly8gVGhlIEdUSzMgbWV0aG9kIHJldHVybnMgVFJVRSBpZiB0aGVyZSBpcyBhIHN0YXRlLCBvdGhl
cndpc2UKICAgICAvLyBGQUxTRS4KICAgICByZXR1cm4gISEqc3RhdGU7CiB9CiAKIHN0YXRpYyBp
bmxpbmUgZ2Jvb2xlYW4KLWdka19ldmVudF9nZXRfY29vcmRzKEdka0V2ZW50ICpldmVudCwgZG91
YmxlICp4LCBkb3VibGUgKnkpCitnZGtfZXZlbnRfZ2V0X2Nvb3Jkcyhjb25zdCBHZGtFdmVudCAq
ZXZlbnQsIGRvdWJsZSAqeCwgZG91YmxlICp5KQogewotICAgIHJldHVybiBnZGtfZXZlbnRfZ2V0
X3Bvc2l0aW9uKGV2ZW50LCB4LCB5KTsKKyAgICByZXR1cm4gZ2RrX2V2ZW50X2dldF9wb3NpdGlv
bihjb25zdF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQpLCB4LCB5KTsKIH0KIAogc3RhdGljIGlubGlu
ZSBnYm9vbGVhbgotZ2RrX2V2ZW50X2dldF9yb290X2Nvb3JkcyhHZGtFdmVudCAqZXZlbnQsIGRv
dWJsZSAqeCwgZG91YmxlICp5KQorZ2RrX2V2ZW50X2dldF9yb290X2Nvb3Jkcyhjb25zdCBHZGtF
dmVudCAqZXZlbnQsIGRvdWJsZSAqeCwgZG91YmxlICp5KQogewogICAgIC8vIEdUSzQgZG9lcyBu
b3QgcHJvdmlkZSBhIHdheSBvZiBvYnRhaW5pbmcgc2NyZWVuLXJlbGF0aXZlIGV2ZW50IGNvb3Jk
aW5hdGVzLCBhbmQgZXZlbgogICAgIC8vIG9uIFdheWxhbmQgR1RLMyBjYW5ub3Qga25vdyB3aGVy
ZSBhIHN1cmZhY2UgaXMgYW5kIHdpbGwgcmV0dXJuIHRoZSBzdXJmYWNlLXJlbGF0aXZlCiAgICAg
Ly8gY29vcmRpbmF0ZXMgYW55d2F5LCBzbyBkbyB0aGUgc2FtZSBoZXJlLgotICAgIHJldHVybiBn
ZGtfZXZlbnRfZ2V0X3Bvc2l0aW9uKGV2ZW50LCB4LCB5KTsKKyAgICByZXR1cm4gZ2RrX2V2ZW50
X2dldF9wb3NpdGlvbihjb25zdF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQpLCB4LCB5KTsKIH0KIAog
c3RhdGljIGlubGluZSBnYm9vbGVhbgotZ2RrX2V2ZW50X2lzX3Njcm9sbF9zdG9wX2V2ZW50KEdk
a0V2ZW50KiBldmVudCkKK2dka19ldmVudF9pc19zY3JvbGxfc3RvcF9ldmVudChjb25zdCBHZGtF
dmVudCogZXZlbnQpCiB7Ci0gICAgcmV0dXJuIGdka19zY3JvbGxfZXZlbnRfaXNfc3RvcChldmVu
dCk7CisgICAgcmV0dXJuIGdka19zY3JvbGxfZXZlbnRfaXNfc3RvcChjb25zdF9jYXN0PEdka0V2
ZW50Kj4oZXZlbnQpKTsKIH0KIAogc3RhdGljIGlubGluZSBnYm9vbGVhbgotZ2RrX2V2ZW50X2dl
dF9zY3JvbGxfZGlyZWN0aW9uKEdka0V2ZW50KiBldmVudCwgR2RrU2Nyb2xsRGlyZWN0aW9uKiBk
aXJlY3Rpb24pCitnZGtfZXZlbnRfZ2V0X3Njcm9sbF9kaXJlY3Rpb24oY29uc3QgR2RrRXZlbnQq
IGV2ZW50LCBHZGtTY3JvbGxEaXJlY3Rpb24qIGRpcmVjdGlvbikKIHsKLSAgICAqZGlyZWN0aW9u
ID0gZ2RrX3Njcm9sbF9ldmVudF9nZXRfZGlyZWN0aW9uKGV2ZW50KTsKKyAgICAqZGlyZWN0aW9u
ID0gZ2RrX3Njcm9sbF9ldmVudF9nZXRfZGlyZWN0aW9uKGNvbnN0X2Nhc3Q8R2RrRXZlbnQqPihl
dmVudCkpOwogICAgIC8vIFRoZSBHVEszIG1ldGhvZCByZXR1cm5zIFRSVUUgaWYgdGhlIHNjcm9s
bCBkaXJlY3Rpb24gaXMgbm90CiAgICAgLy8gR0RLX1NDUk9MTF9TTU9PVEgsIHNvIGRvIHRoZSBz
YW1lIGhlcmUuCiAgICAgcmV0dXJuICpkaXJlY3Rpb24gIT0gR0RLX1NDUk9MTF9TTU9PVEg7CiB9
CiAKIHN0YXRpYyBpbmxpbmUgZ2Jvb2xlYW4KLWdka19ldmVudF9nZXRfc2Nyb2xsX2RlbHRhcyhH
ZGtFdmVudCogZXZlbnQsIGdkb3VibGUgKngsIGdkb3VibGUgKnkpCitnZGtfZXZlbnRfZ2V0X3Nj
cm9sbF9kZWx0YXMoY29uc3QgR2RrRXZlbnQqIGV2ZW50LCBnZG91YmxlICp4LCBnZG91YmxlICp5
KQogewotICAgIGdka19zY3JvbGxfZXZlbnRfZ2V0X2RlbHRhcyhldmVudCwgeCwgeSk7CisgICAg
Z2RrX3Njcm9sbF9ldmVudF9nZXRfZGVsdGFzKGNvbnN0X2Nhc3Q8R2RrRXZlbnQqPihldmVudCks
IHgsIHkpOwogICAgIC8vIFRoZSBHVEszIG1ldGhvZCByZXR1cm5zIFRSVUUgaWYgdGhlIGV2ZW50
IGlzIGEgc21vb3RoIHNjcm9sbAogICAgIC8vIGV2ZW50LCBzbyBkbyB0aGUgc2FtZSBoZXJlLgot
ICAgIHJldHVybiBnZGtfc2Nyb2xsX2V2ZW50X2dldF9kaXJlY3Rpb24oZXZlbnQpID09IEdES19T
Q1JPTExfU01PT1RIOworICAgIHJldHVybiBnZGtfc2Nyb2xsX2V2ZW50X2dldF9kaXJlY3Rpb24o
Y29uc3RfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSkgPT0gR0RLX1NDUk9MTF9TTU9PVEg7CiB9CiAK
IHN0YXRpYyBpbmxpbmUgZ2Jvb2xlYW4KLWdka19ldmVudF9nZXRfYnV0dG9uKEdka0V2ZW50KiBl
dmVudCkKK2dka19ldmVudF9nZXRfYnV0dG9uKGNvbnN0IEdka0V2ZW50KiBldmVudCwgZ3VpbnQq
IGJ1dHRvbikKIHsKLSAgICByZXR1cm4gZ2RrX2J1dHRvbl9ldmVudF9nZXRfYnV0dG9uKGV2ZW50
KTsKKyAgICBpZiAoYnV0dG9uKQorICAgICAgICAqYnV0dG9uID0gZ2RrX2J1dHRvbl9ldmVudF9n
ZXRfYnV0dG9uKGNvbnN0X2Nhc3Q8R2RrRXZlbnQqPihldmVudCkpOworICAgIHJldHVybiB0cnVl
OwogfQogI2VuZGlmIC8vIFVTRShHVEs0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwCmluZGV4IGFmOGZmMzQyNDZiYy4uNTc0OTY2YTU5ZmJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIu
Y3BwCkBAIC0yMyw2ICsyMyw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGFz
dGVib2FyZEhlbHBlci5oIgogCisjaWYgIVVTRShHVEs0KQorCiAjaW5jbHVkZSAiQml0bWFwSW1h
Z2UuaCIKICNpbmNsdWRlICJTZWxlY3Rpb25EYXRhLmgiCiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgpA
QCAtMzE0LDUgKzMxNiw3IEBAIHZvaWQgUGFzdGVib2FyZEhlbHBlcjo6d3JpdGVDbGlwYm9hcmRD
b250ZW50cyhHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCwgY29uc3QgU2VsCiAgICAgICAgIGd0a190
YXJnZXRfdGFibGVfZnJlZSh0YWJsZSwgbnVtYmVyT2ZUYXJnZXRzKTsKIH0KIAotfQorfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gIVVTRShHVEs0KQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuaAppbmRleCA1YTM5NWU2OTVhYzIu
LjRjM2Y0NTEwODFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bh
c3RlYm9hcmRIZWxwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVi
b2FyZEhlbHBlci5oCkBAIC0yMiw4ICsyMiw5IEBACiAgKgogICovCiAKLSNpZm5kZWYgUGFzdGVi
b2FyZEhlbHBlcl9oCi0jZGVmaW5lIFBhc3RlYm9hcmRIZWxwZXJfaAorI3ByYWdtYSBvbmNlCisK
KyNpZiAhVVNFKEdUSzQpCiAKICNpbmNsdWRlICJHUmVmUHRyR3RrLmgiCiAjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+CkBAIC01OCw2ICs1OSw2IEBAIHByaXZhdGU6CiAgICAgR1JlZlB0cjxHdGtU
YXJnZXRMaXN0PiBtX3RhcmdldExpc3Q7CiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKLSNlbmRpZiAvLyBQYXN0ZWJvYXJkSGVscGVyX2gKKyNlbmRpZiAvLyAhVVNFKEdUSzQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2
ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJk
RXZlbnRHdGsuY3BwCmluZGV4IGU3NTUwOTA4MzEzOS4uMDUxNmU3MDk3M2UwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50
R3RrLmNwcApAQCAtMTM3NCw2ICsxMzc0LDcgQEAgYm9vbCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6
Om1vZGlmaWVyc0NvbnRhaW5DYXBzTG9jayh1bnNpZ25lZCBtb2RpZmllcikKICAgICAvLyB0aGUg
c2FtZSBoZXJlLiBUaGlzIHdpbGwgYWxzbyByZXR1cm4gdHJ1ZSBpbiBXYXlsYW5kIGlmIHRoZXJl
J3MgYSBjYXBzIGxvY2sga2V5LCBzbyBpdCdzIG5vdCB3b3J0aCBpdAogICAgIC8vIGNoZWNraW5n
IHRoZSBhY3R1YWwgZGlzcGxheSBoZXJlLgogICAgIHN0YXRpYyBib29sIGxvY2tNYXNrSXNDYXBz
TG9jayA9IGZhbHNlOworI2lmICFVU0UoR1RLNCkKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXpl
ZCA9IGZhbHNlOwogICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKICAgICAgICAgR1VuaXF1ZU91dFB0
cjxHZGtLZXltYXBLZXk+IGtleXM7CkBAIC0xMzg0LDYgKzEzODUsNyBAQCBib29sIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6bW9kaWZpZXJzQ29udGFpbkNhcHNMb2NrKHVuc2lnbmVkIG1vZGlmaWVy
KQogICAgICAgICBsb2NrTWFza0lzQ2Fwc0xvY2sgPSBnZGtfa2V5bWFwX2dldF9lbnRyaWVzX2Zv
cl9rZXl2YWwoZ2RrX2tleW1hcF9nZXRfZm9yX2Rpc3BsYXkoZ2RrX2Rpc3BsYXlfZ2V0X2RlZmF1
bHQoKSksIEdES19LRVlfQ2Fwc19Mb2NrLCAma2V5cy5vdXRQdHIoKSwgJmVudHJpZXNDb3VudCkg
JiYgZW50cmllc0NvdW50OwogI2VuZGlmCiAgICAgfQorI2VuZGlmCiAgICAgcmV0dXJuIGxvY2tN
YXNrSXNDYXBzTG9jazsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1BsYXRmb3JtUGFzdGVib2FyZEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUGxhdGZvcm1QYXN0ZWJvYXJkR3RrLmNwcAppbmRleCAzOGIxNWNmZWIzZDkuLjBjOTdlOWZm
M2ZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtUGFz
dGVib2FyZEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3Jt
UGFzdGVib2FyZEd0ay5jcHAKQEAgLTI4LDIxICsyOCwzMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKKyNpZiBVU0UoR1RLNCkKK1BsYXRmb3JtUGFzdGVib2FyZDo6UGxhdGZvcm1QYXN0ZWJv
YXJkKGNvbnN0IFN0cmluZyYpCit7Cit9CisjZWxzZQogUGxhdGZvcm1QYXN0ZWJvYXJkOjpQbGF0
Zm9ybVBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKICAgICA6IG1fY2xp
cGJvYXJkKGd0a19jbGlwYm9hcmRfZ2V0KGdka19hdG9tX2ludGVybihwYXN0ZWJvYXJkTmFtZS51
dGY4KCkuZGF0YSgpLCBUUlVFKSkpCiB7CiAgICAgQVNTRVJUKG1fY2xpcGJvYXJkKTsKIH0KKyNl
bmRpZgogCiB2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGVUb0NsaXBib2FyZChjb25zdCBT
ZWxlY3Rpb25EYXRhJiBzZWxlY3Rpb24sIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIHByaW1hcnlT
ZWxlY3Rpb25DbGVhcmVkKQogeworI2lmICFVU0UoR1RLNCkKICAgICBQYXN0ZWJvYXJkSGVscGVy
OjpzaW5nbGV0b24oKS53cml0ZUNsaXBib2FyZENvbnRlbnRzKG1fY2xpcGJvYXJkLCBzZWxlY3Rp
b24sIGd0a19jbGlwYm9hcmRfZ2V0KEdES19TRUxFQ1RJT05fUFJJTUFSWSkgPT0gbV9jbGlwYm9h
cmQgPyBXVEZNb3ZlKHByaW1hcnlTZWxlY3Rpb25DbGVhcmVkKSA6IG51bGxwdHIpOworI2VuZGlm
CiB9CiAKIFJlZjxTZWxlY3Rpb25EYXRhPiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRGcm9tQ2xp
cGJvYXJkKCkKIHsKICAgICBSZWY8U2VsZWN0aW9uRGF0YT4gc2VsZWN0aW9uKFNlbGVjdGlvbkRh
dGE6OmNyZWF0ZSgpKTsKKyNpZiAhVVNFKEdUSzQpCiAgICAgUGFzdGVib2FyZEhlbHBlcjo6c2lu
Z2xldG9uKCkuZ2V0Q2xpcGJvYXJkQ29udGVudHMobV9jbGlwYm9hcmQsIHNlbGVjdGlvbi5nZXQo
KSk7CisjZW5kaWYKICAgICByZXR1cm4gc2VsZWN0aW9uOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcAppbmRleCAyNWRmYjQ3MTkx
ZmEuLjRlOTc3YWEyODVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1BsYXRmb3JtU2NyZWVuR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
UGxhdGZvcm1TY3JlZW5HdGsuY3BwCkBAIC0xNjYsNiArMTY2LDkgQEAgdm9pZCBzZXRTY3JlZW5E
UElPYnNlcnZlckhhbmRsZXIoRnVuY3Rpb248dm9pZCgpPiYmIGhhbmRsZXIsIHZvaWQqIGNvbnRl
eHQpCiAKIEdka01vbml0b3IqIGdldEN1cnJlbnRTY3JlZW5Nb25pdG9yKCkKIHsKKyNpZiBVU0Uo
R1RLNCkKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbHNlCiAgICAgR2RrRGlzcGxheSogZGlzcGxh
eSA9IGdka19kaXNwbGF5X2dldF9kZWZhdWx0KCk7CiAgICAgaWYgKCFkaXNwbGF5KQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKQEAgLTE3NSw2ICsxNzgsNyBAQCBHZGtNb25pdG9yKiBnZXRDdXJy
ZW50U2NyZWVuTW9uaXRvcigpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJu
IGdka19kaXNwbGF5X2dldF9tb25pdG9yX2F0X3dpbmRvdyhkaXNwbGF5LCByb290V2luZG93KTsK
KyNlbmRpZgogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGRmMjUyZjEyZWVlLi5hMGViMjQzN2JkNTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkzIEBACisyMDIwLTA0LTI0ICBDYXJsb3MgR2FyY2lhIENhbXBv
cyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLNF0gTWFrZSBpdCBwb3NzaWJs
ZSB0byBidWlsZCB3aXRoIEdUSzQgd2l0aG91dCBlcnJvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDk2NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBpZmRlZnMgd2hlbiBuZWVkZWQgdG8gbWFr
ZSBpdCBwb3NzaWJsZSB0byBjb21wbGV0ZSBhIGJ1aWxkIHdpdGggR1RLNC4gVGhpcyB3YXkgd2Ug
Y2FuIGNvbnRpbnVlIHdvcmtpbmcgb24KKyAgICAgICAgZXZlcnkgZmVhdHVyZSBpbmRpdmlkdWFs
bHkgYW5kIGNoZWNraW5nIGl0IGFjdHVhbGx5IHdvcmtzLiBNb3ZlIHB1YmxpYyBoZWFkZXJzIGNv
bnRhaW5pbmcgQVBJIHNwZWNpZmljIHRvIEdUSzMKKyAgICAgICAgYW5kIEdUSzQgaW50byB0aGVp
ciBvd24gZ3RrMyBhbmQgZ3RrNCBkaXJlY3RvcnkuCisKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5j
bWFrZToKKyAgICAgICAgKiBTaGFyZWQvQVBJL2dsaWIvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmNw
cDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oOgorICAgICAgICAq
IFNoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdl
YldoZWVsRXZlbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvZ2xpYi9XZWJDb250ZXh0TWVudUl0ZW1H
bGliLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtR2xpYjo6V2ViQ29u
dGV4dE1lbnVJdGVtR2xpYik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbUds
aWI6OmJ1aWxkQWN0aW9uTmFtZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRN
ZW51SXRlbUdsaWI6OmNyZWF0ZUFjdGlvbklmTmVlZGVkKToKKyAgICAgICAgKiBTaGFyZWQvZ2xp
Yi9XZWJDb250ZXh0TWVudUl0ZW1HbGliLmg6CisgICAgICAgICogU2hhcmVkL2d0ay9OYXRpdmVX
ZWJLZXlib2FyZEV2ZW50R3RrLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvZ3RrL05hdGl2ZVdlYk1v
dXNlRXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpOYXRpdmVXZWJNb3VzZUV2ZW50OjpO
YXRpdmVXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvZ3RrL05hdGl2ZVdlYlRvdWNo
RXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpOYXRpdmVXZWJUb3VjaEV2ZW50OjpOYXRp
dmVXZWJUb3VjaEV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvZ3RrL05hdGl2ZVdlYldoZWVsRXZl
bnRHdGsuY3BwOgorICAgICAgICAqIFNoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6YnV0dG9uRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJF
dmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9ndGsv
V2ViRXZlbnRGYWN0b3J5Lmg6CisgICAgICAgICogU291cmNlc0dUSy50eHQ6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2dsaWIvSW5wdXRNZXRob2RGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnB1dE1ldGhv
ZEZpbHRlcjo6ZmlsdGVyS2V5RXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9J
bnB1dE1ldGhvZEZpbHRlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJ
bnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmNwcDoKKyAgICAgICAg
KGNyZWF0ZUdzdEluc3RhbGxQbHVnaW5zQ29udGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFByaXZhdGUuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRVSUNsaWVudC5jcHA6CisgICAgICAgIChVSUNsaWVudDo6c2V0V2luZG93RnJhbWVUaW1l
ckZpcmVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5j
cHA6CisgICAgICAgICh3ZWJraXRXZWJDb250ZXh0R2V0UHJvcGVydHkpOgorICAgICAgICAod2Vi
a2l0V2ViQ29udGV4dFNldFByb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9j
bGFzc19pbml0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5j
cHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3UnVuQXNNb2RhbCk6CisgICAgICAgICh3ZWJraXRX
ZWJWaWV3UG9wdWxhdGVDb250ZXh0TWVudSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
SW5wdXRNZXRob2RGaWx0ZXJHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnB1dE1ldGhvZEZp
bHRlcjo6cGxhdGZvcm1FdmVudEtleUlzS2V5UHJlc3MgY29uc3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6c2V0Q3Vyc29yKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRv
bmVXaXRoS2V5RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRl
UG9wdXBNZW51UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRl
RGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OnN0YXJ0RHJhZyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkb25l
V2l0aFRvdWNoRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6d2hlZWxF
dmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEF1dGhlbnRpY2F0aW9uRGlhbG9nLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvbkRpYWxvZy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEVtb2ppQ2hvb3Nlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0RW1vamlDaG9vc2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0SW5wdXRNZXRob2RDb250ZXh0R3RrLmNwcDoKKyAgICAgICAgKHdlYmtpdF9pbnB1dF9tZXRo
b2RfY29udGV4dF9maWx0ZXJfa2V5X2V2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHRJbXBsR3RrLmNwcDoKKyAgICAgICAgKHdlYmtpdElu
cHV0TWV0aG9kQ29udGV4dEltcGxHdGtGaWx0ZXJLZXlFdmVudCk6CisgICAgICAgICh3ZWJraXRJ
bnB1dE1ldGhvZENvbnRleHRJbXBsR3RrU2V0Q2xpZW50V2luZG93KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRQb3B1cE1lbnUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJL
aXRQb3B1cE1lbnU6OldlYktpdFBvcHVwTWVudSk6CisgICAgICAgIChXZWJLaXQ6OldlYktpdFBv
cHVwTWVudTo6c2hvd1BvcHVwTWVudSk6CisgICAgICAgIChXZWJLaXQ6OldlYktpdFBvcHVwTWVu
dTo6aGlkZVBvcHVwTWVudSk6CisgICAgICAgIChXZWJLaXQ6OldlYktpdFBvcHVwTWVudTo6Y2Fu
Y2VsVHJhY2tpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBvcHVwTWVu
dS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9uLmNw
cDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTY3JpcHREaWFsb2dHdGsuY3Bw
OgorICAgICAgICAod2Via2l0U2NyaXB0RGlhbG9nQWNjZXB0KToKKyAgICAgICAgKHdlYmtpdFNj
cmlwdERpYWxvZ0Rpc21pc3MpOgorICAgICAgICAod2Via2l0U2NyaXB0RGlhbG9nU2V0VXNlcklu
cHV0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTY3JpcHREaWFsb2dJbXBs
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTY3JpcHREaWFsb2dJbXBs
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwOgor
ICAgICAgICAoQ2xpY2tDb3VudGVyOjpjdXJyZW50Q2xpY2tDb3VudEZvckdka0J1dHRvbkV2ZW50
KToKKyAgICAgICAgKF9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGU6Ol9XZWJLaXRXZWJWaWV3QmFz
ZVByaXZhdGUpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VTZXRUb3BsZXZlbE9uU2NyZWVu
V2luZG93KToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlUmVhbGl6ZSk6CisgICAgICAgICh3
ZWJraXRXZWJWaWV3QmFzZUNvbnRhaW5lckZvcmFsbCk6CisgICAgICAgICh3ZWJraXRXZWJWaWV3
QmFzZURpc3Bvc2UpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VDb25zdHJ1Y3RlZCk6Cisg
ICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZVNpemVBbGxvY2F0ZSk6CisgICAgICAgICh3ZWJraXRX
ZWJWaWV3QmFzZUtleVByZXNzRXZlbnQpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VLZXlS
ZWxlYXNlRXZlbnQpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VTZXRFbmFibGVCYWNrRm9y
d2FyZE5hdmlnYXRpb25HZXN0dXJlKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlQmVnaW5C
YWNrU3dpcGVGb3JUZXN0aW5nKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlQ29tcGxldGVC
YWNrU3dpcGVGb3JUZXN0aW5nKToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19iYXNlX2NsYXNz
X2luaXQpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VXaWxsU3dhcFdlYlByb2Nlc3MpOgor
ICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VEaWRFeGl0V2ViUHJvY2Vzcyk6CisgICAgICAgICh3
ZWJraXRXZWJWaWV3QmFzZURpZFJlbGF1bmNoV2ViUHJvY2Vzcyk6CisgICAgICAgICh3ZWJraXRX
ZWJWaWV3QmFzZVRha2VWaWV3U25hcHNob3QpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VE
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZSk6CisgICAgICAgICh3ZWJraXRXZWJW
aWV3QmFzZURpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSk6CisgICAg
ICAgICh3ZWJraXRXZWJWaWV3QmFzZURpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUpOgorICAgICAg
ICAod2Via2l0V2ViVmlld0Jhc2VEaWRGYWlsTG9hZEZvck1haW5GcmFtZSk6CisgICAgICAgICh3
ZWJraXRXZWJWaWV3QmFzZURpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUpOgor
ICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VEaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24pOgorICAg
ICAgICAod2Via2l0V2ViVmlld0Jhc2VTaG93RW1vamlDaG9vc2VyKToKKyAgICAgICAgKHdlYmtp
dFdlYlZpZXdCYXNlUmVxdWVzdFBvaW50ZXJMb2NrKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdC
YXNlRGlkTG9zZVBvaW50ZXJMb2NrKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlU3ludGhl
c2l6ZUNvbXBvc2l0aW9uS2V5UHJlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdEaWFsb2cuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXdEaWFsb2cuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJW
aWV3R3RrLmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdBdXRoZW50aWNhdGUpOgorICAgICAg
ICAod2Via2l0V2ViVmlld1NjcmlwdERpYWxvZyk6CisgICAgICAgICh3ZWJraXRXZWJWaWV3UnVu
RmlsZUNob29zZXIpOgorICAgICAgICAod2Via2l0V2ViVmlld01heGltaXplV2luZG93KToKKyAg
ICAgICAgKHdlYmtpdFdlYlZpZXdNaW5pbWl6ZVdpbmRvdyk6CisgICAgICAgICh3ZWJraXRXZWJW
aWV3UmVzdG9yZVdpbmRvdyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGszL1dlYktpdENv
bnRleHRNZW51SXRlbS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
My9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0azQvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmg6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5oLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrNC9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5wdXRN
ZXRob2RDb250ZXh0LmguCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vZ3RrL1dlYkF1
dG9tYXRpb25TZXNzaW9uR3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNl
c3Npb246OnBsYXRmb3JtU2ltdWxhdGVNb3VzZUludGVyYWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlib2FyZEludGVyYWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2lt
dWxhdGVLZXlTZXF1ZW5jZSk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TYXZlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVj
dG9yL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybVNhdmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0
b3IvZ3RrL1dlYktpdEluc3BlY3RvcldpbmRvdy5jcHA6CisgICAgICAgICh3ZWJraXRfaW5zcGVj
dG9yX3dpbmRvd19pbml0KToKKyAgICAgICAgKHdlYmtpdEluc3BlY3RvcldpbmRvd05ldyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2NhaXJvL0JhY2tp
bmdTdG9yZUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QmFja2luZ1N0b3JlOjpjcmVhdGVC
YWNrZW5kKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9y
ZVdheWxhbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdh
eWxhbmQ6OnRyeUVuc3VyZUdMQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVk
QmFja2luZ1N0b3JlV2F5bGFuZDo6cGFpbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvQWNj
ZWxlcmF0ZWRCYWNraW5nU3RvcmVYMTEuY3BwOgorICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRl
ZEJhY2tpbmdTdG9yZVgxMTo6fkFjY2VsZXJhdGVkQmFja2luZ1N0b3JlWDExKToKKyAgICAgICAg
KFdlYktpdDo6QWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVYMTE6OnVwZGF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL2d0ay9EcmFnQW5kRHJvcEhhbmRsZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vz
cy9ndGsvRHJhZ0FuZERyb3BIYW5kbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9HZXN0
dXJlQ29udHJvbGxlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9HZXN0dXJlQ29udHJv
bGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpLZXlCaW5kaW5nVHJhbnNsYXRvcjo6S2V5QmluZGluZ1RyYW5z
bGF0b3IpOgorICAgICAgICAoV2ViS2l0OjpLZXlCaW5kaW5nVHJhbnNsYXRvcjo6Y29tbWFuZHNG
b3JLZXlFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRv
ci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvUG9pbnRlckxvY2tNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UG9pbnRlckxvY2tNYW5hZ2VyOjpsb2NrKToKKyAgICAgICAgKFdlYktp
dDo6UG9pbnRlckxvY2tNYW5hZ2VyOjp1bmxvY2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsv
UG9pbnRlckxvY2tNYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9j
a01hbmFnZXJXYXlsYW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UG9pbnRlckxvY2tNYW5hZ2Vy
V2F5bGFuZDo6bG9jayk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9ja01hbmFn
ZXJYMTEuY3BwOgorICAgICAgICAoV2ViS2l0OjpQb2ludGVyTG9ja01hbmFnZXJYMTE6OmRpZFJl
Y2VpdmVNb3Rpb25FdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tl
ckd0ay5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0TWVudVByb3h5R3Rr
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eUd0azo6c2hvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlHdGs6OnNob3dDb250ZXh0TWVudVdp
dGhJdGVtcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlHdGs6OldlYkNv
bnRleHRNZW51UHJveHlHdGspOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5
R3RrOjp+V2ViQ29udGV4dE1lbnVQcm94eUd0ayk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9X
ZWJDb250ZXh0TWVudVByb3h5R3RrLmg6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJEYXRh
TGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25HdGsuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsv
V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duR3RrLmg6CisgICAgICAgICogVUlQcm9jZXNz
L2d0ay9XZWJQYWdlUHJveHlHdGsuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUG9w
dXBNZW51UHJveHlHdGsuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51
UHJveHlHdGsuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxl
ci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2xvc2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjptYWluRnJhbWVEaWRMYXlvdXQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VYMTEuY3BwOgorICAgICAgICAoV2ViS2l0OjpB
Y2NlbGVyYXRlZFN1cmZhY2VYMTE6OkFjY2VsZXJhdGVkU3VyZmFjZVgxMSk6CisgICAgICAgIChX
ZWJLaXQ6OkFjY2VsZXJhdGVkU3VyZmFjZVgxMTo6Y3JlYXRlUGl4bWFwKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJpbnRPcGVyYXRpb25HdGs6OnByaW50KToKKwogMjAyMC0wNC0yMyAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBCb3VuY2UgZGlz
cGxheVdhc1JlZnJlc2hlZCgpIHZpYSBFdmVudERpc3BhdGNoZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNt
YWtlCmluZGV4IDc1MzljYzg5ZDc2ZC4uOTYzMWI5OWRiNjk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsu
Y21ha2UKQEAgLTgsNiArOCw3IEBAIHNldChQbHVnaW5Qcm9jZXNzX09VVFBVVF9OQU1FIFdlYktp
dFBsdWdpblByb2Nlc3MpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNf
V0VCS0lUMkdUS19BUElfRElSfSkKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtGT1JXQVJESU5HX0hF
QURFUlNfV0VCS0lUMkdUS19ESVJ9KQorZmlsZShNQUtFX0RJUkVDVE9SWSAke0ZPUldBUkRJTkdf
SEVBREVSU19XRUJLSVQyR1RLX1ZFUlNJT05FRF9ESVJ9KQogZmlsZShNQUtFX0RJUkVDVE9SWSAk
e0ZPUldBUkRJTkdfSEVBREVSU19XRUJLSVQyR1RLX0VYVEVOU0lPTl9ESVJ9KQogCiBjb25maWd1
cmVfZmlsZShVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRWZXJzaW9uLmguaW4gJHtERVJJVkVEX1NP
VVJDRVNfV0VCS0lUMkdUS19BUElfRElSfS9XZWJLaXRWZXJzaW9uLmgpCkBAIC0zMywxMSArMzQs
MjAgQEAgbGlzdChBUFBFTkQgV2ViS2l0X1VOSUZJRURfU09VUkNFX0xJU1RfRklMRVMKICAgICAi
U291cmNlc0dUSy50eHQiCiApCiAKLWxpc3QoQVBQRU5EIFdlYktpdF9NRVNTQUdFU19JTl9GSUxF
UwotICAgIFVJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIubWVzc2FnZXMuaW4KK2lmIChO
T1QgVVNFX0dUSzQpCisgICAgbGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKKyAgICAgICAgVUlQ
cm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKIAotICAgIFdlYlByb2Nlc3MvV2ViUGFn
ZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLm1lc3NhZ2VzLmluCi0pCisgICAgICAgIFVJ
UHJvY2Vzcy9ndGsvVmlld0dlc3R1cmVDb250cm9sbGVyR3RrLmNwcAorCisgICAgICAgIFdlYlBy
b2Nlc3MvV2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcAorICAgICkKKyAg
ICBsaXN0KEFQUEVORCBXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKKyAgICAgICAgVUlQcm9jZXNz
L1ZpZXdHZXN0dXJlQ29udHJvbGxlci5tZXNzYWdlcy5pbgorCisgICAgICAgIFdlYlByb2Nlc3Mv
V2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLm1lc3NhZ2VzLmluCisgICAgKQor
ZW5kaWYgKCkKIAogbGlzdChBUFBFTkQgV2ViS2l0X0RFUklWRURfU09VUkNFUwogICAgICR7REVS
SVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUuYwpA
QCAtNTUsOSArNjUsMTcgQEAgaWYgKEVOQUJMRV9XQVlMQU5EX1RBUkdFVCkKICAgICApCiBlbmRp
ZiAoKQogCitpZiAoVVNFX0dUSzQpCisgICAgc2V0KEdUS19BUElfVkVSU0lPTiA0KQorZWxzZSAo
KQorICAgIHNldChHVEtfQVBJX1ZFUlNJT04gMykKK2VuZGlmICgpCisKIHNldChXZWJLaXQyR1RL
X0lOU1RBTExFRF9IRUFERVJTCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMkdUS19BUElf
RElSfS9XZWJLaXRFbnVtVHlwZXMuaAogICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtf
QVBJX0RJUn0vV2ViS2l0VmVyc2lvbi5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJ
L2d0ayR7R1RLX0FQSV9WRVJTSU9OfS9XZWJLaXRDb250ZXh0TWVudUl0ZW0uaAorICAgICR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGske0dUS19BUElfVkVSU0lPTn0vV2ViS2l0SW5wdXRN
ZXRob2RDb250ZXh0LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEFwcGxpY2F0aW9uSW5mby5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmgKQEAgLTY4LDcgKzg2LDYgQEAgc2V0KFdlYktp
dDJHVEtfSU5TVEFMTEVEX0hFQURFUlMKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdENyZWRlbnRpYWwuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0Q29udGV4dE1lbnUuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0Q29udGV4dE1lbnVBY3Rpb25zLmgKLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29raWVNYW5hZ2VyLmgKICAgICAke1dFQktJVF9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERlZmluZXMuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTg0LDcg
KzEwMSw2IEBAIHNldChXZWJLaXQyR1RLX0lOU1RBTExFRF9IRUFERVJTCiAgICAgJHtXRUJLSVRf
RElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXIuaAogICAgICR7
V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRIaXRU
ZXN0UmVzdWx0LmgKLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdElu
cHV0TWV0aG9kQ29udGV4dC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmgKICAgICAk
e1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuaAog
ICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TWltZUluZm8uaApAQCAt
MzY1LDYgKzM4MSw3IEBAIHNldChXZWJLaXRET01fR1RLRE9DX0hFQURFUlMKICMgVGhpcyBpcyBu
ZWNlc3NhcnkgYmVjYXVzZSBvZiBhIGNvbmZsaWN0IGJldHdlZW4gdGhlIEdUSysgQVBJIFdlYktp
dFZlcnNpb24uaCBhbmQgb25lIGdlbmVyYXRlZCBieSBXZWJDb3JlLgogbGlzdChJTlNFUlQgV2Vi
S2l0X0lOQ0xVREVfRElSRUNUT1JJRVMgMAogICAgICIke0ZPUldBUkRJTkdfSEVBREVSU19XRUJL
SVQyR1RLX0RJUn0iCisgICAgIiR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJVDJHVEtfVkVSU0lP
TkVEX0RJUn0iCiAgICAgIiR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJVDJHVEtfRVhURU5TSU9O
X0RJUn0iCiAgICAgIiR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtfQVBJX0RJUn0iCiAgICAg
IiR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtfRElSfSIKQEAgLTM5Miw2ICs0MDksNyBAQCBs
aXN0KEFQUEVORCBXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9
L1VJUHJvY2Vzcy9BUEkvQy9jYWlybyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJ
L0MvZ3RrIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYiIKKyAgICAiJHtX
RUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ayR7R1RLX0FQSV9WRVJTSU9OfSIKICAgICAiJHtX
RUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ayIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvSW5z
cGVjdG9yL2dsaWIiCkBAIC01ODcsNiArNjA1LDcgQEAgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3Jp
ZXMod2Via2l0Mmd0a2luamVjdGVkYnVuZGxlIFBSSVZBVEUKICAgICAiJHtERVJJVkVEX1NPVVJD
RVNfRElSfS9JbmplY3RlZEJ1bmRsZSIKICAgICAiJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfSIK
ICAgICAiJHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lUMkdUS19ESVJ9IgorICAgICIke0ZPUldB
UkRJTkdfSEVBREVSU19XRUJLSVQyR1RLX1ZFUlNJT05FRF9ESVJ9IgogICAgICIke0RFUklWRURf
U09VUkNFU19XRUJLSVQyR1RLX0FQSV9ESVJ9IgogKQogCkBAIC02NjEsNiArNjgwLDcgQEAgaWYg
KEVOQUJMRV9JTlRST1NQRUNUSU9OKQogICAgICAgICAgICAgLUkke0ZPUldBUkRJTkdfSEVBREVS
U19ESVJ9CiAgICAgICAgICAgICAtSSR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0vSmF2YVNjcmlw
dENvcmUvZ2xpYgogICAgICAgICAgICAgLUkke0ZPUldBUkRJTkdfSEVBREVSU19XRUJLSVQyR1RL
X0RJUn0KKyAgICAgICAgICAgIC1JJHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lUMkdUS19WRVJT
SU9ORURfRElSfQogICAgICAgICAgICAgJHtXZWJLaXQyR1RLX0lOU1RBTExFRF9IRUFERVJTfQog
ICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9TaGFyZWQvQVBJL2dsaWIvKi5jcHAKICAgICAgICAg
ICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliLyouY3BwCkBAIC03MDcsNiArNzI3
LDcgQEAgaWYgKEVOQUJMRV9JTlRST1NQRUNUSU9OKQogICAgICAgICAgICAgLUkke0ZPUldBUkRJ
TkdfSEVBREVSU19ESVJ9CiAgICAgICAgICAgICAtSSR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0v
SmF2YVNjcmlwdENvcmUvZ2xpYgogICAgICAgICAgICAgLUkke0ZPUldBUkRJTkdfSEVBREVSU19X
RUJLSVQyR1RLX0RJUn0KKyAgICAgICAgICAgIC1JJHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lU
MkdUS19WRVJTSU9ORURfRElSfQogICAgICAgICAgICAgLUkke0ZPUldBUkRJTkdfSEVBREVSU19X
RUJLSVQyR1RLX0VYVEVOU0lPTl9ESVJ9CiAgICAgICAgICAgICAtSSR7V0VCS0lUX0RJUn0vV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrCiAgICAgICAgICAgICAke1dlYktpdERPTV9J
TlNUQUxMRURfSEVBREVSU30KQEAgLTcxNyw5ICs3MzgsOSBAQCBpZiAoRU5BQkxFX0lOVFJPU1BF
Q1RJT04pCiAgICAgICAgICAgICAke1dFQktJVF9ESVJ9L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRV
c2VyTWVzc2FnZS5jcHAKICAgICAgICAgICAgICR7V0VCS0lUX0RJUn0vU2hhcmVkL0FQSS9nbGli
L1dlYktpdFVSSVJlcXVlc3QuY3BwCiAgICAgICAgICAgICAke1dFQktJVF9ESVJ9L1NoYXJlZC9B
UEkvZ2xpYi9XZWJLaXRVUklSZXNwb25zZS5jcHAKKyAgICAgICAgICAgICR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzL0FQSS9ndGske0dUS19BUElfVkVSU0lPTn0vV2ViS2l0Q29udGV4dE1lbnVJdGVt
LmgKICAgICAgICAgICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29u
dGV4dE1lbnUuaAogICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRDb250ZXh0TWVudUFjdGlvbnMuaAotICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudUl0ZW0uaAogICAgICAgICAgICAgJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRIaXRUZXN0UmVzdWx0LmgKICAgICAgICAg
ICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lc3NhZ2UuaAog
ICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1
ZXN0LmgKQEAgLTc4Miw5ICs4MDMsMTEgQEAgZmlsZShXUklURSAke0NNQUtFX0JJTkFSWV9ESVJ9
L2d0a2RvYy13ZWJraXQyZ3RrLmNmZwogICAgICIgICAgICAgLUkke1dFQktJVF9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvZ3RrXG4iCiAgICAgIiAgICAgICAtSSR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJH
VEtfRElSfVxuIgogICAgICIgICAgICAgLUkke0ZPUldBUkRJTkdfSEVBREVSU19XRUJLSVQyR1RL
X0RJUn1cbiIKKyAgICAiICAgICAgIC1JJHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lUMkdUS19W
RVJTSU9ORURfRElSfVxuIgogICAgICJkb2NfZGlyPSR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jc1xuIgogICAgICJzb3VyY2VfZGlycz0ke1dFQktJVF9ESVJ9L1NoYXJlZC9BUEkv
Z2xpYlxuIgogICAgICIgICAgICAgICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xp
YlxuIgorICAgICIgICAgICAgICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrJHtH
VEtfQVBJX1ZFUlNJT059XG4iCiAgICAgIiAgICAgICAgICAgICR7V0VCS0lUX0RJUn0vVUlQcm9j
ZXNzL0FQSS9ndGtcbiIKICAgICAiICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9nbGliXG4iCiAgICAgIiAgICAgICAgICAgICR7V0VCS0lUX0RJ
Un0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrXG4iCkBAIC04MDMsNiArODI2LDcg
QEAgZmlsZShXUklURSAke0NNQUtFX0JJTkFSWV9ESVJ9L2d0a2RvYy13ZWJraXRkb20uY2ZnCiAg
ICAgIiAgICAgICAtSSR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTVxuIgogICAgICIgICAgICAgLUkke0RFUklWRURfU09VUkNFU19XRUJLSVQyR1RLX0RJ
Un1cbiIKICAgICAiICAgICAgIC1JJHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lUMkdUS19ESVJ9
XG4iCisgICAgIiAgICAgICAtSSR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJVDJHVEtfVkVSU0lP
TkVEX0RJUn1cbiIKICAgICAiZG9jX2Rpcj0ke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vZG9jc1xuIgogICAgICJzb3VyY2VfZGlycz0ke1dFQktJVF9E
SVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NXG4iCiAgICAgIiAgICAg
ICAgICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TVxuIgpAQCAtODIwLDYgKzg0NCwxMSBAQCBhZGRfY3VzdG9tX2NvbW1hbmQoCiAgICAgREVQRU5E
UyAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrCiAgICAgQ09NTUFORCBsbiAtbiAtcyAt
ZiAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrICR7Rk9SV0FSRElOR19IRUFERVJTX1dF
QktJVDJHVEtfRElSfS93ZWJraXQyCiApCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVU
ICR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJVDJHVEtfVkVSU0lPTkVEX0RJUn0vd2Via2l0Mgor
ICAgIERFUEVORFMgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ayR7R1RLX0FQSV9WRVJT
SU9OfQorICAgIENPTU1BTkQgbG4gLW4gLXMgLWYgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJ
L2d0ayR7R1RLX0FQSV9WRVJTSU9OfSAke0ZPUldBUkRJTkdfSEVBREVSU19XRUJLSVQyR1RLX1ZF
UlNJT05FRF9ESVJ9L3dlYmtpdDIKKykKIGFkZF9jdXN0b21fY29tbWFuZCgKICAgICBPVVRQVVQg
JHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lUMkdUS19FWFRFTlNJT05fRElSfS93ZWJraXQyCiAg
ICAgREVQRU5EUyAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
awpAQCAtODMyLDYgKzg2MSw3IEBAIGFkZF9jdXN0b21fY29tbWFuZCgKICkKIGFkZF9jdXN0b21f
dGFyZ2V0KFdlYktpdC1mYWtlLWFwaS1oZWFkZXJzCiAgICAgREVQRU5EUyAke0ZPUldBUkRJTkdf
SEVBREVSU19XRUJLSVQyR1RLX0RJUn0vd2Via2l0MgorICAgICAgICAgICAgJHtGT1JXQVJESU5H
X0hFQURFUlNfV0VCS0lUMkdUS19WRVJTSU9ORURfRElSfS93ZWJraXQyCiAgICAgICAgICAgICAk
e0ZPUldBUkRJTkdfSEVBREVSU19XRUJLSVQyR1RLX0VYVEVOU0lPTl9ESVJ9L3dlYmtpdDIKICAg
ICAgICAgICAgICR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJVDJHVEtfRVhURU5TSU9OX0RJUn0v
d2Via2l0ZG9tCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9X
ZWJLaXRDb250ZXh0TWVudUl0ZW0uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2dsaWIv
V2ViS2l0Q29udGV4dE1lbnVJdGVtLmNwcAppbmRleCBlNWQyZTI5ZTIzYjMuLmRiNjE0OTNiNzgw
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2dsaWIvV2ViS2l0Q29udGV4
dE1lbnVJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRD
b250ZXh0TWVudUl0ZW0uY3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgV2ViQ29udGV4dE1lbnVJdGVt
RGF0YSB3ZWJraXRDb250ZXh0TWVudUl0ZW1Ub1dlYkNvbnRleHRNZW51SXRlbURhdGEoV2ViS2l0
Q29udGUKICAgICByZXR1cm4gV2ViQ29udGV4dE1lbnVJdGVtRGF0YShpdGVtLT5wcml2LT5tZW51
SXRlbS0+dHlwZSgpLCBpdGVtLT5wcml2LT5tZW51SXRlbS0+YWN0aW9uKCksIGl0ZW0tPnByaXYt
Pm1lbnVJdGVtLT50aXRsZSgpLCBpdGVtLT5wcml2LT5tZW51SXRlbS0+ZW5hYmxlZCgpLCBpdGVt
LT5wcml2LT5tZW51SXRlbS0+Y2hlY2tlZCgpKTsKIH0KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNp
ZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkKIC8qKgogICogd2Via2l0X2NvbnRleHRfbWVu
dV9pdGVtX25ldzoKICAqIEBhY3Rpb246IGEgI0d0a0FjdGlvbgpAQCAtMjYxLDcgKzI2MSw3IEBA
IFdlYktpdENvbnRleHRNZW51SXRlbSogd2Via2l0X2NvbnRleHRfbWVudV9pdGVtX25ld19zZXBh
cmF0b3Iodm9pZCkKICAgICByZXR1cm4gaXRlbTsKIH0KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNp
ZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkKIC8qKgogICogd2Via2l0X2NvbnRleHRfbWVu
dV9pdGVtX2dldF9hY3Rpb246CiAgKiBAaXRlbTogYSAjV2ViS2l0Q29udGV4dE1lbnVJdGVtCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgKaW5kZXggZjA4
YzE5ZmI5NWVjLi4yNGQ1NGU4YzIxZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRp
dmVXZWJLZXlib2FyZEV2ZW50LmgKQEAgLTQzLDggKzQzLDEyIEBAIHN0cnVjdCBLZXlwcmVzc0Nv
bW1hbmQ7CiAKICNpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8V2ViQ29yZS9HVW5pcXVlUHRy
R3RrLmg+CisjaWYgVVNFKEdUSzQpCit0eXBlZGVmIHN0cnVjdCBfR2RrRXZlbnQgR2RrRXZlbnQ7
CisjZWxzZQogdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7CiAjZW5kaWYKKyNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmgKaW5kZXggMGZhNTU3
ZTlmYWEzLi40YjhkYWM4ZWI5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05h
dGl2ZVdlYk1vdXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJN
b3VzZUV2ZW50LmgKQEAgLTM1LDggKzM1LDEyIEBAIE9CSkNfQ0xBU1MgTlNWaWV3OwogCiAjaWYg
UExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPFdlYkNvcmUvR1VuaXF1ZVB0ckd0ay5oPgorI2lmIFVT
RShHVEs0KQordHlwZWRlZiBzdHJ1Y3QgX0dka0V2ZW50IEdka0V2ZW50OworI2Vsc2UKIHR5cGVk
ZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50OwogI2VuZGlmCisjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCmluZGV4IDM5OTFhNDc5ZjFmMS4uNWU2NTVi
NDgyYzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCkBA
IC0zNSw4ICszNSwxMiBAQCBPQkpDX0NMQVNTIE5TVmlldzsKIAogI2lmIFBMQVRGT1JNKEdUSykK
ICNpbmNsdWRlIDxXZWJDb3JlL0dVbmlxdWVQdHJHdGsuaD4KKyNpZiBVU0UoR1RLNCkKK3R5cGVk
ZWYgc3RydWN0IF9HZGtFdmVudCBHZGtFdmVudDsKKyNlbHNlCiB0eXBlZGVmIHVuaW9uIF9HZGtF
dmVudCBHZGtFdmVudDsKICNlbmRpZgorI2VuZGlmCiAKICNpZiBVU0UoTElCV1BFKQogc3RydWN0
IHdwZV9pbnB1dF9heGlzX2V2ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Z2xpYi9XZWJDb250ZXh0TWVudUl0ZW1HbGliLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2ds
aWIvV2ViQ29udGV4dE1lbnVJdGVtR2xpYi5jcHAKaW5kZXggMjM1NzRlNzQ2Zjg1Li41MmE2Mzgz
MzYwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvV2ViQ29udGV4dE1l
bnVJdGVtR2xpYi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ2xpYi9XZWJDb250ZXh0
TWVudUl0ZW1HbGliLmNwcApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIkFQSU9iamVjdC5o
IgogI2luY2x1ZGUgPGdpby9naW8uaD4KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9S
TShHVEspICYmICFVU0UoR1RLNCkKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjZW5kaWYKIApAQCAt
NTQsNyArNTQsNyBAQCBXZWJDb250ZXh0TWVudUl0ZW1HbGliOjpXZWJDb250ZXh0TWVudUl0ZW1H
bGliKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbUdsaWImIGRhdAogewogICAgIG1fZ0FjdGlvbiA9
IGRhdGEuZ0FjdGlvbigpOwogICAgIG1fc3VibWVudUl0ZW1zID0gV1RGTW92ZShzdWJtZW51KTsK
LSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSAmJiAhVVNFKEdUSzQpCiAgICAg
bV9ndGtBY3Rpb24gPSBkYXRhLmd0a0FjdGlvbigpOwogI2VuZGlmCiB9CkBAIC03Nyw3ICs3Nyw3
IEBAIFdlYkNvbnRleHRNZW51SXRlbUdsaWI6OldlYkNvbnRleHRNZW51SXRlbUdsaWIoR0FjdGlv
biogYWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpCiAgICAgY3JlYXRlQWN0aW9uSWZOZWVkZWQoKTsK
IH0KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkK
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiBXZWJDb250ZXh0TWVudUl0ZW1H
bGliOjpXZWJDb250ZXh0TWVudUl0ZW1HbGliKEd0a0FjdGlvbiogYWN0aW9uKQogICAgIDogV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YShHVEtfSVNfVE9HR0xFX0FDVElPTihhY3Rpb24pID8gQ2hlY2th
YmxlQWN0aW9uVHlwZSA6IEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbUJhc2VBcHBsaWNhdGlv
blRhZywgU3RyaW5nOjpmcm9tVVRGOChndGtfYWN0aW9uX2dldF9sYWJlbChhY3Rpb24pKSwgZ3Rr
X2FjdGlvbl9nZXRfc2Vuc2l0aXZlKGFjdGlvbiksIEdUS19JU19UT0dHTEVfQUNUSU9OKGFjdGlv
bikgPyBndGtfdG9nZ2xlX2FjdGlvbl9nZXRfYWN0aXZlKEdUS19UT0dHTEVfQUNUSU9OKGFjdGlv
bikpIDogZmFsc2UpCkBAIC05NSw3ICs5NSw3IEBAIFdlYkNvbnRleHRNZW51SXRlbUdsaWI6On5X
ZWJDb250ZXh0TWVudUl0ZW1HbGliKCkKIAogR1VuaXF1ZVB0cjxjaGFyPiBXZWJDb250ZXh0TWVu
dUl0ZW1HbGliOjpidWlsZEFjdGlvbk5hbWUoKSBjb25zdAogewotI2lmIFBMQVRGT1JNKEdUSykK
KyNpZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkKIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgaWYgKG1fZ3RrQWN0aW9uKQogICAgICAgICByZXR1cm4gR1VuaXF1
ZVB0cjxjaGFyPihnX3N0cmR1cChndGtfYWN0aW9uX2dldF9uYW1lKG1fZ3RrQWN0aW9uKSkpOwpA
QCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVJdGVtR2xpYjo6Y3JlYXRlQWN0
aW9uSWZOZWVkZWQoKQogICAgICAgICBnX3NpbXBsZV9hY3Rpb25fc2V0X2VuYWJsZWQoR19TSU1Q
TEVfQUNUSU9OKG1fZ0FjdGlvbi5nZXQoKSksIGVuYWJsZWQoKSk7CiAgICAgfQogCi0jaWYgUExB
VEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgJiYgIVVTRShHVEs0KQogQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBDcmVhdGUgdGhlIEd0a0FjdGlvbiBmb3Ig
YmFja3dhcmRzIGNvbXBhdGliaWxpdHkgb25seS4KICAgICBpZiAoIW1fZ3RrQWN0aW9uKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9nbGliL1dlYkNvbnRleHRNZW51SXRlbUds
aWIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvV2ViQ29udGV4dE1lbnVJdGVtR2xpYi5o
CmluZGV4IDVmZmU2YWIzMjQxYy4uYWYxMjFkYzBiZTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9nbGliL1dlYkNvbnRleHRNZW51SXRlbUdsaWIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9nbGliL1dlYkNvbnRleHRNZW51SXRlbUdsaWIuaApAQCAtMjksOCArMjksMTAg
QEAKICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1Vu
aXF1ZVB0ci5oPgogCisjaWYgIVVTRShHVEs0KQogdHlwZWRlZiBzdHJ1Y3QgX0d0a0FjdGlvbiBH
dGtBY3Rpb247CiB0eXBlZGVmIHN0cnVjdCBfR0FjdGlvbiBHQWN0aW9uOworI2VuZGlmCiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCkBAIC00MSw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICBXZWJDb250
ZXh0TWVudUl0ZW1HbGliKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmKTsKICAgICBXZWJD
b250ZXh0TWVudUl0ZW1HbGliKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbUdsaWImLCBWZWN0b3I8
V2ViQ29udGV4dE1lbnVJdGVtR2xpYj4mJiBzdWJtZW51KTsKICAgICBXZWJDb250ZXh0TWVudUl0
ZW1HbGliKEdBY3Rpb24qLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBHVmFyaWFudCogdGFyZ2V0ID0g
bnVsbHB0cik7Ci0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgJiYgIVVTRShH
VEs0KQogICAgIFdlYkNvbnRleHRNZW51SXRlbUdsaWIoR3RrQWN0aW9uKik7CiAjZW5kaWYKICAg
ICB+V2ViQ29udGV4dE1lbnVJdGVtR2xpYigpOwpAQCAtNTIsNyArNTQsNyBAQCBwdWJsaWM6CiAg
ICAgR1ZhcmlhbnQqIGdBY3Rpb25UYXJnZXQoKSBjb25zdCB7IHJldHVybiBtX2dBY3Rpb25UYXJn
ZXQuZ2V0KCk7IH0KICAgICBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtR2xpYj4mIHN1
Ym1lbnVJdGVtcygpIGNvbnN0IHsgcmV0dXJuIG1fc3VibWVudUl0ZW1zOyB9CiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSAmJiAhVVNFKEdUSzQpCiAgICAgR3RrQWN0aW9u
KiBndGtBY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2d0a0FjdGlvbjsgfQogI2VuZGlmCiAKQEAg
LTYzLDcgKzY1LDcgQEAgcHJpdmF0ZToKICAgICBHUmVmUHRyPEdBY3Rpb24+IG1fZ0FjdGlvbjsK
ICAgICBHUmVmUHRyPEdWYXJpYW50PiBtX2dBY3Rpb25UYXJnZXQ7CiAgICAgVmVjdG9yPFdlYkNv
bnRleHRNZW51SXRlbUdsaWI+IG1fc3VibWVudUl0ZW1zOwotI2lmIFBMQVRGT1JNKEdUSykKKyNp
ZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkKICAgICBHdGtBY3Rpb24qIG1fZ3RrQWN0aW9u
IHsgbnVsbHB0ciB9OwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvZ3RrL05hdGl2ZVdlYktleWJvYXJkRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvZ3RrL05hdGl2ZVdlYktleWJvYXJkRXZlbnRHdGsuY3BwCmluZGV4IDIzNTdmM2Q1ODQxNS4u
OGMwZGY0MjgyZmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL05h
dGl2ZVdlYktleWJvYXJkRXZlbnRHdGsuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAi
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgogCiAjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5Lmgi
Ci0jaW5jbHVkZSA8Z2RrL2dkay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3RrVmVyc2lvbmluZy5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvZ3RrL05hdGl2ZVdlYk1vdXNlRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
Z3RrL05hdGl2ZVdlYk1vdXNlRXZlbnRHdGsuY3BwCmluZGV4IDU4ZTM3ZmUzODI3Yy4uYzcwNzA5
OTVmODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvTmF0aXZlV2ViTW91
c2VFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL05hdGl2ZVdlYk1v
dXNlRXZlbnRHdGsuY3BwCkBAIC0zOSw3ICszOSw3IEBAIE5hdGl2ZVdlYk1vdXNlRXZlbnQ6Ok5h
dGl2ZVdlYk1vdXNlRXZlbnQoR2RrRXZlbnQqIGV2ZW50LCBpbnQgZXZlbnRDbGlja0NvdW50LCBP
CiAKIE5hdGl2ZVdlYk1vdXNlRXZlbnQ6Ok5hdGl2ZVdlYk1vdXNlRXZlbnQoY29uc3QgTmF0aXZl
V2ViTW91c2VFdmVudCYgZXZlbnQpCiAgICAgOiBXZWJNb3VzZUV2ZW50KFdlYkV2ZW50RmFjdG9y
eTo6Y3JlYXRlV2ViTW91c2VFdmVudChldmVudC5uYXRpdmVFdmVudCgpLCBldmVudC5jbGlja0Nv
dW50KCksIFdlYkNvcmU6OkludFBvaW50KGV2ZW50LmRlbHRhWCgpLCBldmVudC5kZWx0YVkoKSkp
KQotICAgICwgbV9uYXRpdmVFdmVudChnZGtfZXZlbnRfY29weShldmVudC5uYXRpdmVFdmVudCgp
KSkKKyAgICAsIG1fbmF0aXZlRXZlbnQoZ2RrX2V2ZW50X2NvcHkoY29uc3RfY2FzdDxHZGtFdmVu
dCo+KGV2ZW50Lm5hdGl2ZUV2ZW50KCkpKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvZ3RrL05hdGl2ZVdlYlRvdWNoRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvZ3RrL05hdGl2ZVdlYlRvdWNoRXZlbnRHdGsuY3BwCmluZGV4IDVlYzQ3NmIyZGEx
My4uNmQwZTQ0ZjkyY2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvTmF0
aXZlV2ViVG91Y2hFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL05h
dGl2ZVdlYlRvdWNoRXZlbnRHdGsuY3BwCkBAIC00MSw3ICs0MSw3IEBAIE5hdGl2ZVdlYlRvdWNo
RXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQoR2RrRXZlbnQqIGV2ZW50LCBWZWN0b3I8V2ViUGxh
dGZvcm1Ub3VjCiAKIE5hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQoY29u
c3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgOiBXZWJUb3VjaEV2ZW50KFdlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChldmVudC5uYXRpdmVFdmVudCgpLCBWZWN0
b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PihldmVudC50b3VjaFBvaW50cygpKSkpCi0gICAgLCBt
X25hdGl2ZUV2ZW50KGdka19ldmVudF9jb3B5KGV2ZW50Lm5hdGl2ZUV2ZW50KCkpKQorICAgICwg
bV9uYXRpdmVFdmVudChnZGtfZXZlbnRfY29weShjb25zdF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQu
bmF0aXZlRXZlbnQoKSkpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9ndGsvTmF0aXZlV2ViV2hlZWxFdmVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9n
dGsvTmF0aXZlV2ViV2hlZWxFdmVudEd0ay5jcHAKaW5kZXggNWNhZjNkMjNhYjE2Li5hNjAwNDY3
N2M0MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9OYXRpdmVXZWJXaGVl
bEV2ZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvTmF0aXZlV2ViV2hl
ZWxFdmVudEd0ay5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJOYXRpdmVXZWJXaGVl
bEV2ZW50LmgiCiAKICNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKLSNpbmNsdWRlIDxnZGsv
Z2RrLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HdGtWZXJzaW9uaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRG
YWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3Bw
CmluZGV4IGE1MjBhZjBjN2MwZi4uNmE0NDVmN2Q4OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcApAQCAtMjksMTIgKzI5LDEyIEBACiAjaW5jbHVk
ZSAiV2ViRXZlbnRGYWN0b3J5LmgiCiAKICNpbmNsdWRlIDxXZWJDb3JlL0d0a1V0aWxpdGllcy5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvR3RrVmVyc2lvbmluZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxiYXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd3NLZXlib2FyZENvZGVzLmg+CiAjaW5jbHVkZSA8Z2Rr
L2dkay5oPgogI2luY2x1ZGUgPGdkay9nZGtrZXlzeW1zLmg+Ci0jaW5jbHVkZSA8Z3RrL2d0ay5o
PgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
NzIsNyArNzIsNyBAQCBzdGF0aWMgaW5saW5lIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+
IG1vZGlmaWVyc0ZvckV2ZW50KGNvbnN0IEdka0V2ZW50KiBldgogc3RhdGljIGlubGluZSBXZWJN
b3VzZUV2ZW50OjpCdXR0b24gYnV0dG9uRm9yRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50KQog
ewogICAgIHVuc2lnbmVkIGJ1dHRvbiA9IDA7Ci0gICAgR2RrRXZlbnRUeXBlIHR5cGUgPSBnZGtf
ZXZlbnRfZ2V0X2V2ZW50X3R5cGUoZXZlbnQpOworICAgIEdka0V2ZW50VHlwZSB0eXBlID0gZ2Rr
X2V2ZW50X2dldF9ldmVudF90eXBlKGNvbnN0X2Nhc3Q8R2RrRXZlbnQqPihldmVudCkpOwogICAg
IHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgR0RLX0VOVEVSX05PVElGWToKICAgICBjYXNlIEdE
S19MRUFWRV9OT1RJRlk6CkBAIC04OSw4ICs4OSwxMCBAQCBzdGF0aWMgaW5saW5lIFdlYk1vdXNl
RXZlbnQ6OkJ1dHRvbiBidXR0b25Gb3JFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQpCiAgICAg
ICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEdES19CVVRUT05fUFJFU1M6CisjaWYgIVVTRShH
VEs0KQogICAgIGNhc2UgR0RLXzJCVVRUT05fUFJFU1M6CiAgICAgY2FzZSBHREtfM0JVVFRPTl9Q
UkVTUzoKKyNlbmRpZgogICAgIGNhc2UgR0RLX0JVVFRPTl9SRUxFQVNFOiB7CiAgICAgICAgIGd1
aW50IGV2ZW50QnV0dG9uOwogICAgICAgICBnZGtfZXZlbnRfZ2V0X2J1dHRvbihldmVudCwgJmV2
ZW50QnV0dG9uKTsKQEAgLTE1MCw3ICsxNTIsNyBAQCBXZWJNb3VzZUV2ZW50IFdlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQsIGludCBjdQog
ICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgPSBzdGF0aWNfY2FzdDxXZWJFdmVudDo6VHlwZT4oMCk7
CiAgICAgSW50UG9pbnQgbW92ZW1lbnREZWx0YTsKIAotICAgIEdka0V2ZW50VHlwZSBldmVudFR5
cGUgPSBnZGtfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoZXZlbnQpOworICAgIEdka0V2ZW50VHlwZSBl
dmVudFR5cGUgPSBnZGtfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoY29uc3RfY2FzdDxHZGtFdmVudCo+
KGV2ZW50KSk7CiAgICAgc3dpdGNoIChldmVudFR5cGUpIHsKICAgICBjYXNlIEdES19NT1RJT05f
Tk9USUZZOgogICAgIGNhc2UgR0RLX0VOVEVSX05PVElGWToKQEAgLTE1OSw5ICsxNjEsMTEgQEAg
V2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoY29uc3Qg
R2RrRXZlbnQqIGV2ZW50LCBpbnQgY3UKICAgICAgICAgaWYgKGRlbHRhKQogICAgICAgICAgICAg
bW92ZW1lbnREZWx0YSA9IGRlbHRhLnZhbHVlKCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
R0RLX0JVVFRPTl9QUkVTUzoKKyNpZiAhVVNFKEdUSzQpCiAgICAgY2FzZSBHREtfMkJVVFRPTl9Q
UkVTUzoKLSAgICBjYXNlIEdES18zQlVUVE9OX1BSRVNTOiB7CisgICAgY2FzZSBHREtfM0JVVFRP
Tl9QUkVTUzoKKyNlbmRpZgorICAgIGNhc2UgR0RLX0JVVFRPTl9QUkVTUzogewogICAgICAgICB0
eXBlID0gV2ViRXZlbnQ6Ok1vdXNlRG93bjsKICAgICAgICAgYXV0byBtb2RpZmllciA9IHN0YXRl
TW9kaWZpZXJGb3JHZGtCdXR0b24oZXZlbnRCdXR0b24pOwogICAgICAgICBzdGF0ZSA9IHN0YXRp
Y19jYXN0PEdka01vZGlmaWVyVHlwZT4oc3RhdGUgfCBtb2RpZmllcik7CkBAIC0yNTQsMTEgKzI1
OCwxNiBAQCBXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVu
dChjb25zdCBHZGtFdmVudCogZXZlbnQsIFdlYldoZQogCiBXZWJLZXlib2FyZEV2ZW50IFdlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQs
IGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgT3B0aW9uYWw8
VmVjdG9yPENvbXBvc2l0aW9uVW5kZXJsaW5lPj4mJiBwcmVlZGl0VW5kZXJsaW5lcywgT3B0aW9u
YWw8RWRpdGluZ1JhbmdlPiYmIHByZWVkaXRTZWxlY3Rpb25SYW5nZSwgVmVjdG9yPFN0cmluZz4m
JiBjb21tYW5kcykKIHsKKyNpZiBVU0UoR1RLNCkKKyAgICBndWludCBrZXl2YWwgPSAwOworICAg
IGd1aW50MTYga2V5Y29kZSA9IDA7CisjZWxzZQogICAgIGd1aW50IGtleXZhbDsKICAgICBnZGtf
ZXZlbnRfZ2V0X2tleXZhbChldmVudCwgJmtleXZhbCk7CiAgICAgZ3VpbnQxNiBrZXljb2RlOwog
ICAgIGdka19ldmVudF9nZXRfa2V5Y29kZShldmVudCwgJmtleWNvZGUpOwotICAgIEdka0V2ZW50
VHlwZSB0eXBlID0gZ2RrX2V2ZW50X2dldF9ldmVudF90eXBlKGV2ZW50KTsKKyNlbmRpZgorICAg
IEdka0V2ZW50VHlwZSB0eXBlID0gZ2RrX2V2ZW50X2dldF9ldmVudF90eXBlKGNvbnN0X2Nhc3Q8
R2RrRXZlbnQqPihldmVudCkpOwogCiAgICAgcmV0dXJuIFdlYktleWJvYXJkRXZlbnQoCiAgICAg
ICAgIHR5cGUgPT0gR0RLX0tFWV9SRUxFQVNFID8gV2ViRXZlbnQ6OktleVVwIDogV2ViRXZlbnQ6
OktleURvd24sCkBAIC0yODEsNyArMjkwLDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZh
Y3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LAogV2Vi
VG91Y2hFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQoY29uc3QgR2Rr
RXZlbnQqIGV2ZW50LCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmIHRvdWNoUG9pbnRz
KQogewogICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgPSBXZWJFdmVudDo6Tm9UeXBlOwotICAgIEdk
a0V2ZW50VHlwZSBldmVudFR5cGUgPSBnZGtfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoZXZlbnQpOwor
ICAgIEdka0V2ZW50VHlwZSBldmVudFR5cGUgPSBnZGtfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoY29u
c3RfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSk7CiAgICAgc3dpdGNoIChldmVudFR5cGUpIHsKICAg
ICBjYXNlIEdES19UT1VDSF9CRUdJTjoKICAgICAgICAgdHlwZSA9IFdlYkV2ZW50OjpUb3VjaFN0
YXJ0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9y
eS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5oCmluZGV4IDQy
NzE4ZTI1ODA1YS4uNTRkYTg5ZTYwODkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dl
YkV2ZW50RmFjdG9yeS5oCkBAIC0yOCw3ICsyOCwxMSBAQAogCiAjaW5jbHVkZSAiV2ViRXZlbnQu
aCIKIAorI2lmIFVTRShHVEs0KQordHlwZWRlZiBzdHJ1Y3QgX0dka0V2ZW50IEdka0V2ZW50Owor
I2Vsc2UKIHR5cGVkZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50OworI2VuZGlmCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAppbmRleCBlYmEzNDYxNGZlMGYuLjU2NDhi
N2Y4NTMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CkBAIC0xMDgsNyArMTA4LDYgQEAgU2hhcmVkL3Vu
aXgvQXV4aWxpYXJ5UHJvY2Vzc01haW4uY3BwCiBVSVByb2Nlc3MvQmFja2luZ1N0b3JlLmNwcAog
VUlQcm9jZXNzL0RlZmF1bHRVbmRvQ29udHJvbGxlci5jcHAKIFVJUHJvY2Vzcy9MZWdhY3lTZXNz
aW9uU3RhdGVDb2RpbmdOb25lLmNwcAotVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5j
cHAKIFVJUHJvY2Vzcy9WaWV3U25hcHNob3RTdG9yZS5jcHAKIFVJUHJvY2Vzcy9XZWJHcmFtbWFy
RGV0YWlsLmNwcAogVUlQcm9jZXNzL1dlYk1lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKQEAgLTI1
NSw3ICsyNTQsNiBAQCBVSVByb2Nlc3MvZ3RrL1BvaW50ZXJMb2NrTWFuYWdlci5jcHAgQG5vLXVu
aWZ5CiBVSVByb2Nlc3MvZ3RrL1BvaW50ZXJMb2NrTWFuYWdlcldheWxhbmQuY3BwIEBuby11bmlm
eQogVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9ja01hbmFnZXJYMTEuY3BwIEBuby11bmlmeQogVUlQ
cm9jZXNzL2d0ay9UZXh0Q2hlY2tlckd0ay5jcHAgQG5vLXVuaWZ5Ci1VSVByb2Nlc3MvZ3RrL1Zp
ZXdHZXN0dXJlQ29udHJvbGxlckd0ay5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvZ3RrL1ZpZXdT
bmFwc2hvdFN0b3JlR3RrLmNwcAogVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHAg
QG5vLXVuaWZ5CiBVSVByb2Nlc3MvZ3RrL1dlYkNvbG9yUGlja2VyR3RrLmNwcApAQCAtNDEzLDcg
KzQxMSw2IEBAIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0
ay5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmNwcAogCiBXZWJQcm9jZXNzL1dlYlBhZ2UvQWNjZWxlcmF0ZWRTdXJmYWNlLmNwcAot
V2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IuY3BwCiAKIFdl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0
b3IuY3BwCiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJl
YUNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS05hdGl2ZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS05hdGl2ZUV2ZW50LmgKaW5kZXggOWNhMGFiM2QwZGFkLi40NGQ2ZTc3OWEzNmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS05hdGl2ZUV2ZW50LmgKQEAgLTQ0LDcg
KzQ0LDYgQEAgc3RydWN0IE5TRXZlbnQ7CiAjZW5kaWYKIHR5cGVkZWYgTlNFdmVudCAqV0tOYXRp
dmVFdmVudFB0cjsKICNlbGlmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCi10eXBlZGVmIHVuaW9u
IF9HZGtFdmVudCBHZGtFdmVudDsKIHR5cGVkZWYgY29uc3QgR2RrRXZlbnQqIFdLTmF0aXZlRXZl
bnRQdHI7CiAjZWxpZiBkZWZpbmVkKFdJTjMyKQogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgdGFnTVNH
KiBXS05hdGl2ZUV2ZW50UHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvSW5wdXRNZXRob2RGaWx0ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvSW5wdXRNZXRob2RGaWx0ZXIuY3BwCmluZGV4IGRkYjgyYTI3OWRlOC4uODE0MGY0
NmFkNGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JbnB1
dE1ldGhvZEZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
SW5wdXRNZXRob2RGaWx0ZXIuY3BwCkBAIC0xMDUsNyArMTA1LDExIEBAIElucHV0TWV0aG9kRmls
dGVyOjpGaWx0ZXJSZXN1bHQgSW5wdXRNZXRob2RGaWx0ZXI6OmZpbHRlcktleUV2ZW50KFBsYXRm
b3JtRXZlbnRLCiAgICAgbV9maWx0ZXJpbmdDb250ZXh0LnByZWVkaXRDaGFuZ2VkID0gZmFsc2U7
CiAgICAgbV9jb21wb3NpdGlvblJlc3VsdCA9IHsgfTsKIAorI2lmIFVTRShHVEs0KQogICAgIGJv
b2wgaGFuZGxlZCA9IHdlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9maWx0ZXJfa2V5X2V2ZW50
KG1fY29udGV4dC5nZXQoKSwga2V5RXZlbnQpOworI2Vsc2UKKyAgICBib29sIGhhbmRsZWQgPSB3
ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfZmlsdGVyX2tleV9ldmVudChtX2NvbnRleHQuZ2V0
KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R2RrRXZlbnRLZXkqPihrZXlFdmVudCkpOworI2VuZGlmCiAg
ICAgaWYgKCFoYW5kbGVkKQogICAgICAgICByZXR1cm4geyB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JbnB1dE1ldGhvZEZpbHRlci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSW5wdXRNZXRob2RGaWx0ZXIuaAppbmRleCBhMTEw
ZDk1NzUwMDIuLjc3Yzg0YWIyNGRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvSW5wdXRNZXRob2RGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9JbnB1dE1ldGhvZEZpbHRlci5oCkBAIC0yOSw3ICsyOSwxMSBAQAogdHlw
ZWRlZiBzdHJ1Y3QgX1dlYktpdElucHV0TWV0aG9kQ29udGV4dCBXZWJLaXRJbnB1dE1ldGhvZENv
bnRleHQ7CiAKICNpZiBQTEFURk9STShHVEspCi10eXBlZGVmIHN0cnVjdCBfR2RrRXZlbnRLZXkg
R2RrRXZlbnRLZXk7CisjaWYgVVNFKEdUSzQpCit0eXBlZGVmIHN0cnVjdCBfR2RrRXZlbnQgR2Rr
RXZlbnQ7CisjZWxzZQordHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7CisjZW5kaWYK
ICNlbGlmIFBMQVRGT1JNKFdQRSkKIHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQ7CiAj
ZW5kaWYKQEAgLTUzLDcgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3RhdGUoT3B0aW9u
YWw8SW5wdXRNZXRob2RTdGF0ZT4mJik7CiAKICNpZiBQTEFURk9STShHVEspCi0gICAgdXNpbmcg
UGxhdGZvcm1FdmVudEtleSA9IEdka0V2ZW50S2V5OworICAgIHVzaW5nIFBsYXRmb3JtRXZlbnRL
ZXkgPSBHZGtFdmVudDsKICNlbGlmIFBMQVRGT1JNKFdQRSkKICAgICB1c2luZyBQbGF0Zm9ybUV2
ZW50S2V5ID0gc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudDsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5zdGFsbE1pc3Np
bmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25S
ZXF1ZXN0LmNwcAppbmRleCA1MGUxN2UzZWUwNmYuLjY4YTM0MDY1MDQ5NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5zdGFsbE1pc3NpbmdNZWRp
YVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVx
dWVzdC5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShWSURFTykKICNpbmNsdWRl
IDxXZWJDb3JlL1BsYXRmb3JtRGlzcGxheS5oPgotI2lmIFBMQVRGT1JNKFgxMSkKKyNpZiBQTEFU
Rk9STShYMTEpICYmICFVU0UoR1RLNCkKICNpbmNsdWRlIDxnZGsvZ2RreC5oPgogI2luY2x1ZGUg
PGd0ay9ndGsuaD4KICNlbmRpZgpAQCAtNzAsNyArNzAsNyBAQCBXRUJLSVRfREVGSU5FX1RZUEVf
V0lUSF9DT0RFKAogI2lmIEVOQUJMRShWSURFTykKIHN0YXRpYyBHVW5pcXVlUHRyPEdzdEluc3Rh
bGxQbHVnaW5zQ29udGV4dD4gY3JlYXRlR3N0SW5zdGFsbFBsdWdpbnNDb250ZXh0KFdlYlBhZ2VQ
cm94eSYgcGFnZSkKIHsKLSNpZiBQTEFURk9STShYMTEpCisjaWYgUExBVEZPUk0oWDExKSAmJiAh
VVNFKEdUSzQpCiAgICAgaWYgKFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpLnR5cGUo
KSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OlgxMSkgewogICAgICAgICBHVW5pcXVlUHRyPEdz
dEluc3RhbGxQbHVnaW5zQ29udGV4dD4gY29udGV4dChnc3RfaW5zdGFsbF9wbHVnaW5zX2NvbnRl
eHRfbmV3KCkpOwogICAgICAgICBnc3RfaW5zdGFsbF9wbHVnaW5zX2NvbnRleHRfc2V0X3hpZChj
b250ZXh0LmdldCgpLCBHREtfV0lORE9XX1hJRChndGtfd2lkZ2V0X2dldF93aW5kb3cocGFnZS52
aWV3V2lkZ2V0KCkpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFByaXZhdGUuY3BwCmluZGV4IDg1ZGQ0MGVkNTk4OC4uOTBhNWU3ODY2YmNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQcml2YXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQcml2YXRlLmNw
cApAQCAtMjUsNyArMjUsNyBAQAogI2luY2x1ZGUgIldlYktpdEVycm9yLmgiCiAKICNpZiBQTEFU
Rk9STShHVEspCi0jaW5jbHVkZSA8Z2RrL2dkay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3RrVmVy
c2lvbmluZy5oPgogI2VsaWYgUExBVEZPUk0oV1BFKQogI2luY2x1ZGUgPHdwZS93cGUuaD4KICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
VUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlD
bGllbnQuY3BwCmluZGV4IDEzZjczM2NmNDc5Zi4uZjlhMWFkZDVhY2U3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCkBAIC00
MSw2ICs0MSw3IEBACiAKICNpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtV
dGlsaXRpZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0d0a1ZlcnNpb25pbmcuaD4KICNlbmRpZgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtMTYwLDEyICsxNjEsMTIgQEAgcHJpdmF0ZToK
ICAgICAgICAgUnVuTG9vcDo6Y3VycmVudCgpLnN0b3AoKTsKICAgICAgICAgcmV0dXJuIEZBTFNF
OwogICAgIH0KKyNlbmRpZiAvLyBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkKIAogICAgIHZv
aWQgc2V0V2luZG93RnJhbWVUaW1lckZpcmVkKCkKICAgICB7CiAgICAgICAgIFJ1bkxvb3A6OmN1
cnJlbnQoKS5zdG9wKCk7CiAgICAgfQotI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykgJiYgIVVTRShH
VEs0KQogCiAgICAgdm9pZCBzZXRXaW5kb3dGcmFtZShXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIGZyYW1lKSBmaW5hbAogICAgIHsKQEAgLTIxNSw3ICsyMTYsOSBAQCBw
cml2YXRlOgogICAgICAgICAgICAgdGltZXItPnN0YXJ0T25lU2hvdCgyMDBfbXMpOwogICAgICAg
ICAgICAgUnVuTG9vcDo6cnVuKCk7CiAgICAgICAgICAgICB0aW1lciA9IG51bGxwdHI7CisjaWYg
IVVTRShHVEs0KQogICAgICAgICAgICAgZ19zaWduYWxfaGFuZGxlcl9kaXNjb25uZWN0KHdpbmRv
dywgc2lnbmFsSUQpOworI2VuZGlmCiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgd2Via2l0
V2luZG93UHJvcGVydGllc1NldEdlb21ldHJ5KHdlYmtpdF93ZWJfdmlld19nZXRfd2luZG93X3By
b3BlcnRpZXMobV93ZWJWaWV3KSwgJmdlb21ldHJ5KTsKICNlbmRpZiAvLyBQTEFURk9STShHVEsp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJD
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYkNv
bnRleHQuY3BwCmluZGV4IDRiN2YyMjFhNTQyNi4uNzIyMmE5MWNiOTVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcApA
QCAtMTIxLDggKzEyMSwxMCBAQCBlbnVtIHsKICAgICBQUk9QX1dFQlNJVEVfREFUQV9NQU5BR0VS
LAogI2lmIFBMQVRGT1JNKEdUSykKICAgICBQUk9QX1BTT05fRU5BQkxFRCwKKyNpZiAhVVNFKEdU
SzQpCiAgICAgUFJPUF9VU0VfU1lTWUVNX0FQUEVBUkFOQ0VfRk9SX1NDUk9MTEJBUlMKICNlbmRp
ZgorI2VuZGlmCiB9OwogCiBlbnVtIHsKQEAgLTMzNyw5ICszMzksMTEgQEAgc3RhdGljIHZvaWQg
d2Via2l0V2ViQ29udGV4dEdldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElE
LCBHVmFsdWUqIHYKICAgICBjYXNlIFBST1BfUFNPTl9FTkFCTEVEOgogICAgICAgICBnX3ZhbHVl
X3NldF9ib29sZWFuKHZhbHVlLCBjb250ZXh0LT5wcml2LT5wc29uRW5hYmxlZCk7CiAgICAgICAg
IGJyZWFrOworI2lmICFVU0UoR1RLNCkKICAgICBjYXNlIFBST1BfVVNFX1NZU1lFTV9BUFBFQVJB
TkNFX0ZPUl9TQ1JPTExCQVJTOgogICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3
ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3VzZV9zeXN0ZW1fYXBwZWFyYW5jZV9mb3Jfc2Nyb2xsYmFy
cyhjb250ZXh0KSk7CiAgICAgICAgIGJyZWFrOworI2VuZGlmCiAjZW5kaWYKICAgICBkZWZhdWx0
OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9w
SUQsIHBhcmFtU3BlYyk7CkBAIC0zNjUsOSArMzY5LDExIEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdl
YkNvbnRleHRTZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJRCwgY29uc3Qg
R1ZhCiAgICAgY2FzZSBQUk9QX1BTT05fRU5BQkxFRDoKICAgICAgICAgY29udGV4dC0+cHJpdi0+
cHNvbkVuYWJsZWQgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKTsKICAgICAgICAgYnJlYWs7
CisjaWYgIVVTRShHVEs0KQogICAgIGNhc2UgUFJPUF9VU0VfU1lTWUVNX0FQUEVBUkFOQ0VfRk9S
X1NDUk9MTEJBUlM6CiAgICAgICAgIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfdXNlX3N5c3RlbV9h
cHBlYXJhbmNlX2Zvcl9zY3JvbGxiYXJzKGNvbnRleHQsIGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFs
dWUpKTsKICAgICAgICAgYnJlYWs7CisjZW5kaWYKICNlbmRpZgogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BJRCwgcGFy
YW1TcGVjKTsKQEAgLTUzMyw2ICs1MzksNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2NvbnRl
eHRfY2xhc3NfaW5pdChXZWJLaXRXZWJDb250ZXh0Q2xhc3MqIHdlYkNvbnRleHRDbGFzcwogICAg
ICAgICAgICAgRkFMU0UsCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oV0VC
S0lUX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKSk7CiAKKyNpZiAh
VVNFKEdUSzQpCiAgICAgLyoqCiAgICAgICogV2ViS2l0V2ViQ29udGV4dDp1c2Utc3lzdGVtLWFw
cGVhcmFuY2UtZm9yLXNjcm9sbGJhcnM6CiAgICAgICoKQEAgLTU1Myw2ICs1NjAsNyBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRfd2ViX2NvbnRleHRfY2xhc3NfaW5pdChXZWJLaXRXZWJDb250ZXh0Q2xh
c3MqIHdlYkNvbnRleHRDbGFzcwogICAgICAgICAgICAgXygiV2hldGhlciB0byB1c2Ugc3lzdGVt
IGFwcGVhcmFuY2UgZm9yIHJlbmRlcmluZyBzY3JvbGxiYXJzIiksCiAgICAgICAgICAgICBUUlVF
LAogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KFdFQktJVF9QQVJBTV9SRUFE
V1JJVEUgfCBHX1BBUkFNX0NPTlNUUlVDVCkpKTsKKyNlbmRpZgogI2VuZGlmCiAKICAgICAvKioK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZp
ZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5j
cHAKaW5kZXggYjc0M2EwZDM0MGJlLi5jYjk5NWJhY2JmYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCkBAIC0yMzUwLDcgKzIz
NTAsNyBAQCB2b2lkIHdlYmtpdFdlYlZpZXdSdW5Bc01vZGFsKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcpCiAKICAgICB3ZWJWaWV3LT5wcml2LT5tb2RhbExvb3AgPSBhZG9wdEdSZWYoZ19tYWluX2xv
b3BfbmV3KDAsIEZBTFNFKSk7CiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RL
KSAmJiAhVVNFKEdUSzQpCiAvLyBUaGlzIGlzIHRvIHN1cHByZXNzIHdhcm5pbmdzIGFib3V0IGdk
a190aHJlYWRzX2xlYXZlIGFuZCBnZGtfdGhyZWFkc19lbnRlci4KICAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGdka190aHJlYWRzX2xlYXZlKCk7CkBAIC0yMzU4
LDcgKzIzNTgsNyBAQCB2b2lkIHdlYmtpdFdlYlZpZXdSdW5Bc01vZGFsKFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcpCiAKICAgICBnX21haW5fbG9vcF9ydW4od2ViVmlldy0+cHJpdi0+bW9kYWxMb29w
LmdldCgpKTsKIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspICYmICFVU0Uo
R1RLNCkKICAgICBnZGtfdGhyZWFkc19lbnRlcigpOwogICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogI2VuZGlmCkBAIC0yNTgwLDEzICsyNTgwLDE2IEBAIHZvaWQgd2Via2l0
V2ViVmlld1J1bkZpbGVDaG9vc2VyUmVxdWVzdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJL
aXRGaWxlQ2hvb3NlCiB9CiAKICNpZiBQTEFURk9STShHVEspCisjaWYgIVVTRShHVEs0KQogc3Rh
dGljIHZvaWQgY29udGV4dE1lbnVEaXNtaXNzZWQoR3RrTWVudVNoZWxsKiwgV2ViS2l0V2ViVmll
dyogd2ViVmlldykKIHsKICAgICBnX3NpZ25hbF9lbWl0KHdlYlZpZXcsIHNpZ25hbHNbQ09OVEVY
VF9NRU5VX0RJU01JU1NFRF0sIDAsIE5VTEwpOwogfQorI2VuZGlmCiAKIHZvaWQgd2Via2l0V2Vi
Vmlld1BvcHVsYXRlQ29udGV4dE1lbnUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgVmVj
dG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+JiBwcm9wb3NlZE1lbnUsIGNvbnN0IFdlYkhpdFRl
c3RSZXN1bHREYXRhJiBoaXRUZXN0UmVzdWx0RGF0YSwgR1ZhcmlhbnQqIHVzZXJEYXRhKQogewor
I2lmICFVU0UoR1RLNCkKICAgICBXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UgPSBXRUJL
SVRfV0VCX1ZJRVdfQkFTRSh3ZWJWaWV3KTsKICAgICBXZWJDb250ZXh0TWVudVByb3h5R3RrKiBj
b250ZXh0TWVudVByb3h5ID0gd2Via2l0V2ViVmlld0Jhc2VHZXRBY3RpdmVDb250ZXh0TWVudVBy
b3h5KHdlYlZpZXdCYXNlKTsKICAgICBBU1NFUlQoY29udGV4dE1lbnVQcm94eSk7CkBAIC0yNjEw
LDYgKzI2MTMsNyBAQCB2b2lkIHdlYmtpdFdlYlZpZXdQb3B1bGF0ZUNvbnRleHRNZW51KFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IFZlY3RvcjxXZWJDbwogCiAgICAgLy8gQ2xlYXIgdGhl
IG1lbnUgdG8gbWFrZSBzdXJlIGl0J3MgdXNlbGVzcyBhZnRlciBzaWduYWwgZW1pc3Npb24uCiAg
ICAgd2Via2l0X2NvbnRleHRfbWVudV9yZW1vdmVfYWxsKGNvbnRleHRNZW51LmdldCgpKTsKKyNl
bmRpZgogfQogI2VsaWYgUExBVEZPUk0oV1BFKQogdm9pZCB3ZWJraXRXZWJWaWV3UG9wdWxhdGVD
b250ZXh0TWVudShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBWZWN0b3I8V2ViQ29udGV4
dE1lbnVJdGVtRGF0YT4mIHByb3Bvc2VkTWVudSwgY29uc3QgV2ViSGl0VGVzdFJlc3VsdERhdGEm
IGhpdFRlc3RSZXN1bHREYXRhLCBHVmFyaWFudCogdXNlckRhdGEpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL0lucHV0TWV0aG9kRmlsdGVyR3RrLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvSW5wdXRNZXRob2RGaWx0ZXJHdGsuY3BwCmlu
ZGV4IDhkODVkYTdhZDk5Mi4uOGEwOGY2ZjA0NDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL0lucHV0TWV0aG9kRmlsdGVyR3RrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL0lucHV0TWV0aG9kRmlsdGVyR3RrLmNwcApAQCAtMzgs
NyArMzgsNyBAQCBJbnRSZWN0IElucHV0TWV0aG9kRmlsdGVyOjpwbGF0Zm9ybVRyYW5zZm9ybUN1
cnNvclJlY3RUb1ZpZXdDb29yZGluYXRlcyhjb25zdCBJbgogCiBib29sIElucHV0TWV0aG9kRmls
dGVyOjpwbGF0Zm9ybUV2ZW50S2V5SXNLZXlQcmVzcyhQbGF0Zm9ybUV2ZW50S2V5KiBldmVudCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gZXZlbnQtPnR5cGUgPT0gR0RLX0tFWV9QUkVTUzsKKyAgICBy
ZXR1cm4gZ2RrX2V2ZW50X2dldF9ldmVudF90eXBlKGV2ZW50KSA9PSBHREtfS0VZX1BSRVNTOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggYTY4YTMwOTgzZjYwLi41OWEyODJj
YzM3ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNs
aWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNs
aWVudEltcGwuY3BwCkBAIC03MCw2ICs3MCw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJl
YVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94eShXZWJQcm9jCiAK
IHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6
UmVnaW9uJiByZWdpb24pCiB7CisjaWYgVVNFKEdUSzQpCisgICAgZ3RrX3dpZGdldF9xdWV1ZV9k
cmF3KG1fdmlld1dpZGdldCk7CisjZWxzZQogICAgIFdlYlBhZ2VQcm94eSogcGFnZVByb3h5ID0g
d2Via2l0V2ViVmlld0Jhc2VHZXRQYWdlKFdFQktJVF9XRUJfVklFV19CQVNFKG1fdmlld1dpZGdl
dCkpOwogICAgIEFTU0VSVChwYWdlUHJveHkpOwogCkBAIC04MSw2ICs4NCw3IEBAIHZvaWQgUGFn
ZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJiBy
ZWdpb24pCiAgICAgfQogCiAgICAgZ3RrX3dpZGdldF9xdWV1ZV9kcmF3X3JlZ2lvbihtX3ZpZXdX
aWRnZXQsIHRvQ2Fpcm9SZWdpb24ocmVnaW9uKS5nZXQoKSk7CisjZW5kaWYKIH0KIAogdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jiwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKQpAQCAtMTQ4LDExICsxNTIsMTggQEAgdm9pZCBQYWdl
Q2xpZW50SW1wbDo6c2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYgY3Vyc29yKQogICAg
IC8vIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mzg4CiAgICAgLy8g
U2V0dGluZyB0aGUgY3Vyc29yIG1heSBiZSBhbiBleHBlbnNpdmUgb3BlcmF0aW9uIGluIHNvbWUg
YmFja2VuZHMsCiAgICAgLy8gc28gZG9uJ3QgcmUtc2V0IHRoZSBjdXJzb3IgaWYgaXQncyBhbHJl
YWR5IHNldCB0byB0aGUgdGFyZ2V0IHZhbHVlLgorI2lmIFVTRShHVEs0KQorICAgIEdka0N1cnNv
ciogY3VycmVudEN1cnNvciA9IGd0a193aWRnZXRfZ2V0X2N1cnNvcihtX3ZpZXdXaWRnZXQpOwor
ICAgIEdka0N1cnNvciogbmV3Q3Vyc29yID0gY3Vyc29yLnBsYXRmb3JtQ3Vyc29yKCkuZ2V0KCk7
CisgICAgaWYgKGN1cnJlbnRDdXJzb3IgIT0gbmV3Q3Vyc29yKQorICAgICAgICBndGtfd2lkZ2V0
X3NldF9jdXJzb3IobV92aWV3V2lkZ2V0LCBuZXdDdXJzb3IpOworI2Vsc2UKICAgICBHZGtXaW5k
b3cqIHdpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3dpbmRvdyhtX3ZpZXdXaWRnZXQpOwogICAgIEdk
a0N1cnNvciogY3VycmVudEN1cnNvciA9IGdka193aW5kb3dfZ2V0X2N1cnNvcih3aW5kb3cpOwog
ICAgIEdka0N1cnNvciogbmV3Q3Vyc29yID0gY3Vyc29yLnBsYXRmb3JtQ3Vyc29yKCkuZ2V0KCk7
CiAgICAgaWYgKGN1cnJlbnRDdXJzb3IgIT0gbmV3Q3Vyc29yKQogICAgICAgICBnZGtfd2luZG93
X3NldF9jdXJzb3Iod2luZG93LCBuZXdDdXJzb3IpOworI2VuZGlmCiB9CiAKIHZvaWQgUGFnZUNs
aWVudEltcGw6OnNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sIGhpZGRlblVudGls
TW91c2VNb3ZlcykKQEAgLTIzMCwxNyArMjQxLDIyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRv
bmVXaXRoS2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYgZXZlbnQsIGJvb2wK
IHsKICAgICBpZiAod2FzRXZlbnRIYW5kbGVkKQogICAgICAgICByZXR1cm47Ci0KKyNpZiAhVVNF
KEdUSzQpCiAgICAgV2ViS2l0V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlID0gV0VCS0lU
X1dFQl9WSUVXX0JBU0UobV92aWV3V2lkZ2V0KTsKICAgICB3ZWJraXRXZWJWaWV3QmFzZUZvcndh
cmROZXh0S2V5RXZlbnQod2Via2l0V2ViVmlld0Jhc2UpOwogICAgIGd0a19tYWluX2RvX2V2ZW50
KGV2ZW50Lm5hdGl2ZUV2ZW50KCkpOworI2VuZGlmCiB9CiAKIFJlZlB0cjxXZWJQb3B1cE1lbnVQ
cm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYg
cGFnZSkKIHsKKyNpZiBVU0UoR1RLNCkKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbHNlCiAgICAg
aWYgKFdFQktJVF9JU19XRUJfVklFVyhtX3ZpZXdXaWRnZXQpKQogICAgICAgICByZXR1cm4gV2Vi
S2l0UG9wdXBNZW51OjpjcmVhdGUobV92aWV3V2lkZ2V0LCBwYWdlKTsKICAgICByZXR1cm4gV2Vi
UG9wdXBNZW51UHJveHlHdGs6OmNyZWF0ZShtX3ZpZXdXaWRnZXQsIHBhZ2UpOworI2VuZGlmCiB9
CiAKIFJlZjxXZWJDb250ZXh0TWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29udGV4
dE1lbnVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4dERhdGEmJiBj
b250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCkBAIC0yNTgsNyArMjc0LDExIEBAIFJl
ZlB0cjxXZWJDb2xvclBpY2tlcj4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZUNvbG9yUGlja2VyKFdl
YlBhZ2VQcm94eSogcGFnZSwgY29uCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiBSZWZQ
dHI8V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRl
RGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duKFdlYlBhZ2VQcm94eSYgcGFnZSkKIHsKKyNpZiBV
U0UoR1RLNCkKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbHNlCiAgICAgcmV0dXJuIFdlYkRhdGFM
aXN0U3VnZ2VzdGlvbnNEcm9wZG93bkd0azo6Y3JlYXRlKG1fdmlld1dpZGdldCwgcGFnZSk7Cisj
ZW5kaWYKIH0KICNlbmRpZgogCkBAIC0zMDcsMTIgKzMyNywxNCBAQCB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzdGFydERyYWcoUmVmPFNlbGVj
dGlvbkRhdGE+JiYgc2VsZWN0aW9uLCBEcmFnT3BlcmF0aW9uIGRyYWdPcGVyYXRpb24sIFJlZlB0
cjxTaGFyZWFibGVCaXRtYXA+JiYgZHJhZ0ltYWdlKQogeworI2lmICFVU0UoR1RLNCkKICAgICBX
ZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFV19CQVNFKG1fdmlld1dp
ZGdldCk7CiAgICAgd2Via2l0V2ViVmlld0Jhc2VEcmFnQW5kRHJvcEhhbmRsZXIod2ViVmlldyku
c3RhcnREcmFnKFdURk1vdmUoc2VsZWN0aW9uKSwgZHJhZ09wZXJhdGlvbiwgV1RGTW92ZShkcmFn
SW1hZ2UpKTsKIAogICAgIC8vIEEgZHJhZyBzdGFydGluZyBzaG91bGQgcHJldmVudCBhIGRvdWJs
ZS1jbGljayBmcm9tIGhhcHBlbmluZy4gVGhpcyBtaWdodAogICAgIC8vIGhhcHBlbiBpZiBhIGRy
YWcgaXMgZm9sbG93ZWQgdmVyeSBxdWlja2x5IGJ5IGFub3RoZXIgY2xpY2sgKGxpa2UgaW4gdGhl
IFdUUikuCiAgICAgd2Via2l0V2ViVmlld0Jhc2VSZXNldENsaWNrQ291bnRlcih3ZWJWaWV3KTsK
KyNlbmRpZgogfQogI2VuZGlmCiAKQEAgLTM4Niw2ICs0MDgsNyBAQCB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpiZWdhbkV4aXRGdWxsU2NyZWVuKGNvbnN0IEludFJlY3QmIC8qIGluaXRpYWxGcmFtZSAq
LywgY29ucwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpk
b25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQsIGJvb2wg
d2FzRXZlbnRIYW5kbGVkKQogeworI2lmICFVU0UoR1RLNCkKICAgICBjb25zdCBHZGtFdmVudCog
dG91Y2hFdmVudCA9IGV2ZW50Lm5hdGl2ZUV2ZW50KCk7CiAKICAgICBHZXN0dXJlQ29udHJvbGxl
ciYgZ2VzdHVyZUNvbnRyb2xsZXIgPSB3ZWJraXRXZWJWaWV3QmFzZUdlc3R1cmVDb250cm9sbGVy
KFdFQktJVF9XRUJfVklFV19CQVNFKG1fdmlld1dpZGdldCkpOwpAQCAtNDQxLDExICs0NjQsMTMg
QEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdl
YlRvdWNoRXZlbnQmIGV2ZW50LCBib29sIHcKICAgICBwb2ludGVyRXZlbnQtPmFueS5zZW5kX2V2
ZW50ID0gVFJVRTsKIAogICAgIGd0a193aWRnZXRfZXZlbnQobV92aWV3V2lkZ2V0LCBwb2ludGVy
RXZlbnQuZ2V0KCkpOworI2VuZGlmCiB9CiAjZW5kaWYgLy8gRU5BQkxFKFRPVUNIX0VWRU5UUykK
IAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6d2hlZWxFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUo
Y29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYgZXZlbnQpCiB7CisjaWYgIVVTRShHVEs0KQogICAg
IFZpZXdHZXN0dXJlQ29udHJvbGxlciogY29udHJvbGxlciA9IHdlYmtpdFdlYlZpZXdCYXNlVmll
d0dlc3R1cmVDb250cm9sbGVyKFdFQktJVF9XRUJfVklFV19CQVNFKG1fdmlld1dpZGdldCkpOwog
ICAgIGlmIChjb250cm9sbGVyICYmIGNvbnRyb2xsZXItPmlzU3dpcGVHZXN0dXJlRW5hYmxlZCgp
KSB7CiAgICAgICAgIGNvbnRyb2xsZXItPndoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3Jl
KCZldmVudC5uYXRpdmVFdmVudCgpLT5zY3JvbGwpOwpAQCAtNDU0LDYgKzQ3OSw3IEBAIHZvaWQg
UGFnZUNsaWVudEltcGw6OndoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5h
dGl2ZVdlYldoZWVsRXZlbnQmCiAKICAgICB3ZWJraXRXZWJWaWV3QmFzZUZvcndhcmROZXh0V2hl
ZWxFdmVudChXRUJLSVRfV0VCX1ZJRVdfQkFTRShtX3ZpZXdXaWRnZXQpKTsKICAgICBndGtfbWFp
bl9kb19ldmVudChldmVudC5uYXRpdmVFdmVudCgpKTsKKyNlbmRpZgogfQogCiB2b2lkIFBhZ2VD
bGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihj
b25zdCBTdHJpbmcmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvbkRpYWxvZy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dGhlbnRpY2F0aW9u
RGlhbG9nLmNwcAppbmRleCAxNjc0ZWUxNDFmYWYuLmFjZmQzMDMzZjA3NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvbkRpYWxv
Zy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50
aWNhdGlvbkRpYWxvZy5jcHAKQEAgLTIwLDYgKzIwLDggQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJXZWJLaXRBdXRoZW50aWNhdGlvbkRpYWxvZy5oIgogCisjaWYgIVVTRShHVEs0
KQorCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktp
dENyZWRlbnRpYWxQcml2YXRlLmgiCkBAIC0yMzUsMyArMjM3LDUgQEAgR3RrV2lkZ2V0KiB3ZWJr
aXRBdXRoZW50aWNhdGlvbkRpYWxvZ05ldyhXZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QqIHJl
cXVlc3QsIEMKICAgICB3ZWJraXRBdXRoZW50aWNhdGlvbkRpYWxvZ0luaXRpYWxpemUoYXV0aERp
YWxvZyk7CiAgICAgcmV0dXJuIEdUS19XSURHRVQoYXV0aERpYWxvZyk7CiB9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50
aWNhdGlvbkRpYWxvZy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRB
dXRoZW50aWNhdGlvbkRpYWxvZy5oCmluZGV4IDdlNjg5ZmEyNzg5Mi4uNGQwM2ViYzdjMmFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dGhlbnRp
Y2F0aW9uRGlhbG9nLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRBdXRoZW50aWNhdGlvbkRpYWxvZy5oCkBAIC0xOSw2ICsxOSw4IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaWYgIVVTRShHVEs0KQorCiAjaW5jbHVkZSAiV2ViS2l0QXV0aGVudGljYXRpb25SZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0RpYWxvZy5oIgogI2luY2x1ZGUgPGd0ay9n
dGsuaD4KQEAgLTU2LDMgKzU4LDQgQEAgR3RrV2lkZ2V0KiB3ZWJraXRBdXRoZW50aWNhdGlvbkRp
YWxvZ05ldyhXZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QqLCBDcmVkZW50aWEKIAogR19FTkRf
REVDTFMKIAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEVtb2ppQ2hvb3Nlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEVtb2ppQ2hvb3Nlci5jcHAKaW5kZXggZjMwZDhlZjc5OTA3Li4xN2U5NDMwOTg0
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RW1v
amlDaG9vc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEVtb2ppQ2hvb3Nlci5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJXZWJLaXRFbW9qaUNob29zZXIuaCIKIAotI2lmIEdUS19DSEVDS19WRVJTSU9O
KDMsIDI0LCAwKQorI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDI0LCAwKSAmJiAhVVNFKEdUSzQp
CiAKICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
CkBAIC02MzcsNCArNjM3LDQgQEAgR3RrV2lkZ2V0KiB3ZWJraXRFbW9qaUNob29zZXJOZXcoKQog
ICAgIHJldHVybiBHVEtfV0lER0VUKGF1dGhEaWFsb2cpOwogfQogCi0jZW5kaWYgLy8gR1RLX0NI
RUNLX1ZFUlNJT04oMywgMjQsIDApCisjZW5kaWYgLy8gR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQs
IDApICYmICFVU0UoR1RLNCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0RW1vamlDaG9vc2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEVtb2ppQ2hvb3Nlci5oCmluZGV4IDJiM2QwZTUwZmQxNS4uZTVlNDA3MGViMmZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVtb2pp
Q2hvb3Nlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RW1v
amlDaG9vc2VyLmgKQEAgLTIxLDcgKzIxLDcgQEAKIAogI2luY2x1ZGUgPGd0ay9ndGsuaD4KIAot
I2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDI0LCAwKQorI2lmIEdUS19DSEVDS19WRVJTSU9OKDMs
IDI0LCAwKSAmJiAhVVNFKEdUSzQpCiAKIEdfQkVHSU5fREVDTFMKIApAQCAtNTEsNCArNTEsNCBA
QCBHdGtXaWRnZXQqIHdlYmtpdEVtb2ppQ2hvb3Nlck5ldygpOwogCiBHX0VORF9ERUNMUwogCi0j
ZW5kaWYgLy8gR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQsIDApCisjZW5kaWYgLy8gR1RLX0NIRUNL
X1ZFUlNJT04oMywgMjQsIDApICYmICFVU0UoR1RLNCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0R3RrLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0R3Rr
LmNwcAppbmRleCBlMjc1NjUwMjE4ODcuLjhlNWU1ZjllYjIyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHRHdGsuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5wdXRNZXRob2RD
b250ZXh0R3RrLmNwcApAQCAtNjAsNyArNjAsMTEgQEAgdm9pZCB3ZWJraXRfaW5wdXRfbWV0aG9k
X3VuZGVybGluZV9zZXRfY29sb3IoV2ViS2l0SW5wdXRNZXRob2RVbmRlcmxpbmUqIHVuZGVybGkK
ICAqCiAgKiBTaW5jZTogMi4yOAogICovCisjaWYgVVNFKEdUSzQpCitnYm9vbGVhbiB3ZWJraXRf
aW5wdXRfbWV0aG9kX2NvbnRleHRfZmlsdGVyX2tleV9ldmVudChXZWJLaXRJbnB1dE1ldGhvZENv
bnRleHQqIGNvbnRleHQsIEdka0V2ZW50KiBrZXlFdmVudCkKKyNlbHNlCiBnYm9vbGVhbiB3ZWJr
aXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfZmlsdGVyX2tleV9ldmVudChXZWJLaXRJbnB1dE1ldGhv
ZENvbnRleHQqIGNvbnRleHQsIEdka0V2ZW50S2V5KiBrZXlFdmVudCkKKyNlbmRpZgogewogICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19JTlBVVF9NRVRIT0RfQ09OVEVYVChjb250
ZXh0KSwgRkFMU0UpOwogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGtleUV2ZW50LCBGQUxTRSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdElucHV0
TWV0aG9kQ29udGV4dEltcGxHdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHRJbXBsR3RrLmNwcAppbmRleCAyZTcwOTc2Mzc4ODEu
LjExYjBkZTRiOTU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHRJbXBsR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdElucHV0TWV0aG9kQ29udGV4dEltcGxHdGsuY3BwCkBA
IC0xNjgsNyArMTY4LDExIEBAIHN0YXRpYyB2b2lkIHdlYmtpdElucHV0TWV0aG9kQ29udGV4dElt
cGxHdGtHZXRQcmVlZGl0KFdlYktpdElucHV0TWV0aG9kQ29udGV4dCoKICAgICAgICAgKmN1cnNv
ck9mZnNldCA9IGNsYW1wVG88dW5zaWduZWQ+KG9mZnNldCk7CiB9CiAKKyNpZiBVU0UoR1RLNCkK
K3N0YXRpYyBnYm9vbGVhbiB3ZWJraXRJbnB1dE1ldGhvZENvbnRleHRJbXBsR3RrRmlsdGVyS2V5
RXZlbnQoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0KiBjb250ZXh0LCBHZGtFdmVudCoga2V5RXZl
bnQpCisjZWxzZQogc3RhdGljIGdib29sZWFuIHdlYmtpdElucHV0TWV0aG9kQ29udGV4dEltcGxH
dGtGaWx0ZXJLZXlFdmVudChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQqIGNvbnRleHQsIEdka0V2
ZW50S2V5KiBrZXlFdmVudCkKKyNlbmRpZgogewogICAgIGF1dG8qIHByaXYgPSBXRUJLSVRfSU5Q
VVRfTUVUSE9EX0NPTlRFWFRfSU1QTF9HVEsoY29udGV4dCktPnByaXY7CiAgICAgcmV0dXJuIGd0
a19pbV9jb250ZXh0X2ZpbHRlcl9rZXlwcmVzcyhwcml2LT5jb250ZXh0LmdldCgpLCBrZXlFdmVu
dCk7CkBAIC0yMjksNSArMjMzLDcgQEAgV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0KiB3ZWJraXRJ
bnB1dE1ldGhvZENvbnRleHRJbXBsR3RrTmV3KCkKIAogdm9pZCB3ZWJraXRJbnB1dE1ldGhvZENv
bnRleHRJbXBsR3RrU2V0Q2xpZW50V2luZG93KFdlYktpdElucHV0TWV0aG9kQ29udGV4dEltcGxH
dGsqIGNvbnRleHQsIEdka1dpbmRvdyogd2luZG93KQogeworI2lmICFVU0UoR1RLNCkKICAgICBn
dGtfaW1fY29udGV4dF9zZXRfY2xpZW50X3dpbmRvdyhjb250ZXh0LT5wcml2LT5jb250ZXh0Lmdl
dCgpLCB3aW5kb3cpOworI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFBvcHVwTWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFBvcHVwTWVudS5jcHAKaW5kZXggOGIxMWVhYzZkZDhhLi5hNGZiNTky
ZDU2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
UG9wdXBNZW51LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFBvcHVwTWVudS5jcHAKQEAgLTI4LDE3ICsyOCwyNCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBXZWJLaXRQb3B1cE1lbnU6OldlYktpdFBvcHVwTWVu
dShHdGtXaWRnZXQqIHdlYlZpZXcsIFdlYlBvcHVwTWVudVByb3h5OjpDbGllbnQmIGNsaWVudCkK
KyNpZiBVU0UoR1RLNCkKKyAgICA6IFdlYlBvcHVwTWVudVByb3h5KGNsaWVudCkKKyNlbHNlCiAg
ICAgOiBXZWJQb3B1cE1lbnVQcm94eUd0ayh3ZWJWaWV3LCBjbGllbnQpCisjZW5kaWYKIHsKIH0K
IAorI2lmICFVU0UoR1RLNCkKIHN0YXRpYyB2b2lkIG1lbnVDbG9zZUNhbGxiYWNrKFdlYktpdFBv
cHVwTWVudSogcG9wdXBNZW51KQogewogICAgIHBvcHVwTWVudS0+YWN0aXZhdGVJdGVtKFdURjo6
bnVsbG9wdCk7CiB9CisjZW5kaWYKIAogdm9pZCBXZWJLaXRQb3B1cE1lbnU6OnNob3dQb3B1cE1l
bnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24sIGRvdWJsZSBw
YWdlU2NhbGVGYWN0b3IsIGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgY29uc3Qg
UGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiBwbGF0Zm9ybURhdGEsIGludDMyX3Qgc2VsZWN0ZWRJbmRl
eCkKIHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgR1JlZlB0cjxXZWJLaXRPcHRpb25NZW51PiBtZW51
ID0gYWRvcHRHUmVmKHdlYmtpdE9wdGlvbk1lbnVDcmVhdGUoKnRoaXMsIGl0ZW1zLCBzZWxlY3Rl
ZEluZGV4KSk7CiAgICAgY29uc3QgR2RrRXZlbnQqIGV2ZW50ID0gbV9jbGllbnQtPmN1cnJlbnRs
eVByb2Nlc3NlZE1vdXNlRG93bkV2ZW50KCkgPyBtX2NsaWVudC0+Y3VycmVudGx5UHJvY2Vzc2Vk
TW91c2VEb3duRXZlbnQoKS0+bmF0aXZlRXZlbnQoKSA6IG51bGxwdHI7CiAgICAgaWYgKHdlYmtp
dFdlYlZpZXdTaG93T3B0aW9uTWVudShXRUJLSVRfV0VCX1ZJRVcobV93ZWJWaWV3KSwgcmVjdCwg
bWVudS5nZXQoKSwgZXZlbnQpKSB7CkBAIC00NiwyOCArNTMsMzQgQEAgdm9pZCBXZWJLaXRQb3B1
cE1lbnU6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiBk
aXJlY3Rpb24KICAgICAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fbWVudS5nZXQoKSwg
ImNsb3NlIiwgR19DQUxMQkFDSyhtZW51Q2xvc2VDYWxsYmFjayksIHRoaXMpOwogICAgIH0gZWxz
ZQogICAgICAgICBXZWJQb3B1cE1lbnVQcm94eUd0azo6c2hvd1BvcHVwTWVudShyZWN0LCBkaXJl
Y3Rpb24sIHBhZ2VTY2FsZUZhY3RvciwgaXRlbXMsIHBsYXRmb3JtRGF0YSwgc2VsZWN0ZWRJbmRl
eCk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJLaXRQb3B1cE1lbnU6OmhpZGVQb3B1cE1lbnUoKQog
eworI2lmICFVU0UoR1RLNCkKICAgICBpZiAoIW1fbWVudSkgewogICAgICAgICBXZWJQb3B1cE1l
bnVQcm94eUd0azo6aGlkZVBvcHVwTWVudSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfbWF0Y2hlZChtX21lbnUuZ2V0KCksIEdfU0lH
TkFMX01BVENIX0RBVEEsIDAsIDAsIG51bGxwdHIsIG51bGxwdHIsIHRoaXMpOwogICAgIHdlYmtp
dF9vcHRpb25fbWVudV9jbG9zZShtX21lbnUuZ2V0KCkpOworI2VuZGlmCiB9CiAKIHZvaWQgV2Vi
S2l0UG9wdXBNZW51OjpjYW5jZWxUcmFja2luZygpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIGlm
ICghbV9tZW51KSB7CiAgICAgICAgIFdlYlBvcHVwTWVudVByb3h5R3RrOjpjYW5jZWxUcmFja2lu
ZygpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGhpZGVQb3B1cE1lbnUoKTsKICAgICBt
X21lbnUgPSBudWxscHRyOworI2VuZGlmCiB9CiAKKyNpZiAhVVNFKEdUSzQpCiB2b2lkIFdlYktp
dFBvcHVwTWVudTo6YWN0aXZhdGVJdGVtKE9wdGlvbmFsPHVuc2lnbmVkPiBpdGVtSW5kZXgpCiB7
CiAgICAgV2ViUG9wdXBNZW51UHJveHlHdGs6OmFjdGl2YXRlSXRlbShpdGVtSW5kZXgpOwpAQCAt
NzYsNSArODksNiBAQCB2b2lkIFdlYktpdFBvcHVwTWVudTo6YWN0aXZhdGVJdGVtKE9wdGlvbmFs
PHVuc2lnbmVkPiBpdGVtSW5kZXgpCiAgICAgICAgIG1fbWVudSA9IG51bGxwdHI7CiAgICAgfQog
fQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb3B1cE1lbnUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9wdXBNZW51LmgKaW5kZXggODRiYTY4ODU3YzMyLi5i
MzUyNGE3MmU4MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0UG9wdXBNZW51LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRQb3B1cE1lbnUuaApAQCAtMjYsNyArMjYsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktp
dE9wdGlvbk1lbnUgV2ViS2l0T3B0aW9uTWVudTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKKyNp
ZiBVU0UoR1RLNCkKK2NsYXNzIFdlYktpdFBvcHVwTWVudSBmaW5hbCA6IHB1YmxpYyBXZWJQb3B1
cE1lbnVQcm94eSB7CisjZWxzZQogY2xhc3MgV2ViS2l0UG9wdXBNZW51IGZpbmFsIDogcHVibGlj
IFdlYlBvcHVwTWVudVByb3h5R3RrIHsKKyNlbmRpZgogcHVibGljOgogICAgIHN0YXRpYyBSZWY8
V2ViS2l0UG9wdXBNZW51PiBjcmVhdGUoR3RrV2lkZ2V0KiB3ZWJWaWV3LCBXZWJQb3B1cE1lbnVQ
cm94eTo6Q2xpZW50JiBjbGllbnQpCiAgICAgewpAQCAtMzQsNyArMzgsMTIgQEAgcHVibGljOgog
ICAgIH0KICAgICB+V2ViS2l0UG9wdXBNZW51KCkgPSBkZWZhdWx0OwogCisjaWYgVVNFKEdUSzQp
CisgICAgdm9pZCBzZWxlY3RJdGVtKHVuc2lnbmVkKSB7IH07CisgICAgdm9pZCBhY3RpdmF0ZUl0
ZW0oT3B0aW9uYWw8dW5zaWduZWQ+KSB7IH07CisjZWxzZQogICAgIHZvaWQgYWN0aXZhdGVJdGVt
KE9wdGlvbmFsPHVuc2lnbmVkPiBpdGVtSW5kZXgpIG92ZXJyaWRlOworI2VuZGlmCiAKIHByaXZh
dGU6CiAgICAgV2ViS2l0UG9wdXBNZW51KEd0a1dpZGdldCosIFdlYlBvcHVwTWVudVByb3h5OjpD
bGllbnQmKTsKQEAgLTQzLDcgKzUyLDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBoaWRlUG9wdXBN
ZW51KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjYW5jZWxUcmFja2luZygpIG92ZXJyaWRlOwogCisj
aWYgIVVTRShHVEs0KQogICAgIEdSZWZQdHI8V2ViS2l0T3B0aW9uTWVudT4gbV9tZW51OworI2Vu
ZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9uLmNwcAppbmRleCA0
MDgzNGE4ZTBiMTMuLjY3ZWNjYWRjNTYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlvbi5jcHAKQEAgLTI2LDYgKzI2
LDcgQEAKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYlBh
Z2VQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3RrVXRpbGl0aWVzLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9HdGtWZXJzaW9uaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRl
ZC5oPgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1Jl
ZlB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRTY3JpcHREaWFsb2dHdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRTY3JpcHREaWFsb2dHdGsuY3BwCmluZGV4IDBmMmNjMjcwZDJhNC4uOTMwM2U0MTc1ZDIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNjcmlw
dERpYWxvZ0d0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRTY3JpcHREaWFsb2dHdGsuY3BwCkBAIC0yNSwyMiArMjUsMjggQEAKIAogdm9pZCB3ZWJraXRT
Y3JpcHREaWFsb2dBY2NlcHQoV2ViS2l0U2NyaXB0RGlhbG9nKiBzY3JpcHREaWFsb2cpCiB7Cisj
aWYgIVVTRShHVEs0KQogICAgIGlmICghV0VCS0lUX0lTX1NDUklQVF9ESUFMT0dfSU1QTChzY3Jp
cHREaWFsb2ctPm5hdGl2ZURpYWxvZykpCiAgICAgICAgIHJldHVybjsKICAgICB3ZWJraXRTY3Jp
cHREaWFsb2dJbXBsQ29uZmlybShXRUJLSVRfU0NSSVBUX0RJQUxPR19JTVBMKHNjcmlwdERpYWxv
Zy0+bmF0aXZlRGlhbG9nKSk7CisjZW5kaWYKIH0KIAogdm9pZCB3ZWJraXRTY3JpcHREaWFsb2dE
aXNtaXNzKFdlYktpdFNjcmlwdERpYWxvZyogc2NyaXB0RGlhbG9nKQogeworI2lmICFVU0UoR1RL
NCkKICAgICBpZiAoIVdFQktJVF9JU19TQ1JJUFRfRElBTE9HX0lNUEwoc2NyaXB0RGlhbG9nLT5u
YXRpdmVEaWFsb2cpKQogICAgICAgICByZXR1cm47CiAgICAgd2Via2l0U2NyaXB0RGlhbG9nSW1w
bENhbmNlbChXRUJLSVRfU0NSSVBUX0RJQUxPR19JTVBMKHNjcmlwdERpYWxvZy0+bmF0aXZlRGlh
bG9nKSk7CisjZW5kaWYKIH0KIAogdm9pZCB3ZWJraXRTY3JpcHREaWFsb2dTZXRVc2VySW5wdXQo
V2ViS2l0U2NyaXB0RGlhbG9nKiBzY3JpcHREaWFsb2csIGNvbnN0IFN0cmluZyYgdXNlcklucHV0
KQogeworI2lmICFVU0UoR1RLNCkKICAgICBpZiAoIVdFQktJVF9JU19TQ1JJUFRfRElBTE9HX0lN
UEwoc2NyaXB0RGlhbG9nLT5uYXRpdmVEaWFsb2cpKQogICAgICAgICByZXR1cm47CiAKICAgICB3
ZWJraXRTY3JpcHREaWFsb2dJbXBsU2V0RW50cnlUZXh0KFdFQktJVF9TQ1JJUFRfRElBTE9HX0lN
UEwoc2NyaXB0RGlhbG9nLT5uYXRpdmVEaWFsb2cpLCB1c2VySW5wdXQpOworI2VuZGlmCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNjcmlwdERp
YWxvZ0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTY3Jp
cHREaWFsb2dJbXBsLmNwcAppbmRleCBkNTA0YTExMzY0MDUuLmI2NzU0ODZjYzgzMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTY3JpcHREaWFsb2dJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNjcmlw
dERpYWxvZ0ltcGwuY3BwCkBAIC0yMCw2ICsyMCw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiV2ViS2l0U2NyaXB0RGlhbG9nSW1wbC5oIgogCisjaWYgIVVTRShHVEs0KQorCiAj
aW5jbHVkZSAiV2ViS2l0U2NyaXB0RGlhbG9nUHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIvZ2kx
OG4tbGliLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvV1RGR1R5cGUuaD4KQEAgLTI3MiwzICsyNzQs
NSBAQCB2b2lkIHdlYmtpdFNjcmlwdERpYWxvZ0ltcGxTZXRFbnRyeVRleHQoV2ViS2l0U2NyaXB0
RGlhbG9nSW1wbCogZGlhbG9nLCBjb25zdCBTdAogCiAgICAgZ3RrX2VudHJ5X3NldF90ZXh0KEdU
S19FTlRSWShkaWFsb2ctPnByaXYtPmVudHJ5KSwgdGV4dC51dGY4KCkuZGF0YSgpKTsKIH0KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFNjcmlwdERpYWxvZ0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0U2NyaXB0RGlhbG9nSW1wbC5oCmluZGV4IDdmODYzYzQ1MDBmZi4uN2MxMmYwMTZlYjQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNjcmlwdERp
YWxvZ0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNj
cmlwdERpYWxvZ0ltcGwuaApAQCAtMTksNiArMTksOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lm
ICFVU0UoR1RLNCkKKwogI2luY2x1ZGUgIldlYktpdFNjcmlwdERpYWxvZy5oIgogI2luY2x1ZGUg
IldlYktpdFdlYlZpZXdEaWFsb2cuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
QEAgLTUzLDMgKzU1LDUgQEAgdm9pZCB3ZWJraXRTY3JpcHREaWFsb2dJbXBsQ29uZmlybShXZWJL
aXRTY3JpcHREaWFsb2dJbXBsKik7CiB2b2lkIHdlYmtpdFNjcmlwdERpYWxvZ0ltcGxTZXRFbnRy
eVRleHQoV2ViS2l0U2NyaXB0RGlhbG9nSW1wbCosIGNvbnN0IFN0cmluZyYpOwogCiBHX0VORF9E
RUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKaW5kZXggYmUzODdkMWI0NzMyLi5hYmUwMTQ0NmY4N2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
d0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlld0Jhc2UuY3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DYWlyb1V0
aWxpdGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR1VuaXF1ZVB0ckd0ay5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvR3RrVXRpbGl0aWVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HdGtWZXJzaW9uaW5n
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFzdGVib2FyZEhlbHBlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1EaXNwbGF5
Lmg+CkBAIC03NywxMCArNzgsNiBAQAogI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHkuaCIKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oWDExKQotI2luY2x1ZGUgPGdkay9nZGt4Lmg+
Ci0jZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCkBAIC05Niw2ICs5Myw3IEBAIHB1YmxpYzoKIAogICAgIGludCBjdXJyZW50Q2xpY2tD
b3VudEZvckdka0J1dHRvbkV2ZW50KEdka0V2ZW50KiBldmVudCkKICAgICB7CisjaWYgIVVTRShH
VEs0KQogICAgICAgICBpbnQgZG91YmxlQ2xpY2tEaXN0YW5jZSA9IDI1MDsKICAgICAgICAgaW50
IGRvdWJsZUNsaWNrVGltZSA9IDU7CiAgICAgICAgIGdfb2JqZWN0X2dldChndGtfc2V0dGluZ3Nf
Z2V0X2Zvcl9zY3JlZW4oZ2RrX2V2ZW50X2dldF9zY3JlZW4oZXZlbnQpKSwKQEAgLTEzMiw2ICsx
MzAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHByZXZpb3VzQ2xpY2tQb2ludCA9IEludFBvaW50KHgs
IHkpOwogICAgICAgICBwcmV2aW91c0NsaWNrQnV0dG9uID0gYnV0dG9uOwogICAgICAgICBwcmV2
aW91c0NsaWNrVGltZSA9IGV2ZW50VGltZTsKKyNlbmRpZgogCiAgICAgICAgIHJldHVybiBjdXJy
ZW50Q2xpY2tDb3VudDsKICAgICB9CkBAIC0xNDksMTEgKzE0OCwxMSBAQCB0eXBlZGVmIEhhc2hN
YXA8dWludDMyX3QsIEdVbmlxdWVQdHI8R2RrRXZlbnQ+PiBUb3VjaEV2ZW50c01hcDsKIHN0cnVj
dCBfV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlIHsKICAgICBfV2ViS2l0V2ViVmlld0Jhc2VQcml2
YXRlKCkKICAgICAgICAgOiB1cGRhdGVBY3Rpdml0eVN0YXRlVGltZXIoUnVuTG9vcDo6bWFpbigp
LCB0aGlzLCAmX1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZTo6dXBkYXRlQWN0aXZpdHlTdGF0ZVRp
bWVyRmlyZWQpCi0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQsIDApCisjaWYgR1RLX0NIRUNL
X1ZFUlNJT04oMywgMjQsIDApICYmICFVU0UoR1RLNCkKICAgICAgICAgLCByZWxlYXNlRW1vamlD
aG9vc2VyVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmX1dlYktpdFdlYlZpZXdCYXNlUHJp
dmF0ZTo6cmVsZWFzZUVtb2ppQ2hvb3NlclRpbWVyRmlyZWQpCiAjZW5kaWYKICAgICB7Ci0jaWYg
R1RLX0NIRUNLX1ZFUlNJT04oMywgMjQsIDApCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQs
IDApICYmICFVU0UoR1RLNCkKICAgICAgICAgcmVsZWFzZUVtb2ppQ2hvb3NlclRpbWVyLnNldFBy
aW9yaXR5KFJ1bkxvb3BTb3VyY2VQcmlvcml0eTo6UmVsZWFzZVVudXNlZFJlc291cmNlc1RpbWVy
KTsKICNlbmRpZgogICAgIH0KQEAgLTE2Niw3ICsxNjUsNyBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZp
ZXdCYXNlUHJpdmF0ZSB7CiAgICAgICAgIGFjdGl2aXR5U3RhdGVGbGFnc1RvVXBkYXRlID0geyB9
OwogICAgIH0KIAotI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDI0LCAwKQorI2lmIEdUS19DSEVD
S19WRVJTSU9OKDMsIDI0LCAwKSAmJiAhVVNFKEdUSzQpCiAgICAgdm9pZCByZWxlYXNlRW1vamlD
aG9vc2VyVGltZXJGaXJlZCgpCiAgICAgewogICAgICAgICBpZiAoZW1vamlDaG9vc2VyKSB7CkBA
IC0xOTAsNyArMTg5LDkgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUgewogICAg
IEF0dGFjaG1lbnRTaWRlIGluc3BlY3RvckF0dGFjaG1lbnRTaWRlIHsgQXR0YWNobWVudFNpZGU6
OkJvdHRvbSB9OwogICAgIHVuc2lnbmVkIGluc3BlY3RvclZpZXdTaXplIHsgMCB9OwogICAgIEdV
bmlxdWVQdHI8R2RrRXZlbnQ+IGNvbnRleHRNZW51RXZlbnQ7CisjaWYgIVVTRShHVEs0KQogICAg
IFdlYkNvbnRleHRNZW51UHJveHlHdGsqIGFjdGl2ZUNvbnRleHRNZW51UHJveHkgeyBudWxscHRy
IH07CisjZW5kaWYKICAgICBJbnB1dE1ldGhvZEZpbHRlciBpbnB1dE1ldGhvZEZpbHRlcjsKICAg
ICBLZXlCaW5kaW5nVHJhbnNsYXRvciBrZXlCaW5kaW5nVHJhbnNsYXRvcjsKICAgICBUb3VjaEV2
ZW50c01hcCB0b3VjaEV2ZW50czsKQEAgLTIxNywxNSArMjE4LDE3IEBAIHN0cnVjdCBfV2ViS2l0
V2ViVmlld0Jhc2VQcml2YXRlIHsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxBY2NlbGVyYXRlZEJh
Y2tpbmdTdG9yZT4gYWNjZWxlcmF0ZWRCYWNraW5nU3RvcmU7CiAKLSNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpICYmICFVU0UoR1RLNCkKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8RHJhZ0FuZERyb3BIYW5kbGVyPiBkcmFnQW5kRHJvcEhhbmRsZXI7CiAjZW5k
aWYKIAorI2lmICFVU0UoR1RLNCkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8R2VzdHVyZUNvbnRyb2xs
ZXI+IGdlc3R1cmVDb250cm9sbGVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWV3R2VzdHVyZUNv
bnRyb2xsZXI+IHZpZXdHZXN0dXJlQ29udHJvbGxlcjsKICAgICBib29sIGlzQmFja0ZvcndhcmRO
YXZpZ2F0aW9uR2VzdHVyZUVuYWJsZWQgeyBmYWxzZSB9OworI2VuZGlmCiAKLSNpZiBHVEtfQ0hF
Q0tfVkVSU0lPTigzLCAyNCwgMCkKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAyNCwgMCkgJiYg
IVVTRShHVEs0KQogICAgIEd0a1dpZGdldCogZW1vamlDaG9vc2VyOwogICAgIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU3RyaW5nKT4gZW1vamlDaG9vc2VyQ29tcGxldGlvbkhhbmRsZXI7CiAgICAg
UnVuTG9vcDo6VGltZXI8V2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlPiByZWxlYXNlRW1vamlDaG9v
c2VyVGltZXI7CkBAIC0yNzQsNiArMjc3LDcgQEAgc3RhdGljIGdib29sZWFuIHRvcGxldmVsV2lu
ZG93Rm9jdXNPdXRFdmVudChHdGtXaWRnZXQqLCBHZGtFdmVudEZvY3VzKiwgV2ViS2l0V2UKICAg
ICByZXR1cm4gRkFMU0U7CiB9CiAKKyNpZiAhVVNFKEdUSzQpCiBzdGF0aWMgZ2Jvb2xlYW4gdG9w
bGV2ZWxXaW5kb3dTdGF0ZUV2ZW50KEd0a1dpZGdldCosIEdka0V2ZW50V2luZG93U3RhdGUqIGV2
ZW50LCBXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UpCiB7CiAgICAgV2ViS2l0V2ViVmll
d0Jhc2VQcml2YXRlKiBwcml2ID0gd2ViVmlld0Jhc2UtPnByaXY7CkBAIC0yOTIsNiArMjk2LDcg
QEAgc3RhdGljIGdib29sZWFuIHRvcGxldmVsV2luZG93U3RhdGVFdmVudChHdGtXaWRnZXQqLCBH
ZGtFdmVudFdpbmRvd1N0YXRlKiBldmVudCwKIAogICAgIHJldHVybiBGQUxTRTsKIH0KKyNlbmRp
ZgogCiBzdGF0aWMgdm9pZCB0aGVtZUNoYW5nZWQoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdC
YXNlKQogewpAQCAtMzcyLDggKzM3NywxMCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFz
ZVNldFRvcGxldmVsT25TY3JlZW5XaW5kb3coV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZQogICAg
IHByaXYtPnRvcGxldmVsRm9jdXNPdXRFdmVudElEID0KICAgICAgICAgZ19zaWduYWxfY29ubmVj
dChwcml2LT50b3BsZXZlbE9uU2NyZWVuV2luZG93LCAiZm9jdXMtb3V0LWV2ZW50IiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLKHRvcGxldmVsV2luZG93Rm9jdXNPdXRFdmVu
dCksIHdlYlZpZXdCYXNlKTsKKyNpZiAhVVNFKEdUSzQpCiAgICAgcHJpdi0+dG9wbGV2ZWxXaW5k
b3dTdGF0ZUV2ZW50SUQgPQogICAgICAgICBnX3NpZ25hbF9jb25uZWN0KHByaXYtPnRvcGxldmVs
T25TY3JlZW5XaW5kb3csICJ3aW5kb3ctc3RhdGUtZXZlbnQiLCBHX0NBTExCQUNLKHRvcGxldmVs
V2luZG93U3RhdGVFdmVudCksIHdlYlZpZXdCYXNlKTsKKyNlbmRpZgogCiAgICAgYXV0byogc2V0
dGluZ3MgPSBndGtfd2lkZ2V0X2dldF9zZXR0aW5ncyhHVEtfV0lER0VUKHByaXYtPnRvcGxldmVs
T25TY3JlZW5XaW5kb3cpKTsKICAgICBwcml2LT50aGVtZUNoYW5nZWRJRCA9CkBAIC0zOTIsNiAr
Mzk5LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VSZWFsaXplKEd0a1dpZGdldCog
d2lkZ2V0KQogICAgIFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVX
X0JBU0Uod2lkZ2V0KTsKICAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJW
aWV3LT5wcml2OwogCisjaWYgIVVTRShHVEs0KQogICAgIGd0a193aWRnZXRfc2V0X3JlYWxpemVk
KHdpZGdldCwgVFJVRSk7CiAKICAgICBHdGtBbGxvY2F0aW9uIGFsbG9jYXRpb247CkBAIC00MzIs
OSArNDQwLDEyIEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlUmVhbGl6ZShHdGtXaWRn
ZXQqIHdpZGdldCkKICAgICBhdXRvKiBpbUNvbnRleHQgPSBwcml2LT5pbnB1dE1ldGhvZEZpbHRl
ci5jb250ZXh0KCk7CiAgICAgaWYgKFdFQktJVF9JU19JTlBVVF9NRVRIT0RfQ09OVEVYVF9JTVBM
X0dUSyhpbUNvbnRleHQpKQogICAgICAgICB3ZWJraXRJbnB1dE1ldGhvZENvbnRleHRJbXBsR3Rr
U2V0Q2xpZW50V2luZG93KFdFQktJVF9JTlBVVF9NRVRIT0RfQ09OVEVYVF9JTVBMX0dUSyhpbUNv
bnRleHQpLCB3aW5kb3cpOworI2VuZGlmCiAKICAgICBpZiAocHJpdi0+YWNjZWxlcmF0ZWRCYWNr
aW5nU3RvcmUpCiAgICAgICAgIHByaXYtPmFjY2VsZXJhdGVkQmFja2luZ1N0b3JlLT5yZWFsaXpl
KCk7CisKKyAgICBHVEtfV0lER0VUX0NMQVNTKHdlYmtpdF93ZWJfdmlld19iYXNlX3BhcmVudF9j
bGFzcyktPnJlYWxpemUod2lkZ2V0KTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jh
c2VVbnJlYWxpemUoR3RrV2lkZ2V0KiB3aWRnZXQpCkBAIC01MjQsOCArNTM1LDE1IEBAIHN0YXRp
YyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ29udGFpbmVyUmVtb3ZlKEd0a0NvbnRhaW5lciogY29u
dGFpbmVyLCBHdGtXaWRnZXQqCiAgICAgICAgIGd0a193aWRnZXRfcXVldWVfcmVzaXplKHdpZGdl
dENvbnRhaW5lcik7CiB9CiAKKyNpZiBVU0UoR1RLNCkKK3N0YXRpYyB2b2lkIHdlYmtpdFdlYlZp
ZXdCYXNlQ29udGFpbmVyRm9yYWxsKEd0a0NvbnRhaW5lciogY29udGFpbmVyLCBHdGtDYWxsYmFj
ayBjYWxsYmFjaywgZ3BvaW50ZXIgY2FsbGJhY2tEYXRhKQorI2Vsc2UKIHN0YXRpYyB2b2lkIHdl
YmtpdFdlYlZpZXdCYXNlQ29udGFpbmVyRm9yYWxsKEd0a0NvbnRhaW5lciogY29udGFpbmVyLCBn
Ym9vbGVhbiBpbmNsdWRlSW50ZXJuYWxzLCBHdGtDYWxsYmFjayBjYWxsYmFjaywgZ3BvaW50ZXIg
Y2FsbGJhY2tEYXRhKQorI2VuZGlmCiB7CisjaWYgVVNFKEdUSzQpCisgICAgYm9vbCBpbmNsdWRl
SW50ZXJuYWxzID0gdHJ1ZTsKKyNlbmRpZgogICAgIFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3
ID0gV0VCS0lUX1dFQl9WSUVXX0JBU0UoY29udGFpbmVyKTsKICAgICBXZWJLaXRXZWJWaWV3QmFz
ZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3LT5wcml2OwogCkBAIC01NTEsNyArNTY5LDcgQEAgdm9p
ZCB3ZWJraXRXZWJWaWV3QmFzZUNoaWxkTW92ZVJlc2l6ZShXZWJLaXRXZWJWaWV3QmFzZSogd2Vi
VmlldywgR3RrV2lkZ2V0KiBjaGkKICAgICBndGtfd2lkZ2V0X3F1ZXVlX3Jlc2l6ZV9ub19yZWRy
YXcoR1RLX1dJREdFVCh3ZWJWaWV3KSk7CiB9CiAKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAy
NCwgMCkKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAyNCwgMCkgJiYgIVVTRShHVEs0KQogc3Rh
dGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VDb21wbGV0ZUVtb2ppQ2hvb3NlclJlcXVlc3QoV2Vi
S2l0V2ViVmlld0Jhc2UqIHdlYlZpZXcsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBpZiAo
YXV0byBjb21wbGV0aW9uSGFuZGxlciA9IHN0ZDo6ZXhjaGFuZ2Uod2ViVmlldy0+cHJpdi0+ZW1v
amlDaG9vc2VyQ29tcGxldGlvbkhhbmRsZXIsIG51bGxwdHIpKQpAQCAtNTY1LDcgKzU4Myw3IEBA
IHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlzcG9zZShHT2JqZWN0KiBnb2JqZWN0KQog
ICAgIHdlYmtpdFdlYlZpZXdCYXNlU2V0VG9wbGV2ZWxPblNjcmVlbldpbmRvdyh3ZWJWaWV3LCBu
dWxscHRyKTsKICAgICBpZiAod2ViVmlldy0+cHJpdi0+YWNjZXNzaWJsZSkKICAgICAgICAgd2Vi
a2l0V2ViVmlld0FjY2Vzc2libGVTZXRXZWJWaWV3KFdFQktJVF9XRUJfVklFV19BQ0NFU1NJQkxF
KHdlYlZpZXctPnByaXYtPmFjY2Vzc2libGUuZ2V0KCkpLCBudWxscHRyKTsKLSNpZiBHVEtfQ0hF
Q0tfVkVSU0lPTigzLCAyNCwgMCkKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAyNCwgMCkgJiYg
IVVTRShHVEs0KQogICAgIHdlYmtpdFdlYlZpZXdCYXNlQ29tcGxldGVFbW9qaUNob29zZXJSZXF1
ZXN0KHdlYlZpZXcsIGVtcHR5U3RyaW5nKCkpOwogI2VuZGlmCiAgICAgaWYgKHdlYlZpZXctPnBy
aXYtPnBvaW50ZXJMb2NrTWFuYWdlcikgewpAQCAtNTg1LDE1ICs2MDMsMTggQEAgc3RhdGljIHZv
aWQgd2Via2l0V2ViVmlld0Jhc2VDb25zdHJ1Y3RlZChHT2JqZWN0KiBvYmplY3QpCiAKICAgICBH
dGtXaWRnZXQqIHZpZXdXaWRnZXQgPSBHVEtfV0lER0VUKG9iamVjdCk7CiAgICAgZ3RrX3dpZGdl
dF9zZXRfY2FuX2ZvY3VzKHZpZXdXaWRnZXQsIFRSVUUpOworI2lmICFVU0UoR1RLNCkKICAgICBn
dGtfZHJhZ19kZXN0X3NldCh2aWV3V2lkZ2V0LCBzdGF0aWNfY2FzdDxHdGtEZXN0RGVmYXVsdHM+
KDApLCBudWxscHRyLCAwLAogICAgICAgICBzdGF0aWNfY2FzdDxHZGtEcmFnQWN0aW9uPihHREtf
QUNUSU9OX0NPUFkgfCBHREtfQUNUSU9OX01PVkUgfCBHREtfQUNUSU9OX0xJTksgfCBHREtfQUNU
SU9OX1BSSVZBVEUpKTsKICAgICBndGtfZHJhZ19kZXN0X3NldF90YXJnZXRfbGlzdCh2aWV3V2lk
Z2V0LCBQYXN0ZWJvYXJkSGVscGVyOjpzaW5nbGV0b24oKS50YXJnZXRMaXN0KCkpOworI2VuZGlm
CiAKICAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSBXRUJLSVRfV0VCX1ZJRVdf
QkFTRShvYmplY3QpLT5wcml2OwogICAgIHByaXYtPnBhZ2VDbGllbnQgPSBtYWtlVW5pcXVlPFBh
Z2VDbGllbnRJbXBsPih2aWV3V2lkZ2V0KTsKICAgICBwcml2LT5kaWFsb2cgPSBudWxscHRyOwog
fQogCisjaWYgIVVTRShHVEs0KQogc3RhdGljIGdib29sZWFuIHdlYmtpdFdlYlZpZXdCYXNlRHJh
dyhHdGtXaWRnZXQqIHdpZGdldCwgY2Fpcm9fdCogY3IpCiB7CiAgICAgV2ViS2l0V2ViVmlld0Jh
c2UqIHdlYlZpZXdCYXNlID0gV0VCS0lUX1dFQl9WSUVXX0JBU0Uod2lkZ2V0KTsKQEAgLTYyNyw2
ICs2NDgsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0V2ViVmlld0Jhc2VEcmF3KEd0a1dpZGdl
dCogd2lkZ2V0LCBjYWlyb190KiBjcikKIAogICAgIHJldHVybiBGQUxTRTsKIH0KKyNlbmRpZgog
CiBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUNoaWxkQWxsb2NhdGUoR3RrV2lkZ2V0KiBj
aGlsZCwgZ3BvaW50ZXIgdXNlckRhdGEpCiB7CkBAIC02NDQsOSArNjY2LDE5IEBAIHN0YXRpYyB2
b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ2hpbGRBbGxvY2F0ZShHdGtXaWRnZXQqIGNoaWxkLCBncG9p
bnRlciB1c2VyRGF0YSkKICAgICBwcml2LT5jaGlsZHJlbi5zZXQoY2hpbGQsIEludFJlY3QoKSk7
CiB9CiAKKyNpZiBVU0UoR1RLNCkKK3N0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2l6ZUFs
bG9jYXRlKEd0a1dpZGdldCogd2lkZ2V0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBiYXNl
bGluZSkKKyNlbHNlCiBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVNpemVBbGxvY2F0ZShH
dGtXaWRnZXQqIHdpZGdldCwgR3RrQWxsb2NhdGlvbiogYWxsb2NhdGlvbikKKyNlbmRpZgogewor
I2lmIFVTRShHVEs0KQorICAgIEdUS19XSURHRVRfQ0xBU1Mod2Via2l0X3dlYl92aWV3X2Jhc2Vf
cGFyZW50X2NsYXNzKS0+c2l6ZV9hbGxvY2F0ZSh3aWRnZXQsIHdpZHRoLCBoZWlnaHQsIGJhc2Vs
aW5lKTsKKyAgICBHdGtBbGxvY2F0aW9uIGFsbG9jYXRpb25TdGFjayA9IHsgMCwgMCwgd2lkdGgs
IGhlaWdodCB9OworICAgIEd0a0FsbG9jYXRpb24qIGFsbG9jYXRpb24gPSAmYWxsb2NhdGlvblN0
YWNrOworI2Vsc2UKICAgICBHVEtfV0lER0VUX0NMQVNTKHdlYmtpdF93ZWJfdmlld19iYXNlX3Bh
cmVudF9jbGFzcyktPnNpemVfYWxsb2NhdGUod2lkZ2V0LCBhbGxvY2F0aW9uKTsKKyNlbmRpZgog
CiAgICAgV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlID0gV0VCS0lUX1dFQl9WSUVXX0JB
U0Uod2lkZ2V0KTsKICAgICBndGtfY29udGFpbmVyX2ZvcmVhY2goR1RLX0NPTlRBSU5FUih3ZWJW
aWV3QmFzZSksIHdlYmtpdFdlYlZpZXdCYXNlQ2hpbGRBbGxvY2F0ZSwgd2ViVmlld0Jhc2UpOwpA
QCAtNjg4LDYgKzcyMCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2l6ZUFsbG9j
YXRlKEd0a1dpZGdldCogd2lkZ2V0LCBHdGtBbGxvY2F0aW9uKiBhbGxvCiAgICAgICAgIGRyYXdp
bmdBcmVhLT5zZXRTaXplKHZpZXdSZWN0LnNpemUoKSk7CiB9CiAKKyNpZiAhVVNFKEdUSzQpCiBz
dGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUdldFByZWZlcnJlZFdpZHRoKEd0a1dpZGdldCog
d2lkZ2V0LCBnaW50KiBtaW5pbXVtU2l6ZSwgZ2ludCogbmF0dXJhbFNpemUpCiB7CiAgICAgV2Vi
S2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gV0VCS0lUX1dFQl9WSUVXX0JBU0Uod2lkZ2V0
KS0+cHJpdjsKQEAgLTcwMSw2ICs3MzQsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFz
ZUdldFByZWZlcnJlZEhlaWdodChHdGtXaWRnZXQqIHdpZGdldCwgZ2ludCogbWluaW11bQogICAg
ICptaW5pbXVtU2l6ZSA9IDA7CiAgICAgKm5hdHVyYWxTaXplID0gcHJpdi0+Y29udGVudHNTaXpl
LmhlaWdodCgpOwogfQorI2VuZGlmCiAKIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlTWFw
KEd0a1dpZGdldCogd2lkZ2V0KQogewpAQCAtNzM3LDYgKzc3MSw3IEBAIHN0YXRpYyB2b2lkIHdl
YmtpdFdlYlZpZXdCYXNlVW5tYXAoR3RrV2lkZ2V0KiB3aWRnZXQpCiAgICAgd2Via2l0V2ViVmll
d0Jhc2VTY2hlZHVsZVVwZGF0ZUFjdGl2aXR5U3RhdGUod2ViVmlld0Jhc2UsIEFjdGl2aXR5U3Rh
dGU6OklzVmlzaWJsZSk7CiB9CiAKKyNpZiAhVVNFKEdUSzQpCiBzdGF0aWMgZ2Jvb2xlYW4gd2Vi
a2l0V2ViVmlld0Jhc2VGb2N1c0luRXZlbnQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2ZW50Rm9j
dXMqIGV2ZW50KQogewogICAgIFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSA9IFdFQktJ
VF9XRUJfVklFV19CQVNFKHdpZGdldCk7CkBAIC03OTksNyArODM0LDcgQEAgc3RhdGljIGdib29s
ZWFuIHdlYmtpdFdlYlZpZXdCYXNlS2V5UHJlc3NFdmVudChHdGtXaWRnZXQqIHdpZGdldCwgR2Rr
RXZlbnRLZXkqIGsKICAgICAgICAgcHJpdi0+c2hvdWxkRm9yd2FyZE5leHRLZXlFdmVudCA9IEZB
TFNFOwogICAgICAgICByZXR1cm4gR1RLX1dJREdFVF9DTEFTUyh3ZWJraXRfd2ViX3ZpZXdfYmFz
ZV9wYXJlbnRfY2xhc3MpLT5rZXlfcHJlc3NfZXZlbnQod2lkZ2V0LCBrZXlFdmVudCk7CiAgICAg
fQotICAgIGF1dG8gZmlsdGVyUmVzdWx0ID0gcHJpdi0+aW5wdXRNZXRob2RGaWx0ZXIuZmlsdGVy
S2V5RXZlbnQoa2V5RXZlbnQpOworICAgIGF1dG8gZmlsdGVyUmVzdWx0ID0gcHJpdi0+aW5wdXRN
ZXRob2RGaWx0ZXIuZmlsdGVyS2V5RXZlbnQocmVpbnRlcnByZXRfY2FzdDxHZGtFdmVudCo+KGtl
eUV2ZW50KSk7CiAgICAgaWYgKCFmaWx0ZXJSZXN1bHQuaGFuZGxlZCkgewogICAgICAgICBwcml2
LT5wYWdlUHJveHktPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChy
ZWludGVycHJldF9jYXN0PEdka0V2ZW50Kj4oa2V5RXZlbnQpLCBmaWx0ZXJSZXN1bHQua2V5VGV4
dCwKICAgICAgICAgICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQ6OkhhbmRsZWRCeUlucHV0TWV0
aG9kOjpObywgV1RGOjpudWxsb3B0LCBXVEY6Om51bGxvcHQsIHByaXYtPmtleUJpbmRpbmdUcmFu
c2xhdG9yLmNvbW1hbmRzRm9yS2V5RXZlbnQoa2V5RXZlbnQpKSk7CkBAIC04MTgsNyArODUzLDcg
QEAgc3RhdGljIGdib29sZWFuIHdlYmtpdFdlYlZpZXdCYXNlS2V5UmVsZWFzZUV2ZW50KEd0a1dp
ZGdldCogd2lkZ2V0LCBHZGtFdmVudEtleSoKICAgICAgICAgcmV0dXJuIEdUS19XSURHRVRfQ0xB
U1Mod2Via2l0X3dlYl92aWV3X2Jhc2VfcGFyZW50X2NsYXNzKS0+a2V5X3JlbGVhc2VfZXZlbnQo
d2lkZ2V0LCBrZXlFdmVudCk7CiAgICAgfQogCi0gICAgaWYgKCFwcml2LT5pbnB1dE1ldGhvZEZp
bHRlci5maWx0ZXJLZXlFdmVudChrZXlFdmVudCkuaGFuZGxlZCkgeworICAgIGlmICghcHJpdi0+
aW5wdXRNZXRob2RGaWx0ZXIuZmlsdGVyS2V5RXZlbnQocmVpbnRlcnByZXRfY2FzdDxHZGtFdmVu
dCo+KGtleUV2ZW50KSkuaGFuZGxlZCkgewogICAgICAgICBwcml2LT5wYWdlUHJveHktPmhhbmRs
ZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChyZWludGVycHJldF9jYXN0PEdk
a0V2ZW50Kj4oa2V5RXZlbnQpLCB7IH0sCiAgICAgICAgICAgICBOYXRpdmVXZWJLZXlib2FyZEV2
ZW50OjpIYW5kbGVkQnlJbnB1dE1ldGhvZDo6Tm8sIFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0
LCB7IH0pKTsKICAgICB9CkBAIC0xMDQzLDggKzEwNzgsOSBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Vi
a2l0V2ViVmlld0Jhc2VDcm9zc2luZ05vdGlmeUV2ZW50KEd0a1dpZGdldCogd2lkZ2V0LCBHZGtF
dmVudAogCiAgICAgcmV0dXJuIEdES19FVkVOVF9QUk9QQUdBVEU7CiB9CisjZW5kaWYKIAotI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgIVVTRShH
VEs0KQogc3RhdGljIHZvaWQgYXBwZW5kVG91Y2hFdmVudChWZWN0b3I8V2ViUGxhdGZvcm1Ub3Vj
aFBvaW50PiYgdG91Y2hQb2ludHMsIGNvbnN0IEdka0V2ZW50KiBldmVudCwgV2ViUGxhdGZvcm1U
b3VjaFBvaW50OjpUb3VjaFBvaW50U3RhdGUgc3RhdGUpCiB7CiAgICAgZ2RvdWJsZSB4LCB5OwpA
QCAtMTEzNCw2ICsxMTcwLDcgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdFdlYlZpZXdCYXNlVG91
Y2hFdmVudChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRXZlbnRUb3VjaCogZXYKIH0KICNlbmRpZiAv
LyBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogCisjaWYgIVVTRShHVEs0KQogY2xhc3MgVG91Y2hHZXN0
dXJlQ29udHJvbGxlciBmaW5hbCA6IHB1YmxpYyBHZXN0dXJlQ29udHJvbGxlckNsaWVudCB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAKQEAgLTEyNjAsMzYgKzEyOTcsNDQgQEAgR2Vz
dHVyZUNvbnRyb2xsZXImIHdlYmtpdFdlYlZpZXdCYXNlR2VzdHVyZUNvbnRyb2xsZXIoV2ViS2l0
V2ViVmlld0Jhc2UqIHdlYlZpZXcKICAgICAgICAgcHJpdi0+Z2VzdHVyZUNvbnRyb2xsZXIgPSBt
YWtlVW5pcXVlPEdlc3R1cmVDb250cm9sbGVyPihHVEtfV0lER0VUKHdlYlZpZXdCYXNlKSwgbWFr
ZVVuaXF1ZTxUb3VjaEdlc3R1cmVDb250cm9sbGVyPih3ZWJWaWV3QmFzZSkpOwogICAgIHJldHVy
biAqcHJpdi0+Z2VzdHVyZUNvbnRyb2xsZXI7CiB9CisjZW5kaWYKIAogdm9pZCB3ZWJraXRXZWJW
aWV3QmFzZVNldEVuYWJsZUJhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmUoV2ViS2l0V2ViVmll
d0Jhc2UqIHdlYlZpZXdCYXNlLCBib29sIGVuYWJsZWQpCiB7CiAgICAgV2ViS2l0V2ViVmlld0Jh
c2VQcml2YXRlKiBwcml2ID0gd2ViVmlld0Jhc2UtPnByaXY7Ci0KKyNpZiAhVVNFKEdUSzQpCiAg
ICAgcHJpdi0+aXNCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlRW5hYmxlZCA9IGVuYWJsZWQ7
CiAKICAgICBpZiAoYXV0byogY29udHJvbGxlciA9IHdlYmtpdFdlYlZpZXdCYXNlVmlld0dlc3R1
cmVDb250cm9sbGVyKHdlYlZpZXdCYXNlKSkKICAgICAgICAgY29udHJvbGxlci0+c2V0U3dpcGVH
ZXN0dXJlRW5hYmxlZChlbmFibGVkKTsKIAogICAgIHByaXYtPnBhZ2VQcm94eS0+c2V0U2hvdWxk
UmVjb3JkTmF2aWdhdGlvblNuYXBzaG90cyhlbmFibGVkKTsKKyNlbmRpZgogfQogCisjaWYgIVVT
RShHVEs0KQogVmlld0dlc3R1cmVDb250cm9sbGVyKiB3ZWJraXRXZWJWaWV3QmFzZVZpZXdHZXN0
dXJlQ29udHJvbGxlcihXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UpCiB7CiAgICAgcmV0
dXJuIHdlYlZpZXdCYXNlLT5wcml2LT52aWV3R2VzdHVyZUNvbnRyb2xsZXIuZ2V0KCk7CiB9Cisj
ZW5kaWYKIAogYm9vbCB3ZWJraXRXZWJWaWV3QmFzZUJlZ2luQmFja1N3aXBlRm9yVGVzdGluZyhX
ZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIGlm
IChhdXRvKiBnZXN0dXJlQ29udHJvbGxlciA9IHdlYmtpdFdlYlZpZXdCYXNlVmlld0dlc3R1cmVD
b250cm9sbGVyKHdlYlZpZXdCYXNlKSkKICAgICAgICAgcmV0dXJuIGdlc3R1cmVDb250cm9sbGVy
LT5iZWdpblNpbXVsYXRlZFN3aXBlSW5EaXJlY3Rpb25Gb3JUZXN0aW5nKFZpZXdHZXN0dXJlQ29u
dHJvbGxlcjo6U3dpcGVEaXJlY3Rpb246OkJhY2spOworI2VuZGlmCiAKICAgICByZXR1cm4gRkFM
U0U7CiB9CiAKIGJvb2wgd2Via2l0V2ViVmlld0Jhc2VDb21wbGV0ZUJhY2tTd2lwZUZvclRlc3Rp
bmcoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlKQogeworI2lmICFVU0UoR1RLNCkKICAg
ICBpZiAoYXV0byogZ2VzdHVyZUNvbnRyb2xsZXIgPSB3ZWJraXRXZWJWaWV3QmFzZVZpZXdHZXN0
dXJlQ29udHJvbGxlcih3ZWJWaWV3QmFzZSkpCiAgICAgICAgIHJldHVybiBnZXN0dXJlQ29udHJv
bGxlci0+Y29tcGxldGVTaW11bGF0ZWRTd2lwZUluRGlyZWN0aW9uRm9yVGVzdGluZyhWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OlN3aXBlRGlyZWN0aW9uOjpCYWNrKTsKKyNlbmRpZgogCiAgICAgcmV0
dXJuIEZBTFNFOwogfQpAQCAtMTMxNyw3ICsxMzYyLDcgQEAgc3RhdGljIGdib29sZWFuIHdlYmtp
dFdlYlZpZXdCYXNlUXVlcnlUb29sdGlwKEd0a1dpZGdldCogd2lkZ2V0LCBnaW50IC8qIHggKi8s
IGcKICAgICByZXR1cm4gVFJVRTsKIH0KIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjaWYg
RU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgIVVTRShHVEs0KQogc3RhdGljIHZvaWQgd2Via2l0V2Vi
Vmlld0Jhc2VEcmFnRGF0YUdldChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRHJhZ0NvbnRleHQqIGNv
bnRleHQsIEd0a1NlbGVjdGlvbkRhdGEqIHNlbGVjdGlvbkRhdGEsIGd1aW50IGluZm8sIGd1aW50
IC8qIHRpbWUgKi8pCiB7CiAgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gV0VC
S0lUX1dFQl9WSUVXX0JBU0Uod2lkZ2V0KS0+cHJpdjsKQEAgLTEzMzgsMTIgKzEzODMsMTQgQEAg
c3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEcmFnRGF0YVJlY2VpdmVkKEd0a1dpZGdldCog
d2lkZ2V0LCBHZGtEcmFnQ29udGV4dCoKIH0KICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JU
KQogCisjaWYgIVVTRShHVEs0KQogc3RhdGljIGdib29sZWFuIHdlYmtpdFdlYlZpZXdCYXNlRXZl
bnQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2ZW50KiBldmVudCkKIHsKICAgICBpZiAoZ2RrX2V2
ZW50X2dldF9ldmVudF90eXBlKGV2ZW50KSA9PSBHREtfVE9VQ0hQQURfUElOQ0gpCiAgICAgICAg
IHdlYmtpdFdlYlZpZXdCYXNlR2VzdHVyZUNvbnRyb2xsZXIoV0VCS0lUX1dFQl9WSUVXX0JBU0Uo
d2lkZ2V0KSkuaGFuZGxlRXZlbnQoZXZlbnQpOwogICAgIHJldHVybiBHREtfRVZFTlRfUFJPUEFH
QVRFOwogfQorI2VuZGlmCiAKIHN0YXRpYyBBdGtPYmplY3QqIHdlYmtpdFdlYlZpZXdCYXNlR2V0
QWNjZXNzaWJsZShHdGtXaWRnZXQqIHdpZGdldCkKIHsKQEAgLTEzNjIsNyArMTQwOSw3IEBAIHN0
YXRpYyBBdGtPYmplY3QqIHdlYmtpdFdlYlZpZXdCYXNlR2V0QWNjZXNzaWJsZShHdGtXaWRnZXQq
IHdpZGdldCkKICAgICByZXR1cm4gcHJpdi0+YWNjZXNzaWJsZS5nZXQoKTsKIH0KIAotI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgIVVTRShHVEs0
KQogc3RhdGljIGdib29sZWFuIHdlYmtpdFdlYlZpZXdCYXNlRHJhZ01vdGlvbihHdGtXaWRnZXQq
IHdpZGdldCwgR2RrRHJhZ0NvbnRleHQqIGNvbnRleHQsIGdpbnQgeCwgZ2ludCB5LCBndWludCB0
aW1lKQogewogICAgIHdlYmtpdFdlYlZpZXdCYXNlRHJhZ0FuZERyb3BIYW5kbGVyKFdFQktJVF9X
RUJfVklFV19CQVNFKHdpZGdldCkpLmRyYWdNb3Rpb24oY29udGV4dCwgSW50UG9pbnQoeCwgeSks
IHRpbWUpOwpAQCAtMTM4NCw2ICsxNDMxLDcgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdFdlYlZp
ZXdCYXNlRHJhZ0Ryb3AoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0RyYWdDb250ZXh0KiBjb24KIH0K
ICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCisjaWYgIVVTRShHVEs0KQogc3RhdGlj
IHZvaWQgd2Via2l0V2ViVmlld0Jhc2VIaWVyYXJjaHlDaGFuZ2VkKEd0a1dpZGdldCogd2lkZ2V0
LCBHdGtXaWRnZXQqIG9sZFRvcGxldmVsKQogewogICAgIFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0
ZSogcHJpdiA9IFdFQktJVF9XRUJfVklFV19CQVNFKHdpZGdldCktPnByaXY7CkBAIC0xMzk4LDYg
KzE0NDYsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUhpZXJhcmNoeUNoYW5nZWQo
R3RrV2lkZ2V0KiB3aWRnZXQsIEd0a1dpZGdldCogb2xkVAogICAgICAgICAgICAgd2Via2l0V2Vi
Vmlld0Jhc2VTZXRUb3BsZXZlbE9uU2NyZWVuV2luZG93KFdFQktJVF9XRUJfVklFV19CQVNFKHdp
ZGdldCksIEdUS19XSU5ET1codG9wbGV2ZWwpKTsKICAgICB9CiB9CisjZW5kaWYKIAogc3RhdGlj
IGdib29sZWFuIHdlYmtpdFdlYlZpZXdCYXNlRm9jdXMoR3RrV2lkZ2V0KiB3aWRnZXQsIEd0a0Rp
cmVjdGlvblR5cGUgZGlyZWN0aW9uKQogewpAQCAtMTQyNywxMiArMTQ3NiwxNyBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX3ZpZXdfYmFzZV9jbGFzc19pbml0KFdlYktpdFdlYlZpZXdCYXNlQ2xh
c3MqIHdlYmtpdFdlYlZpZQogICAgIEd0a1dpZGdldENsYXNzKiB3aWRnZXRDbGFzcyA9IEdUS19X
SURHRVRfQ0xBU1Mod2Via2l0V2ViVmlld0Jhc2VDbGFzcyk7CiAgICAgd2lkZ2V0Q2xhc3MtPnJl
YWxpemUgPSB3ZWJraXRXZWJWaWV3QmFzZVJlYWxpemU7CiAgICAgd2lkZ2V0Q2xhc3MtPnVucmVh
bGl6ZSA9IHdlYmtpdFdlYlZpZXdCYXNlVW5yZWFsaXplOworI2lmICFVU0UoR1RLNCkKICAgICB3
aWRnZXRDbGFzcy0+ZHJhdyA9IHdlYmtpdFdlYlZpZXdCYXNlRHJhdzsKKyNlbmRpZgogICAgIHdp
ZGdldENsYXNzLT5zaXplX2FsbG9jYXRlID0gd2Via2l0V2ViVmlld0Jhc2VTaXplQWxsb2NhdGU7
CisjaWYgIVVTRShHVEs0KQogICAgIHdpZGdldENsYXNzLT5nZXRfcHJlZmVycmVkX3dpZHRoID0g
d2Via2l0V2ViVmlld0Jhc2VHZXRQcmVmZXJyZWRXaWR0aDsKICAgICB3aWRnZXRDbGFzcy0+Z2V0
X3ByZWZlcnJlZF9oZWlnaHQgPSB3ZWJraXRXZWJWaWV3QmFzZUdldFByZWZlcnJlZEhlaWdodDsK
KyNlbmRpZgogICAgIHdpZGdldENsYXNzLT5tYXAgPSB3ZWJraXRXZWJWaWV3QmFzZU1hcDsKICAg
ICB3aWRnZXRDbGFzcy0+dW5tYXAgPSB3ZWJraXRXZWJWaWV3QmFzZVVubWFwOworI2lmICFVU0Uo
R1RLNCkKICAgICB3aWRnZXRDbGFzcy0+Zm9jdXMgPSB3ZWJraXRXZWJWaWV3QmFzZUZvY3VzOwog
ICAgIHdpZGdldENsYXNzLT5mb2N1c19pbl9ldmVudCA9IHdlYmtpdFdlYlZpZXdCYXNlRm9jdXNJ
bkV2ZW50OwogICAgIHdpZGdldENsYXNzLT5mb2N1c19vdXRfZXZlbnQgPSB3ZWJraXRXZWJWaWV3
QmFzZUZvY3VzT3V0RXZlbnQ7CkBAIC0xNDQ1LDExICsxNDk5LDEyIEBAIHN0YXRpYyB2b2lkIHdl
YmtpdF93ZWJfdmlld19iYXNlX2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0Jhc2VDbGFzcyogd2Vi
a2l0V2ViVmllCiAgICAgd2lkZ2V0Q2xhc3MtPm1vdGlvbl9ub3RpZnlfZXZlbnQgPSB3ZWJraXRX
ZWJWaWV3QmFzZU1vdGlvbk5vdGlmeUV2ZW50OwogICAgIHdpZGdldENsYXNzLT5lbnRlcl9ub3Rp
ZnlfZXZlbnQgPSB3ZWJraXRXZWJWaWV3QmFzZUNyb3NzaW5nTm90aWZ5RXZlbnQ7CiAgICAgd2lk
Z2V0Q2xhc3MtPmxlYXZlX25vdGlmeV9ldmVudCA9IHdlYmtpdFdlYlZpZXdCYXNlQ3Jvc3NpbmdO
b3RpZnlFdmVudDsKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorI2VuZGlmCisjaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykgJiYgIVVTRShHVEs0KQogICAgIHdpZGdldENsYXNzLT50b3VjaF9ldmVu
dCA9IHdlYmtpdFdlYlZpZXdCYXNlVG91Y2hFdmVudDsKICNlbmRpZgogICAgIHdpZGdldENsYXNz
LT5xdWVyeV90b29sdGlwID0gd2Via2l0V2ViVmlld0Jhc2VRdWVyeVRvb2x0aXA7Ci0jaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKSAmJiAhVVNFKEdUSzQp
CiAgICAgd2lkZ2V0Q2xhc3MtPmRyYWdfZW5kID0gd2Via2l0V2ViVmlld0Jhc2VEcmFnRW5kOwog
ICAgIHdpZGdldENsYXNzLT5kcmFnX2RhdGFfZ2V0ID0gd2Via2l0V2ViVmlld0Jhc2VEcmFnRGF0
YUdldDsKICAgICB3aWRnZXRDbGFzcy0+ZHJhZ19tb3Rpb24gPSB3ZWJraXRXZWJWaWV3QmFzZURy
YWdNb3Rpb247CkBAIC0xNDU3LDkgKzE1MTIsMTMgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92
aWV3X2Jhc2VfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3QmFzZUNsYXNzKiB3ZWJraXRXZWJWaWUK
ICAgICB3aWRnZXRDbGFzcy0+ZHJhZ19kcm9wID0gd2Via2l0V2ViVmlld0Jhc2VEcmFnRHJvcDsK
ICAgICB3aWRnZXRDbGFzcy0+ZHJhZ19kYXRhX3JlY2VpdmVkID0gd2Via2l0V2ViVmlld0Jhc2VE
cmFnRGF0YVJlY2VpdmVkOwogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjaWYgIVVT
RShHVEs0KQogICAgIHdpZGdldENsYXNzLT5ldmVudCA9IHdlYmtpdFdlYlZpZXdCYXNlRXZlbnQ7
CisjZW5kaWYKICAgICB3aWRnZXRDbGFzcy0+Z2V0X2FjY2Vzc2libGUgPSB3ZWJraXRXZWJWaWV3
QmFzZUdldEFjY2Vzc2libGU7CisjaWYgIVVTRShHVEs0KQogICAgIHdpZGdldENsYXNzLT5oaWVy
YXJjaHlfY2hhbmdlZCA9IHdlYmtpdFdlYlZpZXdCYXNlSGllcmFyY2h5Q2hhbmdlZDsKKyNlbmRp
ZgogICAgIHdpZGdldENsYXNzLT5kZXN0cm95ID0gd2Via2l0V2ViVmlld0Jhc2VEZXN0cm95Owog
CiAgICAgR09iamVjdENsYXNzKiBnb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyh3ZWJraXRX
ZWJWaWV3QmFzZUNsYXNzKTsKQEAgLTE1MjgsNyArMTU4Nyw3IEBAIHZvaWQgd2Via2l0V2ViVmll
d0Jhc2VTZXRUb29sdGlwQXJlYShXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGNvbnN0
IEludFJlCiAgICAgd2ViVmlld0Jhc2UtPnByaXYtPnRvb2x0aXBBcmVhID0gdG9vbHRpcEFyZWE7
CiB9CiAKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQp
ICYmICFVU0UoR1RLNCkKIERyYWdBbmREcm9wSGFuZGxlciYgd2Via2l0V2ViVmlld0Jhc2VEcmFn
QW5kRHJvcEhhbmRsZXIoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlKQogewogICAgIFdl
YktpdFdlYlZpZXdCYXNlUHJpdmF0ZSogcHJpdiA9IHdlYlZpZXdCYXNlLT5wcml2OwpAQCAtMTYw
Miw2ICsxNjYxLDcgQEAgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVNldEluc3BlY3RvclZpZXdTaXpl
KFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSwKICAgICAgICAgZ3RrX3dpZGdl
dF9xdWV1ZV9yZXNpemVfbm9fcmVkcmF3KEdUS19XSURHRVQod2Via2l0V2ViVmlld0Jhc2UpKTsK
IH0KIAorI2lmICFVU0UoR1RLNCkKIHN0YXRpYyB2b2lkIGFjdGl2ZUNvbnRleHRNZW51VW5tYXBw
ZWQoR3RrTWVudSogbWVudSwgV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlKQogewogICAg
IGlmICh3ZWJWaWV3QmFzZS0+cHJpdi0+YWN0aXZlQ29udGV4dE1lbnVQcm94eSAmJiB3ZWJWaWV3
QmFzZS0+cHJpdi0+YWN0aXZlQ29udGV4dE1lbnVQcm94eS0+Z3RrTWVudSgpID09IG1lbnUpCkBA
IC0xNjE4LDYgKzE2NzgsNyBAQCBXZWJDb250ZXh0TWVudVByb3h5R3RrKiB3ZWJraXRXZWJWaWV3
QmFzZUdldEFjdGl2ZUNvbnRleHRNZW51UHJveHkoV2ViS2l0V2ViVmlldwogewogICAgIHJldHVy
biB3ZWJraXRXZWJWaWV3QmFzZS0+cHJpdi0+YWN0aXZlQ29udGV4dE1lbnVQcm94eTsKIH0KKyNl
bmRpZgogCiBHZGtFdmVudCogd2Via2l0V2ViVmlld0Jhc2VUYWtlQ29udGV4dE1lbnVFdmVudChX
ZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UpCiB7CkBAIC0xNzI0LDE0ICsxNzg1
LDE3IEBAIGJvb2wgd2Via2l0V2ViVmlld0Jhc2VNYWtlR0xDb250ZXh0Q3VycmVudChXZWJLaXRX
ZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UpCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlV2ls
bFN3YXBXZWJQcm9jZXNzKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSkKIHsK
ICAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJraXRXZWJWaWV3QmFzZS0+
cHJpdjsKLQorI2lmICFVU0UoR1RLNCkKICAgICBpZiAocHJpdi0+dmlld0dlc3R1cmVDb250cm9s
bGVyKQogICAgICAgICBwcml2LT52aWV3R2VzdHVyZUNvbnRyb2xsZXItPmRpc2Nvbm5lY3RGcm9t
UHJvY2VzcygpOworI2VuZGlmCiB9CiAKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRFeGl0V2Vi
UHJvY2VzcyhXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UpCiB7CisjaWYgIVVT
RShHVEs0KQogICAgIHdlYmtpdFdlYlZpZXdCYXNlLT5wcml2LT52aWV3R2VzdHVyZUNvbnRyb2xs
ZXIgPSBudWxscHRyOworI2VuZGlmCiB9CiAKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRSZWxh
dW5jaFdlYlByb2Nlc3MoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlKQpAQCAt
MTc0NCwxMyArMTgwOCwxNCBAQCB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlkUmVsYXVuY2hXZWJQ
cm9jZXNzKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZQogICAgICAgICBhdXRv
KiBkcmF3aW5nQXJlYSA9IHN0YXRpY19jYXN0PERyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdy
YXBoaWNzKj4ocHJpdi0+cGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpKTsKICAgICAgICAgcHJpdi0+
YWNjZWxlcmF0ZWRCYWNraW5nU3RvcmUtPnVwZGF0ZShkcmF3aW5nQXJlYS0+bGF5ZXJUcmVlQ29u
dGV4dCgpKTsKICAgICB9Ci0KKyNpZiAhVVNFKEdUSzQpCiAgICAgaWYgKHByaXYtPnZpZXdHZXN0
dXJlQ29udHJvbGxlcikKICAgICAgICAgcHJpdi0+dmlld0dlc3R1cmVDb250cm9sbGVyLT5jb25u
ZWN0VG9Qcm9jZXNzKCk7CiAgICAgZWxzZSB7CiAgICAgICAgIHByaXYtPnZpZXdHZXN0dXJlQ29u
dHJvbGxlciA9IG1ha2VVbmlxdWU8V2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI+KCpwcml2
LT5wYWdlUHJveHkpOwogICAgICAgICBwcml2LT52aWV3R2VzdHVyZUNvbnRyb2xsZXItPnNldFN3
aXBlR2VzdHVyZUVuYWJsZWQocHJpdi0+aXNCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlRW5h
YmxlZCk7CiAgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VQYWdlQ2xv
c2VkKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSkKQEAgLTE3NzYsNTQgKzE4
NDEsNjggQEAgUmVmUHRyPFdlYktpdDo6Vmlld1NuYXBzaG90PiB3ZWJraXRXZWJWaWV3QmFzZVRh
a2VWaWV3U25hcHNob3QoV2ViS2l0V2ViVmlld0Jhc2UKICAgICAgICAgY2Fpcm9fcmVjdGFuZ2xl
KGNyLmdldCgpLCBjbGlwUmVjdC0+eCgpLCBjbGlwUmVjdC0+eSgpLCBjbGlwUmVjdC0+d2lkdGgo
KSwgY2xpcFJlY3QtPmhlaWdodCgpKTsKICAgICAgICAgY2Fpcm9fY2xpcChjci5nZXQoKSk7CiAg
ICAgfQorI2lmICFVU0UoR1RLNCkKICAgICB3ZWJraXRXZWJWaWV3QmFzZURyYXcoR1RLX1dJREdF
VCh3ZWJraXRXZWJWaWV3QmFzZSksIGNyLmdldCgpKTsKKyNlbmRpZgogCiAgICAgcmV0dXJuIFZp
ZXdTbmFwc2hvdDo6Y3JlYXRlKFdURk1vdmUoc3VyZmFjZSkpOwogfQogCiB2b2lkIHdlYmtpdFdl
YlZpZXdCYXNlRGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUoV2ViS2l0V2ViVmll
d0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlKQogeworI2lmICFVU0UoR1RLNCkKICAgICBWaWV3R2Vz
dHVyZUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSB3ZWJraXRXZWJWaWV3QmFzZVZpZXdHZXN0dXJl
Q29udHJvbGxlcih3ZWJraXRXZWJWaWV3QmFzZSk7CiAgICAgaWYgKGNvbnRyb2xsZXIgJiYgY29u
dHJvbGxlci0+aXNTd2lwZUdlc3R1cmVFbmFibGVkKCkpCiAgICAgICAgIGNvbnRyb2xsZXItPmRp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lKCk7CisjZW5kaWYKIH0KIAogdm9pZCB3
ZWJraXRXZWJWaWV3QmFzZURpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFt
ZShXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UpCiB7CisjaWYgIVVTRShHVEs0
KQogICAgIFZpZXdHZXN0dXJlQ29udHJvbGxlciogY29udHJvbGxlciA9IHdlYmtpdFdlYlZpZXdC
YXNlVmlld0dlc3R1cmVDb250cm9sbGVyKHdlYmtpdFdlYlZpZXdCYXNlKTsKICAgICBpZiAoY29u
dHJvbGxlciAmJiBjb250cm9sbGVyLT5pc1N3aXBlR2VzdHVyZUVuYWJsZWQoKSkKICAgICAgICAg
Y29udHJvbGxlci0+ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCk7
CisjZW5kaWYKIH0KIAogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURpZEZpbmlzaExvYWRGb3JNYWlu
RnJhbWUoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlKQogeworI2lmICFVU0Uo
R1RLNCkKICAgICBWaWV3R2VzdHVyZUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSB3ZWJraXRXZWJW
aWV3QmFzZVZpZXdHZXN0dXJlQ29udHJvbGxlcih3ZWJraXRXZWJWaWV3QmFzZSk7CiAgICAgaWYg
KGNvbnRyb2xsZXIgJiYgY29udHJvbGxlci0+aXNTd2lwZUdlc3R1cmVFbmFibGVkKCkpCiAgICAg
ICAgIGNvbnRyb2xsZXItPmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKTsKKyNlbmRpZgogfQog
CiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlkRmFpbExvYWRGb3JNYWluRnJhbWUoV2ViS2l0V2Vi
Vmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlKQogeworI2lmICFVU0UoR1RLNCkKICAgICBWaWV3
R2VzdHVyZUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSB3ZWJraXRXZWJWaWV3QmFzZVZpZXdHZXN0
dXJlQ29udHJvbGxlcih3ZWJraXRXZWJWaWV3QmFzZSk7CiAgICAgaWYgKGNvbnRyb2xsZXIgJiYg
Y29udHJvbGxlci0+aXNTd2lwZUdlc3R1cmVFbmFibGVkKCkpCiAgICAgICAgIGNvbnRyb2xsZXIt
PmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCk7CisjZW5kaWYKIH0KIAogdm9pZCB3ZWJraXRXZWJW
aWV3QmFzZURpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoV2ViS2l0V2ViVmll
d0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlLCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSB0eXBl
KQogeworI2lmICFVU0UoR1RLNCkKICAgICBWaWV3R2VzdHVyZUNvbnRyb2xsZXIqIGNvbnRyb2xs
ZXIgPSB3ZWJraXRXZWJWaWV3QmFzZVZpZXdHZXN0dXJlQ29udHJvbGxlcih3ZWJraXRXZWJWaWV3
QmFzZSk7CiAgICAgaWYgKGNvbnRyb2xsZXIgJiYgY29udHJvbGxlci0+aXNTd2lwZUdlc3R1cmVF
bmFibGVkKCkpCiAgICAgICAgIGNvbnRyb2xsZXItPmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25G
b3JNYWluRnJhbWUodHlwZSk7CisjZW5kaWYKIH0KIAogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURp
ZFJlc3RvcmVTY3JvbGxQb3NpdGlvbihXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jh
c2UpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIFZpZXdHZXN0dXJlQ29udHJvbGxlciogY29udHJv
bGxlciA9IHdlYmtpdFdlYlZpZXdCYXNlVmlld0dlc3R1cmVDb250cm9sbGVyKHdlYmtpdFdlYlZp
ZXdCYXNlKTsKICAgICBpZiAoY29udHJvbGxlciAmJiBjb250cm9sbGVyLT5pc1N3aXBlR2VzdHVy
ZUVuYWJsZWQoKSkKICAgICAgICAgd2Via2l0V2ViVmlld0Jhc2UtPnByaXYtPnZpZXdHZXN0dXJl
Q29udHJvbGxlci0+ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CisjZW5kaWYKIH0KIAotI2lm
IEdUS19DSEVDS19WRVJTSU9OKDMsIDI0LCAwKQorI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDI0
LCAwKSAmJiAhVVNFKEdUSzQpCiBzdGF0aWMgdm9pZCBlbW9qaUNob29zZXJFbW9qaVBpY2tlZChX
ZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UsIGNvbnN0IGNoYXIqIHRleHQpCiB7
CiAgICAgd2Via2l0V2ViVmlld0Jhc2VDb21wbGV0ZUVtb2ppQ2hvb3NlclJlcXVlc3Qod2Via2l0
V2ViVmlld0Jhc2UsIFN0cmluZzo6ZnJvbVVURjgodGV4dCkpOwpAQCAtMTgzOCw3ICsxOTE3LDcg
QEAgc3RhdGljIHZvaWQgZW1vamlDaG9vc2VyQ2xvc2VkKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJr
aXRXZWJWaWV3QmFzZSkKIAogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVNob3dFbW9qaUNob29zZXIo
V2ViS2l0V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlLCBjb25zdCBJbnRSZWN0JiBjYXJl
dFJlY3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAyNCwgMCkKKyNpZiBHVEtfQ0hFQ0tfVkVS
U0lPTigzLCAyNCwgMCkgJiYgIVVTRShHVEs0KQogICAgIFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0
ZSogcHJpdiA9IHdlYmtpdFdlYlZpZXdCYXNlLT5wcml2OwogICAgIHByaXYtPnJlbGVhc2VFbW9q
aUNob29zZXJUaW1lci5zdG9wKCk7CiAKQEAgLTE4NzIsNiArMTk1MSw3IEBAIGludCB3ZWJraXRX
ZWJWaWV3QmFzZVJlbmRlckhvc3RGaWxlRGVzY3JpcHRvcihXZWJLaXRXZWJWaWV3QmFzZSogd2Vi
a2l0V2ViVmlld0JhCiAKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VSZXF1ZXN0UG9pbnRlckxvY2so
V2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlKQogeworI2lmICFVU0UoR1RLNCkKICAgICBX
ZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3QmFzZS0+cHJpdjsKICAgICBS
RUxFQVNFX0FTU0VSVCghcHJpdi0+cG9pbnRlckxvY2tNYW5hZ2VyKTsKICAgICBpZiAoIXByaXYt
Pmxhc3RNb3Rpb25FdmVudCkgewpAQCAtMTg5NywxNiArMTk3NywxOSBAQCB2b2lkIHdlYmtpdFdl
YlZpZXdCYXNlUmVxdWVzdFBvaW50ZXJMb2NrKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFz
ZSkKIAogICAgIHByaXYtPnBvaW50ZXJMb2NrTWFuYWdlciA9IG51bGxwdHI7CiAgICAgcHJpdi0+
cGFnZVByb3h5LT5kaWREZW55UG9pbnRlckxvY2soKTsKKyNlbmRpZgogfQogCiB2b2lkIHdlYmtp
dFdlYlZpZXdCYXNlRGlkTG9zZVBvaW50ZXJMb2NrKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3
QmFzZSkKIHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBw
cml2ID0gd2ViVmlld0Jhc2UtPnByaXY7CiAgICAgaWYgKCFwcml2LT5wb2ludGVyTG9ja01hbmFn
ZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIHByaXYtPnBvaW50ZXJMb2NrTWFuYWdlci0+dW5s
b2NrKCk7CiAgICAgcHJpdi0+cG9pbnRlckxvY2tNYW5hZ2VyID0gbnVsbHB0cjsKKyNlbmRpZgog
fQogCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0SW5wdXRNZXRob2RDb250ZXh0KFdlYktpdFdl
YlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSwgV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0KiBjb250ZXh0
KQpAQCAtMTkyMSw2ICsyMDA0LDcgQEAgV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0KiB3ZWJraXRX
ZWJWaWV3QmFzZUdldElucHV0TWV0aG9kQ29udGV4dChXZWJLaXRXZWJWaWV3QmEKIAogdm9pZCB3
ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVDb21wb3NpdGlvbktleVByZXNzKFdlYktpdFdlYlZp
ZXdCYXNlKiB3ZWJWaWV3QmFzZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBPcHRpb25hbDxWZWN0b3I8
Q29tcG9zaXRpb25VbmRlcmxpbmU+PiYmIHVuZGVybGluZXMsIE9wdGlvbmFsPEVkaXRpbmdSYW5n
ZT4mJiBzZWxlY3Rpb25SYW5nZSkKIHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgc3RhdGljIEdka0V2
ZW50KiBldmVudCA9IG51bGxwdHI7CiAgICAgaWYgKCFldmVudCkgewogICAgICAgICBldmVudCA9
IGdka19ldmVudF9uZXcoR0RLX0tFWV9QUkVTUyk7CkBAIC0xOTM1LDQgKzIwMTksNSBAQCB2b2lk
IHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZUNvbXBvc2l0aW9uS2V5UHJlc3MoV2ViS2l0V2Vi
Vmlld0Jhc2UqIHdlYlZpZXdCYQogCiAgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2
ID0gd2ViVmlld0Jhc2UtPnByaXY7CiAgICAgcHJpdi0+cGFnZVByb3h5LT5oYW5kbGVLZXlib2Fy
ZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIHRleHQsIE5hdGl2ZVdlYktleWJv
YXJkRXZlbnQ6OkhhbmRsZWRCeUlucHV0TWV0aG9kOjpZZXMsIFdURk1vdmUodW5kZXJsaW5lcyks
IFdURk1vdmUoc2VsZWN0aW9uUmFuZ2UpLCB7IH0pKTsKKyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2
YXRlLmgKaW5kZXggZGZjMDJkYTg0NDAxLi5jNTUzMDgwYmZjNTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZh
dGUuaApAQCAtNTMsOCArNTMsMTAgQEAgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUVudGVyRnVsbFNj
cmVlbihXZWJLaXRXZWJWaWV3QmFzZSopOwogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUV4aXRGdWxs
U2NyZWVuKFdlYktpdFdlYlZpZXdCYXNlKik7CiBib29sIHdlYmtpdFdlYlZpZXdCYXNlSXNGdWxs
U2NyZWVuKFdlYktpdFdlYlZpZXdCYXNlKik7CiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0SW5z
cGVjdG9yVmlld1NpemUoV2ViS2l0V2ViVmlld0Jhc2UqLCB1bnNpZ25lZCBzaXplKTsKKyNpZiAh
VVNFKEdUSzQpCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0QWN0aXZlQ29udGV4dE1lbnVQcm94
eShXZWJLaXRXZWJWaWV3QmFzZSosIFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eUd0ayopOwog
V2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5R3RrKiB3ZWJraXRXZWJWaWV3QmFzZUdldEFjdGl2
ZUNvbnRleHRNZW51UHJveHkoV2ViS2l0V2ViVmlld0Jhc2UqKTsKKyNlbmRpZgogR2RrRXZlbnQq
IHdlYmtpdFdlYlZpZXdCYXNlVGFrZUNvbnRleHRNZW51RXZlbnQoV2ViS2l0V2ViVmlld0Jhc2Uq
KTsKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VTZXRJbnB1dE1ldGhvZFN0YXRlKFdlYktpdFdlYlZp
ZXdCYXNlKiwgT3B0aW9uYWw8V2ViS2l0OjpJbnB1dE1ldGhvZFN0YXRlPiYmKTsKIHZvaWQgd2Vi
a2l0V2ViVmlld0Jhc2VVcGRhdGVUZXh0SW5wdXRTdGF0ZShXZWJLaXRXZWJWaWV3QmFzZSopOwpA
QCAtNzgsMTYgKzgwLDE5IEBAIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRFeGl0V2ViUHJvY2Vz
cyhXZWJLaXRXZWJWaWV3QmFzZSopOwogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURpZFJlbGF1bmNo
V2ViUHJvY2VzcyhXZWJLaXRXZWJWaWV3QmFzZSopOwogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVBh
Z2VDbG9zZWQoV2ViS2l0V2ViVmlld0Jhc2UqKTsKIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQp
CisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgIVVTRShHVEs0KQogV2ViS2l0OjpEcmFnQW5k
RHJvcEhhbmRsZXImIHdlYmtpdFdlYlZpZXdCYXNlRHJhZ0FuZERyb3BIYW5kbGVyKFdlYktpdFdl
YlZpZXdCYXNlKik7CiAjZW5kaWYKIAorI2lmICFVU0UoR1RLNCkKIFdlYktpdDo6R2VzdHVyZUNv
bnRyb2xsZXImIHdlYmtpdFdlYlZpZXdCYXNlR2VzdHVyZUNvbnRyb2xsZXIoV2ViS2l0V2ViVmll
d0Jhc2UqKTsKKyNlbmRpZgogCiBSZWZQdHI8V2ViS2l0OjpWaWV3U25hcHNob3Q+IHdlYmtpdFdl
YlZpZXdCYXNlVGFrZVZpZXdTbmFwc2hvdChXZWJLaXRXZWJWaWV3QmFzZSosIE9wdGlvbmFsPFdl
YkNvcmU6OkludFJlY3Q+JiYpOwotCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0RW5hYmxlQmFj
a0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZShXZWJLaXRXZWJWaWV3QmFzZSosIGJvb2wgZW5hYmxl
ZCk7CisjaWYgIVVTRShHVEs0KQogV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXIqIHdlYmtp
dFdlYlZpZXdCYXNlVmlld0dlc3R1cmVDb250cm9sbGVyKFdlYktpdFdlYlZpZXdCYXNlKik7Cisj
ZW5kaWYKIAogYm9vbCB3ZWJraXRXZWJWaWV3QmFzZUJlZ2luQmFja1N3aXBlRm9yVGVzdGluZyhX
ZWJLaXRXZWJWaWV3QmFzZSopOwogYm9vbCB3ZWJraXRXZWJWaWV3QmFzZUNvbXBsZXRlQmFja1N3
aXBlRm9yVGVzdGluZyhXZWJLaXRXZWJWaWV3QmFzZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3RGlhbG9nLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0RpYWxvZy5jcHAKaW5kZXggNzBl
NmQzOTRiMmExLi5lNjUzYmVjNjFkYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0RpYWxvZy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3RGlhbG9nLmNwcApAQCAtMjAsNiArMjAsOCBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdEaWFsb2cuaCIK
IAorI2lmICFVU0UoR1RLNCkKKwogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgogCkBAIC04OSwzICs5MSw1IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfdmlld19kaWFsb2dfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3RGlhbG9nQ2xh
c3MqIGtsYXNzKQogCiAgICAgZ3RrX3dpZGdldF9jbGFzc19zZXRfY3NzX25hbWUod2lkZ2V0Q2xh
c3MsICJtZXNzYWdlZGlhbG9nIik7CiB9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3RGlhbG9nLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdEaWFsb2cuaAppbmRleCA2NTIxYzc3
N2E1N2YuLjZhN2UwNjQ1ODlhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3RGlhbG9nLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3RGlhbG9nLmgKQEAgLTE5LDYgKzE5LDggQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpZiAhVVNFKEdUSzQpCisKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAKIEdf
QkVHSU5fREVDTFMKQEAgLTQ3LDMgKzQ5LDUgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3RGlhbG9n
Q2xhc3MgewogR1R5cGUgd2Via2l0X3dlYl92aWV3X2RpYWxvZ19nZXRfdHlwZSgpOwogCiBHX0VO
RF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViVmlld0d0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdHdGsuY3BwCmluZGV4IGFmNzFlM2I0ZDllMy4uYzI5NTQxOGMxOWY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXdHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlld0d0ay5jcHAKQEAgLTMzLDIyICszMywyNyBAQAogCiBnYm9vbGVhbiB3ZWJraXRXZWJWaWV3
QXV0aGVudGljYXRlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdEF1dGhlbnRpY2F0aW9u
UmVxdWVzdCogcmVxdWVzdCkKIHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgQ3JlZGVudGlhbFN0b3Jh
Z2VNb2RlIGNyZWRlbnRpYWxTdG9yYWdlTW9kZSA9IHdlYmtpdF9hdXRoZW50aWNhdGlvbl9yZXF1
ZXN0X2Nhbl9zYXZlX2NyZWRlbnRpYWxzKHJlcXVlc3QpID8gQWxsb3dQZXJzaXN0ZW50U3RvcmFn
ZSA6IERpc2FsbG93UGVyc2lzdGVudFN0b3JhZ2U7CiAgICAgd2Via2l0V2ViVmlld0Jhc2VBZGRE
aWFsb2coV0VCS0lUX1dFQl9WSUVXX0JBU0Uod2ViVmlldyksIHdlYmtpdEF1dGhlbnRpY2F0aW9u
RGlhbG9nTmV3KHJlcXVlc3QsIGNyZWRlbnRpYWxTdG9yYWdlTW9kZSkpOworI2VuZGlmCiAKICAg
ICByZXR1cm4gVFJVRTsKIH0KIAogZ2Jvb2xlYW4gd2Via2l0V2ViVmlld1NjcmlwdERpYWxvZyhX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRTY3JpcHREaWFsb2cqIHNjcmlwdERpYWxvZykK
IHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiB0aXRsZShnX3N0cmR1cF9w
cmludGYoIkphdmFTY3JpcHQgLSAlcyIsIHdlYmtpdFdlYlZpZXdHZXRQYWdlKHdlYlZpZXcpLnBh
Z2VMb2FkU3RhdGUoKS51cmwoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgLy8gTGltaXQgc2NyaXB0
IGRpYWxvZyBzaXplIHRvIDgwJSBvZiB0aGUgd2ViIHZpZXcgc2l6ZS4KICAgICBHdGtSZXF1aXNp
dGlvbiBtYXhTaXplID0geyBzdGF0aWNfY2FzdDxpbnQ+KGd0a193aWRnZXRfZ2V0X2FsbG9jYXRl
ZF93aWR0aChHVEtfV0lER0VUKHdlYlZpZXcpKSAqIDAuODApLCBzdGF0aWNfY2FzdDxpbnQ+KGd0
a193aWRnZXRfZ2V0X2FsbG9jYXRlZF9oZWlnaHQoR1RLX1dJREdFVCh3ZWJWaWV3KSkgKiAwLjgw
KSB9OwogICAgIHdlYmtpdFdlYlZpZXdCYXNlQWRkRGlhbG9nKFdFQktJVF9XRUJfVklFV19CQVNF
KHdlYlZpZXcpLCB3ZWJraXRTY3JpcHREaWFsb2dJbXBsTmV3KHNjcmlwdERpYWxvZywgdGl0bGUu
Z2V0KCksICZtYXhTaXplKSk7CisjZW5kaWYKIAogICAgIHJldHVybiBUUlVFOwogfQogCisjaWYg
IVVTRShHVEs0KQogc3RhdGljIHZvaWQgZmlsZUNob29zZXJEaWFsb2dSZXNwb25zZUNhbGxiYWNr
KEd0a0ZpbGVDaG9vc2VyKiBkaWFsb2csIGdpbnQgcmVzcG9uc2VJRCwgV2ViS2l0RmlsZUNob29z
ZXJSZXF1ZXN0KiByZXF1ZXN0KQogewogICAgIEdSZWZQdHI8V2ViS2l0RmlsZUNob29zZXJSZXF1
ZXN0PiBhZG9wdGVkUmVxdWVzdCA9IGFkb3B0R1JlZihyZXF1ZXN0KTsKQEAgLTY0LDkgKzY5LDEx
IEBAIHN0YXRpYyB2b2lkIGZpbGVDaG9vc2VyRGlhbG9nUmVzcG9uc2VDYWxsYmFjayhHdGtGaWxl
Q2hvb3NlciogZGlhbG9nLCBnaW50IHJlc3BvCiAKICAgICBnX29iamVjdF91bnJlZihkaWFsb2cp
OwogfQorI2VuZGlmCiAKIGdib29sZWFuIHdlYmtpdFdlYlZpZXdSdW5GaWxlQ2hvb3NlcihXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3QqIHJlcXVlc3QpCiB7
CisjaWYgIVVTRShHVEs0KQogICAgIEd0a1dpZGdldCogdG9wbGV2ZWwgPSBndGtfd2lkZ2V0X2dl
dF90b3BsZXZlbChHVEtfV0lER0VUKHdlYlZpZXcpKTsKICAgICBpZiAoIVdlYkNvcmU6OndpZGdl
dElzT25zY3JlZW5Ub3BsZXZlbFdpbmRvdyh0b3BsZXZlbCkpCiAgICAgICAgIHRvcGxldmVsID0g
MDsKQEAgLTg4LDEwICs5NSwxMiBAQCBnYm9vbGVhbiB3ZWJraXRXZWJWaWV3UnVuRmlsZUNob29z
ZXIoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0RmlsZUNob29zZXJSZQogICAgIGdfc2ln
bmFsX2Nvbm5lY3QoZGlhbG9nLCAicmVzcG9uc2UiLCBHX0NBTExCQUNLKGZpbGVDaG9vc2VyRGlh
bG9nUmVzcG9uc2VDYWxsYmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0KSk7CiAKICAgICBndGtf
bmF0aXZlX2RpYWxvZ19zaG93KEdUS19OQVRJVkVfRElBTE9HKGRpYWxvZykpOworI2VuZGlmCiAK
ICAgICByZXR1cm4gVFJVRTsKIH0KIAorI2lmICFVU0UoR1RLNCkKIHN0cnVjdCBXaW5kb3dTdGF0
ZUV2ZW50IHsKICAgICBlbnVtIGNsYXNzIFR5cGUgeyBNYXhpbWl6ZSwgTWluaW1pemUsIFJlc3Rv
cmUgfTsKIApAQCAtMTUzLDkgKzE2MiwxMSBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2luZG93U3RhdGVF
dmVudENhbGxiYWNrKEd0a1dpZGdldCogd2luZG93LCBHZGtFdmVudFdpbmRvd1N0YXRlKgogCiAg
ICAgcmV0dXJuIEZBTFNFOwogfQorI2VuZGlmCiAKIHZvaWQgd2Via2l0V2ViVmlld01heGltaXpl
V2luZG93KFdlYktpdFdlYlZpZXcqIHZpZXcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgYXV0byogdG9wTGV2ZWwg
PSBndGtfd2lkZ2V0X2dldF90b3BsZXZlbChHVEtfV0lER0VUKHZpZXcpKTsKICAgICBpZiAoIWd0
a193aWRnZXRfaXNfdG9wbGV2ZWwodG9wTGV2ZWwpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7CkBAIC0xODUsMTAgKzE5NiwxMiBAQCB2b2lkIHdlYmtpdFdlYlZpZXdNYXhpbWl6ZVdp
bmRvdyhXZWJLaXRXZWJWaWV3KiB2aWV3LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JgogICAg
IH0KICNlbmRpZgogICAgIGd0a193aWRnZXRfc2hvdyh0b3BMZXZlbCk7CisjZW5kaWYKIH0KIAog
dm9pZCB3ZWJraXRXZWJWaWV3TWluaW1pemVXaW5kb3coV2ViS2l0V2ViVmlldyogdmlldywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogeworI2lmICFVU0Uo
R1RLNCkKICAgICBhdXRvKiB0b3BMZXZlbCA9IGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19X
SURHRVQodmlldykpOwogICAgIGlmICghZ3RrX3dpZGdldF9pc190b3BsZXZlbCh0b3BMZXZlbCkp
IHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTIwMiwxMCArMjE1LDEyIEBAIHZv
aWQgd2Via2l0V2ViVmlld01pbmltaXplV2luZG93KFdlYktpdFdlYlZpZXcqIHZpZXcsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mCiAgICAgZ19zaWduYWxfY29ubmVjdF9vYmplY3Qod2luZG93
LCAid2luZG93LXN0YXRlLWV2ZW50IiwgR19DQUxMQkFDSyh3aW5kb3dTdGF0ZUV2ZW50Q2FsbGJh
Y2spLCB2aWV3LCBHX0NPTk5FQ1RfQUZURVIpOwogICAgIGd0a193aW5kb3dfaWNvbmlmeSh3aW5k
b3cpOwogICAgIGd0a193aWRnZXRfaGlkZSh0b3BMZXZlbCk7CisjZW5kaWYKIH0KIAogdm9pZCB3
ZWJraXRXZWJWaWV3UmVzdG9yZVdpbmRvdyhXZWJLaXRXZWJWaWV3KiB2aWV3LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisjaWYgIVVTRShHVEs0KQog
ICAgIGF1dG8qIHRvcExldmVsID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVCh2
aWV3KSk7CiAgICAgaWYgKCFndGtfd2lkZ2V0X2lzX3RvcGxldmVsKHRvcExldmVsKSkgewogICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwpAQCAtMjM4LDYgKzI1Myw3IEBAIHZvaWQgd2Via2l0
V2ViVmlld1Jlc3RvcmVXaW5kb3coV2ViS2l0V2ViVmlldyogdmlldywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmCiAgICAgfQogI2VuZGlmCiAgICAgZ3RrX3dpZGdldF9zaG93KHRvcExldmVs
KTsKKyNlbmRpZgogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrMy9XZWJLaXRDb250ZXh0TWVudUl0ZW0uaApzaW1pbGFyaXR5IGluZGV4IDEwMCUK
cmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0
TWVudUl0ZW0uaApyZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0azMvV2Vi
S2l0Q29udGV4dE1lbnVJdGVtLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrMy9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaApzaW1pbGFyaXR5IGluZGV4
IDEwMCUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJ
bnB1dE1ldGhvZENvbnRleHQuaApyZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0azMvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGs0L1dlYktpdENvbnRleHRNZW51SXRlbS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0azQvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yZTM0MzY5MWY2MGEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrNC9XZWJLaXRDb250ZXh0TWVu
dUl0ZW0uaApAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2Fs
aWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdF
QktJVDJfQ09NUElMQVRJT04pICYmICFkZWZpbmVkKF9fV0VCS0lUX1dFQl9FWFRFTlNJT05fSF9J
TlNJREVfXykKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRl
ZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRDb250ZXh0TWVudUl0ZW1faAor
I2RlZmluZSBXZWJLaXRDb250ZXh0TWVudUl0ZW1faAorCisjaW5jbHVkZSA8Z3RrL2d0ay5oPgor
I2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2Vi
S2l0Q29udGV4dE1lbnUuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdENvbnRleHRNZW51QWN0
aW9ucy5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Rm9yd2FyZERlY2xhcmF0aW9ucy5oPgor
CitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfQ09OVEVYVF9NRU5VX0lURU0g
ICAgICAgICAgICAod2Via2l0X2NvbnRleHRfbWVudV9pdGVtX2dldF90eXBlKCkpCisjZGVmaW5l
IFdFQktJVF9DT05URVhUX01FTlVfSVRFTShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19J
TlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9DT05URVhUX01FTlVfSVRFTSwgV2ViS2l0
Q29udGV4dE1lbnVJdGVtKSkKKyNkZWZpbmUgV0VCS0lUX0lTX0NPTlRFWFRfTUVOVV9JVEVNKG9i
aikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBF
X0NPTlRFWFRfTUVOVV9JVEVNKSkKKyNkZWZpbmUgV0VCS0lUX0NPTlRFWFRfTUVOVV9JVEVNX0NM
QVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9U
WVBFX0NPTlRFWFRfTUVOVV9JVEVNLCBXZWJLaXRDb250ZXh0TWVudUl0ZW1DbGFzcykpCisjZGVm
aW5lIFdFQktJVF9JU19DT05URVhUX01FTlVfSVRFTV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVD
S19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9DT05URVhUX01FTlVfSVRFTSkpCisj
ZGVmaW5lIFdFQktJVF9DT05URVhUX01FTlVfSVRFTV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9J
TlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9DT05URVhUX01FTlVfSVRFTSwg
V2ViS2l0Q29udGV4dE1lbnVJdGVtQ2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0Q29u
dGV4dE1lbnVJdGVtQ2xhc3MgICBXZWJLaXRDb250ZXh0TWVudUl0ZW1DbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9XZWJLaXRDb250ZXh0TWVudUl0ZW1Qcml2YXRlIFdlYktpdENvbnRleHRNZW51SXRl
bVByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0Q29udGV4dE1lbnVJdGVtIHsKKyAgICBHSW5pdGlh
bGx5VW5vd25lZCBwYXJlbnQ7CisKKyAgICBXZWJLaXRDb250ZXh0TWVudUl0ZW1Qcml2YXRlICpw
cml2OworfTsKKworc3RydWN0IF9XZWJLaXRDb250ZXh0TWVudUl0ZW1DbGFzcyB7CisgICAgR0lu
aXRpYWxseVVub3duZWRDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICB2b2lkICgqX3dlYmtpdF9y
ZXNlcnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsK
KyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtp
dF9yZXNlcnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9jb250
ZXh0X21lbnVfaXRlbV9nZXRfdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7CisK
K1dFQktJVF9BUEkgV2ViS2l0Q29udGV4dE1lbnVJdGVtICoKK3dlYmtpdF9jb250ZXh0X21lbnVf
aXRlbV9uZXdfZnJvbV9nYWN0aW9uICAgICAgICAgICAgICAgICAoR0FjdGlvbiAgICAgICAgICAg
ICAgICAqYWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICpsYWJlbCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1Zhcmlh
bnQgICAgICAgICAgICAgICAqdGFyZ2V0KTsKKworV0VCS0lUX0FQSSBXZWJLaXRDb250ZXh0TWVu
dUl0ZW0gKgord2Via2l0X2NvbnRleHRfbWVudV9pdGVtX25ld19mcm9tX3N0b2NrX2FjdGlvbiAg
ICAgICAgICAgIChXZWJLaXRDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pOworCitXRUJLSVRfQVBJ
IFdlYktpdENvbnRleHRNZW51SXRlbSAqCit3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1fbmV3X2Zy
b21fc3RvY2tfYWN0aW9uX3dpdGhfbGFiZWwgKFdlYktpdENvbnRleHRNZW51QWN0aW9uIGFjdGlv
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAqbGFiZWwpOworCitXRUJLSVRfQVBJIFdlYktp
dENvbnRleHRNZW51SXRlbSAqCit3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1fbmV3X3dpdGhfc3Vi
bWVudSAgICAgICAgICAgICAgICAgKGNvbnN0IGdjaGFyICAgICAgICAgICAgKmxhYmVsLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
ZWJLaXRDb250ZXh0TWVudSAgICAgICpzdWJtZW51KTsKKworV0VCS0lUX0FQSSBXZWJLaXRDb250
ZXh0TWVudUl0ZW0gKgord2Via2l0X2NvbnRleHRfbWVudV9pdGVtX25ld19zZXBhcmF0b3IgICAg
ICAgICAgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBHQWN0aW9uICoKK3dlYmtpdF9j
b250ZXh0X21lbnVfaXRlbV9nZXRfZ2FjdGlvbiAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0
Q29udGV4dE1lbnVJdGVtICAqaXRlbSk7CisKK1dFQktJVF9BUEkgV2ViS2l0Q29udGV4dE1lbnVB
Y3Rpb24KK3dlYmtpdF9jb250ZXh0X21lbnVfaXRlbV9nZXRfc3RvY2tfYWN0aW9uICAgICAgICAg
ICAgICAgICAoV2ViS2l0Q29udGV4dE1lbnVJdGVtICAqaXRlbSk7CisKK1dFQktJVF9BUEkgZ2Jv
b2xlYW4KK3dlYmtpdF9jb250ZXh0X21lbnVfaXRlbV9pc19zZXBhcmF0b3IgICAgICAgICAgICAg
ICAgICAgICAoV2ViS2l0Q29udGV4dE1lbnVJdGVtICAqaXRlbSk7CisKK1dFQktJVF9BUEkgdm9p
ZAord2Via2l0X2NvbnRleHRfbWVudV9pdGVtX3NldF9zdWJtZW51ICAgICAgICAgICAgICAgICAg
ICAgIChXZWJLaXRDb250ZXh0TWVudUl0ZW0gICppdGVtLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRDb250ZXh0TWVudSAg
ICAgICpzdWJtZW51KTsKKworV0VCS0lUX0FQSSBXZWJLaXRDb250ZXh0TWVudSAqCit3ZWJraXRf
Y29udGV4dF9tZW51X2l0ZW1fZ2V0X3N1Ym1lbnUgICAgICAgICAgICAgICAgICAgICAgKFdlYktp
dENvbnRleHRNZW51SXRlbSAgKml0ZW0pOworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGs0L1dlYktpdElucHV0TWV0aG9k
Q29udGV4dC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0azQvV2ViS2l0SW5wdXRN
ZXRob2RDb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5j
YWZlZGEwNjVkZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrNC9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaApAQCAtMCwwICsxLDIyMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQy
X0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9u
bHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlm
CisKKyNpZm5kZWYgV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0X2gKKyNkZWZpbmUgV2ViS2l0SW5w
dXRNZXRob2RDb250ZXh0X2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8
Z2RrL2dkay5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lO
X0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfSU5QVVRfTUVUSE9EX0NPTlRFWFQgICAgICAg
ICAgICAod2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0X2dldF90eXBlKCkpCisjZGVmaW5lIFdF
QktJVF9JTlBVVF9NRVRIT0RfQ09OVEVYVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19J
TlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9JTlBVVF9NRVRIT0RfQ09OVEVYVCwgV2Vi
S2l0SW5wdXRNZXRob2RDb250ZXh0KSkKKyNkZWZpbmUgV0VCS0lUX0lOUFVUX01FVEhPRF9DT05U
RVhUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdF
QktJVF9UWVBFX0lOUFVUX01FVEhPRF9DT05URVhULCBXZWJLaXRJbnB1dE1ldGhvZENvbnRleHRD
bGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19JTlBVVF9NRVRIT0RfQ09OVEVYVChvYmopICAgICAg
ICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9JTlBVVF9N
RVRIT0RfQ09OVEVYVCkpCisjZGVmaW5lIFdFQktJVF9JU19JTlBVVF9NRVRIT0RfQ09OVEVYVF9D
TEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQ
RV9JTlBVVF9NRVRIT0RfQ09OVEVYVCkpCisjZGVmaW5lIFdFQktJVF9JTlBVVF9NRVRIT0RfQ09O
VEVYVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBX
RUJLSVRfVFlQRV9JTlBVVF9NRVRIT0RfQ09OVEVYVCwgV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0
Q2xhc3MpKQorCisjZGVmaW5lIFdFQktJVF9UWVBFX0lOUFVUX01FVEhPRF9VTkRFUkxJTkUgICAg
ICAgICAgKHdlYmtpdF9pbnB1dF9tZXRob2RfdW5kZXJsaW5lX2dldF90eXBlKCkpCisKKy8qKgor
ICogV2ViS2l0SW5wdXRQdXJwb3NlOgorICogQFdFQktJVF9JTlBVVF9QVVJQT1NFX0ZSRUVfRk9S
TTogRWRpdGFibGUgZWxlbWVudCBleHBlY3RzIGFueSBjaGFyYWN0ZXJzCisgKiBAV0VCS0lUX0lO
UFVUX1BVUlBPU0VfRElHSVRTOiBFZGl0YWJsZSBlbGVtZW50IGV4cGVjdHMgZGlnaXRzCisgKiBA
V0VCS0lUX0lOUFVUX1BVUlBPU0VfTlVNQkVSOiBFZGl0YWJsZSBlbGVtZW50IGV4cGVjdHMgYSBu
dW1iZXIKKyAqIEBXRUJLSVRfSU5QVVRfUFVSUE9TRV9QSE9ORTogRWRpdGFibGUgZWxlbWVudCBl
eHBlY3RzIGEgdGVsZXBob25lCisgKiBAV0VCS0lUX0lOUFVUX1BVUlBPU0VfVVJMOiBFZGl0YWJs
ZSBlbGVtZW50IGV4cGVjdHMgYSBVUkwKKyAqIEBXRUJLSVRfSU5QVVRfUFVSUE9TRV9FTUFJTDog
RWRpdGFibGUgZWxlbWVudCBleHBlY3RzIGFuIGVtYWlsCisgKiBAV0VCS0lUX0lOUFVUX1BVUlBP
U0VfUEFTU1dPUkQ6IEVkaXRhYmxlIGVsZW1lbnQgZXhwZWN0cyBhIHBhc3N3b3JkCisgKgorICog
RW51bSB2YWx1ZXMgdXNlZCB0byBkZXNjcmliZSB0aGUgcHJpbWFyeSBwdXJwb3NlIG9mIHRoZSBh
Y3RpdmUgZWRpdGFibGUgZWxlbWVudC4KKyAqCisgKiBTaW5jZTogMi4yOAorICovCit0eXBlZGVm
IGVudW0geworICAgIFdFQktJVF9JTlBVVF9QVVJQT1NFX0ZSRUVfRk9STSwKKyAgICBXRUJLSVRf
SU5QVVRfUFVSUE9TRV9ESUdJVFMsCisgICAgV0VCS0lUX0lOUFVUX1BVUlBPU0VfTlVNQkVSLAor
ICAgIFdFQktJVF9JTlBVVF9QVVJQT1NFX1BIT05FLAorICAgIFdFQktJVF9JTlBVVF9QVVJQT1NF
X1VSTCwKKyAgICBXRUJLSVRfSU5QVVRfUFVSUE9TRV9FTUFJTCwKKyAgICBXRUJLSVRfSU5QVVRf
UFVSUE9TRV9QQVNTV09SRAorfSBXZWJLaXRJbnB1dFB1cnBvc2U7CisKKy8qKgorICogV2ViS2l0
SW5wdXRIaW50czoKKyAqIEBXRUJLSVRfSU5QVVRfSElOVF9OT05FOiBObyBzcGVjaWFsIGJlaGF2
aW9yIHN1Z2dlc3RlZAorICogQFdFQktJVF9JTlBVVF9ISU5UX1NQRUxMQ0hFQ0s6IFN1Z2dlc3Qg
c3BlbGwgY2hlY2tpbmcKKyAqIEBXRUJLSVRfSU5QVVRfSElOVF9MT1dFUkNBU0U6IFN1Z2dlc3Qg
dG8gbm90IGF1dG9jYXBpdGxpemUKKyAqIEBXRUJLSVRfSU5QVVRfSElOVF9VUFBFUkNBU0VfQ0hB
UlM6IFN1Z2dlc3QgdG8gY2FwaXRhbGl6ZSBhbGwgdGV4dAorICogQFdFQktJVF9JTlBVVF9ISU5U
X1VQUEVSQ0FTRV9XT1JEUzogU3VnZ2VzdCB0byBjYXBpdGFsaXplIHRoZSBmaXJzdCBjaGFyYWN0
ZXIgb2YgZWFjaCB3b3JkCisgKiBAV0VCS0lUX0lOUFVUX0hJTlRfVVBQRVJDQVNFX1NFTlRFTkNF
UzogU3VnZ2VzdCB0byBjYXBpdGFsaXplIHRoZSBmaXJzdCB3b3JkIG9mIGVhY2ggc2VudGVuY2UK
KyAqIEBXRUJLSVRfSU5QVVRfSElOVF9JTkhJQklUX09TSzogU3VnZ2VzdCB0byBub3Qgc2hvdyBh
biBvbnNjcmVlbiBrZXlib2FyZAorICoKKyAqIEVudW0gdmFsdWVzIHVzZWQgdG8gZGVzY3JpYmUg
aGludHMgdGhhdCBtaWdodCBiZSB0YWtlbiBpbnRvIGFjY291bnQgYnkgaW5wdXQgbWV0aG9kcy4K
KyAqCisgKiBTaW5jZTogMi4yOAorICovCit0eXBlZGVmIGVudW0geworICAgIFdFQktJVF9JTlBV
VF9ISU5UX05PTkUgICAgICAgICAgICAgICAgPSAwLAorICAgIFdFQktJVF9JTlBVVF9ISU5UX1NQ
RUxMQ0hFQ0sgICAgICAgICAgPSAxIDw8IDAsCisgICAgV0VCS0lUX0lOUFVUX0hJTlRfTE9XRVJD
QVNFICAgICAgICAgICA9IDEgPDwgMSwKKyAgICBXRUJLSVRfSU5QVVRfSElOVF9VUFBFUkNBU0Vf
Q0hBUlMgICAgID0gMSA8PCAyLAorICAgIFdFQktJVF9JTlBVVF9ISU5UX1VQUEVSQ0FTRV9XT1JE
UyAgICAgPSAxIDw8IDMsCisgICAgV0VCS0lUX0lOUFVUX0hJTlRfVVBQRVJDQVNFX1NFTlRFTkNF
UyA9IDEgPDwgNCwKKyAgICBXRUJLSVRfSU5QVVRfSElOVF9JTkhJQklUX09TSyAgICAgICAgID0g
MSA8PCA1Cit9IFdlYktpdElucHV0SGludHM7CisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRJbnB1
dE1ldGhvZENvbnRleHQgICAgICAgIFdlYktpdElucHV0TWV0aG9kQ29udGV4dDsKK3R5cGVkZWYg
c3RydWN0IF9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHRDbGFzcyAgIFdlYktpdElucHV0TWV0aG9k
Q29udGV4dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdElucHV0TWV0aG9kQ29udGV4dFBy
aXZhdGUgV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0UHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9X
ZWJLaXRJbnB1dE1ldGhvZFVuZGVybGluZSAgICAgIFdlYktpdElucHV0TWV0aG9kVW5kZXJsaW5l
OworCitzdHJ1Y3QgX1dlYktpdElucHV0TWV0aG9kQ29udGV4dCB7CisgICAgR09iamVjdCBwYXJl
bnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICBXZWJLaXRJbnB1dE1ldGhvZENvbnRleHRQ
cml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHRDbGFz
cyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKKworICAgIC8qIFNpZ25hbHMgKi8K
KyAgICB2b2lkICAgICAoKiBwcmVlZGl0X3N0YXJ0ZWQpICAgIChXZWJLaXRJbnB1dE1ldGhvZENv
bnRleHQgKmNvbnRleHQpOworICAgIHZvaWQgICAgICgqIHByZWVkaXRfY2hhbmdlZCkgICAgKFdl
YktpdElucHV0TWV0aG9kQ29udGV4dCAqY29udGV4dCk7CisgICAgdm9pZCAgICAgKCogcHJlZWRp
dF9maW5pc2hlZCkgICAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICpjb250ZXh0KTsKKyAgICB2
b2lkICAgICAoKiBjb21taXR0ZWQpICAgICAgICAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQg
KmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh
ciAgICAgICAgICAgICAgICp0ZXh0KTsKKyAgICB2b2lkICAgICAoKiBkZWxldGVfc3Vycm91bmRp
bmcpIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAg
ICAgICBuX2NoYXJzKTsKKworICAgIC8qIFZpcnR1YWwgZnVuY3Rpb25zICovCisgICAgdm9pZCAg
ICAgKCogc2V0X2VuYWJsZV9wcmVlZGl0KSAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICpjb250
ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAg
ICAgICAgICAgICAgZW5hYmxlZCk7CisgICAgdm9pZCAgICAgKCogZ2V0X3ByZWVkaXQpICAgICAg
ICAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdjaGFyICAgICAgICAgICAgICAgICAgICoqdGV4dCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGlzdCAgICAgICAgICAgICAgICAgICAq
KnVuZGVybGluZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQg
ICAgICAgICAgICAgICAgICAgICpjdXJzb3Jfb2Zmc2V0KTsKKyAgICBnYm9vbGVhbiAoKiBmaWx0
ZXJfa2V5X2V2ZW50KSAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgKmNvbnRleHQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrRXZlbnQgICAgICAgICAgICAgICAg
ICprZXlfZXZlbnQpOworICAgIHZvaWQgICAgICgqIG5vdGlmeV9mb2N1c19pbikgICAgKFdlYktp
dElucHV0TWV0aG9kQ29udGV4dCAqY29udGV4dCk7CisgICAgdm9pZCAgICAgKCogbm90aWZ5X2Zv
Y3VzX291dCkgICAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICpjb250ZXh0KTsKKyAgICB2b2lk
ICAgICAoKiBub3RpZnlfY3Vyc29yX2FyZWEpIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgKmNv
bnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAg
ICAgICAgICAgICAgICB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCAgICAgICAgICAgICAgICAgICAgICAgeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0KTsK
KyAgICB2b2lkICAgICAoKiBub3RpZnlfc3Vycm91bmRpbmcpIChXZWJLaXRJbnB1dE1ldGhvZENv
bnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgZ2NoYXIgICAgICAgICAgICAgICp0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGd1aW50ICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAgICAgICAgICAgY3Vyc29y
X2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAg
ICAgICAgICAgICAgICAgc2VsZWN0aW9uX2luZGV4KTsKKyAgICB2b2lkICAgICAoKiByZXNldCkg
ICAgICAgICAgICAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgKmNvbnRleHQpOworCisgICAg
dm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVz
ZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7Cisg
ICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRf
cmVzZXJ2ZWQ0KSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQ1KSAodm9pZCk7
CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQ2KSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJr
aXRfcmVzZXJ2ZWQ3KSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfaW5w
dXRfbWV0aG9kX2NvbnRleHRfZ2V0X3R5cGUgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQ
SSB2b2lkCit3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfc2V0X2VuYWJsZV9wcmVlZGl0IChX
ZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgICAgICAgICBl
bmFibGVkKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRf
Z2V0X3ByZWVkaXQgICAgICAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAqY29udGV4dCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgICAg
ICAgICAgICAgICAgICAgICAgKip0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR0xpc3QgICAgICAgICAgICAgICAgICAgICAqKnVuZGVybGluZXMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAg
ICAgICAgICAgICAgICAgICAgICAqY3Vyc29yX29mZnNldCk7CisKK1dFQktJVF9BUEkgZ2Jvb2xl
YW4KK3dlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9maWx0ZXJfa2V5X2V2ZW50ICAgKFdlYktp
dElucHV0TWV0aG9kQ29udGV4dCAgICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR2RrRXZlbnQgICAgICAgICAgICAgICAgICAgKmtleV9l
dmVudCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0X25v
dGlmeV9mb2N1c19pbiAgICAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICAgKmNvbnRleHQpOwor
CitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9ub3RpZnlfZm9j
dXNfb3V0ICAgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAgICpjb250ZXh0KTsKKworV0VCS0lU
X0FQSSB2b2lkCit3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfbm90aWZ5X2N1cnNvcl9hcmVh
IChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICAg
ICB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50
ICAgICAgICAgICAgICAgICAgICAgICAgIHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAg
ICAgICAgICAgICAgICAgICAgaGVpZ2h0KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfaW5w
dXRfbWV0aG9kX2NvbnRleHRfbm90aWZ5X3N1cnJvdW5kaW5nIChXZWJLaXRJbnB1dE1ldGhvZENv
bnRleHQgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgICp0ZXh0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAg
ICAgICAgIGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGd1aW50ICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3JfaW5kZXgsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZWN0aW9uX2luZGV4KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRf
aW5wdXRfbWV0aG9kX2NvbnRleHRfcmVzZXQgICAgICAgICAgICAgIChXZWJLaXRJbnB1dE1ldGhv
ZENvbnRleHQgICAqY29udGV4dCk7CisKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X2lucHV0
X21ldGhvZF91bmRlcmxpbmVfZ2V0X3R5cGUgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkg
V2ViS2l0SW5wdXRNZXRob2RVbmRlcmxpbmUgKgord2Via2l0X2lucHV0X21ldGhvZF91bmRlcmxp
bmVfbmV3ICAgICAgICAgICAgICAoZ3VpbnQgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X29m
ZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1
aW50ICAgICAgICAgICAgICAgICAgICAgICBlbmRfb2Zmc2V0KTsKKworV0VCS0lUX0FQSSBXZWJL
aXRJbnB1dE1ldGhvZFVuZGVybGluZSAqCit3ZWJraXRfaW5wdXRfbWV0aG9kX3VuZGVybGluZV9j
b3B5ICAgICAgICAgICAgIChXZWJLaXRJbnB1dE1ldGhvZFVuZGVybGluZSAqdW5kZXJsaW5lKTsK
KworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfaW5wdXRfbWV0aG9kX3VuZGVybGluZV9mcmVlICAg
ICAgICAgICAgIChXZWJLaXRJbnB1dE1ldGhvZFVuZGVybGluZSAqdW5kZXJsaW5lKTsKKworV0VC
S0lUX0FQSSB2b2lkCit3ZWJraXRfaW5wdXRfbWV0aG9kX3VuZGVybGluZV9zZXRfY29sb3IgICAg
ICAgIChXZWJLaXRJbnB1dE1ldGhvZFVuZGVybGluZSAqdW5kZXJsaW5lLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgR2RrUkdCQSAgICAgICAg
ICAgICAgKnJnYmEpOworCitXRUJLSVRfQVBJIFdlYktpdElucHV0UHVycG9zZQord2Via2l0X2lu
cHV0X21ldGhvZF9jb250ZXh0X2dldF9pbnB1dF9wdXJwb3NlICAoV2ViS2l0SW5wdXRNZXRob2RD
b250ZXh0ICAgKmNvbnRleHQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9pbnB1dF9tZXRo
b2RfY29udGV4dF9zZXRfaW5wdXRfcHVycG9zZSAgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAg
ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV2ViS2l0SW5wdXRQdXJwb3NlICAgICAgICAgIHB1cnBvc2UpOworCitXRUJLSVRfQVBJIFdl
YktpdElucHV0SGludHMKK3dlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9nZXRfaW5wdXRfaGlu
dHMgICAgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAgICpjb250ZXh0KTsKKworV0VCS0lUX0FQ
SSB2b2lkCit3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfc2V0X2lucHV0X2hpbnRzICAgIChX
ZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdElucHV0SGludHMgICAgICAgICAgICBo
aW50cyk7CisKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2d0ay9XZWJBdXRvbWF0aW9uU2Vzc2lvbkd0ay5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2d0ay9XZWJBdXRvbWF0aW9uU2Vz
c2lvbkd0ay5jcHAKaW5kZXggZDYwMzFkOWZmMjNlLi40MjgwMjJlZWE4NmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vZ3RrL1dlYkF1dG9tYXRpb25TZXNz
aW9uR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2d0ay9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbkd0ay5jcHAKQEAgLTMwLDEyICszMCwxMiBAQAogI2luY2x1ZGUg
IldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3RrVXRpbGl0aWVzLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9HdGtWZXJzaW9uaW5nLmg+Ci0jaW5jbHVkZSA8Z3RrL2d0ay5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAjaWYgRU5BQkxF
KFdFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpCisjaWYgIVVTRShHVEs0KQogc3RhdGljIHVu
c2lnbmVkIG1vZGlmaWVyc1RvRXZlbnRTdGF0ZShPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVy
PiBtb2RpZmllcnMpCiB7CiAgICAgdW5zaWduZWQgc3RhdGUgPSAwOwpAQCAtMTAyLDkgKzEwMiwx
MSBAQCBzdGF0aWMgdm9pZCBkb01vdGlvbkV2ZW50KEd0a1dpZGdldCogd2lkZ2V0LCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgbG9jYXRpb24sCiAgICAgZXZlbnQtPm1vdGlvbi55X3Jvb3QgPSB5
Um9vdDsKICAgICBndGtfbWFpbl9kb19ldmVudChldmVudC5nZXQoKSk7CiB9CisjZW5kaWYKIAog
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZU1vdXNlSW50ZXJhY3Rp
b24oV2ViUGFnZVByb3h5JiBwYWdlLCBNb3VzZUludGVyYWN0aW9uIGludGVyYWN0aW9uLCBNb3Vz
ZUJ1dHRvbiBidXR0b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBsb2NhdGlvbkluVmlldywg
T3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4ga2V5TW9kaWZpZXJzKQogeworI2lmICFVU0Uo
R1RLNCkKICAgICB1bnNpZ25lZCBnZGtCdXR0b24gPSBtb3VzZUJ1dHRvblRvR2RrQnV0dG9uKGJ1
dHRvbik7CiAgICAgYXV0byBtb2RpZmllciA9IHN0YXRlTW9kaWZpZXJGb3JHZGtCdXR0b24oZ2Rr
QnV0dG9uKTsKICAgICB1bnNpZ25lZCBzdGF0ZSA9IG1vZGlmaWVyc1RvRXZlbnRTdGF0ZShrZXlN
b2RpZmllcnMpIHwgbV9jdXJyZW50TW9kaWZpZXJzOwpAQCAtMTMyLDEwICsxMzQsMTIgQEAgdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZU1vdXNlSW50ZXJhY3Rpb24o
V2ViUGFnZVByb3h5JiBwYWdlLAogICAgICAgICBkb01vdXNlRXZlbnQoR0RLX0JVVFRPTl9SRUxF
QVNFLCBwYWdlLnZpZXdXaWRnZXQoKSwgbG9jYXRpb25JblZpZXcsIGdka0J1dHRvbiwgc3RhdGUg
fCBtb2RpZmllcik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyNlbmRpZgogfQogI2VuZGlmIC8v
IEVOQUJMRShXRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJT05TKQogCiAjaWYgRU5BQkxFKFdFQkRS
SVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpCisjaWYgIVVTRShHVEs0KQogc3RhdGljIHZvaWQg
ZG9LZXlTdHJva2VFdmVudChHZGtFdmVudFR5cGUgdHlwZSwgR3RrV2lkZ2V0KiB3aWRnZXQsIHVu
c2lnbmVkIGtleVZhbCwgdW5zaWduZWQgc3RhdGUsIGJvb2wgZG9SZWxlYXNlQWZ0ZXJQcmVzcyA9
IGZhbHNlKQogewogICAgIEFTU0VSVCh0eXBlID09IEdES19LRVlfUFJFU1MgfHwgdHlwZSA9PSBH
REtfS0VZX1JFTEVBU0UpOwpAQCAtMzA0LDkgKzMwOCwxMSBAQCBzdGF0aWMgdW5zaWduZWQgbW9k
aWZpZXJzRm9yS2V5Q29kZSh1bnNpZ25lZCBrZXlDb2RlKQogICAgIH0KICAgICByZXR1cm4gMDsK
IH0KKyNlbmRpZgogCiB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRl
S2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIEtleWJvYXJkSW50ZXJhY3Rp
b24gaW50ZXJhY3Rpb24sIFdURjo6VmFyaWFudDxWaXJ0dWFsS2V5LCBDaGFyS2V5PiYmIGtleSkK
IHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgdW5zaWduZWQga2V5Q29kZTsKICAgICBXVEY6OnN3aXRj
aE9uKGtleSwKICAgICAgICAgWyZdIChWaXJ0dWFsS2V5IHZpcnR1YWxLZXkpIHsKQEAgLTMzMSwx
NiArMzM3LDE5IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVL
ZXlib2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYgcGFnCiAgICAgICAgIGRvS2V5U3Ryb2tl
RXZlbnQoR0RLX0tFWV9QUkVTUywgcGFnZS52aWV3V2lkZ2V0KCksIGtleUNvZGUsIG1fY3VycmVu
dE1vZGlmaWVycywgdHJ1ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyNlbmRpZgogfQogCiB2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5U2VxdWVuY2UoV2Vi
UGFnZVByb3h5JiBwYWdlLCBjb25zdCBTdHJpbmcmIGtleVNlcXVlbmNlKQogeworI2lmICFVU0Uo
R1RLNCkKICAgICBDU3RyaW5nIGtleVNlcXVlbmNlVVRGOCA9IGtleVNlcXVlbmNlLnV0ZjgoKTsK
ICAgICBjb25zdCBjaGFyKiBwID0ga2V5U2VxdWVuY2VVVEY4LmRhdGEoKTsKICAgICBkbyB7CiAg
ICAgICAgIGRvS2V5U3Ryb2tlRXZlbnQoR0RLX0tFWV9QUkVTUywgcGFnZS52aWV3V2lkZ2V0KCks
IGdka191bmljb2RlX3RvX2tleXZhbChnX3V0ZjhfZ2V0X2NoYXIocCkpLCBtX2N1cnJlbnRNb2Rp
ZmllcnMsIHRydWUpOwogICAgICAgICBwID0gZ191dGY4X25leHRfY2hhcihwKTsKICAgICB9IHdo
aWxlICgqcCk7CisjZW5kaWYKIH0KICNlbmRpZiAvLyBFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJE
X0lOVEVSQUNUSU9OUykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5z
cGVjdG9yL2d0ay9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1JlbW90ZVdlYkluc3BlY3RvclByb3h5R3RrLmNwcApp
bmRleCA3OGY2MWYwZjBiNjkuLmRjYjg5NmU2ZTlhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9SZW1vdGVXZWJJbnNw
ZWN0b3JQcm94eUd0ay5jcHAKQEAgLTEyMCw3ICsxMjAsOSBAQCB2b2lkIFJlbW90ZVdlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybVNhdmUoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRVUkwsIGNvbnN0
IFN0cgogICAgICAgICBHVEtfV0lORE9XKG1fd2luZG93KSwgR1RLX0ZJTEVfQ0hPT1NFUl9BQ1RJ
T05fU0FWRSwgIlNhdmUiLCAiQ2FuY2VsIikpOwogCiAgICAgR3RrRmlsZUNob29zZXIqIGNob29z
ZXIgPSBHVEtfRklMRV9DSE9PU0VSKGRpYWxvZy5nZXQoKSk7CisjaWYgIVVTRShHVEs0KQogICAg
IGd0a19maWxlX2Nob29zZXJfc2V0X2RvX292ZXJ3cml0ZV9jb25maXJtYXRpb24oY2hvb3Nlciwg
VFJVRSk7CisjZW5kaWYKIAogICAgIC8vIFNvbWUgaW5zcGVjdG9yIHZpZXdzIChBdWRpdHMgZm9y
IGluc3RhbmNlKSB1c2UgYSBjdXN0b20gVVJJIHNjaGVtZSwgc3VjaAogICAgIC8vIGFzIHdlYi1p
bnNwZWN0b3IuIFNvIHdlIGNhbid0IHJlbHkgb24gdGhlIFVSTCBiZWluZyBhIHZhbGlkIGZpbGU6
Ly8vIFVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0
ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvZ3RrL1dlYkluc3BlY3RvclByb3h5R3RrLmNwcAppbmRleCA3OGZjYTc0OTQ4OTEuLjg5
ZjhkZDcwYjZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKQEAgLTQ0LDYgKzQ0LDcg
QEAKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NlcnRp
ZmljYXRlSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3RrVXRpbGl0aWVzLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9HdGtWZXJzaW9uaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JE
ZWJ1Z2dhYmxlVHlwZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNp
bmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgpAQCAtNDk0LDcgKzQ5NSw5IEBAIHZvaWQgV2ViSW5z
cGVjdG9yUHJveHk6OnBsYXRmb3JtU2F2ZShjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZFVSTCwgY29u
c3QgU3RyaW5nJiBjCiAgICAgICAgIEdUS19XSU5ET1cocGFyZW50KSwgR1RLX0ZJTEVfQ0hPT1NF
Ul9BQ1RJT05fU0FWRSwgIlNhdmUiLCAiQ2FuY2VsIikpOwogCiAgICAgR3RrRmlsZUNob29zZXIq
IGNob29zZXIgPSBHVEtfRklMRV9DSE9PU0VSKGRpYWxvZy5nZXQoKSk7CisjaWYgIVVTRShHVEs0
KQogICAgIGd0a19maWxlX2Nob29zZXJfc2V0X2RvX292ZXJ3cml0ZV9jb25maXJtYXRpb24oY2hv
b3NlciwgVFJVRSk7CisjZW5kaWYKIAogICAgIC8vIFNvbWUgaW5zcGVjdG9yIHZpZXdzIChBdWRp
dHMgZm9yIGluc3RhbmNlKSB1c2UgYSBjdXN0b20gVVJJIHNjaGVtZSwgc3VjaAogICAgIC8vIGFz
IHdlYi1pbnNwZWN0b3IuIFNvIHdlIGNhbid0IHJlbHkgb24gdGhlIFVSTCBiZWluZyBhIHZhbGlk
IGZpbGU6Ly8vIFVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL2d0ay9XZWJLaXRJbnNwZWN0b3JXaW5kb3cuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL2d0ay9XZWJLaXRJbnNwZWN0b3JXaW5kb3cuY3BwCmluZGV4IDU1MGQwMDNm
NjE2NC4uZDhiNjkzNmNhYWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9J
bnNwZWN0b3IvZ3RrL1dlYktpdEluc3BlY3RvcldpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9XZWJLaXRJbnNwZWN0b3JXaW5kb3cuY3BwCkBAIC01
MiwxNCArNTIsMTkgQEAgc3RhdGljIHZvaWQgd2Via2l0X2luc3BlY3Rvcl93aW5kb3dfaW5pdChX
ZWJLaXRJbnNwZWN0b3JXaW5kb3cqIHdpbmRvdykKIHsKICAgICB3aW5kb3ctPmhlYWRlckJhciA9
IGd0a19oZWFkZXJfYmFyX25ldygpOwogICAgIGd0a19oZWFkZXJfYmFyX3NldF90aXRsZShHVEtf
SEVBREVSX0JBUih3aW5kb3ctPmhlYWRlckJhciksIF8oIldlYiBJbnNwZWN0b3IiKSk7CisjaWYg
IVVTRShHVEs0KQogICAgIGd0a19oZWFkZXJfYmFyX3NldF9zaG93X2Nsb3NlX2J1dHRvbihHVEtf
SEVBREVSX0JBUih3aW5kb3ctPmhlYWRlckJhciksIFRSVUUpOworI2VuZGlmCiAgICAgZ3RrX3dp
bmRvd19zZXRfdGl0bGViYXIoR1RLX1dJTkRPVyh3aW5kb3cpLCB3aW5kb3ctPmhlYWRlckJhcik7
CiAgICAgZ3RrX3dpZGdldF9zaG93KHdpbmRvdy0+aGVhZGVyQmFyKTsKIH0KIAogR3RrV2lkZ2V0
KiB3ZWJraXRJbnNwZWN0b3JXaW5kb3dOZXcoKQogewotICAgIHJldHVybiBHVEtfV0lER0VUKGdf
b2JqZWN0X25ldyhXRUJLSVRfVFlQRV9JTlNQRUNUT1JfV0lORE9XLCAidHlwZSIsIEdUS19XSU5E
T1dfVE9QTEVWRUwsCisgICAgcmV0dXJuIEdUS19XSURHRVQoZ19vYmplY3RfbmV3KFdFQktJVF9U
WVBFX0lOU1BFQ1RPUl9XSU5ET1csCisjaWYgIVVTRShHVEs0KQorICAgICAgICAidHlwZSIsIEdU
S19XSU5ET1dfVE9QTEVWRUwsCisjZW5kaWYKICAgICAgICAgImRlZmF1bHQtd2lkdGgiLCBXZWJJ
bnNwZWN0b3JQcm94eTo6aW5pdGlhbFdpbmRvd1dpZHRoLCAiZGVmYXVsdC1oZWlnaHQiLCBXZWJJ
bnNwZWN0b3JQcm94eTo6aW5pdGlhbFdpbmRvd0hlaWdodCwgbnVsbHB0cikpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDViZmYzNDFmNWQ3Zi4uNmNhMTAw
YWYwZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjE3MSw3
ICsyMTcxLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0UmVuZGVyVHJlZVNpemUodWludDY0
X3QgdHJlZVNpemUpIHsgbV9yZW5kZXJUcmVlU2l6ZSA9IHRyZWVTaXplOyB9CiAKLSNpZiBQTEFU
Rk9STShYMTEpCisjaWYgUExBVEZPUk0oWDExKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQ
SSkKICAgICB2b2lkIGNyZWF0ZVBsdWdpbkNvbnRhaW5lcihDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHVpbnQ2NF90KT4mJik7CiAgICAgdm9pZCB3aW5kb3dlZFBsdWdpbkdlb21ldHJ5RGlkQ2hhbmdl
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGZyYW1lUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgY2xpcFJlY3QsIHVpbnQ2NF90IHdpbmRvd0lEKTsKICAgICB2b2lkIHdpbmRvd2VkUGx1Z2lu
VmlzaWJpbGl0eURpZENoYW5nZShib29sIGlzVmlzaWJsZSwgdWludDY0X3Qgd2luZG93SUQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmlu
ZGV4IDgzZmQzZGQ1YmVjMC4uYTk4MTUzZTI1YmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zOTUsNyArMzk1LDcgQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWN0YXRpb25BbHRlcm5hdGl2ZXModWludDY0
X3QgZGljdGF0aW9uQ29udGV4dCkgLT4gKFZlY3RvcjxTdHJpbmc+IGFsdGVybmF0aXZlcykgU3lu
Y2hyb25vdXMKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oWDExKQorI2lmIFBMQVRGT1JNKFgxMSkg
JiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgIyBYMTEgd2luZG93ZWQgcGx1Z2lu
IG1lc3NhZ2VzCiAgICAgQ3JlYXRlUGx1Z2luQ29udGFpbmVyKCkgLT4gKHVpbnQ2NF90IHdpbmRv
d0lEKSBTeW5jaHJvbm91cwogICAgIFdpbmRvd2VkUGx1Z2luR2VvbWV0cnlEaWRDaGFuZ2UoV2Vi
Q29yZTo6SW50UmVjdCBmcmFtZVJlY3QsIFdlYkNvcmU6OkludFJlY3QgY2xpcFJlY3QsIHVpbnQ2
NF90IHdpbmRvd0lEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvY2Fpcm8v
QmFja2luZ1N0b3JlQ2Fpcm8uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvY2Fpcm8vQmFj
a2luZ1N0b3JlQ2Fpcm8uY3BwCmluZGV4IDMwMzVmNmYzZWU2OC4uZGMwYTcwYjg4MjRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9jYWlyby9CYWNraW5nU3RvcmVDYWlyby5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3JlQ2Fpcm8u
Y3BwCkBAIC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZWZQdHJDYWlyby5oPgog
I2luY2x1ZGUgPGNhaXJvLmg+CiAKLSNpZiBQTEFURk9STShHVEspICYmIFBMQVRGT1JNKFgxMSkg
JiYgZGVmaW5lZChHREtfV0lORE9XSU5HX1gxMSkKKyNpZiBQTEFURk9STShHVEspICYmIFBMQVRG
T1JNKFgxMSkgJiYgZGVmaW5lZChHREtfV0lORE9XSU5HX1gxMSkgJiYgIVVTRShHVEs0KQogI2lu
Y2x1ZGUgPFdlYkNvcmUvQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QbGF0Zm9ybURpc3BsYXlYMTEuaD4KICNpbmNsdWRlIDxnZGsvZ2RreC5oPgpAQCAt
NDgsNyArNDgsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogc3RkOjp1bmlxdWVfcHRy
PEJhY2tpbmdTdG9yZUJhY2tlbmRDYWlybz4gQmFja2luZ1N0b3JlOjpjcmVhdGVCYWNrZW5kKCkK
IHsKLSNpZiBQTEFURk9STShHVEspICYmIFBMQVRGT1JNKFgxMSkgJiYgZGVmaW5lZChHREtfV0lO
RE9XSU5HX1gxMSkKKyNpZiBQTEFURk9STShHVEspICYmIFBMQVRGT1JNKFgxMSkgJiYgZGVmaW5l
ZChHREtfV0lORE9XSU5HX1gxMSkgJiYgIVVTRShHVEs0KQogICAgIGNvbnN0IGF1dG8mIHNoYXJl
ZERpc3BsYXkgPSBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKTsKICAgICBpZiAoaXM8
UGxhdGZvcm1EaXNwbGF5WDExPihzaGFyZWREaXNwbGF5KSkgewogICAgICAgICBHZGtWaXN1YWwq
IHZpc3VhbCA9IGd0a193aWRnZXRfZ2V0X3Zpc3VhbChtX3dlYlBhZ2VQcm94eS52aWV3V2lkZ2V0
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNz
UG9vbEdMaWIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9v
bEdMaWIuY3BwCmluZGV4IDhjNDI1OWJlMWM1OC4uYWI3ZDdkMDk1ZTRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCkBAIC0x
MzYsNyArMTM2LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MKICAgICBwYXJhbWV0ZXJzLmdz
dHJlYW1lck9wdGlvbnMgPSBXZWJDb3JlOjpleHRyYWN0R1N0cmVhbWVyT3B0aW9uc0Zyb21Db21t
YW5kTGluZSgpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RL
KSAmJiAhVVNFKEdUSzQpCiAgICAgcGFyYW1ldGVycy51c2VTeXN0ZW1BcHBlYXJhbmNlRm9yU2Ny
b2xsYmFycyA9IG1fY29uZmlndXJhdGlvbi0+dXNlU3lzdGVtQXBwZWFyYW5jZUZvclNjcm9sbGJh
cnMoKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3Rr
L0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kLmNwcAppbmRleCA1ODlhNWFj
ZDdmN2UuLmVhMjJiNGQ2MjBlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZC5jcHAKQEAgLTMy
LDcgKzMyLDExIEBACiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAvLyBUaGVzZSBpbmNsdWRl
cyBuZWVkIHRvIGJlIGluIHRoaXMgb3JkZXIgYmVjYXVzZSB3YXlsYW5kLWVnbC5oIGRlZmluZXMg
V0xfRUdMX1BMQVRGT1JNCiAvLyBhbmQgZWdscGxhdGZvcm0uaCwgaW5jbHVkZWQgYnkgZWdsLmgs
IGNoZWNrcyB0aGF0IHRvIGRlY2lkZSB3aGV0aGVyIGl0J3MgV2F5bGFuZCBwbGF0Zm9ybS4KKyNp
ZiBVU0UoR1RLNCkKKyNpbmNsdWRlIDxnZGsvd2F5bGFuZC9nZGt3YXlsYW5kLmg+CisjZWxzZQog
I2luY2x1ZGUgPGdkay9nZGt3YXlsYW5kLmg+CisjZW5kaWYKICNpbmNsdWRlIDxFR0wvZWdsLmg+
CiAjaW5jbHVkZSA8RUdML2VnbGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2Fpcm9VdGlsaXRp
ZXMuaD4KQEAgLTIxMSw2ICsyMTUsNyBAQCB2b2lkIEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5
bGFuZDo6dHJ5RW5zdXJlR0xDb250ZXh0KCkKIAogICAgIG1fZ2xDb250ZXh0SW5pdGlhbGl6ZWQg
PSB0cnVlOwogCisjaWYgIVVTRShHVEs0KQogICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJv
cjsKICAgICBtX2dka0dMQ29udGV4dCA9IGFkb3B0R1JlZihnZGtfd2luZG93X2NyZWF0ZV9nbF9j
b250ZXh0KGd0a193aWRnZXRfZ2V0X3dpbmRvdyhtX3dlYlBhZ2Uudmlld1dpZGdldCgpKSwgJmVy
cm9yLm91dFB0cigpKSk7CiAgICAgaWYgKG1fZ2RrR0xDb250ZXh0KSB7CkBAIC0yMjEsNiArMjI2
LDcgQEAgdm9pZCBBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQ6OnRyeUVuc3VyZUdMQ29u
dGV4dCgpCiAgICAgfQogCiAgICAgZ193YXJuaW5nKCJHREsgaXMgbm90IGFibGUgdG8gY3JlYXRl
IGEgR0wgY29udGV4dCwgZmFsbGluZyBiYWNrIHRvIGdsUmVhZFBpeGVscyAoc2xvdyEpOiAlcyIs
IGVycm9yLT5tZXNzYWdlKTsKKyNlbmRpZgogCiAgICAgbV9nbENvbnRleHQgPSBHTENvbnRleHQ6
OmNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoKTsKIH0KQEAgLTMxMywxMSArMzE5LDEzIEBAIGJvb2wg
QWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjpwYWludChjYWlyb190KiBjciwgY29uc3Qg
SW50UmVjdCYgY2xpcFJlY3QpCiAKICAgICBjYWlyb19zYXZlKGNyKTsKIAorI2lmICFVU0UoR1RL
NCkKICAgICBpZiAobV9nZGtHTENvbnRleHQpIHsKICAgICAgICAgZ2RrX2NhaXJvX2RyYXdfZnJv
bV9nbChjciwgZ3RrX3dpZGdldF9nZXRfd2luZG93KG1fd2ViUGFnZS52aWV3V2lkZ2V0KCkpLCB0
ZXh0dXJlLCBHTF9URVhUVVJFLCBtX3dlYlBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSwgMCwgMCwg
dGV4dHVyZVNpemUud2lkdGgoKSwgdGV4dHVyZVNpemUuaGVpZ2h0KCkpOwogICAgICAgICBjYWly
b19yZXN0b3JlKGNyKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorI2VuZGlmCiAKICAg
ICBBU1NFUlQobV9nbENvbnRleHQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVYMTEuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlWDExLmNwcAppbmRleCA4Yjg2Zjk4
ODliYTcuLjQ5MWQzMGM3ZWM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlWDExLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVYMTEuY3BwCkBAIC0zNyw3ICszNywx
MSBAQAogI2luY2x1ZGUgPFgxMS9YbGliLmg+CiAjaW5jbHVkZSA8WDExL2V4dGVuc2lvbnMvWGRh
bWFnZS5oPgogI2luY2x1ZGUgPGNhaXJvLXhsaWIuaD4KKyNpZiBVU0UoR1RLNCkKKyNpbmNsdWRl
IDxnZGsveDExL2dka3guaD4KKyNlbHNlCiAjaW5jbHVkZSA8Z2RrL2dka3guaD4KKyNlbmRpZgog
I2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtNDgsNiArNTIsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIHN0YXRpYyBPcHRpb25hbDxpbnQ+IHNfZGFtYWdlRXZlbnRCYXNlOwogc3RhdGlj
IE9wdGlvbmFsPGludD4gc19kYW1hZ2VFcnJvckJhc2U7CiAKKyNpZiAhVVNFKEdUSzQpCiBjbGFz
cyBYRGFtYWdlTm90aWZpZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFhEYW1hZ2VOb3Rp
Zmllcik7CiAgICAgZnJpZW5kIE5ldmVyRGVzdHJveWVkPFhEYW1hZ2VOb3RpZmllcj47CkBAIC0x
MDIsNiArMTA3LDcgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hNYXA8RGFtYWdlLCBXVEY6OkZ1bmN0
aW9uPHZvaWQoKT4+IG1fbm90aWZ5RnVuY3Rpb25zOwogfTsKKyNlbmRpZgogCiBib29sIEFjY2Vs
ZXJhdGVkQmFja2luZ1N0b3JlWDExOjpjaGVja1JlcXVpcmVtZW50cygpCiB7CkBAIC0xMzEsNiAr
MTM3LDcgQEAgQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVYMTE6On5BY2NlbGVyYXRlZEJhY2tpbmdT
dG9yZVgxMSgpCiAgICAgaWYgKCFtX3N1cmZhY2UgJiYgIW1fZGFtYWdlKQogICAgICAgICByZXR1
cm47CiAKKyNpZiAhVVNFKEdUSzQpCiAgICAgRGlzcGxheSogZGlzcGxheSA9IGRvd25jYXN0PFBs
YXRmb3JtRGlzcGxheVgxMT4oUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkpLm5hdGl2
ZSgpOwogICAgIFhFcnJvclRyYXBwZXIgdHJhcHBlcihkaXNwbGF5LCBYRXJyb3JUcmFwcGVyOjpQ
b2xpY3k6OkNyYXNoLCB7IEJhZERyYXdhYmxlLCB4RGFtYWdlRXJyb3JDb2RlKEJhZERhbWFnZSkg
fSk7CiAgICAgaWYgKG1fZGFtYWdlKSB7CkBAIC0xMzgsNiArMTQ1LDcgQEAgQWNjZWxlcmF0ZWRC
YWNraW5nU3RvcmVYMTE6On5BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVgxMSgpCiAgICAgICAgIG1f
ZGFtYWdlLnJlc2V0KCk7CiAgICAgICAgIFhTeW5jKGRpc3BsYXksIEZhbHNlKTsKICAgICB9Cisj
ZW5kaWYKIH0KIAogdm9pZCBBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVgxMTo6dXBkYXRlKGNvbnN0
IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQpCkBAIC0xNDksMTIgKzE1NywxNCBA
QCB2b2lkIEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlWDExOjp1cGRhdGUoY29uc3QgTGF5ZXJUcmVl
Q29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dAogICAgIERpc3BsYXkqIGRpc3BsYXkgPSBkb3duY2Fz
dDxQbGF0Zm9ybURpc3BsYXlYMTE+KFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpKS5u
YXRpdmUoKTsKIAogICAgIGlmIChtX3N1cmZhY2UpIHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgICAg
IFhFcnJvclRyYXBwZXIgdHJhcHBlcihkaXNwbGF5LCBYRXJyb3JUcmFwcGVyOjpQb2xpY3k6OkNy
YXNoLCB7IEJhZERyYXdhYmxlLCB4RGFtYWdlRXJyb3JDb2RlKEJhZERhbWFnZSkgfSk7CiAgICAg
ICAgIGlmIChtX2RhbWFnZSkgewogICAgICAgICAgICAgWERhbWFnZU5vdGlmaWVyOjpzaW5nbGV0
b24oKS5yZW1vdmUobV9kYW1hZ2UuZ2V0KCkpOwogICAgICAgICAgICAgbV9kYW1hZ2UucmVzZXQo
KTsKICAgICAgICAgICAgIFhTeW5jKGRpc3BsYXksIEZhbHNlKTsKICAgICAgICAgfQorI2VuZGlm
CiAgICAgICAgIG1fc3VyZmFjZSA9IG51bGxwdHI7CiAgICAgfQogCkBAIC0xNjgsNyArMTc4LDcg
QEAgdm9pZCBBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVgxMTo6dXBkYXRlKGNvbnN0IExheWVyVHJl
ZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQKICAgICBJbnRTaXplIHNpemUgPSBkcmF3aW5nQXJl
YS0+c2l6ZSgpOwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gbV93ZWJQYWdlLmRldmlj
ZVNjYWxlRmFjdG9yKCk7CiAgICAgc2l6ZS5zY2FsZShkZXZpY2VTY2FsZUZhY3Rvcik7Ci0KKyNp
ZiAhVVNFKEdUSzQpCiAgICAgWEVycm9yVHJhcHBlciB0cmFwcGVyKGRpc3BsYXksIFhFcnJvclRy
YXBwZXI6OlBvbGljeTo6Q3Jhc2gsIHsgQmFkRHJhd2FibGUsIHhEYW1hZ2VFcnJvckNvZGUoQmFk
RGFtYWdlKSB9KTsKICAgICBBU1NFUlQoZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5WDExPihQbGF0
Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKSkubmF0aXZlKCkgPT0gR0RLX0RJU1BMQVlfWERJ
U1BMQVkoZ2RrX2Rpc3BsYXlfZ2V0X2RlZmF1bHQoKSkpOwogICAgIEdka1Zpc3VhbCogdmlzdWFs
ID0gZ2RrX3NjcmVlbl9nZXRfcmdiYV92aXN1YWwoZ2RrX3NjcmVlbl9nZXRfZGVmYXVsdCgpKTsK
QEAgLTE4Miw2ICsxOTIsNyBAQCB2b2lkIEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlWDExOjp1cGRh
dGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dAogICAgICAgICAgICAg
Z3RrX3dpZGdldF9xdWV1ZV9kcmF3KG1fd2ViUGFnZS52aWV3V2lkZ2V0KCkpOwogICAgIH0pOwog
ICAgIFhTeW5jKGRpc3BsYXksIEZhbHNlKTsKKyNlbmRpZgogfQogCiBib29sIEFjY2VsZXJhdGVk
QmFja2luZ1N0b3JlWDExOjpwYWludChjYWlyb190KiBjciwgY29uc3QgSW50UmVjdCYgY2xpcFJl
Y3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvRHJhZ0FuZERyb3BI
YW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9EcmFnQW5kRHJvcEhhbmRs
ZXIuY3BwCmluZGV4IDZjZDg3MjNlZmUwYy4uNTJiODVmYjQzNjBiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvRHJhZ0FuZERyb3BIYW5kbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvRHJhZ0FuZERyb3BIYW5kbGVyLmNwcApAQCAtMjYsNyAr
MjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRyYWdBbmREcm9wSGFuZGxl
ci5oIgogCi0jaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JU
KSAmJiAhVVNFKEdUSzQpCiAKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0RyYWdEYXRhLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
dGsvRHJhZ0FuZERyb3BIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvRHJh
Z0FuZERyb3BIYW5kbGVyLmgKaW5kZXggNTkxNGI3ZTBkZjU0Li4yYjMwNWFhODVjMjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9EcmFnQW5kRHJvcEhhbmRsZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvRHJhZ0FuZERyb3BIYW5kbGVyLmgKQEAg
LTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JU
KQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpICYmICFVU0UoR1RLNCkKIAogI2luY2x1ZGUgPFdl
YkNvcmUvRHJhZ0FjdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvR2VzdHVyZUNvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0dlc3R1cmVDb250cm9sbGVyLmNwcAppbmRl
eCA3NjQ5OGI4MDE1ODQuLmYyYzQ1MWNmNWM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvZ3RrL0dlc3R1cmVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9ndGsvR2VzdHVyZUNvbnRyb2xsZXIuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR2VzdHVyZUNvbnRyb2xsZXIuaCIKIAorI2lmICFV
U0UoR1RLNCkKKwogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsYmFyLmg+CiAjaW5jbHVkZSA8Z3Rr
L2d0ay5oPgogCkBAIC0yNzAsMyArMjcyLDUgQEAgR2VzdHVyZUNvbnRyb2xsZXI6OkxvbmdQcmVz
c0dlc3R1cmU6OkxvbmdQcmVzc0dlc3R1cmUoR3RrV2lkZ2V0KiB3aWRnZXQsIEdlc3R1cmUKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvZ3RrL0dlc3R1cmVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9ndGsvR2VzdHVyZUNvbnRyb2xsZXIuaAppbmRleCAyYWRkYmNkNTljMDEuLjUxNDZk
NDU4NGU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0dlc3R1cmVD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0dlc3R1cmVDb250
cm9sbGVyLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiAhVVNFKEdU
SzQpCisKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KICNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgpAQCAtMzUsNiArMzcsNyBAQCB0
eXBlZGVmIHN0cnVjdCBfR2RrRXZlbnRUb3VjaCBHZGtFdmVudFRvdWNoOwogdHlwZWRlZiBzdHJ1
Y3QgX0dka0V2ZW50U2VxdWVuY2UgR2RrRXZlbnRTZXF1ZW5jZTsKIHR5cGVkZWYgc3RydWN0IF9H
dGtHZXN0dXJlIEd0a0dlc3R1cmU7CiAKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdl
c3R1cmVDb250cm9sbGVyQ2xpZW50IHsKQEAgLTE1OCwzICsxNjEsNSBAQCBwcml2YXRlOgogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5jcHAKaW5kZXggM2E5ZWU4Yzcx
NmRkLi43ZTY1MjI1MmM1ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0
ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmNwcApAQCAtMTksOCArMTksOCBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIktleUJpbmRpbmdUcmFuc2xhdG9yLmgiCiAKKyNpbmNsdWRl
IDxXZWJDb3JlL0d0a1ZlcnNpb25pbmcuaD4KICNpbmNsdWRlIDxnZGsvZ2Rra2V5c3ltcy5oPgot
I2luY2x1ZGUgPGd0ay9ndGsuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTY4LDYgKzY4
LDcgQEAgc3RhdGljIHZvaWQgaW5zZXJ0RW1vamlDYWxsYmFjayhHdGtXaWRnZXQqIHdpZGdldCwg
S2V5QmluZGluZ1RyYW5zbGF0b3IqIHRyYW5zbGEKIH0KICNlbmRpZgogCisjaWYgIVVTRShHVEs0
KQogLy8gR1RLKyB3aWxsIHN0aWxsIHNlbmQgdGhlc2Ugc2lnbmFscyB0byB0aGUgd2ViIHZpZXcu
IFNvIHdlIGNhbiBzYWZlbHkgc3RvcCBzaWduYWwKIC8vIGVtaXNzaW9uIHdpdGhvdXQgYnJlYWtp
bmcgYWNjZXNzaWJpbGl0eS4KIHN0YXRpYyB2b2lkIHBvcHVwTWVudUNhbGxiYWNrKEd0a1dpZGdl
dCogd2lkZ2V0LCBLZXlCaW5kaW5nVHJhbnNsYXRvciopCkBAIC03OSw2ICs4MCw3IEBAIHN0YXRp
YyB2b2lkIHNob3dIZWxwQ2FsbGJhY2soR3RrV2lkZ2V0KiB3aWRnZXQsIEtleUJpbmRpbmdUcmFu
c2xhdG9yKikKIHsKICAgICBnX3NpZ25hbF9zdG9wX2VtaXNzaW9uX2J5X25hbWUod2lkZ2V0LCAi
c2hvdy1oZWxwIik7CiB9CisjZW5kaWYKIAogc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGd0a0Rl
bGV0ZUNvbW1hbmRzW11bMl0gPSB7CiAgICAgeyAiRGVsZXRlQmFja3dhcmQiLCAgICAgICAgICAg
ICAgICJEZWxldGVGb3J3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgIH0sIC8vIENoYXJhY3Rl
cnMKQEAgLTE3OSw4ICsxODEsMTAgQEAgS2V5QmluZGluZ1RyYW5zbGF0b3I6OktleUJpbmRpbmdU
cmFuc2xhdG9yKCkKICAgICBnX3NpZ25hbF9jb25uZWN0KG1fbmF0aXZlV2lkZ2V0LmdldCgpLCAi
bW92ZS1jdXJzb3IiLCBHX0NBTExCQUNLKG1vdmVDdXJzb3JDYWxsYmFjayksIHRoaXMpOwogICAg
IGdfc2lnbmFsX2Nvbm5lY3QobV9uYXRpdmVXaWRnZXQuZ2V0KCksICJkZWxldGUtZnJvbS1jdXJz
b3IiLCBHX0NBTExCQUNLKGRlbGV0ZUZyb21DdXJzb3JDYWxsYmFjayksIHRoaXMpOwogICAgIGdf
c2lnbmFsX2Nvbm5lY3QobV9uYXRpdmVXaWRnZXQuZ2V0KCksICJ0b2dnbGUtb3ZlcndyaXRlIiwg
R19DQUxMQkFDSyh0b2dnbGVPdmVyd3JpdGVDYWxsYmFjayksIHRoaXMpOworI2lmICFVU0UoR1RL
NCkKICAgICBnX3NpZ25hbF9jb25uZWN0KG1fbmF0aXZlV2lkZ2V0LmdldCgpLCAicG9wdXAtbWVu
dSIsIEdfQ0FMTEJBQ0socG9wdXBNZW51Q2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3NpZ25hbF9j
b25uZWN0KG1fbmF0aXZlV2lkZ2V0LmdldCgpLCAic2hvdy1oZWxwIiwgR19DQUxMQkFDSyhzaG93
SGVscENhbGxiYWNrKSwgdGhpcyk7CisjZW5kaWYKICNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAy
NCwgMCkKICAgICBnX3NpZ25hbF9jb25uZWN0KG1fbmF0aXZlV2lkZ2V0LmdldCgpLCAiaW5zZXJ0
LWVtb2ppIiwgR19DQUxMQkFDSyhpbnNlcnRFbW9qaUNhbGxiYWNrKSwgdGhpcyk7CiAjZW5kaWYK
QEAgLTIxMywxMCArMjE3LDE1IEBAIFZlY3RvcjxTdHJpbmc+IEtleUJpbmRpbmdUcmFuc2xhdG9y
Ojpjb21tYW5kc0ZvcktleUV2ZW50KEdka0V2ZW50S2V5KiBldmVudCkKIAogICAgIGd1aW50IGtl
eXZhbDsKICAgICBHZGtNb2RpZmllclR5cGUgc3RhdGU7CisjaWYgVVNFKEdUSzQpCisgICAga2V5
dmFsID0gMDsKKyAgICBzdGF0ZSA9IHN0YXRpY19jYXN0PEdka01vZGlmaWVyVHlwZT4oMCk7Cisj
ZWxzZQogICAgIGdka19ldmVudF9nZXRfa2V5dmFsKHJlaW50ZXJwcmV0X2Nhc3Q8R2RrRXZlbnQq
PihldmVudCksICZrZXl2YWwpOwogICAgIGdka19ldmVudF9nZXRfc3RhdGUocmVpbnRlcnByZXRf
Y2FzdDxHZGtFdmVudCo+KGV2ZW50KSwgJnN0YXRlKTsKIAogICAgIGd0a19iaW5kaW5nc19hY3Rp
dmF0ZV9ldmVudChHX09CSkVDVChtX25hdGl2ZVdpZGdldC5nZXQoKSksIGV2ZW50KTsKKyNlbmRp
ZgogICAgIGlmICghbV9wZW5kaW5nRWRpdG9yQ29tbWFuZHMuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gV1RGTW92ZShtX3BlbmRpbmdFZGl0b3JDb21tYW5kcyk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmgKaW5kZXggYjJkZWQ1
ZGU2YzBhLi44ZWJiMTQ0MGVlNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5oCkBAIC0yMyw3ICsyMywxMiBAQAogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lmIFVT
RShHVEs0KQordHlwZWRlZiBzdHJ1Y3QgX0dka0tleUV2ZW50IEdka0tleUV2ZW50OwordHlwZWRl
ZiBHZGtLZXlFdmVudCBHZGtFdmVudEtleTsKKyNlbHNlCiB0eXBlZGVmIHN0cnVjdCBfR2RrRXZl
bnRLZXkgR2RrRXZlbnRLZXk7CisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9ja01hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1BvaW50ZXJMb2NrTWFuYWdlci5jcHAKaW5k
ZXggNmQyM2MzOTljM2NhLi5kMTdlNjQ3OGQ4OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9ja01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9ja01hbmFnZXIuY3BwCkBAIC03MSw2ICs3MSw3IEBAIGJv
b2wgUG9pbnRlckxvY2tNYW5hZ2VyOjpsb2NrKCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVCghbV9k
ZXZpY2UpOwogCisjaWYgIVVTRShHVEs0KQogICAgIGF1dG8qIHZpZXdXaWRnZXQgPSBtX3dlYlBh
Z2Uudmlld1dpZGdldCgpOwogICAgIG1fZGV2aWNlID0gZ2RrX3NlYXRfZ2V0X3BvaW50ZXIoZ2Rr
X2Rpc3BsYXlfZ2V0X2RlZmF1bHRfc2VhdChndGtfd2lkZ2V0X2dldF9kaXNwbGF5KHZpZXdXaWRn
ZXQpKSk7CiAgICAgR1JlZlB0cjxHZGtDdXJzb3I+IGN1cnNvciA9IGFkb3B0R1JlZihnZGtfY3Vy
c29yX25ld19mcm9tX25hbWUoZ3RrX3dpZGdldF9nZXRfZGlzcGxheSh2aWV3V2lkZ2V0KSwgIm5v
bmUiKSk7CkBAIC04MCw2ICs4MSw3IEBAIGJvb2wgUG9pbnRlckxvY2tNYW5hZ2VyOjpsb2NrKCkK
ICAgICAgICAgbV9kZXZpY2UgPSBudWxscHRyOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQorI2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTg5LDggKzkxLDEwIEBAIGJvb2wg
UG9pbnRlckxvY2tNYW5hZ2VyOjp1bmxvY2soKQogICAgIGlmICghbV9kZXZpY2UpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAorI2lmICFVU0UoR1RLNCkKICAgICBnZGtfc2VhdF91bmdyYWIoZ2Rr
X2RldmljZV9nZXRfc2VhdChtX2RldmljZSkpOwogICAgIG1fZGV2aWNlID0gbnVsbHB0cjsKKyNl
bmRpZgogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9ndGsvUG9pbnRlckxvY2tNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9ndGsvUG9pbnRlckxvY2tNYW5hZ2VyLmgKaW5kZXggYzcwY2Y3ZTJhOTdmLi4xNTdlYWJlNmY5
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9ja01h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvUG9pbnRlckxvY2tNYW5h
Z2VyLmgKQEAgLTI4LDcgKzI4LDExIEBACiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAK
IHR5cGVkZWYgc3RydWN0IF9HZGtEZXZpY2UgR2RrRGV2aWNlOworI2lmIFVTRShHVEs0KQordHlw
ZWRlZiBzdHJ1Y3QgX0dka0V2ZW50IEdka0V2ZW50OworI2Vsc2UKIHR5cGVkZWYgdW5pb24gX0dk
a0V2ZW50IEdka0V2ZW50OworI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIElu
dFBvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1BvaW50ZXJM
b2NrTWFuYWdlcldheWxhbmQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1BvaW50
ZXJMb2NrTWFuYWdlcldheWxhbmQuY3BwCmluZGV4IDYxYmFlNTc5OGQ3ZS4uMWZhYWI2MjliNDg3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvUG9pbnRlckxvY2tNYW5h
Z2VyV2F5bGFuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1BvaW50ZXJM
b2NrTWFuYWdlcldheWxhbmQuY3BwCkBAIC0zMSw3ICszMSwxMSBAQAogI2luY2x1ZGUgIldlYlBh
Z2VQcm94eS5oIgogI2luY2x1ZGUgInBvaW50ZXItY29uc3RyYWludHMtdW5zdGFibGUtdjEtY2xp
ZW50LXByb3RvY29sLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9XbFVuaXF1ZVB0ci5oPgorI2lmIFVT
RShHVEs0KQorI2luY2x1ZGUgPGdkay93YXlsYW5kL2dka3dheWxhbmQuaD4KKyNlbHNlCiAjaW5j
bHVkZSA8Z2RrL2dka3dheWxhbmQuaD4KKyNlbmRpZgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KIAog
bmFtZXNwYWNlIFdlYktpdCB7CkBAIC05MSw5ICs5NSwxMSBAQCBib29sIFBvaW50ZXJMb2NrTWFu
YWdlcldheWxhbmQ6OmxvY2soKQogICAgIG1fcmVsYXRpdmVQb2ludGVyID0gendwX3JlbGF0aXZl
X3BvaW50ZXJfbWFuYWdlcl92MV9nZXRfcmVsYXRpdmVfcG9pbnRlcihtX3JlbGF0aXZlUG9pbnRl
ck1hbmFnZXIsIHBvaW50ZXIpOwogICAgIHp3cF9yZWxhdGl2ZV9wb2ludGVyX3YxX2FkZF9saXN0
ZW5lcihtX3JlbGF0aXZlUG9pbnRlciwgJnNfcmVsYXRpdmVQb2ludGVyTGlzdGVuZXIsIHRoaXMp
OwogCisjaWYgIVVTRShHVEs0KQogICAgIFJFTEVBU0VfQVNTRVJUKCFtX2xvY2tlZFBvaW50ZXIp
OwogICAgIGF1dG8qIHN1cmZhY2UgPSBnZGtfd2F5bGFuZF93aW5kb3dfZ2V0X3dsX3N1cmZhY2Uo
Z3RrX3dpZGdldF9nZXRfd2luZG93KG1fd2ViUGFnZS52aWV3V2lkZ2V0KCkpKTsKICAgICBtX2xv
Y2tlZFBvaW50ZXIgPSB6d3BfcG9pbnRlcl9jb25zdHJhaW50c192MV9sb2NrX3BvaW50ZXIobV9w
b2ludGVyQ29uc3RyYWludHMsIHN1cmZhY2UsIHBvaW50ZXIsIG51bGxwdHIsIFpXUF9QT0lOVEVS
X0NPTlNUUkFJTlRTX1YxX0xJRkVUSU1FX1BFUlNJU1RFTlQpOworI2VuZGlmCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9Qb2lu
dGVyTG9ja01hbmFnZXJYMTEuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1BvaW50
ZXJMb2NrTWFuYWdlclgxMS5jcHAKaW5kZXggMDNkODQxNjk3YzQxLi5mZWYyMTJiZjI1ZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9ja01hbmFnZXJY
MTEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9ja01hbmFn
ZXJYMTEuY3BwCkBAIC0yOSw3ICsyOSw5IEBACiAjaWYgUExBVEZPUk0oWDExKQogCiAjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5LmgiCisjaWYgIVVTRShHVEs0KQogI2luY2x1ZGUgPGdkay9nZGt4Lmg+
CisjZW5kaWYKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
NDIsNiArNDQsNyBAQCBQb2ludGVyTG9ja01hbmFnZXJYMTE6OlBvaW50ZXJMb2NrTWFuYWdlclgx
MShXZWJQYWdlUHJveHkmIHdlYlBhZ2UsIGNvbnN0IEdka0V2ZQogCiB2b2lkIFBvaW50ZXJMb2Nr
TWFuYWdlclgxMTo6ZGlkUmVjZWl2ZU1vdGlvbkV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCkK
IHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgZG91YmxlIGN1cnJlbnRYLCBjdXJyZW50WTsKICAgICBn
ZGtfZXZlbnRfZ2V0X3Jvb3RfY29vcmRzKGV2ZW50LCAmY3VycmVudFgsICZjdXJyZW50WSk7CiAg
ICAgZG91YmxlIGluaXRpYWxYLCBpbml0aWFsWTsKQEAgLTUxLDYgKzU0LDcgQEAgdm9pZCBQb2lu
dGVyTG9ja01hbmFnZXJYMTE6OmRpZFJlY2VpdmVNb3Rpb25FdmVudChjb25zdCBHZGtFdmVudCog
ZXZlbnQpCiAKICAgICBoYW5kbGVNb3Rpb24oSW50UG9pbnQoY3VycmVudFggLSBpbml0aWFsWCwg
Y3VycmVudFkgLSBpbml0aWFsWSkpOwogICAgIGdka19kZXZpY2Vfd2FycChtX2RldmljZSwgZ3Rr
X3dpZGdldF9nZXRfc2NyZWVuKG1fd2ViUGFnZS52aWV3V2lkZ2V0KCkpLCBpbml0aWFsWCwgaW5p
dGlhbFkpOworI2VuZGlmCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYkNvbG9yUGlja2VyR3RrLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5jcHAKaW5kZXggMTRjZjIx
MWU3ZDQyLi5mNjJkY2JiNjE3MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2d0ay9XZWJDb2xvclBpY2tlckd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL1dlYkNvbG9yUGlja2VyR3RrLmNwcApAQCAtMzAsOCArMzAsOCBAQAogCiAjaW5jbHVkZSAi
V2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtVdGlsaXRpZXMuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0d0a1ZlcnNpb25pbmcuaD4KICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5o
PgotI2luY2x1ZGUgPGd0ay9ndGsuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9X
ZWJDb250ZXh0TWVudVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9X
ZWJDb250ZXh0TWVudVByb3h5R3RrLmNwcAppbmRleCA1ZmFkMmZmN2YzNDEuLjQxMDMyYjg2YjRi
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51
UHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0
TWVudVByb3h5R3RrLmNwcApAQCAtNDcsNiArNDcsNyBAQCBzdGF0aWMgY29uc3QgY2hhciogZ0Nv
bnRleHRNZW51SXRlbUdyb3VwID0gIndlYmtpdENvbnRleHRNZW51IjsKIG5hbWVzcGFjZSBXZWJL
aXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKKyNpZiAhVVNFKEdUSzQpCiBzdGF0aWMg
dm9pZCBjb250ZXh0TWVudUl0ZW1BY3RpdmF0ZWRDYWxsYmFjayhHQWN0aW9uKiBhY3Rpb24sIEdW
YXJpYW50KiwgV2ViUGFnZVByb3h5KiBwYWdlKQogewogICAgIGF1dG8qIHN0YXRlVHlwZSA9IGdf
YWN0aW9uX2dldF9zdGF0ZV90eXBlKGFjdGlvbik7CkBAIC0xNTgsOSArMTU5LDExIEBAIHZvaWQg
V2ViQ29udGV4dE1lbnVQcm94eUd0azo6cG9wdWxhdGUoY29uc3QgVmVjdG9yPFJlZjxXZWJDb250
ZXh0TWVudUl0ZW0+PiYgaXRlCiAgICAgfQogICAgIGd0a19tZW51X3NoZWxsX2JpbmRfbW9kZWwo
R1RLX01FTlVfU0hFTEwobV9tZW51KSwgR19NRU5VX01PREVMKG1lbnUuZ2V0KCkpLCBudWxscHRy
LCBUUlVFKTsKIH0KKyNlbmRpZgogCiB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlHdGs6OnNob3co
KQogeworI2lmICFVU0UoR1RLNCkKICAgICBWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+
IHByb3Bvc2VkQVBJSXRlbXM7CiAgICAgZm9yIChhdXRvJiBpdGVtIDogbV9jb250ZXh0Lm1lbnVJ
dGVtcygpKSB7CiAgICAgICAgIGlmIChpdGVtLmFjdGlvbigpICE9IENvbnRleHRNZW51SXRlbVRh
Z1NoYXJlTWVudSkKQEAgLTE2OCwxMCArMTcxLDEyIEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94
eUd0azo6c2hvdygpCiAgICAgfQogCiAgICAgbV9wYWdlLT5jb250ZXh0TWVudUNsaWVudCgpLmdl
dENvbnRleHRNZW51RnJvbVByb3Bvc2VkTWVudSgqbV9wYWdlLCBXVEZNb3ZlKHByb3Bvc2VkQVBJ
SXRlbXMpLCBXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk6OmNyZWF0ZSh0aGlzKS5nZXQoKSwg
bV9jb250ZXh0LndlYkhpdFRlc3RSZXN1bHREYXRhKCksIG1fcGFnZS0+cHJvY2VzcygpLnRyYW5z
Zm9ybUhhbmRsZXNUb09iamVjdHMobV91c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOworI2VuZGlm
CiB9CiAKIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eUd0azo6c2hvd0NvbnRleHRNZW51V2l0aEl0
ZW1zKFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJdGVtPj4mJiBpdGVtcykKIHsKKyNpZiAhVVNF
KEdUSzQpCiAgICAgaWYgKCFpdGVtcy5pc0VtcHR5KCkpCiAgICAgICAgIHBvcHVsYXRlKGl0ZW1z
KTsKIApAQCAtMTg3LDIxICsxOTIsMjcgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5R3RrOjpz
aG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUkKICAgICBj
b25zdCBHZGtFdmVudCogZXZlbnQgPSBtb3VzZUV2ZW50ID8gbW91c2VFdmVudC0+bmF0aXZlRXZl
bnQoKSA6IDA7CiAgICAgZ3RrX21lbnVfYXR0YWNoX3RvX3dpZGdldChtX21lbnUsIEdUS19XSURH
RVQobV93ZWJWaWV3KSwgbnVsbHB0cik7CiAgICAgZ3RrX21lbnVfcG9wdXAobV9tZW51LCBudWxs
cHRyLCBudWxscHRyLCByZWludGVycHJldF9jYXN0PEd0a01lbnVQb3NpdGlvbkZ1bmM+KG1lbnVQ
b3NpdGlvbkZ1bmN0aW9uKSwgdGhpcywgZXZlbnQgPyBldmVudC0+YnV0dG9uLmJ1dHRvbiA6IDMs
IGV2ZW50ID8gZXZlbnQtPmJ1dHRvbi50aW1lIDogR0RLX0NVUlJFTlRfVElNRSk7CisjZW5kaWYK
IH0KIAogV2ViQ29udGV4dE1lbnVQcm94eUd0azo6V2ViQ29udGV4dE1lbnVQcm94eUd0ayhHdGtX
aWRnZXQqIHdlYlZpZXcsIFdlYlBhZ2VQcm94eSYgcGFnZSwgQ29udGV4dE1lbnVDb250ZXh0RGF0
YSYmIGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKICAgICA6IFdlYkNvbnRleHRN
ZW51UHJveHkoV1RGTW92ZShjb250ZXh0KSwgdXNlckRhdGEpCisjaWYgIVVTRShHVEs0KQogICAg
ICwgbV93ZWJWaWV3KHdlYlZpZXcpCiAgICAgLCBtX3BhZ2UoJnBhZ2UpCiAgICAgLCBtX21lbnUo
R1RLX01FTlUoZ3RrX21lbnVfbmV3KCkpKQorI2VuZGlmCiB7CisjaWYgIVVTRShHVEs0KQogICAg
IEdSZWZQdHI8R1NpbXBsZUFjdGlvbkdyb3VwPiBncm91cCA9IGFkb3B0R1JlZihnX3NpbXBsZV9h
Y3Rpb25fZ3JvdXBfbmV3KCkpOwogICAgIGd0a193aWRnZXRfaW5zZXJ0X2FjdGlvbl9ncm91cChH
VEtfV0lER0VUKG1fbWVudSksIGdDb250ZXh0TWVudUl0ZW1Hcm91cCwgR19BQ1RJT05fR1JPVVAo
Z3JvdXAuZ2V0KCkpKTsKICAgICB3ZWJraXRXZWJWaWV3QmFzZVNldEFjdGl2ZUNvbnRleHRNZW51
UHJveHkoV0VCS0lUX1dFQl9WSUVXX0JBU0UobV93ZWJWaWV3KSwgdGhpcyk7CisjZW5kaWYKIH0K
IAogV2ViQ29udGV4dE1lbnVQcm94eUd0azo6fldlYkNvbnRleHRNZW51UHJveHlHdGsoKQogewor
I2lmICFVU0UoR1RLNCkKICAgICBndGtfbWVudV9wb3Bkb3duKG1fbWVudSk7CiAKICAgICBmb3Ig
KGF1dG8mIGhhbmRsZXIgOiBtX3NpZ25hbEhhbmRsZXJzKQpAQCAtMjEwLDggKzIyMSwxMCBAQCBX
ZWJDb250ZXh0TWVudVByb3h5R3RrOjp+V2ViQ29udGV4dE1lbnVQcm94eUd0aygpCiAKICAgICBn
dGtfd2lkZ2V0X2luc2VydF9hY3Rpb25fZ3JvdXAoR1RLX1dJREdFVChtX21lbnUpLCBnQ29udGV4
dE1lbnVJdGVtR3JvdXAsIG51bGxwdHIpOwogICAgIGd0a193aWRnZXRfZGVzdHJveShHVEtfV0lE
R0VUKG1fbWVudSkpOworI2VuZGlmCiB9CiAKKyNpZiAhVVNFKEdUSzQpCiB2b2lkIFdlYkNvbnRl
eHRNZW51UHJveHlHdGs6Om1lbnVQb3NpdGlvbkZ1bmN0aW9uKEd0a01lbnUqIG1lbnUsIGdpbnQq
IHgsIGdpbnQqIHksIGdib29sZWFuKiBwdXNoSW4sIFdlYkNvbnRleHRNZW51UHJveHlHdGsqIHBv
cHVwTWVudSkKIHsKICAgICBHdGtSZXF1aXNpdGlvbiBtZW51U2l6ZTsKQEAgLTIyOCw2ICsyNDEs
NyBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlHdGs6Om1lbnVQb3NpdGlvbkZ1bmN0aW9uKEd0
a01lbnUqIG1lbnUsIGdpbnQqIHgsIGdpbnQqCiAKICAgICAqcHVzaEluID0gRkFMU0U7CiB9Cisj
ZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRf
TUVOVVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViQ29udGV4
dE1lbnVQcm94eUd0ay5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRN
ZW51UHJveHlHdGsuaAppbmRleCBlNWM1ZWEwYjNkYjAuLmFhMzM1ODlhMTliNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViQ29udGV4dE1lbnVQcm94eUd0ay5o
CkBAIC00OSwxMyArNDksMTYgQEAgcHVibGljOgogICAgIH0KICAgICB+V2ViQ29udGV4dE1lbnVQ
cm94eUd0aygpOwogCisjaWYgIVVTRShHVEs0KQogICAgIHZvaWQgcG9wdWxhdGUoY29uc3QgVmVj
dG9yPFdlYkNvbnRleHRNZW51SXRlbUdsaWI+Jik7CiAgICAgR3RrTWVudSogZ3RrTWVudSgpIGNv
bnN0IHsgcmV0dXJuIG1fbWVudTsgfQorI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgV2ViQ29udGV4
dE1lbnVQcm94eUd0ayhHdGtXaWRnZXQqLCBXZWJQYWdlUHJveHkmLCBDb250ZXh0TWVudUNvbnRl
eHREYXRhJiYsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzaG93KCkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVu
dUl0ZW0+PiYmKSBvdmVycmlkZTsKKyNpZiAhVVNFKEdUSzQpCiAgICAgdm9pZCBhcHBlbmQoR01l
bnUqLCBjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1HbGliJik7CiAgICAgR1JlZlB0cjxHTWVudT4g
YnVpbGRNZW51KGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1HbGliPiYpOwogICAgIHZv
aWQgcG9wdWxhdGUoY29uc3QgVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiYpOwpAQCAt
NjcsNiArNzAsNyBAQCBwcml2YXRlOgogICAgIEd0a01lbnUqIG1fbWVudTsKICAgICBXZWJDb3Jl
OjpJbnRQb2ludCBtX3BvcHVwUG9zaXRpb247CiAgICAgSGFzaE1hcDx1bnNpZ25lZCBsb25nLCB2
b2lkKj4gbV9zaWduYWxIYW5kbGVyczsKKyNlbmRpZgogfTsKIAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duR3Rr
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25z
RHJvcGRvd25HdGsuY3BwCmluZGV4IDZhMzY3ODkwNDAyYi4uNGQ2N2Q1ZjgyYzUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ry
b3Bkb3duR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViRGF0YUxp
c3RTdWdnZXN0aW9uc0Ryb3Bkb3duR3RrLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bkd0ay5o
IgogCi0jaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisjaWYgRU5BQkxFKERBVEFMSVNUX0VM
RU1FTlQpICYmICFVU0UoR1RLNCkKIAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24uaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRv
d25HdGsuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJEYXRhTGlzdFN1Z2dlc3Rp
b25zRHJvcGRvd25HdGsuaAppbmRleCA2NDA3ZDYyNjcyMzcuLjBmZGNiMTcwMDI3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNE
cm9wZG93bkd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJEYXRhTGlz
dFN1Z2dlc3Rpb25zRHJvcGRvd25HdGsuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQorI2lmIEVOQUJMRShEQVRBTElTVF9F
TEVNRU5UKSAmJiAhVVNFKEdUSzQpCiAKICNpbmNsdWRlICJXZWJEYXRhTGlzdFN1Z2dlc3Rpb25z
RHJvcGRvd24uaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dl
YlBhZ2VQcm94eUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUGFnZVBy
b3h5R3RrLmNwcAppbmRleCBlOThiMDUyMzYxNzAuLmFhYmY2MjZmMzI2YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBhZ2VQcm94eUd0ay5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBhZ2VQcm94eUd0ay5jcHAKQEAgLTM5LDkgKzM5
LDEyIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUGxhdGZvcm1EaXNwbGF5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyQWdlbnQuaD4K
LSNpbmNsdWRlIDxndGsvZ3RreC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgog
CisjaWYgUExBVEZPUk0oWDExKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKKyNpbmNs
dWRlIDxndGsvZ3RreC5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFdl
YlBhZ2VQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKQEAgLTkzLDcgKzk2LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnVwZGF0ZUVkaXRvclN0YXRlKGNvbnN0IEVkaXRvclN0YXRlJiBlZGl0b3JT
dGF0ZSkKICAgICBwYWdlQ2xpZW50KCkuc2VsZWN0aW9uRGlkQ2hhbmdlKCk7CiB9CiAKLSNpZiBQ
TEFURk9STShYMTEpCisjaWYgUExBVEZPUk0oWDExKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgR3RrV2lkZ2V0KiA+IFBsdWdpbldpbmRv
d01hcDsKIHN0YXRpYyBQbHVnaW5XaW5kb3dNYXAmIHBsdWdpbldpbmRvd01hcCgpCiB7CkBAIC0x
NDcsNyArMTUwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OndpbmRvd2VkUGx1Z2luVmlzaWJpbGl0
eURpZENoYW5nZShib29sIGlzVmlzaWJsZSwgdWludDY0X3Qgd2kKICAgICBlbHNlCiAgICAgICAg
IGd0a193aWRnZXRfaGlkZShwbHVnaW4pOwogfQotI2VuZGlmIC8vIFBMQVRGT1JNKFgxMSkKKyNl
bmRpZiAvLyBQTEFURk9STShYMTEpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogCiB2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0SW5wdXRNZXRob2RTdGF0ZShPcHRpb25hbDxJbnB1dE1ldGhv
ZFN0YXRlPiYmIHN0YXRlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0
ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5jcHAKaW5kZXggZjJiOTc0NTQ3YzM1Li40NjRkZTZjY2I5
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQ
cm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVu
dVByb3h5R3RrLmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIldlYlBvcHVwTWVudVByb3h5R3RrLmgiCiAKKyNpZiAhVVNFKEdUSzQpCisKICNpbmNs
dWRlICJOYXRpdmVXZWJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBJdGVtLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9HdGtVdGlsaXRpZXMuaD4KQEAgLTQ0MSwzICs0NDMsNSBAQCBib29s
IFdlYlBvcHVwTWVudVByb3h5R3RrOjp0eXBlQWhlYWRGaW5kKEdka0V2ZW50S2V5KiBldmVudCkK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaAppbmRleCA4N2QwYjZmNmRj
MDEuLjU1NzVjNzg4M2I4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3Rr
L1dlYlBvcHVwTWVudVByb3h5R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3Rr
L1dlYlBvcHVwTWVudVByb3h5R3RrLmgKQEAgLTIwLDYgKzIwLDcgQEAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHkuaCIKKyNpZiAhVVNFKEdUSzQpCiAjaW5jbHVk
ZSA8V2ViQ29yZS9HVW5pcXVlUHRyR3RrLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KQEAgLTg3LDMgKzg4LDUgQEAgcHJpdmF0ZToKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNvbnRyb2xsZXIuaAppbmRleCBiNTcyYWEzYTUz
NmQuLjYzMTM2YmYxYWEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpbkNvbnRyb2xsZXIuaApAQCAtMTQ0LDcgKzE0NCw3IEBAIHB1YmxpYzoKICAg
ICAvLyBEZWNyZW1lbnRzIGEgY291bnRlciB0aGF0LCB3aGVuIGl0IHJlYWNoZXMgMCwgc3RvcHMg
cHJldmVudGluZyB0aGUgcGx1Zy1pbiBmcm9tIGJlaW5nIGRlc3Ryb3llZC4KICAgICB2aXJ0dWFs
IHZvaWQgdW5wcm90ZWN0UGx1Z2luRnJvbURlc3RydWN0aW9uKCkgPSAwOwogCi0jaWYgUExBVEZP
Uk0oWDExKQorI2lmIFBMQVRGT1JNKFgxMSkgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
CiAgICAgLy8gQ3JlYXRlIGEgcGx1Z2luIGNvbnRhaW5lciBmb3Igd2luZG93ZWQgcGx1Z2lucwog
ICAgIHZpcnR1YWwgdWludDY0X3QgY3JlYXRlUGx1Z2luQ29udGFpbmVyKCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCB3aW5kb3dlZFBsdWdpbkdlb21ldHJ5RGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIGZyYW1lUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QsIHVp
bnQ2NF90IHdpbmRvd0lEKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IGViOTFlOTA5NDJlNC4uZjdmMjIwYWUzNWJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAt
NzMsNyArNzMsNyBAQAogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAotI2lmIFBMQVRGT1JNKFgxMSkKKyNpZiBQ
TEFURk9STShYMTEpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogI2luY2x1ZGUgPFdl
YkNvcmUvUGxhdGZvcm1EaXNwbGF5Lmg+CiAjZW5kaWYKIApAQCAtMTY4Miw3ICsxNjgyLDcgQEAg
dm9pZCBQbHVnaW5WaWV3OjpkaWRGYWlsTG9hZChXZWJGcmFtZSogd2ViRnJhbWUsIGJvb2wgd2Fz
Q2FuY2VsbGVkKQogICAgIG1fcGx1Z2luLT5mcmFtZURpZEZhaWwocmVxdWVzdC0+cmVxdWVzdElE
KCksIHdhc0NhbmNlbGxlZCk7CiB9CiAKLSNpZiBQTEFURk9STShYMTEpCisjaWYgUExBVEZPUk0o
WDExKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIHVpbnQ2NF90IFBsdWdpblZpZXc6
OmNyZWF0ZVBsdWdpbkNvbnRhaW5lcigpCiB7CiAgICAgdWludDY0X3Qgd2luZG93SUQgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCmluZGV4IDAz
YTkxYmNiOWE4MC4uYWM5NDgwNGRmY2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC0yMjYsNyArMjI2LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIGFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZCgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZvaWQgcHJvdGVjdFBsdWdpbkZyb21EZXN0cnVjdGlvbigpIG92ZXJyaWRl
OwogICAgIHZvaWQgdW5wcm90ZWN0UGx1Z2luRnJvbURlc3RydWN0aW9uKCkgb3ZlcnJpZGU7Ci0j
aWYgUExBVEZPUk0oWDExKQorI2lmIFBMQVRGT1JNKFgxMSkgJiYgRU5BQkxFKE5FVFNDQVBFX1BM
VUdJTl9BUEkpCiAgICAgdWludDY0X3QgY3JlYXRlUGx1Z2luQ29udGFpbmVyKCkgb3ZlcnJpZGU7
CiAgICAgdm9pZCB3aW5kb3dlZFBsdWdpbkdlb21ldHJ5RGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIGZyYW1lUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QsIHVp
bnQ2NF90IHdpbmRvd0lEKSBvdmVycmlkZTsKICAgICB2b2lkIHdpbmRvd2VkUGx1Z2luVmlzaWJp
bGl0eURpZENoYW5nZShib29sIGlzVmlzaWJsZSwgdWludDY0X3Qgd2luZG93SUQpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBl
MWQ4YjBiMGI3ZjAuLmE0YmZlNWU0NTI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQwOCw3ICs0MDgsNyBAQCBXZWJQYWdlOjpXZWJQYWdl
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCiAjaWYgRU5BQkxFKFBMQVRGT1JNX0RSSVZFTl9URVhUX0NIRUNLSU5HKQogICAgICwg
bV90ZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHkobWFrZVVuaXF1ZVJlZjxUZXh0Q2hlY2tpbmdD
b250cm9sbGVyUHJveHk+KCp0aGlzKSkKICNlbmRpZgotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQ
TEFURk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IChQTEFURk9STShHVEspICYmICFV
U0UoR1RLNCkpCiAgICAgLCBtX3ZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IobWFrZVVuaXF1
ZTxWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yPigqdGhpcykpCiAjZWxpZiBFTkFCTEUoQUND
RVNTSUJJTElUWSkgJiYgUExBVEZPUk0oR1RLKQogICAgICwgbV9hY2Nlc3NpYmlsaXR5T2JqZWN0
KG51bGxwdHIpCkBAIC0xNDQyLDcgKzE0NDIsNyBAQCB2b2lkIFdlYlBhZ2U6OmNsb3NlKCkKICNp
ZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgd2ViUHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1faWRlbnRpZmllcik7CiAjZW5kaWYKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZP
Uk0oR1RLKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCAoUExBVEZPUk0oR1RLKSAmJiAhVVNFKEdU
SzQpKQogICAgIG1fdmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3RvciA9IG51bGxwdHI7CiAjZW5k
aWYKIApAQCAtNDQ0Myw3ICs0NDQzLDcgQEAgdm9pZCBXZWJQYWdlOjptYWluRnJhbWVEaWRMYXlv
dXQoKQogICAgICAgICBtX2NhY2hlZFBhZ2VDb3VudCA9IHBhZ2VDb3VudDsKICAgICB9CiAKLSNp
ZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8
fCAoUExBVEZPUk0oR1RLKSAmJiAhVVNFKEdUSzQpKQogICAgIGlmIChtX3ZpZXdHZXN0dXJlR2Vv
bWV0cnlDb2xsZWN0b3IpCiAgICAgICAgIG1fdmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci0+
bWFpbkZyYW1lRGlkTGF5b3V0KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAzMGYwMjM1ZTc5MGIuLmNkNGYyZjI3ODAzNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTgxMiw3ICsxODEy
LDcgQEAgcHJpdmF0ZToKICAgICBVbmlxdWVSZWY8VGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5
PiBtX3RleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0o
Q09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgKFBMQVRGT1JN
KEdUSykgJiYgIVVTRShHVEs0KSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Vmlld0dlc3R1cmVHZW9t
ZXRyeUNvbGxlY3Rvcj4gbV92aWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yOwogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9BY2NlbGVy
YXRlZFN1cmZhY2VYMTEuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L0FjY2VsZXJhdGVkU3VyZmFjZVgxMS5jcHAKaW5kZXggZTNlYTg0NDc3OTkwLi42ZjFkNzQ3ZWUx
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9BY2Nl
bGVyYXRlZFN1cmZhY2VYMTEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VYMTEuY3BwCkBAIC0zNCw3ICszNCwxMSBAQAogI2lu
Y2x1ZGUgPFgxMS9YbGliLmg+CiAjaW5jbHVkZSA8WDExL2V4dGVuc2lvbnMvWGNvbXBvc2l0ZS5o
PgogI2luY2x1ZGUgPGNhaXJvLXhsaWIuaD4KKyNpZiBVU0UoR1RLNCkKKyNpbmNsdWRlIDxnZGsv
eDExL2dka3guaD4KKyNlbHNlCiAjaW5jbHVkZSA8Z2RrL2dka3guaD4KKyNlbmRpZgogI2luY2x1
ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDcsMTcgKzUxLDIw
IEBAIHN0ZDo6dW5pcXVlX3B0cjxBY2NlbGVyYXRlZFN1cmZhY2VYMTE+IEFjY2VsZXJhdGVkU3Vy
ZmFjZVgxMTo6Y3JlYXRlKFdlYlBhZ2UmIHdlCiAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxB
Y2NlbGVyYXRlZFN1cmZhY2VYMTE+KG5ldyBBY2NlbGVyYXRlZFN1cmZhY2VYMTEod2ViUGFnZSwg
Y2xpZW50KSk7CiB9CiAKKyNpZiAhVVNFKEdUSzQpCiBzdGF0aWMgR2RrVmlzdWFsKiBkZWZhdWx0
VmlzdWFsKCkKIHsKICAgICBpZiAoR2RrVmlzdWFsKiB2aXN1YWwgPSBnZGtfc2NyZWVuX2dldF9y
Z2JhX3Zpc3VhbChnZGtfc2NyZWVuX2dldF9kZWZhdWx0KCkpKQogICAgICAgICByZXR1cm4gdmlz
dWFsOwogICAgIHJldHVybiBnZGtfc2NyZWVuX2dldF9zeXN0ZW1fdmlzdWFsKGdka19zY3JlZW5f
Z2V0X2RlZmF1bHQoKSk7CiB9CisjZW5kaWYKIAogQWNjZWxlcmF0ZWRTdXJmYWNlWDExOjpBY2Nl
bGVyYXRlZFN1cmZhY2VYMTEoV2ViUGFnZSYgd2ViUGFnZSwgQ2xpZW50JiBjbGllbnQpCiAgICAg
OiBBY2NlbGVyYXRlZFN1cmZhY2Uod2ViUGFnZSwgY2xpZW50KQogICAgICwgbV9kaXNwbGF5KGRv
d25jYXN0PFBsYXRmb3JtRGlzcGxheVgxMT4oUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5
KCkpLm5hdGl2ZSgpKQogeworI2lmICFVU0UoR1RLNCkKICAgICBTY3JlZW4qIHNjcmVlbiA9IERl
ZmF1bHRTY3JlZW5PZkRpc3BsYXkobV9kaXNwbGF5KTsKIAogICAgIEFTU0VSVChkb3duY2FzdDxQ
bGF0Zm9ybURpc3BsYXlYMTE+KFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpKS5uYXRp
dmUoKSA9PSBtX2Rpc3BsYXkpOwpAQCAtMTEwLDYgKzExNyw3IEBAIEFjY2VsZXJhdGVkU3VyZmFj
ZVgxMTo6QWNjZWxlcmF0ZWRTdXJmYWNlWDExKFdlYlBhZ2UmIHdlYlBhZ2UsIENsaWVudCYgY2xp
ZW50KQogICAgIFhTZWxlY3RJbnB1dChtX2Rpc3BsYXksIG1fd2luZG93LmdldCgpLCBOb0V2ZW50
TWFzayk7CiAgICAgWENvbXBvc2l0ZVJlZGlyZWN0V2luZG93KG1fZGlzcGxheSwgbV93aW5kb3cu
Z2V0KCksIENvbXBvc2l0ZVJlZGlyZWN0TWFudWFsKTsKICAgICBjcmVhdGVQaXhtYXAoKTsKKyNl
bmRpZgogfQogCiBBY2NlbGVyYXRlZFN1cmZhY2VYMTE6On5BY2NlbGVyYXRlZFN1cmZhY2VYMTEo
KQpAQCAtMTI1LDEyICsxMzMsMTQgQEAgQWNjZWxlcmF0ZWRTdXJmYWNlWDExOjp+QWNjZWxlcmF0
ZWRTdXJmYWNlWDExKCkKIAogdm9pZCBBY2NlbGVyYXRlZFN1cmZhY2VYMTE6OmNyZWF0ZVBpeG1h
cCgpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIG1fcGl4bWFwID0gWENvbXBvc2l0ZU5hbWVXaW5k
b3dQaXhtYXAobV9kaXNwbGF5LCBtX3dpbmRvdy5nZXQoKSk7CiAgICAgUmVmUHRyPGNhaXJvX3N1
cmZhY2VfdD4gc3VyZmFjZSA9IGFkb3B0UmVmKGNhaXJvX3hsaWJfc3VyZmFjZV9jcmVhdGUobV9k
aXNwbGF5LCBtX3BpeG1hcC5nZXQoKSwgR0RLX1ZJU1VBTF9YVklTVUFMKGRlZmF1bHRWaXN1YWwo
KSksIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpKTsKICAgICBSZWZQdHI8Y2Fpcm9f
dD4gY3IgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUoc3VyZmFjZS5nZXQoKSkpOwogICAgIGNhaXJv
X3NldF9vcGVyYXRvcihjci5nZXQoKSwgQ0FJUk9fT1BFUkFUT1JfQ0xFQVIpOwogICAgIGNhaXJv
X3BhaW50KGNyLmdldCgpKTsKICAgICBYU3luYyhtX2Rpc3BsYXksIEZhbHNlKTsKKyNlbmRpZgog
fQogCiBib29sIEFjY2VsZXJhdGVkU3VyZmFjZVgxMTo6aG9zdFJlc2l6ZShjb25zdCBJbnRTaXpl
JiBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5jcHAKaW5kZXggMzFlZmYxMWY3YWUwLi5lOTEx
M2M5NmFlMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0
ay9XZWJQcmludE9wZXJhdGlvbkd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcApAQCAtNzM3LDcgKzczNyw3IEBA
IHZvaWQgV2ViUHJpbnRPcGVyYXRpb25HdGs6OnByaW50KGNhaXJvX3N1cmZhY2VfdCogc3VyZmFj
ZSwgZG91YmxlIHhEUEksIGRvdWJsZSB5CiAgICAgbV94RFBJID0geERQSTsKICAgICBtX3lEUEkg
PSB5RFBJOwogICAgIG1fY2Fpcm9Db250ZXh0ID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKHN1cmZh
Y2UpKTsKLQorI2lmICFVU0UoR1RLNCkKICAgICAvLyBNYWtlIHN1cmUgdGhlIHByaW50IHBhZ2Vz
IGlkbGUgaGFzIG1vcmUgcHJpb3JpdHkgdGhhbiBJUEMgbWVzc2FnZXMgY29tbWluZyBmcm9tCiAg
ICAgLy8gdGhlIElPIHRocmVhZCwgc28gdGhhdCB0aGUgRW5kUHJpbnRpbmcgbWVzc2FnZSBpcyBh
bHdheXMgaGFuZGxlZCBvbmNlIHRoZSBwcmludAogICAgIC8vIG9wZXJhdGlvbiBoYXMgZmluaXNo
ZWQuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyODAxLgpA
QCAtNzQ4LDYgKzc0OCw3IEBAIHZvaWQgV2ViUHJpbnRPcGVyYXRpb25HdGs6OnByaW50KGNhaXJv
X3N1cmZhY2VfdCogc3VyZmFjZSwgZG91YmxlIHhEUEksIGRvdWJsZSB5CiAgICAgICAgIEFTU0VS
VChtYWluTG9vcCk7CiAgICAgICAgIGdfbWFpbl9sb29wX3J1bihtYWluTG9vcCk7CiAgICAgfQor
I2VuZGlmCiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtl
IGIvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKaW5kZXggOTVmYzYwNjA1MGQyLi5iMTcw
MGIyM2NmNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCisrKyBi
L1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCkBAIC0xMjAsNyArMTIwLDExIEBAIFdFQktJ
VF9PUFRJT05fREVQRU5EKFVTRV9XUEVfUkVOREVSRVIgRU5BQkxFX1dBWUxBTkRfVEFSR0VUKQog
U0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoRU5BQkxFX0RFVkVMT1BFUl9NT0RFICR7REVWRUxPUEVS
X01PREV9KQogaWYgKERFVkVMT1BFUl9NT0RFKQogICAgIFdFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9NSU5JQlJPV1NFUiBQVUJMSUMgT04pCi0gICAgV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0FQSV9URVNUUyBQUklWQVRFIE9OKQorICAgIGlm
IChVU0VfR1RLNCkKKyAgICAgICAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX0FQSV9URVNUUyBQUklWQVRFIE9GRikKKyAgICBlbHNlICgpCisgICAgICAgIFdFQktJVF9P
UFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9BUElfVEVTVFMgUFJJVkFURSBPTikKKyAg
ICBlbmRpZiAoKQogZWxzZSAoKQogICAgIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9NSU5JQlJPV1NFUiBQVUJMSUMgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9BUElfVEVTVFMgUFJJVkFURSBPRkYpCkBAIC0yNjIsNiArMjY2
LDEwIEBAIGlmIChVU0VfTElCU0VDUkVUKQogICAgIGVuZGlmICgpCiBlbmRpZiAoKQogCitpZiAo
VVNFX0dUSzQpCisgICAgc2V0KEVOQUJMRV9JTlRST1NQRUNUSU9OIE9GRikKK2VuZGlmICgpCisK
IGlmIChFTkFCTEVfSU5UUk9TUEVDVElPTikKICAgICBmaW5kX3BhY2thZ2UoR09iamVjdEludHJv
c3BlY3Rpb24pCiAgICAgaWYgKE5PVCBJTlRST1NQRUNUSU9OX0ZPVU5EKQpAQCAtNDMyLDYgKzQ0
MCw3IEBAIHNldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUMkdUS19BUElfRElSICR7REVSSVZFRF9T
T1VSQ0VTX1dFQktJVDJHVEtfRElSfS93ZWJraXQyCiBzZXQoREVSSVZFRF9TT1VSQ0VTX0pBVkFT
Q1JJUENPUkVHVEtfRElSICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vamF2
YXNjcmlwdGNvcmVndGspCiBzZXQoREVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUENPUkVfR0xJQl9B
UElfRElSICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vamF2YXNjcmlwdGNv
cmVndGsvanNjKQogc2V0KEZPUldBUkRJTkdfSEVBREVSU19XRUJLSVQyR1RLX0RJUiAke0ZPUldB
UkRJTkdfSEVBREVSU19ESVJ9L3dlYmtpdDJndGspCitzZXQoRk9SV0FSRElOR19IRUFERVJTX1dF
QktJVDJHVEtfVkVSU0lPTkVEX0RJUiAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9L3dlYmtpdDJn
dGstJHtXRUJLSVRHVEtfQVBJX1ZFUlNJT059KQogc2V0KEZPUldBUkRJTkdfSEVBREVSU19XRUJL
SVQyR1RLX0VYVEVOU0lPTl9ESVIgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfS93ZWJraXQyZ3Rr
LXdlYmV4dGVuc2lvbikKIAogc2V0KEphdmFTY3JpcHRDb3JlX1BLR0NPTkZJR19GSUxFICR7Q01B
S0VfQklOQVJZX0RJUn0vU291cmNlL0phdmFTY3JpcHRDb3JlL2phdmFzY3JpcHRjb3JlZ3RrLSR7
V0VCS0lUR1RLX0FQSV9WRVJTSU9OfS5wYykKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwNzdhZjg2MjRhNDQuLjBmZGVkNDYwZjA3NSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2
IEBACisyMDIwLTA0LTI0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KKworICAgICAgICBbR1RLNF0gTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCB3aXRoIEdUSzQg
d2l0aG91dCBlcnJvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMDk2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJDZWxsUmVuZGVyZXJWYXJpYW50LmM6Cisg
ICAgICAgICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJDZWxsUmVuZGVyZXJWYXJpYW50Lmg6Cisg
ICAgICAgICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJEb3dubG9hZHNCYXIuYzoKKyAgICAgICAg
KiBNaW5pQnJvd3Nlci9ndGsvQnJvd3NlckRvd25sb2Fkc0Jhci5oOgorICAgICAgICAqIE1pbmlC
cm93c2VyL2d0ay9Ccm93c2VyTWFpbi5jOiBBZGRlZC4KKyAgICAgICAgKGJyb3dzZXJfbWFpbik6
CisgICAgICAgIChicm93c2VyX21haW5fcXVpdCk6CisgICAgICAgICogTWluaUJyb3dzZXIvZ3Rr
L0Jyb3dzZXJNYWluLmg6IEFkZGVkLgorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2Vy
U2VhcmNoQmFyLmM6CisgICAgICAgICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZWFyY2hCYXIu
aDoKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvQnJvd3NlclNldHRpbmdzRGlhbG9nLmM6Cisg
ICAgICAgICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZXR0aW5nc0RpYWxvZy5oOgorICAgICAg
ICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmM6CisgICAgICAgIChicm93c2VyVGFiQ29u
c3RydWN0ZWQpOgorICAgICAgICAoYnJvd3Nlcl90YWJfc3RhcnRfc2VhcmNoKToKKyAgICAgICAg
KGJyb3dzZXJfdGFiX3N0b3Bfc2VhcmNoKToKKyAgICAgICAgKGJyb3dzZXJfdGFiX2VudGVyX2Z1
bGxzY3JlZW4pOgorICAgICAgICAoYnJvd3Nlcl90YWJfbGVhdmVfZnVsbHNjcmVlbik6CisgICAg
ICAgICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuaDoKKyAgICAgICAgKiBNaW5pQnJvd3Nl
ci9ndGsvQnJvd3NlcldpbmRvdy5jOgorICAgICAgICAod2ViVmlld1VSSUNoYW5nZWQpOgorICAg
ICAgICAocmVzZXRFbnRyeVByb2dyZXNzKToKKyAgICAgICAgKHdlYlZpZXdMb2FkUHJvZ3Jlc3ND
aGFuZ2VkKToKKyAgICAgICAgKGRvd25sb2FkU3RhcnRlZCk6CisgICAgICAgIChicm93c2VyV2lu
ZG93VXBkYXRlTmF2aWdhdGlvbkFjdGlvbnMpOgorICAgICAgICAod2ViVmlld1JlYWR5VG9TaG93
KToKKyAgICAgICAgKGJyb3dzZXJXaW5kb3dVcGRhdGVab29tQWN0aW9ucyk6CisgICAgICAgICh3
ZWJWaWV3Wm9vbUxldmVsQ2hhbmdlZCk6CisgICAgICAgICh1cGRhdGVVcmlFbnRyeUljb24pOgor
ICAgICAgICAod2ViVmlld0lzTG9hZGluZ0NoYW5nZWQpOgorICAgICAgICAoYnJvd3NlcldpbmRv
d0ZpbmFsaXplKToKKyAgICAgICAgKGJyb3dzZXJXaW5kb3dTZXR1cEVkaXRvclRvb2xiYXIpOgor
ICAgICAgICAoYnJvd3NlcldpbmRvd1N3aXRjaFRhYik6CisgICAgICAgIChicm93c2VyX3dpbmRv
d19pbml0KToKKyAgICAgICAgKGJyb3dzZXJfd2luZG93X2NsYXNzX2luaXQpOgorICAgICAgICAo
YnJvd3Nlcl93aW5kb3dfbmV3KToKKyAgICAgICAgKGJyb3dzZXJfd2luZG93X2FwcGVuZF92aWV3
KToKKyAgICAgICAgKGJyb3dzZXJfd2luZG93X3NldF9iYWNrZ3JvdW5kX2NvbG9yKToKKyAgICAg
ICAgKGJyb3dzZXJfd2luZG93X2dldF9vcl9jcmVhdGVfd2ViX3ZpZXdfZm9yX2F1dG9tYXRpb24p
OgorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBN
aW5pQnJvd3Nlci9ndGsvbWFpbi5jOgorICAgICAgICAobWFpbik6CisgICAgICAgICogUGxhdGZv
cm1HVEsuY21ha2U6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ2xpYi9QbGF0Zm9ybUdUSy5jbWFrZToKKwogMjAy
MC0wNC0yMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIHN0
cmVzcy9lbnN1cmUtY3Jhc2guanMgc2hvdWxkbid0IHNwZXcgc3R1ZmYgb250byBteSBzY3JlZW4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyQ2VsbFJlbmRlcmVyVmFy
aWFudC5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJDZWxsUmVuZGVyZXJWYXJpYW50
LmMKaW5kZXggY2IyY2FhMzViMzExLi42ZjhhMjNjZjc2NTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01p
bmlCcm93c2VyL2d0ay9Ccm93c2VyQ2VsbFJlbmRlcmVyVmFyaWFudC5jCisrKyBiL1Rvb2xzL01p
bmlCcm93c2VyL2d0ay9Ccm93c2VyQ2VsbFJlbmRlcmVyVmFyaWFudC5jCkBAIC0yNyw2ICsyNyw4
IEBACiAjaW5jbHVkZSAiQnJvd3Nlck1hcnNoYWwuaCIKICNpbmNsdWRlIDxlcnJuby5oPgogCisj
aWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQorCiBlbnVtIHsKICAgICBQUk9QXzAsCiAK
QEAgLTM0NCwzICszNDYsNCBAQCBHdGtDZWxsUmVuZGVyZXIgKmJyb3dzZXJfY2VsbF9yZW5kZXJl
cl92YXJpYW50X25ldyh2b2lkKQogICAgIHJldHVybiBHVEtfQ0VMTF9SRU5ERVJFUihnX29iamVj
dF9uZXcoQlJPV1NFUl9UWVBFX0NFTExfUkVOREVSRVJfVkFSSUFOVCwgTlVMTCkpOwogfQogCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyQ2VsbFJlbmRl
cmVyVmFyaWFudC5oIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJDZWxsUmVuZGVyZXJW
YXJpYW50LmgKaW5kZXggNGZjZTNiYjYwNmE3Li5hNzkzYTFhNzYwMGQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyQ2VsbFJlbmRlcmVyVmFyaWFudC5oCisrKyBiL1Rv
b2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyQ2VsbFJlbmRlcmVyVmFyaWFudC5oCkBAIC0yOCw2
ICsyOCw4IEBACiAKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJ
T04oMywgOTgsIDApCisKIEdfQkVHSU5fREVDTFMKIAogI2RlZmluZSBCUk9XU0VSX1RZUEVfQ0VM
TF9SRU5ERVJFUl9WQVJJQU5UICAgICAgICAgICAgKGJyb3dzZXJfY2VsbF9yZW5kZXJlcl92YXJp
YW50X2dldF90eXBlKCkpCkBAIC00NywzICs0OSw1IEBAIEd0a0NlbGxSZW5kZXJlciogYnJvd3Nl
cl9jZWxsX3JlbmRlcmVyX3ZhcmlhbnRfbmV3KHZvaWQpOwogR19FTkRfREVDTFMKIAogI2VuZGlm
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJEb3du
bG9hZHNCYXIuYyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyRG93bmxvYWRzQmFyLmMK
aW5kZXggYjBlYzNjZTE0NzBmLi5lNzg4NGY1ZjU2YzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlC
cm93c2VyL2d0ay9Ccm93c2VyRG93bmxvYWRzQmFyLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIv
Z3RrL0Jyb3dzZXJEb3dubG9hZHNCYXIuYwpAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNt
YWtlY29uZmlnLmgiCiAjaW5jbHVkZSAiQnJvd3NlckRvd25sb2Fkc0Jhci5oIgogCisjaWYgIUdU
S19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQorCiAjaW5jbHVkZSA8Z2xpYi9naTE4bi5oPgogCiAj
ZGVmaW5lIEJST1dTRVJfVFlQRV9ET1dOTE9BRCAoYnJvd3Nlcl9kb3dubG9hZF9nZXRfdHlwZSgp
KQpAQCAtMjc1LDMgKzI3Nyw1IEBAIHZvaWQgYnJvd3Nlcl9kb3dubG9hZHNfYmFyX2FkZF9kb3du
bG9hZChCcm93c2VyRG93bmxvYWRzQmFyICpkb3dubG9hZHNCYXIsIFdlYktpCiAgICAgZ3RrX2Jv
eF9wYWNrX3N0YXJ0KEdUS19CT1goY29udGVudEJveCksIGJyb3dzZXJEb3dubG9hZCwgRkFMU0Us
IFRSVUUsIDApOwogICAgIGd0a193aWRnZXRfc2hvdyhicm93c2VyRG93bmxvYWQpOwogfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyRG93bmxvYWRz
QmFyLmggYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlckRvd25sb2Fkc0Jhci5oCmluZGV4
IDE3MDRhNWQwMTQ0Ni4uYjNkM2I2OTk5MDcxIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nl
ci9ndGsvQnJvd3NlckRvd25sb2Fkc0Jhci5oCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9C
cm93c2VyRG93bmxvYWRzQmFyLmgKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRlIDxndGsvZ3Rr
Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQyLmg+CiAKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJ
T04oMywgOTgsIDApCisKIEdfQkVHSU5fREVDTFMKIAogI2RlZmluZSBCUk9XU0VSX1RZUEVfRE9X
TkxPQURTX0JBUiAgICAgICAgICAgIChicm93c2VyX2Rvd25sb2Fkc19iYXJfZ2V0X3R5cGUoKSkK
QEAgLTQ5LDMgKzUxLDUgQEAgdm9pZCBicm93c2VyX2Rvd25sb2Fkc19iYXJfYWRkX2Rvd25sb2Fk
KEJyb3dzZXJEb3dubG9hZHNCYXIgKiwgV2ViS2l0RG93bmxvYWQgKikKIEdfRU5EX0RFQ0xTCiAK
ICNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93
c2VyTWFpbi5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJNYWluLmMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yNThmMTMwNGVkNzIKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3Nlck1haW4uYwpAQCAtMCwwICsxLDUw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJCcm93c2VyTWFpbi5oIgorCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDAp
CitzdGF0aWMgR01haW5Mb29wICptYWluTG9vcDsKKyNlbmRpZgorCit2b2lkIGJyb3dzZXJfbWFp
bigpCit7CisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCisgICAgbWFpbkxvb3AgPSBn
X21haW5fbG9vcF9uZXcoTlVMTCwgVFJVRSk7CisgICAgZ19tYWluX2xvb3BfcnVuKG1haW5Mb29w
KTsKKyNlbHNlCisgICAgZ3RrX21haW4oKTsKKyNlbmRpZgorfQorCit2b2lkIGJyb3dzZXJfbWFp
bl9xdWl0KCkKK3sKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKKyAgICBnX21haW5f
bG9vcF9xdWl0KG1haW5Mb29wKTsKKyAgICBnX21haW5fbG9vcF91bnJlZihtYWluTG9vcCk7Cisj
ZWxzZQorICAgIGd0a19tYWluX3F1aXQoKTsKKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
TWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJNYWluLmggYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJv
d3Nlck1haW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjIyY2Q4
MDM3YTBlYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2Vy
TWFpbi5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBCcm93c2VyTWFpbl9oCisjZGVmaW5lIEJyb3dzZXJN
YWluX2gKKworI2luY2x1ZGUgPGd0ay9ndGsuaD4KKworR19CRUdJTl9ERUNMUworCit2b2lkIGJy
b3dzZXJfbWFpbih2b2lkKTsKK3ZvaWQgYnJvd3Nlcl9tYWluX3F1aXQodm9pZCk7CisKK0dfRU5E
X0RFQ0xTCisKKyNlbmRpZiAvKiBCcm93c2VyTWFpbl9oICovCmRpZmYgLS1naXQgYS9Ub29scy9N
aW5pQnJvd3Nlci9ndGsvQnJvd3NlclNlYXJjaEJhci5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3Rr
L0Jyb3dzZXJTZWFyY2hCYXIuYwppbmRleCAyMjkzMGM0YzVlZmIuLjM1MTI0M2NiZDVhNiAxMDA2
NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZWFyY2hCYXIuYworKysgYi9U
b29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclNlYXJjaEJhci5jCkBAIC0yNiw2ICsyNiw4IEBA
CiAjaW5jbHVkZSAiY21ha2Vjb25maWcuaCIKICNpbmNsdWRlICJCcm93c2VyU2VhcmNoQmFyLmgi
CiAKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCisKIHN0YXRpYyBjb25zdCBjaGFy
ICpzZWFyY2hFbnRyeUZhaWxlZFN0eWxlID0gIkd0a0VudHJ5I3NlYXJjaEVudHJ5IHtiYWNrZ3Jv
dW5kLWNvbG9yOiAjZmY2NjY2O30iOwogCiBzdHJ1Y3QgX0Jyb3dzZXJTZWFyY2hCYXIgewpAQCAt
MjkxLDMgKzI5Myw1IEBAIHZvaWQgYnJvd3Nlcl9zZWFyY2hfYmFyX2Nsb3NlKEJyb3dzZXJTZWFy
Y2hCYXIgKnNlYXJjaEJhcikKICAgICBXZWJLaXRGaW5kQ29udHJvbGxlciAqY29udHJvbGxlciA9
IHdlYmtpdF93ZWJfdmlld19nZXRfZmluZF9jb250cm9sbGVyKHNlYXJjaEJhci0+d2ViVmlldyk7
CiAgICAgd2Via2l0X2ZpbmRfY29udHJvbGxlcl9zZWFyY2hfZmluaXNoKGNvbnRyb2xsZXIpOwog
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyU2Vh
cmNoQmFyLmggYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclNlYXJjaEJhci5oCmluZGV4
IDFkZThkOGFiYTJhMS4uOWJhYTIyZTc4ODExIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nl
ci9ndGsvQnJvd3NlclNlYXJjaEJhci5oCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93
c2VyU2VhcmNoQmFyLmgKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAj
aW5jbHVkZSA8d2Via2l0Mi93ZWJraXQyLmg+CiAKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywg
OTgsIDApCisKIEdfQkVHSU5fREVDTFMKIAogI2RlZmluZSBCUk9XU0VSX1RZUEVfU0VBUkNIX0JB
UiAgICAgICAgICAgIChicm93c2VyX3NlYXJjaF9iYXJfZ2V0X3R5cGUoKSkKQEAgLTU1LDMgKzU3
LDUgQEAgdm9pZCBicm93c2VyX3NlYXJjaF9iYXJfY2xvc2UoQnJvd3NlclNlYXJjaEJhciAqKTsK
IEdfRU5EX0RFQ0xTCiAKICNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlC
cm93c2VyL2d0ay9Ccm93c2VyU2V0dGluZ3NEaWFsb2cuYyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0
ay9Ccm93c2VyU2V0dGluZ3NEaWFsb2cuYwppbmRleCBmOTM1MGY4ZWM2MjIuLjE3OGYwNTM5ZDFi
NSAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZXR0aW5nc0RpYWxv
Zy5jCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyU2V0dGluZ3NEaWFsb2cuYwpA
QCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgIkJyb3dzZXJTZXR0aW5nc0RpYWxvZy5oIgogI2lu
Y2x1ZGUgIkJyb3dzZXJDZWxsUmVuZGVyZXJWYXJpYW50LmgiCiAKKyNpZiAhR1RLX0NIRUNLX1ZF
UlNJT04oMywgOTgsIDApCisKIGVudW0gewogICAgIFBST1BfMCwKIApAQCAtMjM2LDMgKzIzOCw0
IEBAIEd0a1dpZGdldCAqYnJvd3Nlcl9zZXR0aW5nc19kaWFsb2dfbmV3KFdlYktpdFNldHRpbmdz
ICpzZXR0aW5ncykKICAgICByZXR1cm4gR1RLX1dJREdFVChnX29iamVjdF9uZXcoQlJPV1NFUl9U
WVBFX1NFVFRJTkdTX0RJQUxPRywgInNldHRpbmdzIiwgc2V0dGluZ3MsIE5VTEwpKTsKIH0KIAor
I2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclNldHRpbmdz
RGlhbG9nLmggYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclNldHRpbmdzRGlhbG9nLmgK
aW5kZXggZjNkYmNkMDQyYzA0Li4yYzMzOTc3YzBmM2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlC
cm93c2VyL2d0ay9Ccm93c2VyU2V0dGluZ3NEaWFsb2cuaAorKysgYi9Ub29scy9NaW5pQnJvd3Nl
ci9ndGsvQnJvd3NlclNldHRpbmdzRGlhbG9nLmgKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRl
IDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQyLmg+CiAKKyNpZiAhR1RLX0NI
RUNLX1ZFUlNJT04oMywgOTgsIDApCisKIEdfQkVHSU5fREVDTFMKIAogI2RlZmluZSBCUk9XU0VS
X1RZUEVfU0VUVElOR1NfRElBTE9HICAgICAgICAgICAgKGJyb3dzZXJfc2V0dGluZ3NfZGlhbG9n
X2dldF90eXBlKCkpCkBAIC00OCwzICs1MCw1IEBAIEd0a1dpZGdldCogYnJvd3Nlcl9zZXR0aW5n
c19kaWFsb2dfbmV3KFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CiBHX0VORF9ERUNMUwogCiAj
ZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3Nl
clRhYi5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYwppbmRleCA5ZTk5Nzhl
ZmQzZDguLjZjMTc5YzRjOGZhOCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jy
b3dzZXJUYWIuYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jCkBAIC00
Miw3ICs0Miw5IEBAIHN0cnVjdCBfQnJvd3NlclRhYiB7CiAgICAgR3RrQm94IHBhcmVudDsKIAog
ICAgIFdlYktpdFdlYlZpZXcgKndlYlZpZXc7CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4
LCAwKQogICAgIEJyb3dzZXJTZWFyY2hCYXIgKnNlYXJjaEJhcjsKKyNlbmRpZgogICAgIEd0a1dp
ZGdldCAqc3RhdHVzTGFiZWw7CiAgICAgZ2Jvb2xlYW4gd2FzU2VhcmNoaW5nV2hlbkVudGVyZWRG
dWxsc2NyZWVuOwogICAgIGdib29sZWFuIGluc3BlY3RvcklzVmlzaWJsZTsKQEAgLTk1LDcgKzk3
LDcgQEAgc3RhdGljIGdjaGFyICpnZXRXZWJWaWV3T3JpZ2luKFdlYktpdFdlYlZpZXcgKndlYlZp
ZXcpCiAKICAgICByZXR1cm4gb3JpZ2luU3RyOwogfQotCisjaWYgIUdUS19DSEVDS19WRVJTSU9O
KDMsIDk4LCAwKQogc3RhdGljIHZvaWQgdGl0bGVDaGFuZ2VkKFdlYktpdFdlYlZpZXcgKndlYlZp
ZXcsIEdQYXJhbVNwZWMgKnBzcGVjLCBCcm93c2VyVGFiICp0YWIpCiB7CiAgICAgY29uc3QgY2hh
ciAqdGl0bGUgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3RpdGxlKHdlYlZpZXcpOwpAQCAtMzQzLDYg
KzM0NSw3IEBAIHN0YXRpYyBnYm9vbGVhbiBydW5Db2xvckNob29zZXJDYWxsYmFjayhXZWJLaXRX
ZWJWaWV3ICp3ZWJWaWV3LCBXZWJLaXRDb2xvckNob29zCiAKICAgICByZXR1cm4gVFJVRTsKIH0K
KyNlbmRpZgogCiBzdGF0aWMgZ2Jvb2xlYW4gaW5zcGVjdG9yT3BlbmVkSW5XaW5kb3coV2ViS2l0
V2ViSW5zcGVjdG9yICppbnNwZWN0b3IsIEJyb3dzZXJUYWIgKnRhYikKIHsKQEAgLTM5Miw2ICsz
OTUsNyBAQCBzdGF0aWMgdm9pZCBicm93c2VyVGFiQ29uc3RydWN0ZWQoR09iamVjdCAqZ09iamVj
dCkKIAogICAgIEdfT0JKRUNUX0NMQVNTKGJyb3dzZXJfdGFiX3BhcmVudF9jbGFzcyktPmNvbnN0
cnVjdGVkKGdPYmplY3QpOwogCisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAg
IHRhYi0+c2VhcmNoQmFyID0gQlJPV1NFUl9TRUFSQ0hfQkFSKGJyb3dzZXJfc2VhcmNoX2Jhcl9u
ZXcodGFiLT53ZWJWaWV3KSk7CiAgICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1godGFiKSwg
R1RLX1dJREdFVCh0YWItPnNlYXJjaEJhciksIEZBTFNFLCBGQUxTRSwgMCk7CiAKQEAgLTQyMiw3
ICs0MjYsMTEgQEAgc3RhdGljIHZvaWQgYnJvd3NlclRhYkNvbnN0cnVjdGVkKEdPYmplY3QgKmdP
YmplY3QpCiAKICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKG92ZXJsYXkpLCBH
VEtfV0lER0VUKHRhYi0+d2ViVmlldykpOwogICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VU
KHRhYi0+d2ViVmlldykpOworI2Vsc2UKKyAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJ
TkVSKHRhYiksIEdUS19XSURHRVQodGFiLT53ZWJWaWV3KSk7CisjZW5kaWYKIAorI2lmICFHVEtf
Q0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKICAgICB0YWItPnRpdGxlQm94ID0gZ3RrX2JveF9uZXco
R1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwsIDQpOwogCiAgICAgR3RrV2lkZ2V0ICpoYm94ID0g
Z3RrX2JveF9uZXcoR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwsIDYpOwpAQCAtNDYwLDYgKzQ2
OCw3IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJUYWJDb25zdHJ1Y3RlZChHT2JqZWN0ICpnT2JqZWN0
KQogICAgIGdfc2lnbmFsX2Nvbm5lY3QodGFiLT53ZWJWaWV3LCAibG9hZC1mYWlsZWQtd2l0aC10
bHMtZXJyb3JzIiwgR19DQUxMQkFDSyhsb2FkRmFpbGVkV2l0aFRMU2Vycm9ycyksIHRhYik7CiAg
ICAgZ19zaWduYWxfY29ubmVjdCh0YWItPndlYlZpZXcsICJwZXJtaXNzaW9uLXJlcXVlc3QiLCBH
X0NBTExCQUNLKGRlY2lkZVBlcm1pc3Npb25SZXF1ZXN0KSwgdGFiKTsKICAgICBnX3NpZ25hbF9j
b25uZWN0KHRhYi0+d2ViVmlldywgInJ1bi1jb2xvci1jaG9vc2VyIiwgR19DQUxMQkFDSyhydW5D
b2xvckNob29zZXJDYWxsYmFjayksIHRhYik7CisjZW5kaWYKIAogICAgIFdlYktpdFdlYkluc3Bl
Y3RvciAqaW5zcGVjdG9yID0gd2Via2l0X3dlYl92aWV3X2dldF9pbnNwZWN0b3IodGFiLT53ZWJW
aWV3KTsKICAgICBnX3NpZ25hbF9jb25uZWN0KGluc3BlY3RvciwgIm9wZW4td2luZG93IiwgR19D
QUxMQkFDSyhpbnNwZWN0b3JPcGVuZWRJbldpbmRvdyksIHRhYik7CkBAIC01NjIsMTkgKzU3MSwy
MiBAQCB2b2lkIGJyb3dzZXJfdGFiX3RvZ2dsZV9pbnNwZWN0b3IoQnJvd3NlclRhYiAqdGFiKQog
dm9pZCBicm93c2VyX3RhYl9zdGFydF9zZWFyY2goQnJvd3NlclRhYiAqdGFiKQogewogICAgIGdf
cmV0dXJuX2lmX2ZhaWwoQlJPV1NFUl9JU19UQUIodGFiKSk7Ci0KKyNpZiAhR1RLX0NIRUNLX1ZF
UlNJT04oMywgOTgsIDApCiAgICAgaWYgKCFndGtfd2lkZ2V0X2dldF92aXNpYmxlKEdUS19XSURH
RVQodGFiLT5zZWFyY2hCYXIpKSkKICAgICAgICAgYnJvd3Nlcl9zZWFyY2hfYmFyX29wZW4odGFi
LT5zZWFyY2hCYXIpOworI2VuZGlmCiB9CiAKIHZvaWQgYnJvd3Nlcl90YWJfc3RvcF9zZWFyY2go
QnJvd3NlclRhYiAqdGFiKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoQlJPV1NFUl9JU19UQUIo
dGFiKSk7Ci0KKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAgaWYgKGd0a193
aWRnZXRfZ2V0X3Zpc2libGUoR1RLX1dJREdFVCh0YWItPnNlYXJjaEJhcikpKQogICAgICAgICBi
cm93c2VyX3NlYXJjaF9iYXJfY2xvc2UodGFiLT5zZWFyY2hCYXIpOworI2VuZGlmCiB9CiAKKyNp
ZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiB2b2lkIGJyb3dzZXJfdGFiX2FkZF9hY2Nl
bGVyYXRvcnMoQnJvd3NlclRhYiAqdGFiLCBHdGtBY2NlbEdyb3VwICphY2NlbEdyb3VwKQogewog
ICAgIGdfcmV0dXJuX2lmX2ZhaWwoQlJPV1NFUl9JU19UQUIodGFiKSk7CkBAIC01ODIsNiArNTk0
LDcgQEAgdm9pZCBicm93c2VyX3RhYl9hZGRfYWNjZWxlcmF0b3JzKEJyb3dzZXJUYWIgKnRhYiwg
R3RrQWNjZWxHcm91cCAqYWNjZWxHcm91cCkKIAogICAgIGJyb3dzZXJfc2VhcmNoX2Jhcl9hZGRf
YWNjZWxlcmF0b3JzKHRhYi0+c2VhcmNoQmFyLCBhY2NlbEdyb3VwKTsKIH0KKyNlbmRpZgogCiBz
dGF0aWMgZ2Jvb2xlYW4gZnVsbFNjcmVlbk1lc3NhZ2VUaW1lb3V0Q2FsbGJhY2soQnJvd3NlclRh
YiAqdGFiKQogewpAQCAtNjA3LDggKzYyMCwxMCBAQCB2b2lkIGJyb3dzZXJfdGFiX2VudGVyX2Z1
bGxzY3JlZW4oQnJvd3NlclRhYiAqdGFiKQogICAgIHRhYi0+ZnVsbFNjcmVlbk1lc3NhZ2VMYWJl
bElkID0gZ190aW1lb3V0X2FkZF9zZWNvbmRzKDIsIChHU291cmNlRnVuYylmdWxsU2NyZWVuTWVz
c2FnZVRpbWVvdXRDYWxsYmFjaywgdGFiKTsKICAgICBnX3NvdXJjZV9zZXRfbmFtZV9ieV9pZCh0
YWItPmZ1bGxTY3JlZW5NZXNzYWdlTGFiZWxJZCwgIltXZWJLaXRdIGZ1bGxTY3JlZW5NZXNzYWdl
VGltZW91dENhbGxiYWNrIik7CiAKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiAg
ICAgdGFiLT53YXNTZWFyY2hpbmdXaGVuRW50ZXJlZEZ1bGxzY3JlZW4gPSBndGtfd2lkZ2V0X2dl
dF92aXNpYmxlKEdUS19XSURHRVQodGFiLT5zZWFyY2hCYXIpKTsKICAgICBicm93c2VyX3RhYl9z
dG9wX3NlYXJjaCh0YWIpOworI2VuZGlmCiB9CiAKIHZvaWQgYnJvd3Nlcl90YWJfbGVhdmVfZnVs
bHNjcmVlbihCcm93c2VyVGFiICp0YWIpCkBAIC02MjIsNiArNjM3LDcgQEAgdm9pZCBicm93c2Vy
X3RhYl9sZWF2ZV9mdWxsc2NyZWVuKEJyb3dzZXJUYWIgKnRhYikKIAogICAgIGd0a193aWRnZXRf
aGlkZSh0YWItPmZ1bGxTY3JlZW5NZXNzYWdlTGFiZWwpOwogCisjaWYgIUdUS19DSEVDS19WRVJT
SU9OKDMsIDk4LCAwKQogICAgIGlmICh0YWItPndhc1NlYXJjaGluZ1doZW5FbnRlcmVkRnVsbHNj
cmVlbikgewogICAgICAgICAvKiBPcGVuaW5nIHRoZSBzZWFyY2ggYmFyIHN0ZWFscyB0aGUgZm9j
dXMuIFVzdWFsbHksIHdlIHdhbnQKICAgICAgICAgICogdGhpcyBidXQgbm90IHdoZW4gY29taW5n
IGJhY2sgZnJvbSBmdWxsc2NyZWVuLgpAQCAtNjMxLDYgKzY0Nyw3IEBAIHZvaWQgYnJvd3Nlcl90
YWJfbGVhdmVfZnVsbHNjcmVlbihCcm93c2VyVGFiICp0YWIpCiAgICAgICAgIGJyb3dzZXJfdGFi
X3N0YXJ0X3NlYXJjaCh0YWIpOwogICAgICAgICBndGtfd2luZG93X3NldF9mb2N1cyh3aW5kb3cs
IGZvY3VzV2lkZ2V0KTsKICAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBicm93c2VyX3RhYl9zZXRf
YmFja2dyb3VuZF9jb2xvcihCcm93c2VyVGFiICp0YWIsIEdka1JHQkEgKnJnYmEpCmRpZmYgLS1n
aXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5oIGIvVG9vbHMvTWluaUJyb3dz
ZXIvZ3RrL0Jyb3dzZXJUYWIuaAppbmRleCBkNDU1NzM3NDE1YzUuLmM1MGE4MDk3ZTAyOCAxMDA2
NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuaAorKysgYi9Ub29scy9N
aW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5oCkBAIC01MSw3ICs1MSw5IEBAIHZvaWQgYnJvd3Nl
cl90YWJfc2V0X3N0YXR1c190ZXh0KEJyb3dzZXJUYWIqLCBjb25zdCBjaGFyKiB0ZXh0KTsKIHZv
aWQgYnJvd3Nlcl90YWJfdG9nZ2xlX2luc3BlY3RvcihCcm93c2VyVGFiKik7CiB2b2lkIGJyb3dz
ZXJfdGFiX3N0YXJ0X3NlYXJjaChCcm93c2VyVGFiKik7CiB2b2lkIGJyb3dzZXJfdGFiX3N0b3Bf
c2VhcmNoKEJyb3dzZXJUYWIqKTsKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiB2
b2lkIGJyb3dzZXJfdGFiX2FkZF9hY2NlbGVyYXRvcnMoQnJvd3NlclRhYiosIEd0a0FjY2VsR3Jv
dXAqKTsKKyNlbmRpZgogdm9pZCBicm93c2VyX3RhYl9lbnRlcl9mdWxsc2NyZWVuKEJyb3dzZXJU
YWIqKTsKIHZvaWQgYnJvd3Nlcl90YWJfbGVhdmVfZnVsbHNjcmVlbihCcm93c2VyVGFiKik7CiB2
b2lkIGJyb3dzZXJfdGFiX3NldF9iYWNrZ3JvdW5kX2NvbG9yKEJyb3dzZXJUYWIqLCBHZGtSR0JB
Kik7CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jIGIv
VG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYwppbmRleCAyMWMzYzNkMzZiOGIu
LjUzYzU2NGY0NTQzZCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJX
aW5kb3cuYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQnJvd3NlcldpbmRvdy5oIgogCiAjaW5jbHVkZSAiQnJv
d3NlckRvd25sb2Fkc0Jhci5oIgorI2luY2x1ZGUgIkJyb3dzZXJNYWluLmgiCiAjaW5jbHVkZSAi
QnJvd3NlclNlYXJjaEJhci5oIgogI2luY2x1ZGUgIkJyb3dzZXJTZXR0aW5nc0RpYWxvZy5oIgog
I2luY2x1ZGUgIkJyb3dzZXJUYWIuaCIKQEAgLTQyLDcgKzQzLDkgQEAgc3RydWN0IF9Ccm93c2Vy
V2luZG93IHsKIAogICAgIFdlYktpdFdlYkNvbnRleHQgKndlYkNvbnRleHQ7CiAKKyNpZiAhR1RL
X0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAgR3RrQWNjZWxHcm91cCAqYWNjZWxHcm91cDsK
KyNlbmRpZgogICAgIEd0a1dpZGdldCAqbWFpbkJveDsKICAgICBHdGtXaWRnZXQgKnRvb2xiYXI7
CiAgICAgR3RrV2lkZ2V0ICp1cmlFbnRyeTsKQEAgLTEwMCw2ICsxMDMsNyBAQCBzdGF0aWMgdm9p
ZCByZXNldFN0YXR1c1RleHQoR3RrV2lkZ2V0ICp3aWRnZXQsIEJyb3dzZXJXaW5kb3cgKndpbmRv
dykKICAgICBicm93c2VyV2luZG93U2V0U3RhdHVzVGV4dCh3aW5kb3csIE5VTEwpOwogfQogCisj
aWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogc3RhdGljIHZvaWQgYWN0aXZhdGVVcmlF
bnRyeUNhbGxiYWNrKEJyb3dzZXJXaW5kb3cgKndpbmRvdykKIHsKICAgICBicm93c2VyX3dpbmRv
d19sb2FkX3VyaSh3aW5kb3csIGd0a19lbnRyeV9nZXRfdGV4dChHVEtfRU5UUlkod2luZG93LT51
cmlFbnRyeSkpKTsKQEAgLTEzOSwxNSArMTQzLDE4IEBAIHN0YXRpYyB2b2lkIHNldHRpbmdzQ2Fs
bGJhY2soQnJvd3NlcldpbmRvdyAqd2luZG93KQogICAgIGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50
ZXIoR19PQkpFQ1Qod2luZG93LT5zZXR0aW5nc0RpYWxvZyksIChncG9pbnRlciAqKSZ3aW5kb3ct
PnNldHRpbmdzRGlhbG9nKTsKICAgICBndGtfd2lkZ2V0X3Nob3cod2luZG93LT5zZXR0aW5nc0Rp
YWxvZyk7CiB9CisjZW5kaWYKIAogc3RhdGljIHZvaWQgd2ViVmlld1VSSUNoYW5nZWQoV2ViS2l0
V2ViVmlldyAqd2ViVmlldywgR1BhcmFtU3BlYyAqcHNwZWMsIEJyb3dzZXJXaW5kb3cgKndpbmRv
dykKIHsKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAgY2hhciAqZXh0ZXJu
YWxVUkkgPSBnZXRFeHRlcm5hbFVSSSh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3VyaSh3ZWJWaWV3KSk7
CiAgICAgaWYgKGV4dGVybmFsVVJJKSB7CiAgICAgICAgIGd0a19lbnRyeV9zZXRfdGV4dChHVEtf
RU5UUlkod2luZG93LT51cmlFbnRyeSksIGV4dGVybmFsVVJJKTsKICAgICAgICAgZ19mcmVlKGV4
dGVybmFsVVJJKTsKICAgICB9IGVsc2UKICAgICAgICAgZ3RrX2VudHJ5X3NldF90ZXh0KEdUS19F
TlRSWSh3aW5kb3ctPnVyaUVudHJ5KSwgIiIpOworI2VuZGlmCiB9CiAKIHN0YXRpYyB2b2lkIHdl
YlZpZXdUaXRsZUNoYW5nZWQoV2ViS2l0V2ViVmlldyAqd2ViVmlldywgR1BhcmFtU3BlYyAqcHNw
ZWMsIEJyb3dzZXJXaW5kb3cgKndpbmRvdykKQEAgLTE2Niw3ICsxNzMsOSBAQCBzdGF0aWMgdm9p
ZCB3ZWJWaWV3VGl0bGVDaGFuZ2VkKFdlYktpdFdlYlZpZXcgKndlYlZpZXcsIEdQYXJhbVNwZWMg
KnBzcGVjLCBCcm93cwogCiBzdGF0aWMgZ2Jvb2xlYW4gcmVzZXRFbnRyeVByb2dyZXNzKEJyb3dz
ZXJXaW5kb3cgKndpbmRvdykKIHsKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiAg
ICAgZ3RrX2VudHJ5X3NldF9wcm9ncmVzc19mcmFjdGlvbihHVEtfRU5UUlkod2luZG93LT51cmlF
bnRyeSksIDApOworI2VuZGlmCiAgICAgd2luZG93LT5yZXNldEVudHJ5UHJvZ3Jlc3NUaW1lb3V0
SWQgPSAwOwogICAgIHJldHVybiBGQUxTRTsKIH0KQEAgLTE3NCw3ICsxODMsOSBAQCBzdGF0aWMg
Z2Jvb2xlYW4gcmVzZXRFbnRyeVByb2dyZXNzKEJyb3dzZXJXaW5kb3cgKndpbmRvdykKIHN0YXRp
YyB2b2lkIHdlYlZpZXdMb2FkUHJvZ3Jlc3NDaGFuZ2VkKFdlYktpdFdlYlZpZXcgKndlYlZpZXcs
IEdQYXJhbVNwZWMgKnBzcGVjLCBCcm93c2VyV2luZG93ICp3aW5kb3cpCiB7CiAgICAgZ2RvdWJs
ZSBwcm9ncmVzcyA9IHdlYmtpdF93ZWJfdmlld19nZXRfZXN0aW1hdGVkX2xvYWRfcHJvZ3Jlc3Mo
d2ViVmlldyk7CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAgIGd0a19lbnRy
eV9zZXRfcHJvZ3Jlc3NfZnJhY3Rpb24oR1RLX0VOVFJZKHdpbmRvdy0+dXJpRW50cnkpLCBwcm9n
cmVzcyk7CisjZW5kaWYKICAgICBpZiAocHJvZ3Jlc3MgPT0gMS4wKSB7CiAgICAgICAgIHdpbmRv
dy0+cmVzZXRFbnRyeVByb2dyZXNzVGltZW91dElkID0gZ190aW1lb3V0X2FkZCg1MDAsIChHU291
cmNlRnVuYylyZXNldEVudHJ5UHJvZ3Jlc3MsIHdpbmRvdyk7CiAgICAgICAgIGdfc291cmNlX3Nl
dF9uYW1lX2J5X2lkKHdpbmRvdy0+cmVzZXRFbnRyeVByb2dyZXNzVGltZW91dElkLCAiW1dlYktp
dF0gcmVzZXRFbnRyeVByb2dyZXNzIik7CkBAIC0xODYsNiArMTk3LDcgQEAgc3RhdGljIHZvaWQg
d2ViVmlld0xvYWRQcm9ncmVzc0NoYW5nZWQoV2ViS2l0V2ViVmlldyAqd2ViVmlldywgR1BhcmFt
U3BlYyAqcHNwZWMKIAogc3RhdGljIHZvaWQgZG93bmxvYWRTdGFydGVkKFdlYktpdFdlYkNvbnRl
eHQgKndlYkNvbnRleHQsIFdlYktpdERvd25sb2FkICpkb3dubG9hZCwgQnJvd3NlcldpbmRvdyAq
d2luZG93KQogeworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKICAgICBpZiAoIXdp
bmRvdy0+ZG93bmxvYWRzQmFyKSB7CiAgICAgICAgIHdpbmRvdy0+ZG93bmxvYWRzQmFyID0gYnJv
d3Nlcl9kb3dubG9hZHNfYmFyX25ldygpOwogICAgICAgICBndGtfYm94X3BhY2tfc3RhcnQoR1RL
X0JPWCh3aW5kb3ctPm1haW5Cb3gpLCB3aW5kb3ctPmRvd25sb2Fkc0JhciwgRkFMU0UsIEZBTFNF
LCAwKTsKQEAgLTE5NCw4ICsyMDYsMTAgQEAgc3RhdGljIHZvaWQgZG93bmxvYWRTdGFydGVkKFdl
YktpdFdlYkNvbnRleHQgKndlYkNvbnRleHQsIFdlYktpdERvd25sb2FkICpkb3dubG8KICAgICAg
ICAgZ3RrX3dpZGdldF9zaG93KHdpbmRvdy0+ZG93bmxvYWRzQmFyKTsKICAgICB9CiAgICAgYnJv
d3Nlcl9kb3dubG9hZHNfYmFyX2FkZF9kb3dubG9hZChCUk9XU0VSX0RPV05MT0FEU19CQVIod2lu
ZG93LT5kb3dubG9hZHNCYXIpLCBkb3dubG9hZCk7CisjZW5kaWYKIH0KIAorI2lmICFHVEtfQ0hF
Q0tfVkVSU0lPTigzLCA5OCwgMCkKIHN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dIaXN0b3J5SXRl
bVNlbGVjdGVkKEJyb3dzZXJXaW5kb3cgKndpbmRvdywgR3RrTWVudUl0ZW0gKml0ZW0pCiB7CiAg
ICAgR3RrQWN0aW9uICphY3Rpb24gPSBndGtfYWN0aXZhdGFibGVfZ2V0X3JlbGF0ZWRfYWN0aW9u
KEdUS19BQ1RJVkFUQUJMRShpdGVtKSk7CkBAIC0yNDAsOSArMjU0LDExIEBAIHN0YXRpYyBHdGtX
aWRnZXQgKmJyb3dzZXJXaW5kb3dDcmVhdGVCYWNrRm9yd2FyZE1lbnUoQnJvd3NlcldpbmRvdyAq
d2luZG93LCBHTGlzCiAKICAgICByZXR1cm4gbWVudTsKIH0KKyNlbmRpZgogCiBzdGF0aWMgdm9p
ZCBicm93c2VyV2luZG93VXBkYXRlTmF2aWdhdGlvbkFjdGlvbnMoQnJvd3NlcldpbmRvdyAqd2lu
ZG93LCBXZWJLaXRCYWNrRm9yd2FyZExpc3QgKmJhY2tGb3J3YXJkbGlzdCkKIHsKKyNpZiAhR1RL
X0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAgV2ViS2l0V2ViVmlldyAqd2ViVmlldyA9IGJy
b3dzZXJfdGFiX2dldF93ZWJfdmlldyh3aW5kb3ctPmFjdGl2ZVRhYik7CiAgICAgZ3RrX3dpZGdl
dF9zZXRfc2Vuc2l0aXZlKHdpbmRvdy0+YmFja0l0ZW0sIHdlYmtpdF93ZWJfdmlld19jYW5fZ29f
YmFjayh3ZWJWaWV3KSk7CiAgICAgZ3RrX3dpZGdldF9zZXRfc2Vuc2l0aXZlKHdpbmRvdy0+Zm9y
d2FyZEl0ZW0sIHdlYmtpdF93ZWJfdmlld19jYW5fZ29fZm9yd2FyZCh3ZWJWaWV3KSk7CkBAIC0y
NTYsNiArMjcyLDcgQEAgc3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd1VwZGF0ZU5hdmlnYXRpb25B
Y3Rpb25zKEJyb3dzZXJXaW5kb3cgKndpbmRvdywgV2ViS2l0QmEKICAgICBndGtfbWVudV90b29s
X2J1dHRvbl9zZXRfbWVudShHVEtfTUVOVV9UT09MX0JVVFRPTih3aW5kb3ctPmZvcndhcmRJdGVt
KSwKICAgICAgICAgYnJvd3NlcldpbmRvd0NyZWF0ZUJhY2tGb3J3YXJkTWVudSh3aW5kb3csIGxp
c3QpKTsKICAgICBnX2xpc3RfZnJlZShsaXN0KTsKKyNlbmRpZgogfQogCiBzdGF0aWMgdm9pZCBi
cm93c2VyV2luZG93VHJ5Q2xvc2VDdXJyZW50V2ViVmlldyhCcm93c2VyV2luZG93ICp3aW5kb3cp
CkBAIC0zMTYsOCArMzMzLDEwIEBAIHN0YXRpYyB2b2lkIHdlYlZpZXdSZWFkeVRvU2hvdyhXZWJL
aXRXZWJWaWV3ICp3ZWJWaWV3LCBCcm93c2VyV2luZG93ICp3aW5kb3cpCiAKICAgICBHZGtSZWN0
YW5nbGUgZ2VvbWV0cnk7CiAgICAgd2Via2l0X3dpbmRvd19wcm9wZXJ0aWVzX2dldF9nZW9tZXRy
eSh3aW5kb3dQcm9wZXJ0aWVzLCAmZ2VvbWV0cnkpOworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigz
LCA5OCwgMCkKICAgICBpZiAoZ2VvbWV0cnkueCA+PSAwICYmIGdlb21ldHJ5LnkgPj0gMCkKICAg
ICAgICAgZ3RrX3dpbmRvd19tb3ZlKEdUS19XSU5ET1cod2luZG93KSwgZ2VvbWV0cnkueCwgZ2Vv
bWV0cnkueSk7CisjZW5kaWYKICAgICBpZiAoZ2VvbWV0cnkud2lkdGggPiAwICYmIGdlb21ldHJ5
LmhlaWdodCA+IDApCiAgICAgICAgIGd0a193aW5kb3dfcmVzaXplKEdUS19XSU5ET1cod2luZG93
KSwgZ2VvbWV0cnkud2lkdGgsIGdlb21ldHJ5LmhlaWdodCk7CiAKQEAgLTQzOSw2ICs0NTgsNyBA
QCBzdGF0aWMgZ2Jvb2xlYW4gYnJvd3NlcldpbmRvd1pvb21PdXQoQnJvd3NlcldpbmRvdyAqd2lu
ZG93KQogICAgIHJldHVybiBGQUxTRTsKIH0KIAorI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5
OCwgMCkKIHN0YXRpYyBnYm9vbGVhbiBzY3JvbGxFdmVudENhbGxiYWNrKFdlYktpdFdlYlZpZXcg
KndlYlZpZXcsIGNvbnN0IEdka0V2ZW50U2Nyb2xsICpldmVudCwgQnJvd3NlcldpbmRvdyAqd2lu
ZG93KQogewogICAgIEdka01vZGlmaWVyVHlwZSBtb2QgPSBndGtfYWNjZWxlcmF0b3JfZ2V0X2Rl
ZmF1bHRfbW9kX21hc2soKTsKQEAgLTQ1MSwyNSArNDcxLDMyIEBAIHN0YXRpYyBnYm9vbGVhbiBz
Y3JvbGxFdmVudENhbGxiYWNrKFdlYktpdFdlYlZpZXcgKndlYlZpZXcsIGNvbnN0IEdka0V2ZW50
U2Nyb2xsCiAKICAgICByZXR1cm4gYnJvd3NlcldpbmRvd1pvb21PdXQod2luZG93KTsKIH0KKyNl
bmRpZgogCiBzdGF0aWMgdm9pZCBicm93c2VyV2luZG93VXBkYXRlWm9vbUFjdGlvbnMoQnJvd3Nl
cldpbmRvdyAqd2luZG93KQogeworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKICAg
ICBndGtfd2lkZ2V0X3NldF9zZW5zaXRpdmUod2luZG93LT56b29tSW5JdGVtLCBicm93c2VyV2lu
ZG93Q2FuWm9vbUluKHdpbmRvdykpOwogICAgIGd0a193aWRnZXRfc2V0X3NlbnNpdGl2ZSh3aW5k
b3ctPnpvb21PdXRJdGVtLCBicm93c2VyV2luZG93Q2FuWm9vbU91dCh3aW5kb3cpKTsKKyNlbmRp
ZgogfQogCiBzdGF0aWMgdm9pZCB3ZWJWaWV3Wm9vbUxldmVsQ2hhbmdlZChHT2JqZWN0ICpvYmpl
Y3QsIEdQYXJhbVNwZWMgKnBhcmFtU3BlYywgQnJvd3NlcldpbmRvdyAqd2luZG93KQogeworI2lm
ICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKICAgICBicm93c2VyV2luZG93VXBkYXRlWm9v
bUFjdGlvbnMod2luZG93KTsKKyNlbmRpZgogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVVcmlFbnRy
eUljb24oQnJvd3NlcldpbmRvdyAqd2luZG93KQogeworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigz
LCA5OCwgMCkKICAgICBHdGtFbnRyeSAqZW50cnkgPSBHVEtfRU5UUlkod2luZG93LT51cmlFbnRy
eSk7CiAgICAgaWYgKHdpbmRvdy0+ZmF2aWNvbikKICAgICAgICAgZ3RrX2VudHJ5X3NldF9pY29u
X2Zyb21fcGl4YnVmKGVudHJ5LCBHVEtfRU5UUllfSUNPTl9QUklNQVJZLCB3aW5kb3ctPmZhdmlj
b24pOwogICAgIGVsc2UKICAgICAgICAgZ3RrX2VudHJ5X3NldF9pY29uX2Zyb21fc3RvY2soZW50
cnksIEdUS19FTlRSWV9JQ09OX1BSSU1BUlksIEdUS19TVE9DS19ORVcpOworI2VuZGlmCiB9CiAK
IHN0YXRpYyB2b2lkIGZhdmljb25DaGFuZ2VkKFdlYktpdFdlYlZpZXcgKndlYlZpZXcsIEdQYXJh
bVNwZWMgKnBhcmFtU3BlYywgQnJvd3NlcldpbmRvdyAqd2luZG93KQpAQCAtNDkyLDExICs1MTks
MTQgQEAgc3RhdGljIHZvaWQgZmF2aWNvbkNoYW5nZWQoV2ViS2l0V2ViVmlldyAqd2ViVmlldywg
R1BhcmFtU3BlYyAqcGFyYW1TcGVjLCBCcm93c2UKIAogc3RhdGljIHZvaWQgd2ViVmlld0lzTG9h
ZGluZ0NoYW5nZWQoV2ViS2l0V2ViVmlldyAqd2ViVmlldywgR1BhcmFtU3BlYyAqcGFyYW1TcGVj
LCBCcm93c2VyV2luZG93ICp3aW5kb3cpCiB7CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4
LCAwKQogICAgIGdib29sZWFuIGlzTG9hZGluZyA9IHdlYmtpdF93ZWJfdmlld19pc19sb2FkaW5n
KHdlYlZpZXcpOwogICAgIGd0a190b29sX2J1dHRvbl9zZXRfbGFiZWwoR1RLX1RPT0xfQlVUVE9O
KHdpbmRvdy0+cmVsb2FkT3JTdG9wQnV0dG9uKSwgaXNMb2FkaW5nID8gIlN0b3AiIDogIlJlbG9h
ZCIpOwogICAgIGd0a190b29sX2J1dHRvbl9zZXRfc3RvY2tfaWQoR1RLX1RPT0xfQlVUVE9OKHdp
bmRvdy0+cmVsb2FkT3JTdG9wQnV0dG9uKSwgaXNMb2FkaW5nID8gR1RLX1NUT0NLX1NUT1AgOiBH
VEtfU1RPQ0tfUkVGUkVTSCk7CisjZW5kaWYKIH0KIAorI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigz
LCA5OCwgMCkKIHN0YXRpYyB2b2lkIHpvb21JbkNhbGxiYWNrKEJyb3dzZXJXaW5kb3cgKndpbmRv
dykKIHsKICAgICBicm93c2VyV2luZG93Wm9vbUluKHdpbmRvdyk7CkBAIC01MTcsNiArNTQ3LDcg
QEAgc3RhdGljIHZvaWQgc2VhcmNoQ2FsbGJhY2soQnJvd3NlcldpbmRvdyAqd2luZG93KQogewog
ICAgIGJyb3dzZXJfdGFiX3N0YXJ0X3NlYXJjaCh3aW5kb3ctPmFjdGl2ZVRhYik7CiB9CisjZW5k
aWYKIAogc3RhdGljIHZvaWQgbmV3VGFiQ2FsbGJhY2soQnJvd3NlcldpbmRvdyAqd2luZG93KQog
ewpAQCAtNjE3LDYgKzY0OCw3IEBAIHN0YXRpYyBnYm9vbGVhbiBwcmludFBhZ2UoQnJvd3Nlcldp
bmRvdyAqd2luZG93LCBncG9pbnRlciB1c2VyX2RhdGEpCiAgICAgcmV0dXJuIFRSVUU7CiB9CiAK
KyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiBzdGF0aWMgdm9pZCBlZGl0aW5nQ29t
bWFuZENhbGxiYWNrKEd0a1dpZGdldCAqd2lkZ2V0LCBCcm93c2VyV2luZG93ICp3aW5kb3cpCiB7
CiAgICAgV2ViS2l0V2ViVmlldyAqd2ViVmlldyA9IGJyb3dzZXJfdGFiX2dldF93ZWJfdmlldyh3
aW5kb3ctPmFjdGl2ZVRhYik7CkBAIC02ODEsNiArNzEzLDcgQEAgc3RhdGljIHZvaWQgdHlwaW5n
QXR0cmlidXRlc0NoYW5nZWQoV2ViS2l0RWRpdG9yU3RhdGUgKmVkaXRvclN0YXRlLCBHUGFyYW1T
cGVjICoKICAgICBicm93c2VyV2luZG93RWRpdGluZ0NvbW1hbmRUb2dnbGVCdXR0b25TZXRBY3Rp
dmUod2luZG93LCB3aW5kb3ctPnVuZGVybGluZUl0ZW0sIHR5cGluZ0F0dHJpYnV0ZXMgJiBXRUJL
SVRfRURJVE9SX1RZUElOR19BVFRSSUJVVEVfVU5ERVJMSU5FKTsKICAgICBicm93c2VyV2luZG93
RWRpdGluZ0NvbW1hbmRUb2dnbGVCdXR0b25TZXRBY3RpdmUod2luZG93LCB3aW5kb3ctPnN0cmlr
ZXRocm91Z2hJdGVtLCB0eXBpbmdBdHRyaWJ1dGVzICYgV0VCS0lUX0VESVRPUl9UWVBJTkdfQVRU
UklCVVRFX1NUUklLRVRIUk9VR0gpOwogfQorI2VuZGlmCiAKIHN0YXRpYyB2b2lkIGJyb3dzZXJX
aW5kb3dGaW5hbGl6ZShHT2JqZWN0ICpnT2JqZWN0KQogewpAQCAtNjkzLDEwICs3MjYsMTIgQEAg
c3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd0ZpbmFsaXplKEdPYmplY3QgKmdPYmplY3QpCiAgICAg
ICAgIHdpbmRvdy0+ZmF2aWNvbiA9IE5VTEw7CiAgICAgfQogCisjaWYgIUdUS19DSEVDS19WRVJT
SU9OKDMsIDk4LCAwKQogICAgIGlmICh3aW5kb3ctPmFjY2VsR3JvdXApIHsKICAgICAgICAgZ19v
YmplY3RfdW5yZWYod2luZG93LT5hY2NlbEdyb3VwKTsKICAgICAgICAgd2luZG93LT5hY2NlbEdy
b3VwID0gTlVMTDsKICAgICB9CisjZW5kaWYKIAogICAgIGlmICh3aW5kb3ctPnJlc2V0RW50cnlQ
cm9ncmVzc1RpbWVvdXRJZCkKICAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKHdpbmRvdy0+cmVzZXRF
bnRyeVByb2dyZXNzVGltZW91dElkKTsKQEAgLTcwOCw3ICs3NDMsNyBAQCBzdGF0aWMgdm9pZCBi
cm93c2VyV2luZG93RmluYWxpemUoR09iamVjdCAqZ09iamVjdCkKICAgICBHX09CSkVDVF9DTEFT
Uyhicm93c2VyX3dpbmRvd19wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShnT2JqZWN0KTsKIAogICAg
IGlmICghd2luZG93TGlzdCkKLSAgICAgICAgZ3RrX21haW5fcXVpdCgpOworICAgICAgICBicm93
c2VyX21haW5fcXVpdCgpOwogfQogCiBzdGF0aWMgdm9pZCBicm93c2VyV2luZG93RGlzcG9zZShH
T2JqZWN0ICpnT2JqZWN0KQpAQCAtNzI1LDYgKzc2MCw3IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJX
aW5kb3dEaXNwb3NlKEdPYmplY3QgKmdPYmplY3QpCiAKIHN0YXRpYyB2b2lkIGJyb3dzZXJXaW5k
b3dTZXR1cEVkaXRvclRvb2xiYXIoQnJvd3NlcldpbmRvdyAqd2luZG93KQogeworI2lmICFHVEtf
Q0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKICAgICBHdGtXaWRnZXQgKnRvb2xiYXIgPSBndGtfdG9v
bGJhcl9uZXcoKTsKICAgICBndGtfb3JpZW50YWJsZV9zZXRfb3JpZW50YXRpb24oR1RLX09SSUVO
VEFCTEUodG9vbGJhciksIEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMKTsKICAgICBndGtfdG9v
bGJhcl9zZXRfc3R5bGUoR1RLX1RPT0xCQVIodG9vbGJhciksIEdUS19UT09MQkFSX0JPVEhfSE9S
SVopOwpAQCAtODcwLDYgKzkwNiw3IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dTZXR1cEVk
aXRvclRvb2xiYXIoQnJvd3NlcldpbmRvdyAqd2luZG93KQogICAgIGd0a19ib3hfcGFja19zdGFy
dChHVEtfQk9YKHdpbmRvdy0+bWFpbkJveCksIHRvb2xiYXIsIEZBTFNFLCBGQUxTRSwgMCk7CiAg
ICAgZ3RrX2JveF9yZW9yZGVyX2NoaWxkKEdUS19CT1god2luZG93LT5tYWluQm94KSwgdG9vbGJh
ciwgMSk7CiAgICAgZ3RrX3dpZGdldF9zaG93KHRvb2xiYXIpOworI2VuZGlmCiB9CiAKIHN0YXRp
YyB2b2lkIGJyb3dzZXJXaW5kb3dTd2l0Y2hUYWIoR3RrTm90ZWJvb2sgKm5vdGVib29rLCBCcm93
c2VyVGFiICp0YWIsIGd1aW50IHRhYkluZGV4LCBCcm93c2VyV2luZG93ICp3aW5kb3cpCkBAIC04
OTYsNyArOTMzLDkgQEAgc3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd1N3aXRjaFRhYihHdGtOb3Rl
Ym9vayAqbm90ZWJvb2ssIEJyb3dzZXJUYWIgKnRhYiwgZ3VpbnQKICAgICBXZWJLaXRXZWJWaWV3
ICp3ZWJWaWV3ID0gYnJvd3Nlcl90YWJfZ2V0X3dlYl92aWV3KHdpbmRvdy0+YWN0aXZlVGFiKTsK
ICAgICBpZiAod2Via2l0X3dlYl92aWV3X2lzX2VkaXRhYmxlKHdlYlZpZXcpKSB7CiAgICAgICAg
IGJyb3dzZXJXaW5kb3dTZXR1cEVkaXRvclRvb2xiYXIod2luZG93KTsKKyNpZiAhR1RLX0NIRUNL
X1ZFUlNJT04oMywgOTgsIDApCiAgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2Via2l0X3dlYl92
aWV3X2dldF9lZGl0b3Jfc3RhdGUod2ViVmlldyksICJub3RpZnk6OnR5cGluZy1hdHRyaWJ1dGVz
IiwgR19DQUxMQkFDSyh0eXBpbmdBdHRyaWJ1dGVzQ2hhbmdlZCksIHdpbmRvdyk7CisjZW5kaWYK
ICAgICB9CiAgICAgd2ViVmlld1VSSUNoYW5nZWQod2ViVmlldywgTlVMTCwgd2luZG93KTsKICAg
ICB3ZWJWaWV3VGl0bGVDaGFuZ2VkKHdlYlZpZXcsIE5VTEwsIHdpbmRvdyk7CkBAIC05MTksNyAr
OTU4LDkgQEAgc3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd1N3aXRjaFRhYihHdGtOb3RlYm9vayAq
bm90ZWJvb2ssIEJyb3dzZXJUYWIgKnRhYiwgZ3VpbnQKICAgICBnX3NpZ25hbF9jb25uZWN0KHdl
YlZpZXcsICJub3RpZnk6OmZhdmljb24iLCBHX0NBTExCQUNLKGZhdmljb25DaGFuZ2VkKSwgd2lu
ZG93KTsKICAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlZpZXcsICJlbnRlci1mdWxsc2NyZWVuIiwg
R19DQUxMQkFDSyh3ZWJWaWV3RW50ZXJGdWxsU2NyZWVuKSwgd2luZG93KTsKICAgICBnX3NpZ25h
bF9jb25uZWN0KHdlYlZpZXcsICJsZWF2ZS1mdWxsc2NyZWVuIiwgR19DQUxMQkFDSyh3ZWJWaWV3
TGVhdmVGdWxsU2NyZWVuKSwgd2luZG93KTsKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgs
IDApCiAgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJWaWV3LCAic2Nyb2xsLWV2ZW50IiwgR19DQUxM
QkFDSyhzY3JvbGxFdmVudENhbGxiYWNrKSwgd2luZG93KTsKKyNlbmRpZgogCiAgICAgV2ViS2l0
QmFja0ZvcndhcmRMaXN0ICpiYWNrRm9yd2FyZGxpc3QgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2Jh
Y2tfZm9yd2FyZF9saXN0KHdlYlZpZXcpOwogICAgIGJyb3dzZXJXaW5kb3dVcGRhdGVOYXZpZ2F0
aW9uQWN0aW9ucyh3aW5kb3csIGJhY2tGb3J3YXJkbGlzdCk7CkBAIC05NDEsNiArOTgyLDcgQEAg
c3RhdGljIHZvaWQgYnJvd3Nlcl93aW5kb3dfaW5pdChCcm93c2VyV2luZG93ICp3aW5kb3cpCiAg
ICAgZ3RrX3dpbmRvd19zZXRfdGl0bGUoR1RLX1dJTkRPVyh3aW5kb3cpLCBkZWZhdWx0V2luZG93
VGl0bGUpOwogICAgIGd0a193aW5kb3dfc2V0X2RlZmF1bHRfc2l6ZShHVEtfV0lORE9XKHdpbmRv
dyksIDgwMCwgNjAwKTsKIAorI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKICAgICB3
aW5kb3ctPnVyaUVudHJ5ID0gZ3RrX2VudHJ5X25ldygpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Rf
c3dhcHBlZCh3aW5kb3ctPnVyaUVudHJ5LCAiYWN0aXZhdGUiLCBHX0NBTExCQUNLKGFjdGl2YXRl
VXJpRW50cnlDYWxsYmFjayksIChncG9pbnRlcil3aW5kb3cpOwogICAgIGd0a19lbnRyeV9zZXRf
aWNvbl9hY3RpdmF0YWJsZShHVEtfRU5UUlkod2luZG93LT51cmlFbnRyeSksIEdUS19FTlRSWV9J
Q09OX1BSSU1BUlksIEZBTFNFKTsKQEAgLTEwODgsMTEgKzExMzAsMTMgQEAgc3RhdGljIHZvaWQg
YnJvd3Nlcl93aW5kb3dfaW5pdChCcm93c2VyV2luZG93ICp3aW5kb3cpCiAgICAgZ3RrX3Rvb2xi
YXJfaW5zZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIpLCBpdGVtLCAtMSk7CiAgICAgZ3RrX3dpZGdl
dF9hZGRfYWNjZWxlcmF0b3Iod2luZG93LT5yZWxvYWRPclN0b3BCdXR0b24sICJjbGlja2VkIiwg
d2luZG93LT5hY2NlbEdyb3VwLCBHREtfS0VZX0Y1LCAwLCBHVEtfQUNDRUxfVklTSUJMRSk7CiAg
ICAgZ3RrX3dpZGdldF9zaG93KHdpbmRvdy0+cmVsb2FkT3JTdG9wQnV0dG9uKTsKLQorI2VuZGlm
CiAgICAgR3RrV2lkZ2V0ICp2Ym94ID0gZ3RrX2JveF9uZXcoR1RLX09SSUVOVEFUSU9OX1ZFUlRJ
Q0FMLCAwKTsKICAgICB3aW5kb3ctPm1haW5Cb3ggPSB2Ym94OworI2lmICFHVEtfQ0hFQ0tfVkVS
U0lPTigzLCA5OCwgMCkKICAgICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWCh2Ym94KSwgdG9v
bGJhciwgRkFMU0UsIEZBTFNFLCAwKTsKICAgICBndGtfd2lkZ2V0X3Nob3codG9vbGJhcik7Cisj
ZW5kaWYKIAogICAgIHdpbmRvdy0+bm90ZWJvb2sgPSBndGtfbm90ZWJvb2tfbmV3KCk7CiAgICAg
Z19zaWduYWxfY29ubmVjdCh3aW5kb3ctPm5vdGVib29rLCAic3dpdGNoLXBhZ2UiLCBHX0NBTExC
QUNLKGJyb3dzZXJXaW5kb3dTd2l0Y2hUYWIpLCB3aW5kb3cpOwpAQCAtMTEwMCw4ICsxMTQ0LDEy
IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJfd2luZG93X2luaXQoQnJvd3NlcldpbmRvdyAqd2luZG93
KQogICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2luZG93LT5ub3RlYm9vaywgInBhZ2UtcmVtb3ZlZCIs
IEdfQ0FMTEJBQ0soYnJvd3NlcldpbmRvd1RhYkFkZGVkT3JSZW1vdmVkKSwgd2luZG93KTsKICAg
ICBndGtfbm90ZWJvb2tfc2V0X3Nob3dfdGFicyhHVEtfTk9URUJPT0sod2luZG93LT5ub3RlYm9v
ayksIEZBTFNFKTsKICAgICBndGtfbm90ZWJvb2tfc2V0X3Nob3dfYm9yZGVyKEdUS19OT1RFQk9P
Syh3aW5kb3ctPm5vdGVib29rKSwgRkFMU0UpOworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5
OCwgMCkKICAgICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWCh3aW5kb3ctPm1haW5Cb3gpLCB3
aW5kb3ctPm5vdGVib29rLCBUUlVFLCBUUlVFLCAwKTsKICAgICBndGtfd2lkZ2V0X3Nob3cod2lu
ZG93LT5ub3RlYm9vayk7CisjZWxzZQorICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlO
RVIod2luZG93LT5tYWluQm94KSwgd2luZG93LT5ub3RlYm9vayk7CisjZW5kaWYKIAogICAgIGd0
a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIod2luZG93KSwgdmJveCk7CiAgICAgZ3RrX3dp
ZGdldF9zaG93KHZib3gpOwpAQCAtMTEyNSw2ICsxMTczLDcgQEAgc3RhdGljIHZvaWQgYnJvd3Nl
cldpbmRvd1NhdmVTZXNzaW9uKEJyb3dzZXJXaW5kb3cgKndpbmRvdykKICAgICBnX2J5dGVzX3Vu
cmVmKGJ5dGVzKTsKIH0KIAorI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKIHN0YXRp
YyBnYm9vbGVhbiBicm93c2VyV2luZG93RGVsZXRlRXZlbnQoR3RrV2lkZ2V0ICp3aWRnZXQsIEdk
a0V2ZW50QW55KiBldmVudCkKIHsKICAgICBCcm93c2VyV2luZG93ICp3aW5kb3cgPSBCUk9XU0VS
X1dJTkRPVyh3aWRnZXQpOwpAQCAtMTEzMiw2ICsxMTgxLDcgQEAgc3RhdGljIGdib29sZWFuIGJy
b3dzZXJXaW5kb3dEZWxldGVFdmVudChHdGtXaWRnZXQgKndpZGdldCwgR2RrRXZlbnRBbnkqIGV2
ZW50KQogICAgIGJyb3dzZXJXaW5kb3dUcnlDbG9zZSh3aW5kb3cpOwogICAgIHJldHVybiBUUlVF
OwogfQorI2VuZGlmCiAKIHN0YXRpYyB2b2lkIGJyb3dzZXJfd2luZG93X2NsYXNzX2luaXQoQnJv
d3NlcldpbmRvd0NsYXNzICprbGFzcykKIHsKQEAgLTExNDEsOCArMTE5MSwxMCBAQCBzdGF0aWMg
dm9pZCBicm93c2VyX3dpbmRvd19jbGFzc19pbml0KEJyb3dzZXJXaW5kb3dDbGFzcyAqa2xhc3Mp
CiAgICAgZ29iamVjdENsYXNzLT5kaXNwb3NlID0gYnJvd3NlcldpbmRvd0Rpc3Bvc2U7CiAgICAg
Z29iamVjdENsYXNzLT5maW5hbGl6ZSA9IGJyb3dzZXJXaW5kb3dGaW5hbGl6ZTsKIAorI2lmICFH
VEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKICAgICBHdGtXaWRnZXRDbGFzcyAqd2lkZ2V0Q2xh
c3MgPSBHVEtfV0lER0VUX0NMQVNTKGtsYXNzKTsKICAgICB3aWRnZXRDbGFzcy0+ZGVsZXRlX2V2
ZW50ID0gYnJvd3NlcldpbmRvd0RlbGV0ZUV2ZW50OworI2VuZGlmCiB9CiAKIC8qIFB1YmxpYyBB
UEkuICovCkBAIC0xMTUxLDcgKzEyMDMsMTAgQEAgR3RrV2lkZ2V0ICpicm93c2VyX3dpbmRvd19u
ZXcoR3RrV2luZG93ICpwYXJlbnQsIFdlYktpdFdlYkNvbnRleHQgKndlYkNvbnRleHQpCiAgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9DT05URVhUKHdlYkNvbnRleHQpLCBO
VUxMKTsKIAogICAgIEJyb3dzZXJXaW5kb3cgKndpbmRvdyA9IEJST1dTRVJfV0lORE9XKGdfb2Jq
ZWN0X25ldyhCUk9XU0VSX1RZUEVfV0lORE9XLAotICAgICAgICAidHlwZSIsIEdUS19XSU5ET1df
VE9QTEVWRUwsIE5VTEwpKTsKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCisgICAg
ICAgICJ0eXBlIiwgR1RLX1dJTkRPV19UT1BMRVZFTCwKKyNlbmRpZgorICAgICAgICBOVUxMKSk7
CiAKICAgICB3aW5kb3ctPndlYkNvbnRleHQgPSB3ZWJDb250ZXh0OwogICAgIGdfc2lnbmFsX2Nv
bm5lY3Qod2luZG93LT53ZWJDb250ZXh0LCAiZG93bmxvYWQtc3RhcnRlZCIsIEdfQ0FMTEJBQ0so
ZG93bmxvYWRTdGFydGVkKSwgd2luZG93KTsKQEAgLTExODEsMTEgKzEyMzYsMTUgQEAgdm9pZCBi
cm93c2VyX3dpbmRvd19hcHBlbmRfdmlldyhCcm93c2VyV2luZG93ICp3aW5kb3csIFdlYktpdFdl
YlZpZXcgKndlYlZpZXcpCiAgICAgfQogCiAgICAgR3RrV2lkZ2V0ICp0YWIgPSBicm93c2VyX3Rh
Yl9uZXcod2ViVmlldyk7CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAgIGlm
IChndGtfd2lkZ2V0X2dldF9hcHBfcGFpbnRhYmxlKEdUS19XSURHRVQod2luZG93KSkpCiAgICAg
ICAgIGJyb3dzZXJfdGFiX3NldF9iYWNrZ3JvdW5kX2NvbG9yKEJST1dTRVJfVEFCKHRhYiksICZ3
aW5kb3ctPmJhY2tncm91bmRDb2xvcik7CiAgICAgYnJvd3Nlcl90YWJfYWRkX2FjY2VsZXJhdG9y
cyhCUk9XU0VSX1RBQih0YWIpLCB3aW5kb3ctPmFjY2VsR3JvdXApOworI2VuZGlmCiAgICAgZ3Rr
X25vdGVib29rX2FwcGVuZF9wYWdlKEdUS19OT1RFQk9PSyh3aW5kb3ctPm5vdGVib29rKSwgdGFi
LCBicm93c2VyX3RhYl9nZXRfdGl0bGVfd2lkZ2V0KEJST1dTRVJfVEFCKHRhYikpKTsKKyNpZiAh
R1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAgZ3RrX2NvbnRhaW5lcl9jaGlsZF9zZXQo
R1RLX0NPTlRBSU5FUih3aW5kb3ctPm5vdGVib29rKSwgdGFiLCAidGFiLWV4cGFuZCIsIFRSVUUs
IE5VTEwpOworI2VuZGlmCiAgICAgZ3RrX3dpZGdldF9zaG93KHRhYik7CiB9CiAKQEAgLTEyMzgs
MTIgKzEyOTcsMTQgQEAgdm9pZCBicm93c2VyX3dpbmRvd19zZXRfYmFja2dyb3VuZF9jb2xvcihC
cm93c2VyV2luZG93ICp3aW5kb3csIEdka1JHQkEgKnJnYmEpCiAKICAgICB3aW5kb3ctPmJhY2tn
cm91bmRDb2xvciA9ICpyZ2JhOwogCisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQog
ICAgIEdka1Zpc3VhbCAqcmdiYVZpc3VhbCA9IGdka19zY3JlZW5fZ2V0X3JnYmFfdmlzdWFsKGd0
a193aW5kb3dfZ2V0X3NjcmVlbihHVEtfV0lORE9XKHdpbmRvdykpKTsKICAgICBpZiAoIXJnYmFW
aXN1YWwpCiAgICAgICAgIHJldHVybjsKIAogICAgIGd0a193aWRnZXRfc2V0X3Zpc3VhbChHVEtf
V0lER0VUKHdpbmRvdyksIHJnYmFWaXN1YWwpOwogICAgIGd0a193aWRnZXRfc2V0X2FwcF9wYWlu
dGFibGUoR1RLX1dJREdFVCh3aW5kb3cpLCBUUlVFKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgQnJv
d3NlcldpbmRvdyAqZmluZEFjdGl2ZVdpbmRvdyh2b2lkKQpAQCAtMTI3OCw3ICsxMzM5LDkgQEAg
V2ViS2l0V2ViVmlldyAqYnJvd3Nlcl93aW5kb3dfZ2V0X29yX2NyZWF0ZV93ZWJfdmlld19mb3Jf
YXV0b21hdGlvbih2b2lkKQogICAgICAgICAiaXMtY29udHJvbGxlZC1ieS1hdXRvbWF0aW9uIiwg
VFJVRSwKICAgICAgICAgTlVMTCkpOwogICAgIEd0a1dpZGdldCAqbmV3V2luZG93ID0gYnJvd3Nl
cl93aW5kb3dfbmV3KEdUS19XSU5ET1cod2luZG93KSwgd2luZG93LT53ZWJDb250ZXh0KTsKKyNp
ZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAgZ3RrX3dpbmRvd19zZXRfZm9jdXNf
b25fbWFwKEdUS19XSU5ET1cobmV3V2luZG93KSwgRkFMU0UpOworI2VuZGlmCiAgICAgYnJvd3Nl
cl93aW5kb3dfYXBwZW5kX3ZpZXcoQlJPV1NFUl9XSU5ET1cobmV3V2luZG93KSwgbmV3V2ViVmll
dyk7CiAgICAgd2Via2l0X3dlYl92aWV3X2xvYWRfdXJpKG5ld1dlYlZpZXcsICJhYm91dDpibGFu
ayIpOwogICAgIGd0a193aWRnZXRfc2hvdyhuZXdXaW5kb3cpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
TWluaUJyb3dzZXIvZ3RrL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0NN
YWtlTGlzdHMudHh0CmluZGV4IGYwYWE2NWIyODhlZC4uZGZjODQxMzVmZGI3IDEwMDY0NAotLS0g
YS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvTWluaUJy
b3dzZXIvZ3RrL0NNYWtlTGlzdHMudHh0CkBAIC04LDYgKzgsOCBAQCBzZXQoTWluaUJyb3dzZXJf
U09VUkNFUwogICAgIEJyb3dzZXJDZWxsUmVuZGVyZXJWYXJpYW50LmgKICAgICBCcm93c2VyRG93
bmxvYWRzQmFyLmMKICAgICBCcm93c2VyRG93bmxvYWRzQmFyLmgKKyAgICBCcm93c2VyTWFpbi5j
CisgICAgQnJvd3Nlck1haW4uaAogICAgIEJyb3dzZXJTZWFyY2hCYXIuYwogICAgIEJyb3dzZXJT
ZWFyY2hCYXIuaAogICAgIEJyb3dzZXJTZXR0aW5nc0RpYWxvZy5jCkBAIC0yNCw2ICsyNiw3IEBA
IHNldChNaW5pQnJvd3Nlcl9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAke01pbmlC
cm93c2VyX0RFUklWRURfU09VUkNFU19ESVJ9CiAgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lU
MkdUS19ESVJ9CiAgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lUMkdUS19ESVJ9CisgICAg
JHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lUMkdUS19WRVJTSU9ORURfRElSfQogICAgICR7Rk9S
V0FSRElOR19IRUFERVJTX0RJUn0KICAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZQogKQpA
QCAtNTYsNyArNTksMTIgQEAgYWRkX2N1c3RvbV9jb21tYW5kKAogICAgIENPTU1BTkQgZ2xpYi1n
ZW5tYXJzaGFsIC0tcHJlZml4PWJyb3dzZXJfbWFyc2hhbCAke01pbmlCcm93c2VyX0RJUn0vYnJv
d3Nlci1tYXJzaGFsLmxpc3QgLS1oZWFkZXIgPiAke01pbmlCcm93c2VyX0RFUklWRURfU09VUkNF
U19ESVJ9L0Jyb3dzZXJNYXJzaGFsLmgKICAgICBWRVJCQVRJTSkKIAotc2V0KE1pbmlCcm93c2Vy
X1BSSVZBVEVfREVGSU5JVElPTlMgR0RLX1ZFUlNJT05fTUlOX1JFUVVJUkVEPUdES19WRVJTSU9O
XzNfNikKK2lmIChVU0VfR1RLNCkKKyAgICBzZXQoTWluaUJyb3dzZXJfUFJJVkFURV9ERUZJTklU
SU9OUyBHREtfVkVSU0lPTl9NSU5fUkVRVUlSRUQ9R0RLX1ZFUlNJT05fM185MikKK2Vsc2UgKCkK
KyAgICBzZXQoTWluaUJyb3dzZXJfUFJJVkFURV9ERUZJTklUSU9OUyBHREtfVkVSU0lPTl9NSU5f
UkVRVUlSRUQ9R0RLX1ZFUlNJT05fM18yMikKK2VuZGlmICgpCisKIGlmIChERVZFTE9QRVJfTU9E
RSkKICAgICBsaXN0KEFQUEVORCBNaW5pQnJvd3Nlcl9QUklWQVRFX0RFRklOSVRJT05TIC1EV0VC
S0lUX0lOSkVDVEVEX0JVTkRMRV9QQVRIPSIke0NNQUtFX0xJQlJBUllfT1VUUFVUX0RJUkVDVE9S
WX0iKQogZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9tYWluLmMg
Yi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvbWFpbi5jCmluZGV4IDkyYzlhNDMzYzY0ZS4uZTdlN2Vk
NjQ1M2QwIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvbWFpbi5jCisrKyBiL1Rv
b2xzL01pbmlCcm93c2VyL2d0ay9tYWluLmMKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUg
ImNtYWtlY29uZmlnLmgiCiAKKyNpbmNsdWRlICJCcm93c2VyTWFpbi5oIgogI2luY2x1ZGUgIkJy
b3dzZXJXaW5kb3cuaCIKICNpbmNsdWRlIDxlcnJuby5oPgogI2lmIEVOQUJMRV9XRUJfQVVESU8g
fHwgRU5BQkxFX1ZJREVPCkBAIC01MDQsMTEgKzUwNSwxNyBAQCBpbnQgbWFpbihpbnQgYXJnYywg
Y2hhciAqYXJndltdKQogICAgIGdfc2V0ZW52KCJXRUJLSVRfSU5KRUNURURfQlVORExFX1BBVEgi
LCBXRUJLSVRfSU5KRUNURURfQlVORExFX1BBVEgsIEZBTFNFKTsKICNlbmRpZgogCisjaWYgR1RL
X0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCisgICAgZ3RrX2luaXQoKTsKKyNlbHNlCiAgICAgZ3Rr
X2luaXQoJmFyZ2MsICZhcmd2KTsKKyNlbmRpZgogCiAgICAgR09wdGlvbkNvbnRleHQgKmNvbnRl
eHQgPSBnX29wdGlvbl9jb250ZXh0X25ldyhOVUxMKTsKICAgICBnX29wdGlvbl9jb250ZXh0X2Fk
ZF9tYWluX2VudHJpZXMoY29udGV4dCwgY29tbWFuZExpbmVPcHRpb25zLCAwKTsKKyNpZiAhR1RL
X0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAgZ19vcHRpb25fY29udGV4dF9hZGRfZ3JvdXAo
Y29udGV4dCwgZ3RrX2dldF9vcHRpb25fZ3JvdXAoVFJVRSkpOworI2VuZGlmCiAjaWYgRU5BQkxF
X1dFQl9BVURJTyB8fCBFTkFCTEVfVklERU8KICAgICBnX29wdGlvbl9jb250ZXh0X2FkZF9ncm91
cChjb250ZXh0LCBnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKCkpOwogI2VuZGlmCkBAIC01NDMs
NyArNTUwLDEwIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAKICAgICBXZWJL
aXRXZWJzaXRlRGF0YU1hbmFnZXIgKm1hbmFnZXIgPSAocHJpdmF0ZU1vZGUgfHwgYXV0b21hdGlv
bk1vZGUpID8gd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX25ld19lcGhlbWVyYWwoKSA6IHdl
YmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9uZXcoTlVMTCk7CiAgICAgV2ViS2l0V2ViQ29udGV4
dCAqd2ViQ29udGV4dCA9IGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9XRUJfQ09OVEVYVCwgIndl
YnNpdGUtZGF0YS1tYW5hZ2VyIiwgbWFuYWdlciwgInByb2Nlc3Mtc3dhcC1vbi1jcm9zcy1zaXRl
LW5hdmlnYXRpb24tZW5hYmxlZCIsIFRSVUUsCi0gICAgICAgICJ1c2Utc3lzdGVtLWFwcGVhcmFu
Y2UtZm9yLXNjcm9sbGJhcnMiLCBGQUxTRSwgTlVMTCk7CisjaWYgIUdUS19DSEVDS19WRVJTSU9O
KDMsIDk4LCAwKQorICAgICAgICAidXNlLXN5c3RlbS1hcHBlYXJhbmNlLWZvci1zY3JvbGxiYXJz
IiwgRkFMU0UsCisjZW5kaWYKKyAgICAgICAgTlVMTCk7CiAgICAgZ19vYmplY3RfdW5yZWYobWFu
YWdlcik7CiAKICAgICBpZiAoY29va2llc1BvbGljeSkgewpAQCAtNjExLDggKzYyMSwxMCBAQCBp
bnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICAgICBnX29iamVjdF9zZXQoZ3Rr
X3dpZGdldF9nZXRfc2V0dGluZ3MoR1RLX1dJREdFVChtYWluV2luZG93KSksICJndGstYXBwbGlj
YXRpb24tcHJlZmVyLWRhcmstdGhlbWUiLCBUUlVFLCBOVUxMKTsKICAgICBpZiAoZnVsbFNjcmVl
bikKICAgICAgICAgZ3RrX3dpbmRvd19mdWxsc2NyZWVuKEdUS19XSU5ET1cobWFpbldpbmRvdykp
OworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKICAgICBlbHNlIGlmIChnZW9tZXRy
eSkKICAgICAgICAgZ3RrX3dpbmRvd19wYXJzZV9nZW9tZXRyeShHVEtfV0lORE9XKG1haW5XaW5k
b3cpLCBnZW9tZXRyeSk7CisjZW5kaWYKIAogICAgIGlmIChiYWNrZ3JvdW5kQ29sb3IpCiAgICAg
ICAgIGJyb3dzZXJfd2luZG93X3NldF9iYWNrZ3JvdW5kX2NvbG9yKG1haW5XaW5kb3csIGJhY2tn
cm91bmRDb2xvcik7CkBAIC02NDcsNyArNjU5LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIg
KmFyZ3ZbXSkKICAgICBnX2NsZWFyX29iamVjdCgmd2Via2l0U2V0dGluZ3MpOwogICAgIGdfY2xl
YXJfb2JqZWN0KCZ1c2VyQ29udGVudE1hbmFnZXIpOwogCi0gICAgZ3RrX21haW4oKTsKKyAgICBi
cm93c2VyX21haW4oKTsKIAogICAgIGlmIChwcml2YXRlTW9kZSkKICAgICAgICAgZ19vYmplY3Rf
dW5yZWYod2ViQ29udGV4dCk7CmRpZmYgLS1naXQgYS9Ub29scy9QbGF0Zm9ybUdUSy5jbWFrZSBi
L1Rvb2xzL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGU5YWRlN2E2OTlhNi4uYjM1NjQxZDc5ZTFl
IDEwMDY0NAotLS0gYS9Ub29scy9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Ub29scy9QbGF0Zm9y
bUdUSy5jbWFrZQpAQCAtMSw1ICsxLDggQEAKIGlmIChERVZFTE9QRVJfTU9ERSkKLSAgICBhZGRf
c3ViZGlyZWN0b3J5KFdlYktpdFRlc3RSdW5uZXIpCisgICAgaWYgKE5PVCBVU0VfR1RLNCkKKyAg
ICAgICAgYWRkX3N1YmRpcmVjdG9yeShXZWJLaXRUZXN0UnVubmVyKQorICAgIGVuZGlmICgpCisK
ICAgICBhZGRfc3ViZGlyZWN0b3J5KEltYWdlRGlmZikKIAogICAgIGlmIChFTkFCTEVfQVBJX1RF
U1RTKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CmluZGV4IDEzZDFkNDhl
MmU2NC4uOGZjZWY3YTI2MWU3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
LnB5CkBAIC0zNzQsNiArMzc0LDggQEAgX1NLSVBQRURfRklMRVNfV0lUSF9XQVJOSU5HID0gWwog
CiAgICAgIyBXZWJLaXQqLmggYW5kIEpTQyouaCBmaWxlcyBpbiwgZXhjZXB0IHRob3NlIGVuZGlu
ZyBpbiBQcml2YXRlLmggYXJlIEFQSSBoZWFkZXJzLCB3aGljaCBkbyBub3QgZm9sbG93IFdlYktp
dCBjb2Rpbmcgc3R5bGUuCiAgICAgcmUuY29tcGlsZShyZS5lc2NhcGUob3MucGF0aC5qb2luKCdT
b3VyY2UnLCAnSmF2YVNjcmlwdENvcmUnLCAnQVBJJywgJ2dsaWInKSArIG9zLnBhdGguc2VwKSAr
IHInSlNDKD8hLipQcml2YXRlXC5oKS4qXC5oJCcpLAorICAgIHJlLmNvbXBpbGUocmUuZXNjYXBl
KG9zLnBhdGguam9pbignU291cmNlJywgJ1dlYktpdCcsICdVSVByb2Nlc3MnLCAnQVBJJywgJ2d0
azMnKSArIG9zLnBhdGguc2VwKSArIHInV2ViS2l0KD8hLipQcml2YXRlXC5oKS4qXC5oJCcpLAor
ICAgIHJlLmNvbXBpbGUocmUuZXNjYXBlKG9zLnBhdGguam9pbignU291cmNlJywgJ1dlYktpdCcs
ICdVSVByb2Nlc3MnLCAnQVBJJywgJ2d0azQnKSArIG9zLnBhdGguc2VwKSArIHInV2ViS2l0KD8h
LipQcml2YXRlXC5oKS4qXC5oJCcpLAogICAgIHJlLmNvbXBpbGUocmUuZXNjYXBlKG9zLnBhdGgu
am9pbignU291cmNlJywgJ1dlYktpdCcsICdVSVByb2Nlc3MnLCAnQVBJJywgJ2d0aycpICsgb3Mu
cGF0aC5zZXApICsgcidXZWJLaXQoPyEuKlByaXZhdGVcLmgpLipcLmgkJyksCiAgICAgcmUuY29t
cGlsZShyZS5lc2NhcGUob3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0JywgJ1VJUHJvY2Vz
cycsICdBUEknLCAnd3BlJykgKyBvcy5wYXRoLnNlcCkgKyByJ1dlYktpdCg/IS4qUHJpdmF0ZVwu
aCkuKlwuaCQnKSwKICAgICByZS5jb21waWxlKHJlLmVzY2FwZShvcy5wYXRoLmpvaW4oJ1NvdXJj
ZScsICdXZWJLaXQnLCAnV2ViUHJvY2VzcycsICdJbmplY3RlZEJ1bmRsZScsICdBUEknLCAnZ3Rr
JykgKyBvcy5wYXRoLnNlcCkgKyByJ1dlYktpdCg/IS4qUHJpdmF0ZVwuaCkuKlwuaCQnKSwKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCA2MGRkOWRmODM3
ZjAuLmM1MzljMDY1NDM2MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1Bs
YXRmb3JtR1RLLmNtYWtlCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9QbGF0Zm9ybUdU
Sy5jbWFrZQpAQCAtOSw2ICs5LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0R0xpYkFQSVRlc3RzX0lO
Q0xVREVfRElSRUNUT1JJRVMKICAgICAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBDT1JFR1RL
X0RJUn0KICAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVQyR1RLX0RJUn0KICAgICAke0ZPUldB
UkRJTkdfSEVBREVSU19XRUJLSVQyR1RLX0RJUn0KKyAgICAke0ZPUldBUkRJTkdfSEVBREVSU19X
RUJLSVQyR1RLX1ZFUlNJT05FRF9ESVJ9CiAgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lU
MkdUS19FWFRFTlNJT05fRElSfQogKQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397455</attachid>
            <date>2020-04-24 07:13:29 -0700</date>
            <delta_ts>2020-04-25 06:45:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wkgtk-gtk4.diff</filename>
            <type>text/plain</type>
            <size>202563</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA4NDM5Y2RhOWY3YjYuLjdi
YjM2MTQ4MDUwYSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDIwLTA0LTI0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KKworICAgICAgICBbR1RLNF0gTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCB3aXRo
IEdUSzQgd2l0aG91dCBlcnJvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMDk2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIERpc2FibGUgQVBJIHRlc3RzIGFuZCBHT2JqZWN0IGludHJvc3BlY3Rpb24g
d2hlbiBidWlsZGluZyB3aXRoIEdUSzQuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9u
c0dUSy5jbWFrZToKKwogMjAyMC0wNC0yMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgogCiAgICAgICAgIE1ha2UgSlNDT25seSB3b3JrIG9uIG1hY09TCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTcyYjU1OTIzNmQxLi41ODg3NDBhMDU2ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAor
MjAyMC0wNC0yNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0dUSzRdIE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgd2l0aCBHVEs0IHdpdGhv
dXQgZXJyb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTA5NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHBsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5UmVmcmVzaE1vbml0b3I6OmNyZWF0ZURlZmF1bHREaXNwbGF5UmVmcmVzaE1vbml0b3IpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0
b3JHdGsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvR2RrQ2Fpcm9VdGlsaXRp
ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0RGVmYXVsdENhaXJvRm9udE9wdGlvbnMpOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlQ3VzdG9tQ3Vyc29yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvRHJhZ0ltYWdlR3Rr
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL0dSZWZQdHJHdGsuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9HUmVmUHRyR3RrLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0dVbmlxdWVQdHJHdGsu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvR3RrVmVyc2lvbmluZy5oOgorICAgICAgICAoZ2Rr
X2V2ZW50X2NvcHkpOgorICAgICAgICAoZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKToKKyAgICAg
ICAgKGd0a193aWRnZXRfcXVldWVfcmVzaXplX25vX3JlZHJhdyk6CisgICAgICAgIChnZGtfZXZl
bnRfZ2V0X3N0YXRlKToKKyAgICAgICAgKGdka19ldmVudF9nZXRfY29vcmRzKToKKyAgICAgICAg
KGdka19ldmVudF9nZXRfcm9vdF9jb29yZHMpOgorICAgICAgICAoZ2RrX2V2ZW50X2lzX3Njcm9s
bF9zdG9wX2V2ZW50KToKKyAgICAgICAgKGdka19ldmVudF9nZXRfc2Nyb2xsX2RpcmVjdGlvbik6
CisgICAgICAgIChnZGtfZXZlbnRfZ2V0X3Njcm9sbF9kZWx0YXMpOgorICAgICAgICAoZ2RrX2V2
ZW50X2dldF9idXR0b24pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVy
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50Ojptb2RpZmllcnNDb250YWluQ2Fwc0xvY2sp
OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybVBhc3RlYm9hcmRHdGsuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjpQbGF0Zm9ybVBhc3RlYm9hcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZVRvQ2xpcGJvYXJkKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUGFzdGVib2FyZDo6cmVhZEZyb21DbGlwYm9hcmQp
OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpnZXRDdXJyZW50U2NyZWVuTW9uaXRvcik6CisKIDIwMjAtMDQtMjMgIFJvYiBC
dWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBNYWtlIENhY2hlZFJlc291cmNlTG9h
ZGVyIG1vcmUgY29uZm9ybWluZyB0byBGZXRjaCBzcGVjaWZpY2F0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCmluZGV4IDJmYjZlNTMzZTY4NC4uN2Rm
Zjc3ZDAzNmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBh
c3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9h
cmQuaApAQCAtMTI2LDcgKzEyNiw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKICAgICBSZXRhaW5QdHI8aWQ+IG1fcGFzdGVib2FyZDsKICNlbmRpZgotI2lmIFBMQVRGT1JN
KEdUSykKKyNpZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkKICAgICBHdGtDbGlwYm9hcmQq
IG1fY2xpcGJvYXJkOwogI2VuZGlmCiAjaWYgVVNFKExJQldQRSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3Bw
CmluZGV4IDc2YTIwODEzYTY1NS4uNWQ2ZTUzNDkyZDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAK
QEAgLTUwLDcgKzUwLDcgQEAgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gRGlzcGxheVJl
ZnJlc2hNb25pdG9yOjpjcmVhdGVEZWZhdWx0RGlzcGxheVJlZnJlc2gKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIHJldHVybiBEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OmNyZWF0ZShk
aXNwbGF5SUQpOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykg
JiYgIVVTRShHVEs0KQogICAgIHJldHVybiBEaXNwbGF5UmVmcmVzaE1vbml0b3JHdGs6OmNyZWF0
ZShkaXNwbGF5SUQpOwogI2VuZGlmCiAgICAgVU5VU0VEX1BBUkFNKGRpc3BsYXlJRCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGlzcGxheVJlZnJl
c2hNb25pdG9yR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9E
aXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuY3BwCmluZGV4IDA5YThiODVkODBhZi4uZmI0YjU0Zjc0
NDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGlz
cGxheVJlZnJlc2hNb25pdG9yR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ndGsvRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrLmNwcApAQCAtMjYsNyArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRpc3BsYXlSZWZyZXNoTW9uaXRvckd0
ay5oIgogCi0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikK
KyNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKSAmJiAhVVNF
KEdUSzQpCiAKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4K
QEAgLTk0LDQgKzk0LDQgQEAgdm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JHdGs6OmRpc3BsYXlM
aW5rRmlyZWQoKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoUkVR
VUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorI2VuZGlmIC8vIFVTRShSRVFV
RVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpICYmICFVU0UoR1RLNCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVz
aE1vbml0b3JHdGsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNw
bGF5UmVmcmVzaE1vbml0b3JHdGsuaAppbmRleCA5YmQxMzU3YWEzZTguLmUyYTBlNGM1MGUzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0Rpc3BsYXlS
ZWZyZXNoTW9uaXRvckd0ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJh
Z21hIG9uY2UKIAotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklU
T1IpCisjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikgJiYg
IVVTRShHVEs0KQogCiAjaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yLmgiCiAKQEAgLTUz
LDQgKzUzLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYg
Ly8gVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKKyNlbmRpZiAv
LyBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKSAmJiAhVVNFKEdU
SzQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvR2Rr
Q2Fpcm9VdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L0dka0NhaXJvVXRpbGl0aWVzLmNwcAppbmRleCBkMmI0MGNhYWRkMzYuLjBlYzFkYzg0NzAyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0dka0NhaXJv
VXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsv
R2RrQ2Fpcm9VdGlsaXRpZXMuY3BwCkBAIC0zOCwxMCArMzgsMTIgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjb25zdCBjYWlyb19mb250X29wdGlvbnNfdCogZ2V0RGVmYXVsdENhaXJvRm9udE9w
dGlvbnMoKQogeworI2lmICFVU0UoR1RLNCkKICAgICBpZiAoYXV0byogc2NyZWVuID0gZ2RrX3Nj
cmVlbl9nZXRfZGVmYXVsdCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBvcHRpb25zID0gZ2RrX3Nj
cmVlbl9nZXRfZm9udF9vcHRpb25zKHNjcmVlbikpCiAgICAgICAgICAgICByZXR1cm4gb3B0aW9u
czsKICAgICB9CisjZW5kaWYKIAogICAgIHN0YXRpYyBjYWlyb19mb250X29wdGlvbnNfdCogb3B0
aW9uczsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgZmxhZzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAKaW5kZXggMmExYWFlZTEyZTk1Li4xYmEzZjI1ZGY4MDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwCkBAIC02Myw4ICs2
MywxNCBAQCBzdGF0aWMgR1JlZlB0cjxHZGtDdXJzb3I+IGNyZWF0ZUN1c3RvbUN1cnNvcihJbWFn
ZSogaW1hZ2UsIGNvbnN0IEludFBvaW50JiBob3RTcAogCiAjaWYgVVNFKEdUSzQpCiAgICAgQVNT
RVJUKGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2Zvcm1hdChzdXJmYWNlLmdldCgpKSA9PSBDQUlS
T19GT1JNQVRfQVJHQjMyKTsKLSAgICBhdXRvIHRleHR1cmUgPSBhZG9wdEdSZWYoZ2RrX21lbW9y
eV90ZXh0dXJlX25ldyhjYWlyb19pbWFnZV9zdXJmYWNlX2dldF93aWR0aChzdXJmYWNlLmdldCgp
KSwgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfaGVpZ2h0KHN1cmZhY2UuZ2V0KCkpLAotICAgICAg
ICBHREtfTUVNT1JZX0E4UjhHOEI4X1BSRU1VTFRJUExJRUQsIGNhaXJvX2ltYWdlX3N1cmZhY2Vf
Z2V0X2RhdGEoc3VyZmFjZS5nZXQoKSksIGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShz
dXJmYWNlLmdldCgpKSkpOworICAgIGF1dG8gd2lkdGggPSBjYWlyb19pbWFnZV9zdXJmYWNlX2dl
dF93aWR0aChzdXJmYWNlLmdldCgpKTsKKyAgICBhdXRvIGhlaWdodCA9IGNhaXJvX2ltYWdlX3N1
cmZhY2VfZ2V0X2hlaWdodChzdXJmYWNlLmdldCgpKTsKKyAgICBhdXRvIHN0cmlkZSA9IGNhaXJv
X2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShzdXJmYWNlLmdldCgpKTsKKyAgICBHUmVmUHRyPEdC
eXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoZ19ieXRlc19uZXdfd2l0aF9mcmVlX2Z1bmMoY2Fpcm9f
aW1hZ2Vfc3VyZmFjZV9nZXRfZGF0YShzdXJmYWNlLmdldCgpKSwgaGVpZ2h0ICogc3RyaWRlLAor
ICAgICAgICBbXShncG9pbnRlciBkYXRhKSB7CisgICAgICAgICAgICBjYWlyb19zdXJmYWNlX2Rl
c3Ryb3koc3RhdGljX2Nhc3Q8Y2Fpcm9fc3VyZmFjZV90Kj4oZGF0YSkpOworICAgICAgICB9LCBz
dXJmYWNlLmxlYWtSZWYoKSkpOworICAgIGF1dG8gdGV4dHVyZSA9IGFkb3B0R1JlZihnZGtfbWVt
b3J5X3RleHR1cmVfbmV3KHdpZHRoLCBoZWlnaHQsIEdES19NRU1PUllfQThSOEc4QjhfUFJFTVVM
VElQTElFRCwgYnl0ZXMuZ2V0KCksIHN0cmlkZSkpOwogICAgIHJldHVybiBhZG9wdEdSZWYoZ2Rr
X2N1cnNvcl9uZXdfZnJvbV90ZXh0dXJlKHRleHR1cmUuZ2V0KCksIGVmZmVjdGl2ZUhvdFNwb3Qu
eCgpLCBlZmZlY3RpdmVIb3RTcG90LnkoKSwgZmFsbGJhY2tDdXJzb3IoKS5nZXQoKSkpOwogI2Vs
c2UKICAgICByZXR1cm4gYWRvcHRHUmVmKGdka19jdXJzb3JfbmV3X2Zyb21fc3VyZmFjZShnZGtf
ZGlzcGxheV9nZXRfZGVmYXVsdCgpLCBzdXJmYWNlLmdldCgpLCBlZmZlY3RpdmVIb3RTcG90Lngo
KSwgZWZmZWN0aXZlSG90U3BvdC55KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0RyYWdJbWFnZUd0ay5jcHAKaW5kZXggODQ1ZmRhYWVhNmMwLi42YTFhNzNmOWQ3ZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3BwCkBAIC03Miw4ICs3
MiwxMCBAQCBEcmFnSW1hZ2VSZWYgZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJbWFn
ZVJlZiBpbWFnZSwgZmxvYXQgZnJhY3Rpb24pCiAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKKyNpZiAhVVNFKEdUSzQpCiAgICAgaWYgKCFnZGtfc2NyZWVuX2lzX2Nv
bXBvc2l0ZWQoZ2RrX3NjcmVlbl9nZXRfZGVmYXVsdCgpKSkKICAgICAgICAgcmV0dXJuIGltYWdl
OworI2VuZGlmCiAKICAgICBSZWZQdHI8Y2Fpcm9fdD4gY29udGV4dCA9IGFkb3B0UmVmKGNhaXJv
X2NyZWF0ZShpbWFnZS5nZXQoKSkpOwogICAgIGNhaXJvX3NldF9vcGVyYXRvcihjb250ZXh0Lmdl
dCgpLCBDQUlST19PUEVSQVRPUl9ERVNUX0lOKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9HUmVmUHRyR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9HUmVmUHRyR3RrLmNwcAppbmRleCBiNzY4YzhmZGU2OGMuLjEyMGM2MjJiZWQwOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dSZWZQdHJHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HUmVmUHRyR3RrLmNwcApAQCAtMzEsNiArMzEsNyBA
QAogCiBuYW1lc3BhY2UgV1RGIHsKIAorI2lmICFVU0UoR1RLNCkKIHRlbXBsYXRlIDw+IEd0a1Rh
cmdldExpc3QqIHJlZkdQdHIoR3RrVGFyZ2V0TGlzdCogcHRyKQogewogICAgIGlmIChwdHIpCkBA
IC00Myw2ICs0NCw3IEBAIHRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEd0a1RhcmdldExpc3Qq
IHB0cikKICAgICBpZiAocHRyKQogICAgICAgICBndGtfdGFyZ2V0X2xpc3RfdW5yZWYocHRyKTsK
IH0KKyNlbmRpZgogCiAjaWYgVVNFKExJQlNFQ1JFVCkKIHRlbXBsYXRlIDw+IFNlY3JldFZhbHVl
KiByZWZHUHRyKFNlY3JldFZhbHVlKiBwdHIpCkBAIC01OSw2ICs2MSw3IEBAIHRlbXBsYXRlIDw+
IHZvaWQgZGVyZWZHUHRyKFNlY3JldFZhbHVlKiBwdHIpCiB9CiAjZW5kaWYKIAorI2lmICFVU0Uo
R1RLNCkKIHRlbXBsYXRlIDw+IEd0a1dpZGdldFBhdGgqIHJlZkdQdHIoR3RrV2lkZ2V0UGF0aCog
cHRyKQogewogICAgIGlmIChwdHIpCkBAIC03MSw1ICs3NCw2IEBAIHRlbXBsYXRlIDw+IHZvaWQg
ZGVyZWZHUHRyKEd0a1dpZGdldFBhdGgqIHB0cikKICAgICBpZiAocHRyKQogICAgICAgICBndGtf
d2lkZ2V0X3BhdGhfdW5yZWYocHRyKTsKIH0KKyNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR1JlZlB0ckd0ay5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0dSZWZQdHJHdGsuaAppbmRleCBkMjZiMDU1ZGE4MzIuLmRjYzNiNmEzZTg1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dSZWZQdHJHdGsuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR1JlZlB0ckd0ay5oCkBAIC0yNywxNiArMjcs
MjAgQEAgdHlwZWRlZiBzdHJ1Y3QgX1NlY3JldFZhbHVlIFNlY3JldFZhbHVlOwogCiBuYW1lc3Bh
Y2UgV1RGIHsKIAorI2lmICFVU0UoR1RLNCkKIHRlbXBsYXRlIDw+IEd0a1RhcmdldExpc3QqIHJl
ZkdQdHIoR3RrVGFyZ2V0TGlzdCogcHRyKTsKIHRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEd0
a1RhcmdldExpc3QqIHB0cik7CisjZW5kaWYKIAogI2lmIFVTRShMSUJTRUNSRVQpCiB0ZW1wbGF0
ZSA8PiBTZWNyZXRWYWx1ZSogcmVmR1B0cihTZWNyZXRWYWx1ZSogcHRyKTsKIHRlbXBsYXRlIDw+
IHZvaWQgZGVyZWZHUHRyKFNlY3JldFZhbHVlKiBwdHIpOwogI2VuZGlmCiAKKyNpZiAhVVNFKEdU
SzQpCiB0ZW1wbGF0ZSA8PiBHdGtXaWRnZXRQYXRoKiByZWZHUHRyKEd0a1dpZGdldFBhdGgqIHB0
cik7CiB0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHdGtXaWRnZXRQYXRoKiBwdHIpOworI2Vu
ZGlmCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dVbmlx
dWVQdHJHdGsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HVW5pcXVlUHRyR3RrLmgK
aW5kZXggZGI5NzYwYmFlNWI1Li44ODZhNzgzNGVjZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9HVW5pcXVlUHRyR3RrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0dVbmlxdWVQdHJHdGsuaApAQCAtMjUsNyArMjUsMTIgQEAKIAogbmFtZXNwYWNl
IFdURiB7CiAKKyNpZiBVU0UoR1RLNCkKKy8vIEZJWE1FOiBVc2UgR1JlZlB0ciBpbiBHVEs0LCB0
aGlzIGlzIGp1c3QgdG8gZml4IHRoZSBidWlsZCBmb3Igbm93LgorV1RGX0RFRklORV9HUFRSX0RF
TEVURVIoR2RrRXZlbnQsIGdka19ldmVudF91bnJlZikKKyNlbHNlCiBXVEZfREVGSU5FX0dQVFJf
REVMRVRFUihHZGtFdmVudCwgZ2RrX2V2ZW50X2ZyZWUpCisjZW5kaWYKIFdURl9ERUZJTkVfR1BU
Ul9ERUxFVEVSKEd0a1RyZWVQYXRoLCBndGtfdHJlZV9wYXRoX2ZyZWUpCiAKIH0gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1ZlcnNp
b25pbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtWZXJzaW9uaW5nLmgKaW5k
ZXggNzNmM2Y2ZjNhNDg0Li5hODJlZmE1ZWYzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9HdGtWZXJzaW9uaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL0d0a1ZlcnNpb25pbmcuaApAQCAtMjQsNiArMjQsMTEgQEAKIAogI2lmIFVTRShHVEs0
KQogCisjZGVmaW5lIEdES19NT0QxX01BU0sgR0RLX0FMVF9NQVNLCisKK3R5cGVkZWYgR2RrS2V5
RXZlbnQgR2RrRXZlbnRLZXk7Cit0eXBlZGVmIEdka0ZvY3VzRXZlbnQgR2RrRXZlbnRGb2N1czsK
Kwogc3RhdGljIGlubGluZSBnYm9vbGVhbgogZ3RrX3dpZGdldF9pc190b3BsZXZlbChHdGtXaWRn
ZXQqIHdpZGdldCkKIHsKQEAgLTU3LDU5ICs2Miw3NyBAQCBndGtfaW5pdF9jaGVjayhpbnQqLCBj
aGFyKioqKQogICAgIHJldHVybiBndGtfaW5pdF9jaGVjaygpOwogfQogCi0jZGVmaW5lIEdES19N
T0QxX01BU0sgR0RLX0FMVF9NQVNLCitzdGF0aWMgaW5saW5lIEdka0V2ZW50KgorZ2RrX2V2ZW50
X2NvcHkoR2RrRXZlbnQqIGV2ZW50KQoreworICAgIHJldHVybiBnZGtfZXZlbnRfcmVmKGV2ZW50
KTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUoR3Rr
V2lkZ2V0KiB3aWRnZXQsIEd0a0FsbG9jYXRpb24qIGFsbG9jYXRpb24pCit7CisgICAgZ3RrX3dp
ZGdldF9zaXplX2FsbG9jYXRlKHdpZGdldCwgYWxsb2NhdGlvbiwgLTEpOworfQorCitzdGF0aWMg
aW5saW5lIHZvaWQKK2d0a193aWRnZXRfcXVldWVfcmVzaXplX25vX3JlZHJhdyhHdGtXaWRnZXQq
IHdpZGdldCkKK3sKKyAgICBndGtfd2lkZ2V0X3F1ZXVlX3Jlc2l6ZSh3aWRnZXQpOworfQogCiBz
dGF0aWMgaW5saW5lIGdib29sZWFuCi1nZGtfZXZlbnRfZ2V0X3N0YXRlKEdka0V2ZW50ICpldmVu
dCwgR2RrTW9kaWZpZXJUeXBlICpzdGF0ZSkKK2dka19ldmVudF9nZXRfc3RhdGUoY29uc3QgR2Rr
RXZlbnQgKmV2ZW50LCBHZGtNb2RpZmllclR5cGUgKnN0YXRlKQogewotICAgICpzdGF0ZSA9IGdk
a19ldmVudF9nZXRfbW9kaWZpZXJfc3RhdGUoZXZlbnQpOworICAgICpzdGF0ZSA9IGdka19ldmVu
dF9nZXRfbW9kaWZpZXJfc3RhdGUoY29uc3RfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSk7CiAgICAg
Ly8gVGhlIEdUSzMgbWV0aG9kIHJldHVybnMgVFJVRSBpZiB0aGVyZSBpcyBhIHN0YXRlLCBvdGhl
cndpc2UKICAgICAvLyBGQUxTRS4KICAgICByZXR1cm4gISEqc3RhdGU7CiB9CiAKIHN0YXRpYyBp
bmxpbmUgZ2Jvb2xlYW4KLWdka19ldmVudF9nZXRfY29vcmRzKEdka0V2ZW50ICpldmVudCwgZG91
YmxlICp4LCBkb3VibGUgKnkpCitnZGtfZXZlbnRfZ2V0X2Nvb3Jkcyhjb25zdCBHZGtFdmVudCAq
ZXZlbnQsIGRvdWJsZSAqeCwgZG91YmxlICp5KQogewotICAgIHJldHVybiBnZGtfZXZlbnRfZ2V0
X3Bvc2l0aW9uKGV2ZW50LCB4LCB5KTsKKyAgICByZXR1cm4gZ2RrX2V2ZW50X2dldF9wb3NpdGlv
bihjb25zdF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQpLCB4LCB5KTsKIH0KIAogc3RhdGljIGlubGlu
ZSBnYm9vbGVhbgotZ2RrX2V2ZW50X2dldF9yb290X2Nvb3JkcyhHZGtFdmVudCAqZXZlbnQsIGRv
dWJsZSAqeCwgZG91YmxlICp5KQorZ2RrX2V2ZW50X2dldF9yb290X2Nvb3Jkcyhjb25zdCBHZGtF
dmVudCAqZXZlbnQsIGRvdWJsZSAqeCwgZG91YmxlICp5KQogewogICAgIC8vIEdUSzQgZG9lcyBu
b3QgcHJvdmlkZSBhIHdheSBvZiBvYnRhaW5pbmcgc2NyZWVuLXJlbGF0aXZlIGV2ZW50IGNvb3Jk
aW5hdGVzLCBhbmQgZXZlbgogICAgIC8vIG9uIFdheWxhbmQgR1RLMyBjYW5ub3Qga25vdyB3aGVy
ZSBhIHN1cmZhY2UgaXMgYW5kIHdpbGwgcmV0dXJuIHRoZSBzdXJmYWNlLXJlbGF0aXZlCiAgICAg
Ly8gY29vcmRpbmF0ZXMgYW55d2F5LCBzbyBkbyB0aGUgc2FtZSBoZXJlLgotICAgIHJldHVybiBn
ZGtfZXZlbnRfZ2V0X3Bvc2l0aW9uKGV2ZW50LCB4LCB5KTsKKyAgICByZXR1cm4gZ2RrX2V2ZW50
X2dldF9wb3NpdGlvbihjb25zdF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQpLCB4LCB5KTsKIH0KIAog
c3RhdGljIGlubGluZSBnYm9vbGVhbgotZ2RrX2V2ZW50X2lzX3Njcm9sbF9zdG9wX2V2ZW50KEdk
a0V2ZW50KiBldmVudCkKK2dka19ldmVudF9pc19zY3JvbGxfc3RvcF9ldmVudChjb25zdCBHZGtF
dmVudCogZXZlbnQpCiB7Ci0gICAgcmV0dXJuIGdka19zY3JvbGxfZXZlbnRfaXNfc3RvcChldmVu
dCk7CisgICAgcmV0dXJuIGdka19zY3JvbGxfZXZlbnRfaXNfc3RvcChjb25zdF9jYXN0PEdka0V2
ZW50Kj4oZXZlbnQpKTsKIH0KIAogc3RhdGljIGlubGluZSBnYm9vbGVhbgotZ2RrX2V2ZW50X2dl
dF9zY3JvbGxfZGlyZWN0aW9uKEdka0V2ZW50KiBldmVudCwgR2RrU2Nyb2xsRGlyZWN0aW9uKiBk
aXJlY3Rpb24pCitnZGtfZXZlbnRfZ2V0X3Njcm9sbF9kaXJlY3Rpb24oY29uc3QgR2RrRXZlbnQq
IGV2ZW50LCBHZGtTY3JvbGxEaXJlY3Rpb24qIGRpcmVjdGlvbikKIHsKLSAgICAqZGlyZWN0aW9u
ID0gZ2RrX3Njcm9sbF9ldmVudF9nZXRfZGlyZWN0aW9uKGV2ZW50KTsKKyAgICAqZGlyZWN0aW9u
ID0gZ2RrX3Njcm9sbF9ldmVudF9nZXRfZGlyZWN0aW9uKGNvbnN0X2Nhc3Q8R2RrRXZlbnQqPihl
dmVudCkpOwogICAgIC8vIFRoZSBHVEszIG1ldGhvZCByZXR1cm5zIFRSVUUgaWYgdGhlIHNjcm9s
bCBkaXJlY3Rpb24gaXMgbm90CiAgICAgLy8gR0RLX1NDUk9MTF9TTU9PVEgsIHNvIGRvIHRoZSBz
YW1lIGhlcmUuCiAgICAgcmV0dXJuICpkaXJlY3Rpb24gIT0gR0RLX1NDUk9MTF9TTU9PVEg7CiB9
CiAKIHN0YXRpYyBpbmxpbmUgZ2Jvb2xlYW4KLWdka19ldmVudF9nZXRfc2Nyb2xsX2RlbHRhcyhH
ZGtFdmVudCogZXZlbnQsIGdkb3VibGUgKngsIGdkb3VibGUgKnkpCitnZGtfZXZlbnRfZ2V0X3Nj
cm9sbF9kZWx0YXMoY29uc3QgR2RrRXZlbnQqIGV2ZW50LCBnZG91YmxlICp4LCBnZG91YmxlICp5
KQogewotICAgIGdka19zY3JvbGxfZXZlbnRfZ2V0X2RlbHRhcyhldmVudCwgeCwgeSk7CisgICAg
Z2RrX3Njcm9sbF9ldmVudF9nZXRfZGVsdGFzKGNvbnN0X2Nhc3Q8R2RrRXZlbnQqPihldmVudCks
IHgsIHkpOwogICAgIC8vIFRoZSBHVEszIG1ldGhvZCByZXR1cm5zIFRSVUUgaWYgdGhlIGV2ZW50
IGlzIGEgc21vb3RoIHNjcm9sbAogICAgIC8vIGV2ZW50LCBzbyBkbyB0aGUgc2FtZSBoZXJlLgot
ICAgIHJldHVybiBnZGtfc2Nyb2xsX2V2ZW50X2dldF9kaXJlY3Rpb24oZXZlbnQpID09IEdES19T
Q1JPTExfU01PT1RIOworICAgIHJldHVybiBnZGtfc2Nyb2xsX2V2ZW50X2dldF9kaXJlY3Rpb24o
Y29uc3RfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSkgPT0gR0RLX1NDUk9MTF9TTU9PVEg7CiB9CiAK
IHN0YXRpYyBpbmxpbmUgZ2Jvb2xlYW4KLWdka19ldmVudF9nZXRfYnV0dG9uKEdka0V2ZW50KiBl
dmVudCkKK2dka19ldmVudF9nZXRfYnV0dG9uKGNvbnN0IEdka0V2ZW50KiBldmVudCwgZ3VpbnQq
IGJ1dHRvbikKIHsKLSAgICByZXR1cm4gZ2RrX2J1dHRvbl9ldmVudF9nZXRfYnV0dG9uKGV2ZW50
KTsKKyAgICBpZiAoYnV0dG9uKQorICAgICAgICAqYnV0dG9uID0gZ2RrX2J1dHRvbl9ldmVudF9n
ZXRfYnV0dG9uKGNvbnN0X2Nhc3Q8R2RrRXZlbnQqPihldmVudCkpOworICAgIHJldHVybiB0cnVl
OwogfQogI2VuZGlmIC8vIFVTRShHVEs0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwCmluZGV4IGFmOGZmMzQyNDZiYy4uNTc0OTY2YTU5ZmJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIu
Y3BwCkBAIC0yMyw2ICsyMyw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGFz
dGVib2FyZEhlbHBlci5oIgogCisjaWYgIVVTRShHVEs0KQorCiAjaW5jbHVkZSAiQml0bWFwSW1h
Z2UuaCIKICNpbmNsdWRlICJTZWxlY3Rpb25EYXRhLmgiCiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgpA
QCAtMzE0LDUgKzMxNiw3IEBAIHZvaWQgUGFzdGVib2FyZEhlbHBlcjo6d3JpdGVDbGlwYm9hcmRD
b250ZW50cyhHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCwgY29uc3QgU2VsCiAgICAgICAgIGd0a190
YXJnZXRfdGFibGVfZnJlZSh0YWJsZSwgbnVtYmVyT2ZUYXJnZXRzKTsKIH0KIAotfQorfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gIVVTRShHVEs0KQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuaAppbmRleCA1YTM5NWU2OTVhYzIu
LjRjM2Y0NTEwODFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bh
c3RlYm9hcmRIZWxwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVi
b2FyZEhlbHBlci5oCkBAIC0yMiw4ICsyMiw5IEBACiAgKgogICovCiAKLSNpZm5kZWYgUGFzdGVi
b2FyZEhlbHBlcl9oCi0jZGVmaW5lIFBhc3RlYm9hcmRIZWxwZXJfaAorI3ByYWdtYSBvbmNlCisK
KyNpZiAhVVNFKEdUSzQpCiAKICNpbmNsdWRlICJHUmVmUHRyR3RrLmgiCiAjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+CkBAIC01OCw2ICs1OSw2IEBAIHByaXZhdGU6CiAgICAgR1JlZlB0cjxHdGtU
YXJnZXRMaXN0PiBtX3RhcmdldExpc3Q7CiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKLSNlbmRpZiAvLyBQYXN0ZWJvYXJkSGVscGVyX2gKKyNlbmRpZiAvLyAhVVNFKEdUSzQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2
ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJk
RXZlbnRHdGsuY3BwCmluZGV4IGU3NTUwOTA4MzEzOS4uMDUxNmU3MDk3M2UwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50
R3RrLmNwcApAQCAtMTM3NCw2ICsxMzc0LDcgQEAgYm9vbCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6
Om1vZGlmaWVyc0NvbnRhaW5DYXBzTG9jayh1bnNpZ25lZCBtb2RpZmllcikKICAgICAvLyB0aGUg
c2FtZSBoZXJlLiBUaGlzIHdpbGwgYWxzbyByZXR1cm4gdHJ1ZSBpbiBXYXlsYW5kIGlmIHRoZXJl
J3MgYSBjYXBzIGxvY2sga2V5LCBzbyBpdCdzIG5vdCB3b3J0aCBpdAogICAgIC8vIGNoZWNraW5n
IHRoZSBhY3R1YWwgZGlzcGxheSBoZXJlLgogICAgIHN0YXRpYyBib29sIGxvY2tNYXNrSXNDYXBz
TG9jayA9IGZhbHNlOworI2lmICFVU0UoR1RLNCkKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXpl
ZCA9IGZhbHNlOwogICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKICAgICAgICAgR1VuaXF1ZU91dFB0
cjxHZGtLZXltYXBLZXk+IGtleXM7CkBAIC0xMzg0LDYgKzEzODUsNyBAQCBib29sIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6bW9kaWZpZXJzQ29udGFpbkNhcHNMb2NrKHVuc2lnbmVkIG1vZGlmaWVy
KQogICAgICAgICBsb2NrTWFza0lzQ2Fwc0xvY2sgPSBnZGtfa2V5bWFwX2dldF9lbnRyaWVzX2Zv
cl9rZXl2YWwoZ2RrX2tleW1hcF9nZXRfZm9yX2Rpc3BsYXkoZ2RrX2Rpc3BsYXlfZ2V0X2RlZmF1
bHQoKSksIEdES19LRVlfQ2Fwc19Mb2NrLCAma2V5cy5vdXRQdHIoKSwgJmVudHJpZXNDb3VudCkg
JiYgZW50cmllc0NvdW50OwogI2VuZGlmCiAgICAgfQorI2VuZGlmCiAgICAgcmV0dXJuIGxvY2tN
YXNrSXNDYXBzTG9jazsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1BsYXRmb3JtUGFzdGVib2FyZEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUGxhdGZvcm1QYXN0ZWJvYXJkR3RrLmNwcAppbmRleCAzOGIxNWNmZWIzZDkuLjBjOTdlOWZm
M2ZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtUGFz
dGVib2FyZEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3Jt
UGFzdGVib2FyZEd0ay5jcHAKQEAgLTI4LDIxICsyOCwzMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKKyNpZiBVU0UoR1RLNCkKK1BsYXRmb3JtUGFzdGVib2FyZDo6UGxhdGZvcm1QYXN0ZWJv
YXJkKGNvbnN0IFN0cmluZyYpCit7Cit9CisjZWxzZQogUGxhdGZvcm1QYXN0ZWJvYXJkOjpQbGF0
Zm9ybVBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKICAgICA6IG1fY2xp
cGJvYXJkKGd0a19jbGlwYm9hcmRfZ2V0KGdka19hdG9tX2ludGVybihwYXN0ZWJvYXJkTmFtZS51
dGY4KCkuZGF0YSgpLCBUUlVFKSkpCiB7CiAgICAgQVNTRVJUKG1fY2xpcGJvYXJkKTsKIH0KKyNl
bmRpZgogCiB2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGVUb0NsaXBib2FyZChjb25zdCBT
ZWxlY3Rpb25EYXRhJiBzZWxlY3Rpb24sIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIHByaW1hcnlT
ZWxlY3Rpb25DbGVhcmVkKQogeworI2lmICFVU0UoR1RLNCkKICAgICBQYXN0ZWJvYXJkSGVscGVy
OjpzaW5nbGV0b24oKS53cml0ZUNsaXBib2FyZENvbnRlbnRzKG1fY2xpcGJvYXJkLCBzZWxlY3Rp
b24sIGd0a19jbGlwYm9hcmRfZ2V0KEdES19TRUxFQ1RJT05fUFJJTUFSWSkgPT0gbV9jbGlwYm9h
cmQgPyBXVEZNb3ZlKHByaW1hcnlTZWxlY3Rpb25DbGVhcmVkKSA6IG51bGxwdHIpOworI2VuZGlm
CiB9CiAKIFJlZjxTZWxlY3Rpb25EYXRhPiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRGcm9tQ2xp
cGJvYXJkKCkKIHsKICAgICBSZWY8U2VsZWN0aW9uRGF0YT4gc2VsZWN0aW9uKFNlbGVjdGlvbkRh
dGE6OmNyZWF0ZSgpKTsKKyNpZiAhVVNFKEdUSzQpCiAgICAgUGFzdGVib2FyZEhlbHBlcjo6c2lu
Z2xldG9uKCkuZ2V0Q2xpcGJvYXJkQ29udGVudHMobV9jbGlwYm9hcmQsIHNlbGVjdGlvbi5nZXQo
KSk7CisjZW5kaWYKICAgICByZXR1cm4gc2VsZWN0aW9uOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcAppbmRleCAyNWRmYjQ3MTkx
ZmEuLjRlOTc3YWEyODVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1BsYXRmb3JtU2NyZWVuR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
UGxhdGZvcm1TY3JlZW5HdGsuY3BwCkBAIC0xNjYsNiArMTY2LDkgQEAgdm9pZCBzZXRTY3JlZW5E
UElPYnNlcnZlckhhbmRsZXIoRnVuY3Rpb248dm9pZCgpPiYmIGhhbmRsZXIsIHZvaWQqIGNvbnRl
eHQpCiAKIEdka01vbml0b3IqIGdldEN1cnJlbnRTY3JlZW5Nb25pdG9yKCkKIHsKKyNpZiBVU0Uo
R1RLNCkKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbHNlCiAgICAgR2RrRGlzcGxheSogZGlzcGxh
eSA9IGdka19kaXNwbGF5X2dldF9kZWZhdWx0KCk7CiAgICAgaWYgKCFkaXNwbGF5KQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKQEAgLTE3NSw2ICsxNzgsNyBAQCBHZGtNb25pdG9yKiBnZXRDdXJy
ZW50U2NyZWVuTW9uaXRvcigpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJu
IGdka19kaXNwbGF5X2dldF9tb25pdG9yX2F0X3dpbmRvdyhkaXNwbGF5LCByb290V2luZG93KTsK
KyNlbmRpZgogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGRmMjUyZjEyZWVlLi5hMGViMjQzN2JkNTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkzIEBACisyMDIwLTA0LTI0ICBDYXJsb3MgR2FyY2lhIENhbXBv
cyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLNF0gTWFrZSBpdCBwb3NzaWJs
ZSB0byBidWlsZCB3aXRoIEdUSzQgd2l0aG91dCBlcnJvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDk2NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBpZmRlZnMgd2hlbiBuZWVkZWQgdG8gbWFr
ZSBpdCBwb3NzaWJsZSB0byBjb21wbGV0ZSBhIGJ1aWxkIHdpdGggR1RLNC4gVGhpcyB3YXkgd2Ug
Y2FuIGNvbnRpbnVlIHdvcmtpbmcgb24KKyAgICAgICAgZXZlcnkgZmVhdHVyZSBpbmRpdmlkdWFs
bHkgYW5kIGNoZWNraW5nIGl0IGFjdHVhbGx5IHdvcmtzLiBNb3ZlIHB1YmxpYyBoZWFkZXJzIGNv
bnRhaW5pbmcgQVBJIHNwZWNpZmljIHRvIEdUSzMKKyAgICAgICAgYW5kIEdUSzQgaW50byB0aGVp
ciBvd24gZ3RrMyBhbmQgZ3RrNCBkaXJlY3RvcnkuCisKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5j
bWFrZToKKyAgICAgICAgKiBTaGFyZWQvQVBJL2dsaWIvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmNw
cDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oOgorICAgICAgICAq
IFNoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdl
YldoZWVsRXZlbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvZ2xpYi9XZWJDb250ZXh0TWVudUl0ZW1H
bGliLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtR2xpYjo6V2ViQ29u
dGV4dE1lbnVJdGVtR2xpYik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbUds
aWI6OmJ1aWxkQWN0aW9uTmFtZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRN
ZW51SXRlbUdsaWI6OmNyZWF0ZUFjdGlvbklmTmVlZGVkKToKKyAgICAgICAgKiBTaGFyZWQvZ2xp
Yi9XZWJDb250ZXh0TWVudUl0ZW1HbGliLmg6CisgICAgICAgICogU2hhcmVkL2d0ay9OYXRpdmVX
ZWJLZXlib2FyZEV2ZW50R3RrLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvZ3RrL05hdGl2ZVdlYk1v
dXNlRXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpOYXRpdmVXZWJNb3VzZUV2ZW50OjpO
YXRpdmVXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvZ3RrL05hdGl2ZVdlYlRvdWNo
RXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpOYXRpdmVXZWJUb3VjaEV2ZW50OjpOYXRp
dmVXZWJUb3VjaEV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvZ3RrL05hdGl2ZVdlYldoZWVsRXZl
bnRHdGsuY3BwOgorICAgICAgICAqIFNoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6YnV0dG9uRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJF
dmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9ndGsv
V2ViRXZlbnRGYWN0b3J5Lmg6CisgICAgICAgICogU291cmNlc0dUSy50eHQ6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2dsaWIvSW5wdXRNZXRob2RGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnB1dE1ldGhv
ZEZpbHRlcjo6ZmlsdGVyS2V5RXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9J
bnB1dE1ldGhvZEZpbHRlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJ
bnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmNwcDoKKyAgICAgICAg
KGNyZWF0ZUdzdEluc3RhbGxQbHVnaW5zQ29udGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFByaXZhdGUuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRVSUNsaWVudC5jcHA6CisgICAgICAgIChVSUNsaWVudDo6c2V0V2luZG93RnJhbWVUaW1l
ckZpcmVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5j
cHA6CisgICAgICAgICh3ZWJraXRXZWJDb250ZXh0R2V0UHJvcGVydHkpOgorICAgICAgICAod2Vi
a2l0V2ViQ29udGV4dFNldFByb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9j
bGFzc19pbml0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5j
cHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3UnVuQXNNb2RhbCk6CisgICAgICAgICh3ZWJraXRX
ZWJWaWV3UG9wdWxhdGVDb250ZXh0TWVudSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
SW5wdXRNZXRob2RGaWx0ZXJHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnB1dE1ldGhvZEZp
bHRlcjo6cGxhdGZvcm1FdmVudEtleUlzS2V5UHJlc3MgY29uc3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6c2V0Q3Vyc29yKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRv
bmVXaXRoS2V5RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRl
UG9wdXBNZW51UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRl
RGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OnN0YXJ0RHJhZyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkb25l
V2l0aFRvdWNoRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6d2hlZWxF
dmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEF1dGhlbnRpY2F0aW9uRGlhbG9nLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvbkRpYWxvZy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEVtb2ppQ2hvb3Nlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0RW1vamlDaG9vc2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0SW5wdXRNZXRob2RDb250ZXh0R3RrLmNwcDoKKyAgICAgICAgKHdlYmtpdF9pbnB1dF9tZXRo
b2RfY29udGV4dF9maWx0ZXJfa2V5X2V2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHRJbXBsR3RrLmNwcDoKKyAgICAgICAgKHdlYmtpdElu
cHV0TWV0aG9kQ29udGV4dEltcGxHdGtGaWx0ZXJLZXlFdmVudCk6CisgICAgICAgICh3ZWJraXRJ
bnB1dE1ldGhvZENvbnRleHRJbXBsR3RrU2V0Q2xpZW50V2luZG93KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRQb3B1cE1lbnUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJL
aXRQb3B1cE1lbnU6OldlYktpdFBvcHVwTWVudSk6CisgICAgICAgIChXZWJLaXQ6OldlYktpdFBv
cHVwTWVudTo6c2hvd1BvcHVwTWVudSk6CisgICAgICAgIChXZWJLaXQ6OldlYktpdFBvcHVwTWVu
dTo6aGlkZVBvcHVwTWVudSk6CisgICAgICAgIChXZWJLaXQ6OldlYktpdFBvcHVwTWVudTo6Y2Fu
Y2VsVHJhY2tpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBvcHVwTWVu
dS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9uLmNw
cDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTY3JpcHREaWFsb2dHdGsuY3Bw
OgorICAgICAgICAod2Via2l0U2NyaXB0RGlhbG9nQWNjZXB0KToKKyAgICAgICAgKHdlYmtpdFNj
cmlwdERpYWxvZ0Rpc21pc3MpOgorICAgICAgICAod2Via2l0U2NyaXB0RGlhbG9nU2V0VXNlcklu
cHV0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTY3JpcHREaWFsb2dJbXBs
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTY3JpcHREaWFsb2dJbXBs
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwOgor
ICAgICAgICAoQ2xpY2tDb3VudGVyOjpjdXJyZW50Q2xpY2tDb3VudEZvckdka0J1dHRvbkV2ZW50
KToKKyAgICAgICAgKF9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGU6Ol9XZWJLaXRXZWJWaWV3QmFz
ZVByaXZhdGUpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VTZXRUb3BsZXZlbE9uU2NyZWVu
V2luZG93KToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlUmVhbGl6ZSk6CisgICAgICAgICh3
ZWJraXRXZWJWaWV3QmFzZUNvbnRhaW5lckZvcmFsbCk6CisgICAgICAgICh3ZWJraXRXZWJWaWV3
QmFzZURpc3Bvc2UpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VDb25zdHJ1Y3RlZCk6Cisg
ICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZVNpemVBbGxvY2F0ZSk6CisgICAgICAgICh3ZWJraXRX
ZWJWaWV3QmFzZUtleVByZXNzRXZlbnQpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VLZXlS
ZWxlYXNlRXZlbnQpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VTZXRFbmFibGVCYWNrRm9y
d2FyZE5hdmlnYXRpb25HZXN0dXJlKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlQmVnaW5C
YWNrU3dpcGVGb3JUZXN0aW5nKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlQ29tcGxldGVC
YWNrU3dpcGVGb3JUZXN0aW5nKToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19iYXNlX2NsYXNz
X2luaXQpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VXaWxsU3dhcFdlYlByb2Nlc3MpOgor
ICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VEaWRFeGl0V2ViUHJvY2Vzcyk6CisgICAgICAgICh3
ZWJraXRXZWJWaWV3QmFzZURpZFJlbGF1bmNoV2ViUHJvY2Vzcyk6CisgICAgICAgICh3ZWJraXRX
ZWJWaWV3QmFzZVRha2VWaWV3U25hcHNob3QpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VE
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZSk6CisgICAgICAgICh3ZWJraXRXZWJW
aWV3QmFzZURpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSk6CisgICAg
ICAgICh3ZWJraXRXZWJWaWV3QmFzZURpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUpOgorICAgICAg
ICAod2Via2l0V2ViVmlld0Jhc2VEaWRGYWlsTG9hZEZvck1haW5GcmFtZSk6CisgICAgICAgICh3
ZWJraXRXZWJWaWV3QmFzZURpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUpOgor
ICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VEaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24pOgorICAg
ICAgICAod2Via2l0V2ViVmlld0Jhc2VTaG93RW1vamlDaG9vc2VyKToKKyAgICAgICAgKHdlYmtp
dFdlYlZpZXdCYXNlUmVxdWVzdFBvaW50ZXJMb2NrKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdC
YXNlRGlkTG9zZVBvaW50ZXJMb2NrKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlU3ludGhl
c2l6ZUNvbXBvc2l0aW9uS2V5UHJlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdEaWFsb2cuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXdEaWFsb2cuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJW
aWV3R3RrLmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdBdXRoZW50aWNhdGUpOgorICAgICAg
ICAod2Via2l0V2ViVmlld1NjcmlwdERpYWxvZyk6CisgICAgICAgICh3ZWJraXRXZWJWaWV3UnVu
RmlsZUNob29zZXIpOgorICAgICAgICAod2Via2l0V2ViVmlld01heGltaXplV2luZG93KToKKyAg
ICAgICAgKHdlYmtpdFdlYlZpZXdNaW5pbWl6ZVdpbmRvdyk6CisgICAgICAgICh3ZWJraXRXZWJW
aWV3UmVzdG9yZVdpbmRvdyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGszL1dlYktpdENv
bnRleHRNZW51SXRlbS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
My9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0azQvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmg6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5oLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrNC9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5wdXRN
ZXRob2RDb250ZXh0LmguCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vZ3RrL1dlYkF1
dG9tYXRpb25TZXNzaW9uR3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNl
c3Npb246OnBsYXRmb3JtU2ltdWxhdGVNb3VzZUludGVyYWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlib2FyZEludGVyYWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2lt
dWxhdGVLZXlTZXF1ZW5jZSk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TYXZlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVj
dG9yL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybVNhdmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0
b3IvZ3RrL1dlYktpdEluc3BlY3RvcldpbmRvdy5jcHA6CisgICAgICAgICh3ZWJraXRfaW5zcGVj
dG9yX3dpbmRvd19pbml0KToKKyAgICAgICAgKHdlYmtpdEluc3BlY3RvcldpbmRvd05ldyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2NhaXJvL0JhY2tp
bmdTdG9yZUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QmFja2luZ1N0b3JlOjpjcmVhdGVC
YWNrZW5kKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9y
ZVdheWxhbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdh
eWxhbmQ6OnRyeUVuc3VyZUdMQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVk
QmFja2luZ1N0b3JlV2F5bGFuZDo6cGFpbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvQWNj
ZWxlcmF0ZWRCYWNraW5nU3RvcmVYMTEuY3BwOgorICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRl
ZEJhY2tpbmdTdG9yZVgxMTo6fkFjY2VsZXJhdGVkQmFja2luZ1N0b3JlWDExKToKKyAgICAgICAg
KFdlYktpdDo6QWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVYMTE6OnVwZGF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL2d0ay9EcmFnQW5kRHJvcEhhbmRsZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vz
cy9ndGsvRHJhZ0FuZERyb3BIYW5kbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9HZXN0
dXJlQ29udHJvbGxlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9HZXN0dXJlQ29udHJv
bGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpLZXlCaW5kaW5nVHJhbnNsYXRvcjo6S2V5QmluZGluZ1RyYW5z
bGF0b3IpOgorICAgICAgICAoV2ViS2l0OjpLZXlCaW5kaW5nVHJhbnNsYXRvcjo6Y29tbWFuZHNG
b3JLZXlFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRv
ci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvUG9pbnRlckxvY2tNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UG9pbnRlckxvY2tNYW5hZ2VyOjpsb2NrKToKKyAgICAgICAgKFdlYktp
dDo6UG9pbnRlckxvY2tNYW5hZ2VyOjp1bmxvY2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsv
UG9pbnRlckxvY2tNYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9j
a01hbmFnZXJXYXlsYW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UG9pbnRlckxvY2tNYW5hZ2Vy
V2F5bGFuZDo6bG9jayk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9ja01hbmFn
ZXJYMTEuY3BwOgorICAgICAgICAoV2ViS2l0OjpQb2ludGVyTG9ja01hbmFnZXJYMTE6OmRpZFJl
Y2VpdmVNb3Rpb25FdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tl
ckd0ay5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0TWVudVByb3h5R3Rr
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eUd0azo6c2hvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlHdGs6OnNob3dDb250ZXh0TWVudVdp
dGhJdGVtcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlHdGs6OldlYkNv
bnRleHRNZW51UHJveHlHdGspOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5
R3RrOjp+V2ViQ29udGV4dE1lbnVQcm94eUd0ayk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9X
ZWJDb250ZXh0TWVudVByb3h5R3RrLmg6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJEYXRh
TGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25HdGsuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsv
V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duR3RrLmg6CisgICAgICAgICogVUlQcm9jZXNz
L2d0ay9XZWJQYWdlUHJveHlHdGsuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUG9w
dXBNZW51UHJveHlHdGsuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51
UHJveHlHdGsuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxl
ci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2xvc2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjptYWluRnJhbWVEaWRMYXlvdXQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VYMTEuY3BwOgorICAgICAgICAoV2ViS2l0OjpB
Y2NlbGVyYXRlZFN1cmZhY2VYMTE6OkFjY2VsZXJhdGVkU3VyZmFjZVgxMSk6CisgICAgICAgIChX
ZWJLaXQ6OkFjY2VsZXJhdGVkU3VyZmFjZVgxMTo6Y3JlYXRlUGl4bWFwKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJpbnRPcGVyYXRpb25HdGs6OnByaW50KToKKwogMjAyMC0wNC0yMyAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBCb3VuY2UgZGlz
cGxheVdhc1JlZnJlc2hlZCgpIHZpYSBFdmVudERpc3BhdGNoZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNt
YWtlCmluZGV4IDc1MzljYzg5ZDc2ZC4uOTYzMWI5OWRiNjk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsu
Y21ha2UKQEAgLTgsNiArOCw3IEBAIHNldChQbHVnaW5Qcm9jZXNzX09VVFBVVF9OQU1FIFdlYktp
dFBsdWdpblByb2Nlc3MpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNf
V0VCS0lUMkdUS19BUElfRElSfSkKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtGT1JXQVJESU5HX0hF
QURFUlNfV0VCS0lUMkdUS19ESVJ9KQorZmlsZShNQUtFX0RJUkVDVE9SWSAke0ZPUldBUkRJTkdf
SEVBREVSU19XRUJLSVQyR1RLX1ZFUlNJT05FRF9ESVJ9KQogZmlsZShNQUtFX0RJUkVDVE9SWSAk
e0ZPUldBUkRJTkdfSEVBREVSU19XRUJLSVQyR1RLX0VYVEVOU0lPTl9ESVJ9KQogCiBjb25maWd1
cmVfZmlsZShVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRWZXJzaW9uLmguaW4gJHtERVJJVkVEX1NP
VVJDRVNfV0VCS0lUMkdUS19BUElfRElSfS9XZWJLaXRWZXJzaW9uLmgpCkBAIC0zMywxMSArMzQs
MjAgQEAgbGlzdChBUFBFTkQgV2ViS2l0X1VOSUZJRURfU09VUkNFX0xJU1RfRklMRVMKICAgICAi
U291cmNlc0dUSy50eHQiCiApCiAKLWxpc3QoQVBQRU5EIFdlYktpdF9NRVNTQUdFU19JTl9GSUxF
UwotICAgIFVJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIubWVzc2FnZXMuaW4KK2lmIChO
T1QgVVNFX0dUSzQpCisgICAgbGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKKyAgICAgICAgVUlQ
cm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKIAotICAgIFdlYlByb2Nlc3MvV2ViUGFn
ZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLm1lc3NhZ2VzLmluCi0pCisgICAgICAgIFVJ
UHJvY2Vzcy9ndGsvVmlld0dlc3R1cmVDb250cm9sbGVyR3RrLmNwcAorCisgICAgICAgIFdlYlBy
b2Nlc3MvV2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcAorICAgICkKKyAg
ICBsaXN0KEFQUEVORCBXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKKyAgICAgICAgVUlQcm9jZXNz
L1ZpZXdHZXN0dXJlQ29udHJvbGxlci5tZXNzYWdlcy5pbgorCisgICAgICAgIFdlYlByb2Nlc3Mv
V2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLm1lc3NhZ2VzLmluCisgICAgKQor
ZW5kaWYgKCkKIAogbGlzdChBUFBFTkQgV2ViS2l0X0RFUklWRURfU09VUkNFUwogICAgICR7REVS
SVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUuYwpA
QCAtNTUsOSArNjUsMTcgQEAgaWYgKEVOQUJMRV9XQVlMQU5EX1RBUkdFVCkKICAgICApCiBlbmRp
ZiAoKQogCitpZiAoVVNFX0dUSzQpCisgICAgc2V0KEdUS19BUElfVkVSU0lPTiA0KQorZWxzZSAo
KQorICAgIHNldChHVEtfQVBJX1ZFUlNJT04gMykKK2VuZGlmICgpCisKIHNldChXZWJLaXQyR1RL
X0lOU1RBTExFRF9IRUFERVJTCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMkdUS19BUElf
RElSfS9XZWJLaXRFbnVtVHlwZXMuaAogICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtf
QVBJX0RJUn0vV2ViS2l0VmVyc2lvbi5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJ
L2d0ayR7R1RLX0FQSV9WRVJTSU9OfS9XZWJLaXRDb250ZXh0TWVudUl0ZW0uaAorICAgICR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGske0dUS19BUElfVkVSU0lPTn0vV2ViS2l0SW5wdXRN
ZXRob2RDb250ZXh0LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEFwcGxpY2F0aW9uSW5mby5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmgKQEAgLTY4LDcgKzg2LDYgQEAgc2V0KFdlYktp
dDJHVEtfSU5TVEFMTEVEX0hFQURFUlMKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdENyZWRlbnRpYWwuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0Q29udGV4dE1lbnUuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0Q29udGV4dE1lbnVBY3Rpb25zLmgKLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29raWVNYW5hZ2VyLmgKICAgICAke1dFQktJVF9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERlZmluZXMuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTg0LDcg
KzEwMSw2IEBAIHNldChXZWJLaXQyR1RLX0lOU1RBTExFRF9IRUFERVJTCiAgICAgJHtXRUJLSVRf
RElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXIuaAogICAgICR7
V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRIaXRU
ZXN0UmVzdWx0LmgKLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdElu
cHV0TWV0aG9kQ29udGV4dC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmgKICAgICAk
e1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuaAog
ICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TWltZUluZm8uaApAQCAt
MzY1LDYgKzM4MSw3IEBAIHNldChXZWJLaXRET01fR1RLRE9DX0hFQURFUlMKICMgVGhpcyBpcyBu
ZWNlc3NhcnkgYmVjYXVzZSBvZiBhIGNvbmZsaWN0IGJldHdlZW4gdGhlIEdUSysgQVBJIFdlYktp
dFZlcnNpb24uaCBhbmQgb25lIGdlbmVyYXRlZCBieSBXZWJDb3JlLgogbGlzdChJTlNFUlQgV2Vi
S2l0X0lOQ0xVREVfRElSRUNUT1JJRVMgMAogICAgICIke0ZPUldBUkRJTkdfSEVBREVSU19XRUJL
SVQyR1RLX0RJUn0iCisgICAgIiR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJVDJHVEtfVkVSU0lP
TkVEX0RJUn0iCiAgICAgIiR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJVDJHVEtfRVhURU5TSU9O
X0RJUn0iCiAgICAgIiR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtfQVBJX0RJUn0iCiAgICAg
IiR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtfRElSfSIKQEAgLTM5Miw2ICs0MDksNyBAQCBs
aXN0KEFQUEVORCBXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9
L1VJUHJvY2Vzcy9BUEkvQy9jYWlybyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJ
L0MvZ3RrIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYiIKKyAgICAiJHtX
RUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ayR7R1RLX0FQSV9WRVJTSU9OfSIKICAgICAiJHtX
RUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ayIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvSW5z
cGVjdG9yL2dsaWIiCkBAIC01ODcsNiArNjA1LDcgQEAgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3Jp
ZXMod2Via2l0Mmd0a2luamVjdGVkYnVuZGxlIFBSSVZBVEUKICAgICAiJHtERVJJVkVEX1NPVVJD
RVNfRElSfS9JbmplY3RlZEJ1bmRsZSIKICAgICAiJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfSIK
ICAgICAiJHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lUMkdUS19ESVJ9IgorICAgICIke0ZPUldB
UkRJTkdfSEVBREVSU19XRUJLSVQyR1RLX1ZFUlNJT05FRF9ESVJ9IgogICAgICIke0RFUklWRURf
U09VUkNFU19XRUJLSVQyR1RLX0FQSV9ESVJ9IgogKQogCkBAIC02NjEsNiArNjgwLDcgQEAgaWYg
KEVOQUJMRV9JTlRST1NQRUNUSU9OKQogICAgICAgICAgICAgLUkke0ZPUldBUkRJTkdfSEVBREVS
U19ESVJ9CiAgICAgICAgICAgICAtSSR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0vSmF2YVNjcmlw
dENvcmUvZ2xpYgogICAgICAgICAgICAgLUkke0ZPUldBUkRJTkdfSEVBREVSU19XRUJLSVQyR1RL
X0RJUn0KKyAgICAgICAgICAgIC1JJHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lUMkdUS19WRVJT
SU9ORURfRElSfQogICAgICAgICAgICAgJHtXZWJLaXQyR1RLX0lOU1RBTExFRF9IRUFERVJTfQog
ICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9TaGFyZWQvQVBJL2dsaWIvKi5jcHAKICAgICAgICAg
ICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliLyouY3BwCkBAIC03MDcsNiArNzI3
LDcgQEAgaWYgKEVOQUJMRV9JTlRST1NQRUNUSU9OKQogICAgICAgICAgICAgLUkke0ZPUldBUkRJ
TkdfSEVBREVSU19ESVJ9CiAgICAgICAgICAgICAtSSR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0v
SmF2YVNjcmlwdENvcmUvZ2xpYgogICAgICAgICAgICAgLUkke0ZPUldBUkRJTkdfSEVBREVSU19X
RUJLSVQyR1RLX0RJUn0KKyAgICAgICAgICAgIC1JJHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lU
MkdUS19WRVJTSU9ORURfRElSfQogICAgICAgICAgICAgLUkke0ZPUldBUkRJTkdfSEVBREVSU19X
RUJLSVQyR1RLX0VYVEVOU0lPTl9ESVJ9CiAgICAgICAgICAgICAtSSR7V0VCS0lUX0RJUn0vV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrCiAgICAgICAgICAgICAke1dlYktpdERPTV9J
TlNUQUxMRURfSEVBREVSU30KQEAgLTcxNyw5ICs3MzgsOSBAQCBpZiAoRU5BQkxFX0lOVFJPU1BF
Q1RJT04pCiAgICAgICAgICAgICAke1dFQktJVF9ESVJ9L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRV
c2VyTWVzc2FnZS5jcHAKICAgICAgICAgICAgICR7V0VCS0lUX0RJUn0vU2hhcmVkL0FQSS9nbGli
L1dlYktpdFVSSVJlcXVlc3QuY3BwCiAgICAgICAgICAgICAke1dFQktJVF9ESVJ9L1NoYXJlZC9B
UEkvZ2xpYi9XZWJLaXRVUklSZXNwb25zZS5jcHAKKyAgICAgICAgICAgICR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzL0FQSS9ndGske0dUS19BUElfVkVSU0lPTn0vV2ViS2l0Q29udGV4dE1lbnVJdGVt
LmgKICAgICAgICAgICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29u
dGV4dE1lbnUuaAogICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRDb250ZXh0TWVudUFjdGlvbnMuaAotICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudUl0ZW0uaAogICAgICAgICAgICAgJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRIaXRUZXN0UmVzdWx0LmgKICAgICAgICAg
ICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lc3NhZ2UuaAog
ICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1
ZXN0LmgKQEAgLTc4Miw5ICs4MDMsMTEgQEAgZmlsZShXUklURSAke0NNQUtFX0JJTkFSWV9ESVJ9
L2d0a2RvYy13ZWJraXQyZ3RrLmNmZwogICAgICIgICAgICAgLUkke1dFQktJVF9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvZ3RrXG4iCiAgICAgIiAgICAgICAtSSR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJH
VEtfRElSfVxuIgogICAgICIgICAgICAgLUkke0ZPUldBUkRJTkdfSEVBREVSU19XRUJLSVQyR1RL
X0RJUn1cbiIKKyAgICAiICAgICAgIC1JJHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lUMkdUS19W
RVJTSU9ORURfRElSfVxuIgogICAgICJkb2NfZGlyPSR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jc1xuIgogICAgICJzb3VyY2VfZGlycz0ke1dFQktJVF9ESVJ9L1NoYXJlZC9BUEkv
Z2xpYlxuIgogICAgICIgICAgICAgICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xp
YlxuIgorICAgICIgICAgICAgICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrJHtH
VEtfQVBJX1ZFUlNJT059XG4iCiAgICAgIiAgICAgICAgICAgICR7V0VCS0lUX0RJUn0vVUlQcm9j
ZXNzL0FQSS9ndGtcbiIKICAgICAiICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9nbGliXG4iCiAgICAgIiAgICAgICAgICAgICR7V0VCS0lUX0RJ
Un0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrXG4iCkBAIC04MDMsNiArODI2LDcg
QEAgZmlsZShXUklURSAke0NNQUtFX0JJTkFSWV9ESVJ9L2d0a2RvYy13ZWJraXRkb20uY2ZnCiAg
ICAgIiAgICAgICAtSSR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTVxuIgogICAgICIgICAgICAgLUkke0RFUklWRURfU09VUkNFU19XRUJLSVQyR1RLX0RJ
Un1cbiIKICAgICAiICAgICAgIC1JJHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lUMkdUS19ESVJ9
XG4iCisgICAgIiAgICAgICAtSSR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJVDJHVEtfVkVSU0lP
TkVEX0RJUn1cbiIKICAgICAiZG9jX2Rpcj0ke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vZG9jc1xuIgogICAgICJzb3VyY2VfZGlycz0ke1dFQktJVF9E
SVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NXG4iCiAgICAgIiAgICAg
ICAgICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TVxuIgpAQCAtODIwLDYgKzg0NCwxMSBAQCBhZGRfY3VzdG9tX2NvbW1hbmQoCiAgICAgREVQRU5E
UyAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrCiAgICAgQ09NTUFORCBsbiAtbiAtcyAt
ZiAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrICR7Rk9SV0FSRElOR19IRUFERVJTX1dF
QktJVDJHVEtfRElSfS93ZWJraXQyCiApCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVU
ICR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJVDJHVEtfVkVSU0lPTkVEX0RJUn0vd2Via2l0Mgor
ICAgIERFUEVORFMgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ayR7R1RLX0FQSV9WRVJT
SU9OfQorICAgIENPTU1BTkQgbG4gLW4gLXMgLWYgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJ
L2d0ayR7R1RLX0FQSV9WRVJTSU9OfSAke0ZPUldBUkRJTkdfSEVBREVSU19XRUJLSVQyR1RLX1ZF
UlNJT05FRF9ESVJ9L3dlYmtpdDIKKykKIGFkZF9jdXN0b21fY29tbWFuZCgKICAgICBPVVRQVVQg
JHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lUMkdUS19FWFRFTlNJT05fRElSfS93ZWJraXQyCiAg
ICAgREVQRU5EUyAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
awpAQCAtODMyLDYgKzg2MSw3IEBAIGFkZF9jdXN0b21fY29tbWFuZCgKICkKIGFkZF9jdXN0b21f
dGFyZ2V0KFdlYktpdC1mYWtlLWFwaS1oZWFkZXJzCiAgICAgREVQRU5EUyAke0ZPUldBUkRJTkdf
SEVBREVSU19XRUJLSVQyR1RLX0RJUn0vd2Via2l0MgorICAgICAgICAgICAgJHtGT1JXQVJESU5H
X0hFQURFUlNfV0VCS0lUMkdUS19WRVJTSU9ORURfRElSfS93ZWJraXQyCiAgICAgICAgICAgICAk
e0ZPUldBUkRJTkdfSEVBREVSU19XRUJLSVQyR1RLX0VYVEVOU0lPTl9ESVJ9L3dlYmtpdDIKICAg
ICAgICAgICAgICR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJVDJHVEtfRVhURU5TSU9OX0RJUn0v
d2Via2l0ZG9tCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9X
ZWJLaXRDb250ZXh0TWVudUl0ZW0uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2dsaWIv
V2ViS2l0Q29udGV4dE1lbnVJdGVtLmNwcAppbmRleCBlNWQyZTI5ZTIzYjMuLmRiNjE0OTNiNzgw
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2dsaWIvV2ViS2l0Q29udGV4
dE1lbnVJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRD
b250ZXh0TWVudUl0ZW0uY3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgV2ViQ29udGV4dE1lbnVJdGVt
RGF0YSB3ZWJraXRDb250ZXh0TWVudUl0ZW1Ub1dlYkNvbnRleHRNZW51SXRlbURhdGEoV2ViS2l0
Q29udGUKICAgICByZXR1cm4gV2ViQ29udGV4dE1lbnVJdGVtRGF0YShpdGVtLT5wcml2LT5tZW51
SXRlbS0+dHlwZSgpLCBpdGVtLT5wcml2LT5tZW51SXRlbS0+YWN0aW9uKCksIGl0ZW0tPnByaXYt
Pm1lbnVJdGVtLT50aXRsZSgpLCBpdGVtLT5wcml2LT5tZW51SXRlbS0+ZW5hYmxlZCgpLCBpdGVt
LT5wcml2LT5tZW51SXRlbS0+Y2hlY2tlZCgpKTsKIH0KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNp
ZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkKIC8qKgogICogd2Via2l0X2NvbnRleHRfbWVu
dV9pdGVtX25ldzoKICAqIEBhY3Rpb246IGEgI0d0a0FjdGlvbgpAQCAtMjYxLDcgKzI2MSw3IEBA
IFdlYktpdENvbnRleHRNZW51SXRlbSogd2Via2l0X2NvbnRleHRfbWVudV9pdGVtX25ld19zZXBh
cmF0b3Iodm9pZCkKICAgICByZXR1cm4gaXRlbTsKIH0KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNp
ZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkKIC8qKgogICogd2Via2l0X2NvbnRleHRfbWVu
dV9pdGVtX2dldF9hY3Rpb246CiAgKiBAaXRlbTogYSAjV2ViS2l0Q29udGV4dE1lbnVJdGVtCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgKaW5kZXggZjA4
YzE5ZmI5NWVjLi4yNGQ1NGU4YzIxZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRp
dmVXZWJLZXlib2FyZEV2ZW50LmgKQEAgLTQzLDggKzQzLDEyIEBAIHN0cnVjdCBLZXlwcmVzc0Nv
bW1hbmQ7CiAKICNpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8V2ViQ29yZS9HVW5pcXVlUHRy
R3RrLmg+CisjaWYgVVNFKEdUSzQpCit0eXBlZGVmIHN0cnVjdCBfR2RrRXZlbnQgR2RrRXZlbnQ7
CisjZWxzZQogdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7CiAjZW5kaWYKKyNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmgKaW5kZXggMGZhNTU3
ZTlmYWEzLi40YjhkYWM4ZWI5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05h
dGl2ZVdlYk1vdXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJN
b3VzZUV2ZW50LmgKQEAgLTM1LDggKzM1LDEyIEBAIE9CSkNfQ0xBU1MgTlNWaWV3OwogCiAjaWYg
UExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPFdlYkNvcmUvR1VuaXF1ZVB0ckd0ay5oPgorI2lmIFVT
RShHVEs0KQordHlwZWRlZiBzdHJ1Y3QgX0dka0V2ZW50IEdka0V2ZW50OworI2Vsc2UKIHR5cGVk
ZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50OwogI2VuZGlmCisjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCmluZGV4IDM5OTFhNDc5ZjFmMS4uNWU2NTVi
NDgyYzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCkBA
IC0zNSw4ICszNSwxMiBAQCBPQkpDX0NMQVNTIE5TVmlldzsKIAogI2lmIFBMQVRGT1JNKEdUSykK
ICNpbmNsdWRlIDxXZWJDb3JlL0dVbmlxdWVQdHJHdGsuaD4KKyNpZiBVU0UoR1RLNCkKK3R5cGVk
ZWYgc3RydWN0IF9HZGtFdmVudCBHZGtFdmVudDsKKyNlbHNlCiB0eXBlZGVmIHVuaW9uIF9HZGtF
dmVudCBHZGtFdmVudDsKICNlbmRpZgorI2VuZGlmCiAKICNpZiBVU0UoTElCV1BFKQogc3RydWN0
IHdwZV9pbnB1dF9heGlzX2V2ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Z2xpYi9XZWJDb250ZXh0TWVudUl0ZW1HbGliLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2ds
aWIvV2ViQ29udGV4dE1lbnVJdGVtR2xpYi5jcHAKaW5kZXggMjM1NzRlNzQ2Zjg1Li41MmE2Mzgz
MzYwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvV2ViQ29udGV4dE1l
bnVJdGVtR2xpYi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ2xpYi9XZWJDb250ZXh0
TWVudUl0ZW1HbGliLmNwcApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIkFQSU9iamVjdC5o
IgogI2luY2x1ZGUgPGdpby9naW8uaD4KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9S
TShHVEspICYmICFVU0UoR1RLNCkKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjZW5kaWYKIApAQCAt
NTQsNyArNTQsNyBAQCBXZWJDb250ZXh0TWVudUl0ZW1HbGliOjpXZWJDb250ZXh0TWVudUl0ZW1H
bGliKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbUdsaWImIGRhdAogewogICAgIG1fZ0FjdGlvbiA9
IGRhdGEuZ0FjdGlvbigpOwogICAgIG1fc3VibWVudUl0ZW1zID0gV1RGTW92ZShzdWJtZW51KTsK
LSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSAmJiAhVVNFKEdUSzQpCiAgICAg
bV9ndGtBY3Rpb24gPSBkYXRhLmd0a0FjdGlvbigpOwogI2VuZGlmCiB9CkBAIC03Nyw3ICs3Nyw3
IEBAIFdlYkNvbnRleHRNZW51SXRlbUdsaWI6OldlYkNvbnRleHRNZW51SXRlbUdsaWIoR0FjdGlv
biogYWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpCiAgICAgY3JlYXRlQWN0aW9uSWZOZWVkZWQoKTsK
IH0KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkK
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiBXZWJDb250ZXh0TWVudUl0ZW1H
bGliOjpXZWJDb250ZXh0TWVudUl0ZW1HbGliKEd0a0FjdGlvbiogYWN0aW9uKQogICAgIDogV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YShHVEtfSVNfVE9HR0xFX0FDVElPTihhY3Rpb24pID8gQ2hlY2th
YmxlQWN0aW9uVHlwZSA6IEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbUJhc2VBcHBsaWNhdGlv
blRhZywgU3RyaW5nOjpmcm9tVVRGOChndGtfYWN0aW9uX2dldF9sYWJlbChhY3Rpb24pKSwgZ3Rr
X2FjdGlvbl9nZXRfc2Vuc2l0aXZlKGFjdGlvbiksIEdUS19JU19UT0dHTEVfQUNUSU9OKGFjdGlv
bikgPyBndGtfdG9nZ2xlX2FjdGlvbl9nZXRfYWN0aXZlKEdUS19UT0dHTEVfQUNUSU9OKGFjdGlv
bikpIDogZmFsc2UpCkBAIC05NSw3ICs5NSw3IEBAIFdlYkNvbnRleHRNZW51SXRlbUdsaWI6On5X
ZWJDb250ZXh0TWVudUl0ZW1HbGliKCkKIAogR1VuaXF1ZVB0cjxjaGFyPiBXZWJDb250ZXh0TWVu
dUl0ZW1HbGliOjpidWlsZEFjdGlvbk5hbWUoKSBjb25zdAogewotI2lmIFBMQVRGT1JNKEdUSykK
KyNpZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkKIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgaWYgKG1fZ3RrQWN0aW9uKQogICAgICAgICByZXR1cm4gR1VuaXF1
ZVB0cjxjaGFyPihnX3N0cmR1cChndGtfYWN0aW9uX2dldF9uYW1lKG1fZ3RrQWN0aW9uKSkpOwpA
QCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVJdGVtR2xpYjo6Y3JlYXRlQWN0
aW9uSWZOZWVkZWQoKQogICAgICAgICBnX3NpbXBsZV9hY3Rpb25fc2V0X2VuYWJsZWQoR19TSU1Q
TEVfQUNUSU9OKG1fZ0FjdGlvbi5nZXQoKSksIGVuYWJsZWQoKSk7CiAgICAgfQogCi0jaWYgUExB
VEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgJiYgIVVTRShHVEs0KQogQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBDcmVhdGUgdGhlIEd0a0FjdGlvbiBmb3Ig
YmFja3dhcmRzIGNvbXBhdGliaWxpdHkgb25seS4KICAgICBpZiAoIW1fZ3RrQWN0aW9uKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9nbGliL1dlYkNvbnRleHRNZW51SXRlbUds
aWIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvV2ViQ29udGV4dE1lbnVJdGVtR2xpYi5o
CmluZGV4IDVmZmU2YWIzMjQxYy4uYWYxMjFkYzBiZTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9nbGliL1dlYkNvbnRleHRNZW51SXRlbUdsaWIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9nbGliL1dlYkNvbnRleHRNZW51SXRlbUdsaWIuaApAQCAtMjksOCArMjksMTAg
QEAKICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1Vu
aXF1ZVB0ci5oPgogCisjaWYgIVVTRShHVEs0KQogdHlwZWRlZiBzdHJ1Y3QgX0d0a0FjdGlvbiBH
dGtBY3Rpb247CiB0eXBlZGVmIHN0cnVjdCBfR0FjdGlvbiBHQWN0aW9uOworI2VuZGlmCiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCkBAIC00MSw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICBXZWJDb250
ZXh0TWVudUl0ZW1HbGliKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmKTsKICAgICBXZWJD
b250ZXh0TWVudUl0ZW1HbGliKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbUdsaWImLCBWZWN0b3I8
V2ViQ29udGV4dE1lbnVJdGVtR2xpYj4mJiBzdWJtZW51KTsKICAgICBXZWJDb250ZXh0TWVudUl0
ZW1HbGliKEdBY3Rpb24qLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBHVmFyaWFudCogdGFyZ2V0ID0g
bnVsbHB0cik7Ci0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgJiYgIVVTRShH
VEs0KQogICAgIFdlYkNvbnRleHRNZW51SXRlbUdsaWIoR3RrQWN0aW9uKik7CiAjZW5kaWYKICAg
ICB+V2ViQ29udGV4dE1lbnVJdGVtR2xpYigpOwpAQCAtNTIsNyArNTQsNyBAQCBwdWJsaWM6CiAg
ICAgR1ZhcmlhbnQqIGdBY3Rpb25UYXJnZXQoKSBjb25zdCB7IHJldHVybiBtX2dBY3Rpb25UYXJn
ZXQuZ2V0KCk7IH0KICAgICBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtR2xpYj4mIHN1
Ym1lbnVJdGVtcygpIGNvbnN0IHsgcmV0dXJuIG1fc3VibWVudUl0ZW1zOyB9CiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSAmJiAhVVNFKEdUSzQpCiAgICAgR3RrQWN0aW9u
KiBndGtBY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2d0a0FjdGlvbjsgfQogI2VuZGlmCiAKQEAg
LTYzLDcgKzY1LDcgQEAgcHJpdmF0ZToKICAgICBHUmVmUHRyPEdBY3Rpb24+IG1fZ0FjdGlvbjsK
ICAgICBHUmVmUHRyPEdWYXJpYW50PiBtX2dBY3Rpb25UYXJnZXQ7CiAgICAgVmVjdG9yPFdlYkNv
bnRleHRNZW51SXRlbUdsaWI+IG1fc3VibWVudUl0ZW1zOwotI2lmIFBMQVRGT1JNKEdUSykKKyNp
ZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkKICAgICBHdGtBY3Rpb24qIG1fZ3RrQWN0aW9u
IHsgbnVsbHB0ciB9OwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvZ3RrL05hdGl2ZVdlYktleWJvYXJkRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvZ3RrL05hdGl2ZVdlYktleWJvYXJkRXZlbnRHdGsuY3BwCmluZGV4IDIzNTdmM2Q1ODQxNS4u
OGMwZGY0MjgyZmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL05h
dGl2ZVdlYktleWJvYXJkRXZlbnRHdGsuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAi
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgogCiAjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5Lmgi
Ci0jaW5jbHVkZSA8Z2RrL2dkay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3RrVmVyc2lvbmluZy5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvZ3RrL05hdGl2ZVdlYk1vdXNlRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
Z3RrL05hdGl2ZVdlYk1vdXNlRXZlbnRHdGsuY3BwCmluZGV4IDU4ZTM3ZmUzODI3Yy4uYzcwNzA5
OTVmODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvTmF0aXZlV2ViTW91
c2VFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL05hdGl2ZVdlYk1v
dXNlRXZlbnRHdGsuY3BwCkBAIC0zOSw3ICszOSw3IEBAIE5hdGl2ZVdlYk1vdXNlRXZlbnQ6Ok5h
dGl2ZVdlYk1vdXNlRXZlbnQoR2RrRXZlbnQqIGV2ZW50LCBpbnQgZXZlbnRDbGlja0NvdW50LCBP
CiAKIE5hdGl2ZVdlYk1vdXNlRXZlbnQ6Ok5hdGl2ZVdlYk1vdXNlRXZlbnQoY29uc3QgTmF0aXZl
V2ViTW91c2VFdmVudCYgZXZlbnQpCiAgICAgOiBXZWJNb3VzZUV2ZW50KFdlYkV2ZW50RmFjdG9y
eTo6Y3JlYXRlV2ViTW91c2VFdmVudChldmVudC5uYXRpdmVFdmVudCgpLCBldmVudC5jbGlja0Nv
dW50KCksIFdlYkNvcmU6OkludFBvaW50KGV2ZW50LmRlbHRhWCgpLCBldmVudC5kZWx0YVkoKSkp
KQotICAgICwgbV9uYXRpdmVFdmVudChnZGtfZXZlbnRfY29weShldmVudC5uYXRpdmVFdmVudCgp
KSkKKyAgICAsIG1fbmF0aXZlRXZlbnQoZ2RrX2V2ZW50X2NvcHkoY29uc3RfY2FzdDxHZGtFdmVu
dCo+KGV2ZW50Lm5hdGl2ZUV2ZW50KCkpKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvZ3RrL05hdGl2ZVdlYlRvdWNoRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvZ3RrL05hdGl2ZVdlYlRvdWNoRXZlbnRHdGsuY3BwCmluZGV4IDVlYzQ3NmIyZGEx
My4uNmQwZTQ0ZjkyY2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvTmF0
aXZlV2ViVG91Y2hFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL05h
dGl2ZVdlYlRvdWNoRXZlbnRHdGsuY3BwCkBAIC00MSw3ICs0MSw3IEBAIE5hdGl2ZVdlYlRvdWNo
RXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQoR2RrRXZlbnQqIGV2ZW50LCBWZWN0b3I8V2ViUGxh
dGZvcm1Ub3VjCiAKIE5hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQoY29u
c3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgOiBXZWJUb3VjaEV2ZW50KFdlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChldmVudC5uYXRpdmVFdmVudCgpLCBWZWN0
b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PihldmVudC50b3VjaFBvaW50cygpKSkpCi0gICAgLCBt
X25hdGl2ZUV2ZW50KGdka19ldmVudF9jb3B5KGV2ZW50Lm5hdGl2ZUV2ZW50KCkpKQorICAgICwg
bV9uYXRpdmVFdmVudChnZGtfZXZlbnRfY29weShjb25zdF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQu
bmF0aXZlRXZlbnQoKSkpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9ndGsvTmF0aXZlV2ViV2hlZWxFdmVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9n
dGsvTmF0aXZlV2ViV2hlZWxFdmVudEd0ay5jcHAKaW5kZXggNWNhZjNkMjNhYjE2Li5hNjAwNDY3
N2M0MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9OYXRpdmVXZWJXaGVl
bEV2ZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvTmF0aXZlV2ViV2hl
ZWxFdmVudEd0ay5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJOYXRpdmVXZWJXaGVl
bEV2ZW50LmgiCiAKICNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKLSNpbmNsdWRlIDxnZGsv
Z2RrLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HdGtWZXJzaW9uaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRG
YWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3Bw
CmluZGV4IGE1MjBhZjBjN2MwZi4uNmE0NDVmN2Q4OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcApAQCAtMjksMTIgKzI5LDEyIEBACiAjaW5jbHVk
ZSAiV2ViRXZlbnRGYWN0b3J5LmgiCiAKICNpbmNsdWRlIDxXZWJDb3JlL0d0a1V0aWxpdGllcy5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvR3RrVmVyc2lvbmluZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxiYXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd3NLZXlib2FyZENvZGVzLmg+CiAjaW5jbHVkZSA8Z2Rr
L2dkay5oPgogI2luY2x1ZGUgPGdkay9nZGtrZXlzeW1zLmg+Ci0jaW5jbHVkZSA8Z3RrL2d0ay5o
PgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
NzIsNyArNzIsNyBAQCBzdGF0aWMgaW5saW5lIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+
IG1vZGlmaWVyc0ZvckV2ZW50KGNvbnN0IEdka0V2ZW50KiBldgogc3RhdGljIGlubGluZSBXZWJN
b3VzZUV2ZW50OjpCdXR0b24gYnV0dG9uRm9yRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50KQog
ewogICAgIHVuc2lnbmVkIGJ1dHRvbiA9IDA7Ci0gICAgR2RrRXZlbnRUeXBlIHR5cGUgPSBnZGtf
ZXZlbnRfZ2V0X2V2ZW50X3R5cGUoZXZlbnQpOworICAgIEdka0V2ZW50VHlwZSB0eXBlID0gZ2Rr
X2V2ZW50X2dldF9ldmVudF90eXBlKGNvbnN0X2Nhc3Q8R2RrRXZlbnQqPihldmVudCkpOwogICAg
IHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgR0RLX0VOVEVSX05PVElGWToKICAgICBjYXNlIEdE
S19MRUFWRV9OT1RJRlk6CkBAIC04OSw4ICs4OSwxMCBAQCBzdGF0aWMgaW5saW5lIFdlYk1vdXNl
RXZlbnQ6OkJ1dHRvbiBidXR0b25Gb3JFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQpCiAgICAg
ICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEdES19CVVRUT05fUFJFU1M6CisjaWYgIVVTRShH
VEs0KQogICAgIGNhc2UgR0RLXzJCVVRUT05fUFJFU1M6CiAgICAgY2FzZSBHREtfM0JVVFRPTl9Q
UkVTUzoKKyNlbmRpZgogICAgIGNhc2UgR0RLX0JVVFRPTl9SRUxFQVNFOiB7CiAgICAgICAgIGd1
aW50IGV2ZW50QnV0dG9uOwogICAgICAgICBnZGtfZXZlbnRfZ2V0X2J1dHRvbihldmVudCwgJmV2
ZW50QnV0dG9uKTsKQEAgLTE1MCw3ICsxNTIsNyBAQCBXZWJNb3VzZUV2ZW50IFdlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQsIGludCBjdQog
ICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgPSBzdGF0aWNfY2FzdDxXZWJFdmVudDo6VHlwZT4oMCk7
CiAgICAgSW50UG9pbnQgbW92ZW1lbnREZWx0YTsKIAotICAgIEdka0V2ZW50VHlwZSBldmVudFR5
cGUgPSBnZGtfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoZXZlbnQpOworICAgIEdka0V2ZW50VHlwZSBl
dmVudFR5cGUgPSBnZGtfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoY29uc3RfY2FzdDxHZGtFdmVudCo+
KGV2ZW50KSk7CiAgICAgc3dpdGNoIChldmVudFR5cGUpIHsKICAgICBjYXNlIEdES19NT1RJT05f
Tk9USUZZOgogICAgIGNhc2UgR0RLX0VOVEVSX05PVElGWToKQEAgLTE1OSw5ICsxNjEsMTEgQEAg
V2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoY29uc3Qg
R2RrRXZlbnQqIGV2ZW50LCBpbnQgY3UKICAgICAgICAgaWYgKGRlbHRhKQogICAgICAgICAgICAg
bW92ZW1lbnREZWx0YSA9IGRlbHRhLnZhbHVlKCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
R0RLX0JVVFRPTl9QUkVTUzoKKyNpZiAhVVNFKEdUSzQpCiAgICAgY2FzZSBHREtfMkJVVFRPTl9Q
UkVTUzoKLSAgICBjYXNlIEdES18zQlVUVE9OX1BSRVNTOiB7CisgICAgY2FzZSBHREtfM0JVVFRP
Tl9QUkVTUzoKKyNlbmRpZgorICAgIGNhc2UgR0RLX0JVVFRPTl9QUkVTUzogewogICAgICAgICB0
eXBlID0gV2ViRXZlbnQ6Ok1vdXNlRG93bjsKICAgICAgICAgYXV0byBtb2RpZmllciA9IHN0YXRl
TW9kaWZpZXJGb3JHZGtCdXR0b24oZXZlbnRCdXR0b24pOwogICAgICAgICBzdGF0ZSA9IHN0YXRp
Y19jYXN0PEdka01vZGlmaWVyVHlwZT4oc3RhdGUgfCBtb2RpZmllcik7CkBAIC0yNTQsMTEgKzI1
OCwxNiBAQCBXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVu
dChjb25zdCBHZGtFdmVudCogZXZlbnQsIFdlYldoZQogCiBXZWJLZXlib2FyZEV2ZW50IFdlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQs
IGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgT3B0aW9uYWw8
VmVjdG9yPENvbXBvc2l0aW9uVW5kZXJsaW5lPj4mJiBwcmVlZGl0VW5kZXJsaW5lcywgT3B0aW9u
YWw8RWRpdGluZ1JhbmdlPiYmIHByZWVkaXRTZWxlY3Rpb25SYW5nZSwgVmVjdG9yPFN0cmluZz4m
JiBjb21tYW5kcykKIHsKKyNpZiBVU0UoR1RLNCkKKyAgICBndWludCBrZXl2YWwgPSAwOworICAg
IGd1aW50MTYga2V5Y29kZSA9IDA7CisjZWxzZQogICAgIGd1aW50IGtleXZhbDsKICAgICBnZGtf
ZXZlbnRfZ2V0X2tleXZhbChldmVudCwgJmtleXZhbCk7CiAgICAgZ3VpbnQxNiBrZXljb2RlOwog
ICAgIGdka19ldmVudF9nZXRfa2V5Y29kZShldmVudCwgJmtleWNvZGUpOwotICAgIEdka0V2ZW50
VHlwZSB0eXBlID0gZ2RrX2V2ZW50X2dldF9ldmVudF90eXBlKGV2ZW50KTsKKyNlbmRpZgorICAg
IEdka0V2ZW50VHlwZSB0eXBlID0gZ2RrX2V2ZW50X2dldF9ldmVudF90eXBlKGNvbnN0X2Nhc3Q8
R2RrRXZlbnQqPihldmVudCkpOwogCiAgICAgcmV0dXJuIFdlYktleWJvYXJkRXZlbnQoCiAgICAg
ICAgIHR5cGUgPT0gR0RLX0tFWV9SRUxFQVNFID8gV2ViRXZlbnQ6OktleVVwIDogV2ViRXZlbnQ6
OktleURvd24sCkBAIC0yODEsNyArMjkwLDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZh
Y3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LAogV2Vi
VG91Y2hFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQoY29uc3QgR2Rr
RXZlbnQqIGV2ZW50LCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmIHRvdWNoUG9pbnRz
KQogewogICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgPSBXZWJFdmVudDo6Tm9UeXBlOwotICAgIEdk
a0V2ZW50VHlwZSBldmVudFR5cGUgPSBnZGtfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoZXZlbnQpOwor
ICAgIEdka0V2ZW50VHlwZSBldmVudFR5cGUgPSBnZGtfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoY29u
c3RfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSk7CiAgICAgc3dpdGNoIChldmVudFR5cGUpIHsKICAg
ICBjYXNlIEdES19UT1VDSF9CRUdJTjoKICAgICAgICAgdHlwZSA9IFdlYkV2ZW50OjpUb3VjaFN0
YXJ0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9y
eS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5oCmluZGV4IDQy
NzE4ZTI1ODA1YS4uNTRkYTg5ZTYwODkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dl
YkV2ZW50RmFjdG9yeS5oCkBAIC0yOCw3ICsyOCwxMSBAQAogCiAjaW5jbHVkZSAiV2ViRXZlbnQu
aCIKIAorI2lmIFVTRShHVEs0KQordHlwZWRlZiBzdHJ1Y3QgX0dka0V2ZW50IEdka0V2ZW50Owor
I2Vsc2UKIHR5cGVkZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50OworI2VuZGlmCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAppbmRleCBlYmEzNDYxNGZlMGYuLjU2NDhi
N2Y4NTMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CkBAIC0xMDgsNyArMTA4LDYgQEAgU2hhcmVkL3Vu
aXgvQXV4aWxpYXJ5UHJvY2Vzc01haW4uY3BwCiBVSVByb2Nlc3MvQmFja2luZ1N0b3JlLmNwcAog
VUlQcm9jZXNzL0RlZmF1bHRVbmRvQ29udHJvbGxlci5jcHAKIFVJUHJvY2Vzcy9MZWdhY3lTZXNz
aW9uU3RhdGVDb2RpbmdOb25lLmNwcAotVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5j
cHAKIFVJUHJvY2Vzcy9WaWV3U25hcHNob3RTdG9yZS5jcHAKIFVJUHJvY2Vzcy9XZWJHcmFtbWFy
RGV0YWlsLmNwcAogVUlQcm9jZXNzL1dlYk1lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKQEAgLTI1
NSw3ICsyNTQsNiBAQCBVSVByb2Nlc3MvZ3RrL1BvaW50ZXJMb2NrTWFuYWdlci5jcHAgQG5vLXVu
aWZ5CiBVSVByb2Nlc3MvZ3RrL1BvaW50ZXJMb2NrTWFuYWdlcldheWxhbmQuY3BwIEBuby11bmlm
eQogVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9ja01hbmFnZXJYMTEuY3BwIEBuby11bmlmeQogVUlQ
cm9jZXNzL2d0ay9UZXh0Q2hlY2tlckd0ay5jcHAgQG5vLXVuaWZ5Ci1VSVByb2Nlc3MvZ3RrL1Zp
ZXdHZXN0dXJlQ29udHJvbGxlckd0ay5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvZ3RrL1ZpZXdT
bmFwc2hvdFN0b3JlR3RrLmNwcAogVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHAg
QG5vLXVuaWZ5CiBVSVByb2Nlc3MvZ3RrL1dlYkNvbG9yUGlja2VyR3RrLmNwcApAQCAtNDEzLDcg
KzQxMSw2IEBAIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0
ay5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmNwcAogCiBXZWJQcm9jZXNzL1dlYlBhZ2UvQWNjZWxlcmF0ZWRTdXJmYWNlLmNwcAot
V2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IuY3BwCiAKIFdl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0
b3IuY3BwCiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJl
YUNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS05hdGl2ZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS05hdGl2ZUV2ZW50LmgKaW5kZXggOWNhMGFiM2QwZGFkLi40NGQ2ZTc3OWEzNmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS05hdGl2ZUV2ZW50LmgKQEAgLTQ0LDcg
KzQ0LDYgQEAgc3RydWN0IE5TRXZlbnQ7CiAjZW5kaWYKIHR5cGVkZWYgTlNFdmVudCAqV0tOYXRp
dmVFdmVudFB0cjsKICNlbGlmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCi10eXBlZGVmIHVuaW9u
IF9HZGtFdmVudCBHZGtFdmVudDsKIHR5cGVkZWYgY29uc3QgR2RrRXZlbnQqIFdLTmF0aXZlRXZl
bnRQdHI7CiAjZWxpZiBkZWZpbmVkKFdJTjMyKQogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgdGFnTVNH
KiBXS05hdGl2ZUV2ZW50UHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvSW5wdXRNZXRob2RGaWx0ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvSW5wdXRNZXRob2RGaWx0ZXIuY3BwCmluZGV4IGRkYjgyYTI3OWRlOC4uNzY2MGMw
MTVlY2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JbnB1
dE1ldGhvZEZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
SW5wdXRNZXRob2RGaWx0ZXIuY3BwCkBAIC0xMDUsNyArMTA1LDExIEBAIElucHV0TWV0aG9kRmls
dGVyOjpGaWx0ZXJSZXN1bHQgSW5wdXRNZXRob2RGaWx0ZXI6OmZpbHRlcktleUV2ZW50KFBsYXRm
b3JtRXZlbnRLCiAgICAgbV9maWx0ZXJpbmdDb250ZXh0LnByZWVkaXRDaGFuZ2VkID0gZmFsc2U7
CiAgICAgbV9jb21wb3NpdGlvblJlc3VsdCA9IHsgfTsKIAorI2lmIFBMQVRGT1JNKFdQRSkgfHwg
VVNFKEdUSzQpCiAgICAgYm9vbCBoYW5kbGVkID0gd2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0
X2ZpbHRlcl9rZXlfZXZlbnQobV9jb250ZXh0LmdldCgpLCBrZXlFdmVudCk7CisjZWxzZQorICAg
IGJvb2wgaGFuZGxlZCA9IHdlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9maWx0ZXJfa2V5X2V2
ZW50KG1fY29udGV4dC5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHZGtFdmVudEtleSo+KGtleUV2
ZW50KSk7CisjZW5kaWYKICAgICBpZiAoIWhhbmRsZWQpCiAgICAgICAgIHJldHVybiB7IH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0lucHV0TWV0aG9k
RmlsdGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JbnB1dE1ldGhvZEZp
bHRlci5oCmluZGV4IGExMTBkOTU3NTAwMi4uNzdjODRhYjI0ZGNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JbnB1dE1ldGhvZEZpbHRlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0lucHV0TWV0aG9kRmlsdGVyLmgKQEAgLTI5
LDcgKzI5LDExIEBACiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0IFdl
YktpdElucHV0TWV0aG9kQ29udGV4dDsKIAogI2lmIFBMQVRGT1JNKEdUSykKLXR5cGVkZWYgc3Ry
dWN0IF9HZGtFdmVudEtleSBHZGtFdmVudEtleTsKKyNpZiBVU0UoR1RLNCkKK3R5cGVkZWYgc3Ry
dWN0IF9HZGtFdmVudCBHZGtFdmVudDsKKyNlbHNlCit0eXBlZGVmIHVuaW9uIF9HZGtFdmVudCBH
ZGtFdmVudDsKKyNlbmRpZgogI2VsaWYgUExBVEZPUk0oV1BFKQogc3RydWN0IHdwZV9pbnB1dF9r
ZXlib2FyZF9ldmVudDsKICNlbmRpZgpAQCAtNTMsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRTdGF0ZShPcHRpb25hbDxJbnB1dE1ldGhvZFN0YXRlPiYmKTsKIAogI2lmIFBMQVRGT1JN
KEdUSykKLSAgICB1c2luZyBQbGF0Zm9ybUV2ZW50S2V5ID0gR2RrRXZlbnRLZXk7CisgICAgdXNp
bmcgUGxhdGZvcm1FdmVudEtleSA9IEdka0V2ZW50OwogI2VsaWYgUExBVEZPUk0oV1BFKQogICAg
IHVzaW5nIFBsYXRmb3JtRXZlbnRLZXkgPSBzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQ
bHVnaW5zUGVybWlzc2lvblJlcXVlc3QuY3BwCmluZGV4IDUwZTE3ZTNlZTA2Zi4uNjhhMzQwNjUw
NDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJ
bnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1
Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgRU5BQkxF
KFZJREVPKQogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1EaXNwbGF5Lmg+Ci0jaWYgUExBVEZP
Uk0oWDExKQorI2lmIFBMQVRGT1JNKFgxMSkgJiYgIVVTRShHVEs0KQogI2luY2x1ZGUgPGdkay9n
ZGt4Lmg+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2VuZGlmCkBAIC03MCw3ICs3MCw3IEBAIFdF
QktJVF9ERUZJTkVfVFlQRV9XSVRIX0NPREUoCiAjaWYgRU5BQkxFKFZJREVPKQogc3RhdGljIEdV
bmlxdWVQdHI8R3N0SW5zdGFsbFBsdWdpbnNDb250ZXh0PiBjcmVhdGVHc3RJbnN0YWxsUGx1Z2lu
c0NvbnRleHQoV2ViUGFnZVByb3h5JiBwYWdlKQogewotI2lmIFBMQVRGT1JNKFgxMSkKKyNpZiBQ
TEFURk9STShYMTEpICYmICFVU0UoR1RLNCkKICAgICBpZiAoUGxhdGZvcm1EaXNwbGF5OjpzaGFy
ZWREaXNwbGF5KCkudHlwZSgpID09IFBsYXRmb3JtRGlzcGxheTo6VHlwZTo6WDExKSB7CiAgICAg
ICAgIEdVbmlxdWVQdHI8R3N0SW5zdGFsbFBsdWdpbnNDb250ZXh0PiBjb250ZXh0KGdzdF9pbnN0
YWxsX3BsdWdpbnNfY29udGV4dF9uZXcoKSk7CiAgICAgICAgIGdzdF9pbnN0YWxsX3BsdWdpbnNf
Y29udGV4dF9zZXRfeGlkKGNvbnRleHQuZ2V0KCksIEdES19XSU5ET1dfWElEKGd0a193aWRnZXRf
Z2V0X3dpbmRvdyhwYWdlLnZpZXdXaWRnZXQoKSkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFByaXZhdGUuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UHJpdmF0ZS5jcHAKaW5kZXggODVkZDQwZWQ1OTg4Li45
MGE1ZTc4NjZiY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFByaXZhdGUuY3BwCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0RXJy
b3IuaCIKIAogI2lmIFBMQVRGT1JNKEdUSykKLSNpbmNsdWRlIDxnZGsvZ2RrLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9HdGtWZXJzaW9uaW5nLmg+CiAjZWxpZiBQTEFURk9STShXUEUpCiAjaW5jbHVk
ZSA8d3BlL3dwZS5oPgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKaW5kZXggMTNmNzMzY2Y0NzlmLi5mOWExYWRkNWFj
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJ
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRV
SUNsaWVudC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKIAogI2lmIFBMQVRGT1JNKEdUSykKICNpbmNs
dWRlIDxXZWJDb3JlL0d0a1V0aWxpdGllcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3RrVmVyc2lv
bmluZy5oPgogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC0xNjAsMTIgKzE2
MSwxMiBAQCBwcml2YXRlOgogICAgICAgICBSdW5Mb29wOjpjdXJyZW50KCkuc3RvcCgpOwogICAg
ICAgICByZXR1cm4gRkFMU0U7CiAgICAgfQorI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykgJiYgIVVT
RShHVEs0KQogCiAgICAgdm9pZCBzZXRXaW5kb3dGcmFtZVRpbWVyRmlyZWQoKQogICAgIHsKICAg
ICAgICAgUnVuTG9vcDo6Y3VycmVudCgpLnN0b3AoKTsKICAgICB9Ci0jZW5kaWYgLy8gUExBVEZP
Uk0oR1RLKSAmJiAhVVNFKEdUSzQpCiAKICAgICB2b2lkIHNldFdpbmRvd0ZyYW1lKFdlYlBhZ2VQ
cm94eSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZnJhbWUpIGZpbmFsCiAgICAgewpAQCAt
MjE1LDcgKzIxNiw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB0aW1lci0+c3RhcnRPbmVTaG90
KDIwMF9tcyk7CiAgICAgICAgICAgICBSdW5Mb29wOjpydW4oKTsKICAgICAgICAgICAgIHRpbWVy
ID0gbnVsbHB0cjsKKyNpZiAhVVNFKEdUSzQpCiAgICAgICAgICAgICBnX3NpZ25hbF9oYW5kbGVy
X2Rpc2Nvbm5lY3Qod2luZG93LCBzaWduYWxJRCk7CisjZW5kaWYKICAgICAgICAgfSBlbHNlCiAg
ICAgICAgICAgICB3ZWJraXRXaW5kb3dQcm9wZXJ0aWVzU2V0R2VvbWV0cnkod2Via2l0X3dlYl92
aWV3X2dldF93aW5kb3dfcHJvcGVydGllcyhtX3dlYlZpZXcpLCAmZ2VvbWV0cnkpOwogI2VuZGlm
IC8vIFBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXggNGI3ZjIyMWE1NDI2Li43MjIyYTkxY2I5
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdl
YkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYkNvbnRleHQuY3BwCkBAIC0xMjEsOCArMTIxLDEwIEBAIGVudW0gewogICAgIFBST1BfV0VC
U0lURV9EQVRBX01BTkFHRVIsCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIFBST1BfUFNPTl9FTkFC
TEVELAorI2lmICFVU0UoR1RLNCkKICAgICBQUk9QX1VTRV9TWVNZRU1fQVBQRUFSQU5DRV9GT1Jf
U0NST0xMQkFSUwogI2VuZGlmCisjZW5kaWYKIH07CiAKIGVudW0gewpAQCAtMzM3LDkgKzMzOSwx
MSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJDb250ZXh0R2V0UHJvcGVydHkoR09iamVjdCogb2Jq
ZWN0LCBndWludCBwcm9wSUQsIEdWYWx1ZSogdgogICAgIGNhc2UgUFJPUF9QU09OX0VOQUJMRUQ6
CiAgICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIGNvbnRleHQtPnByaXYtPnBzb25F
bmFibGVkKTsKICAgICAgICAgYnJlYWs7CisjaWYgIVVTRShHVEs0KQogICAgIGNhc2UgUFJPUF9V
U0VfU1lTWUVNX0FQUEVBUkFOQ0VfRk9SX1NDUk9MTEJBUlM6CiAgICAgICAgIGdfdmFsdWVfc2V0
X2Jvb2xlYW4odmFsdWUsIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfdXNlX3N5c3RlbV9hcHBlYXJh
bmNlX2Zvcl9zY3JvbGxiYXJzKGNvbnRleHQpKTsKICAgICAgICAgYnJlYWs7CisjZW5kaWYKICNl
bmRpZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJU
WV9JRChvYmplY3QsIHByb3BJRCwgcGFyYW1TcGVjKTsKQEAgLTM2NSw5ICszNjksMTEgQEAgc3Rh
dGljIHZvaWQgd2Via2l0V2ViQ29udGV4dFNldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3Vp
bnQgcHJvcElELCBjb25zdCBHVmEKICAgICBjYXNlIFBST1BfUFNPTl9FTkFCTEVEOgogICAgICAg
ICBjb250ZXh0LT5wcml2LT5wc29uRW5hYmxlZCA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUp
OwogICAgICAgICBicmVhazsKKyNpZiAhVVNFKEdUSzQpCiAgICAgY2FzZSBQUk9QX1VTRV9TWVNZ
RU1fQVBQRUFSQU5DRV9GT1JfU0NST0xMQkFSUzoKICAgICAgICAgd2Via2l0X3dlYl9jb250ZXh0
X3NldF91c2Vfc3lzdGVtX2FwcGVhcmFuY2VfZm9yX3Njcm9sbGJhcnMoY29udGV4dCwgZ192YWx1
ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOwogICAgICAgICBicmVhazsKKyNlbmRpZgogI2VuZGlmCiAg
ICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9i
amVjdCwgcHJvcElELCBwYXJhbVNwZWMpOwpAQCAtNTMzLDYgKzUzOSw3IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfY29udGV4dF9jbGFzc19pbml0KFdlYktpdFdlYkNvbnRleHRDbGFzcyogd2Vi
Q29udGV4dENsYXNzCiAgICAgICAgICAgICBGQUxTRSwKICAgICAgICAgICAgIHN0YXRpY19jYXN0
PEdQYXJhbUZsYWdzPihXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05TVFJVQ1Rf
T05MWSkpKTsKIAorI2lmICFVU0UoR1RLNCkKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJDb250
ZXh0OnVzZS1zeXN0ZW0tYXBwZWFyYW5jZS1mb3Itc2Nyb2xsYmFyczoKICAgICAgKgpAQCAtNTUz
LDYgKzU2MCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9jbGFzc19pbml0KFdl
YktpdFdlYkNvbnRleHRDbGFzcyogd2ViQ29udGV4dENsYXNzCiAgICAgICAgICAgICBfKCJXaGV0
aGVyIHRvIHVzZSBzeXN0ZW0gYXBwZWFyYW5jZSBmb3IgcmVuZGVyaW5nIHNjcm9sbGJhcnMiKSwK
ICAgICAgICAgICAgIFRSVUUsCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4o
V0VCS0lUX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUKSkpOworI2VuZGlmCiAj
ZW5kaWYKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCBiNzQzYTBkMzQwYmUuLmNiOTk1YmFjYmZjOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5j
cHAKQEAgLTIzNTAsNyArMjM1MCw3IEBAIHZvaWQgd2Via2l0V2ViVmlld1J1bkFzTW9kYWwoV2Vi
S2l0V2ViVmlldyogd2ViVmlldykKIAogICAgIHdlYlZpZXctPnByaXYtPm1vZGFsTG9vcCA9IGFk
b3B0R1JlZihnX21haW5fbG9vcF9uZXcoMCwgRkFMU0UpKTsKIAotI2lmIFBMQVRGT1JNKEdUSykK
KyNpZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkKIC8vIFRoaXMgaXMgdG8gc3VwcHJlc3Mg
d2FybmluZ3MgYWJvdXQgZ2RrX3RocmVhZHNfbGVhdmUgYW5kIGdka190aHJlYWRzX2VudGVyLgog
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgZ2RrX3RocmVhZHNf
bGVhdmUoKTsKQEAgLTIzNTgsNyArMjM1OCw3IEBAIHZvaWQgd2Via2l0V2ViVmlld1J1bkFzTW9k
YWwoV2ViS2l0V2ViVmlldyogd2ViVmlldykKIAogICAgIGdfbWFpbl9sb29wX3J1bih3ZWJWaWV3
LT5wcml2LT5tb2RhbExvb3AuZ2V0KCkpOwogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRG
T1JNKEdUSykgJiYgIVVTRShHVEs0KQogICAgIGdka190aHJlYWRzX2VudGVyKCk7CiAgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAjZW5kaWYKQEAgLTI1ODAsMTMgKzI1ODAs
MTYgQEAgdm9pZCB3ZWJraXRXZWJWaWV3UnVuRmlsZUNob29zZXJSZXF1ZXN0KFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcsIFdlYktpdEZpbGVDaG9vc2UKIH0KIAogI2lmIFBMQVRGT1JNKEdUSykKKyNp
ZiAhVVNFKEdUSzQpCiBzdGF0aWMgdm9pZCBjb250ZXh0TWVudURpc21pc3NlZChHdGtNZW51U2hl
bGwqLCBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewogICAgIGdfc2lnbmFsX2VtaXQod2ViVmll
dywgc2lnbmFsc1tDT05URVhUX01FTlVfRElTTUlTU0VEXSwgMCwgTlVMTCk7CiB9CisjZW5kaWYK
IAogdm9pZCB3ZWJraXRXZWJWaWV3UG9wdWxhdGVDb250ZXh0TWVudShXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIHByb3Bvc2VkTWVu
dSwgY29uc3QgV2ViSGl0VGVzdFJlc3VsdERhdGEmIGhpdFRlc3RSZXN1bHREYXRhLCBHVmFyaWFu
dCogdXNlckRhdGEpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIFdlYktpdFdlYlZpZXdCYXNlKiB3
ZWJWaWV3QmFzZSA9IFdFQktJVF9XRUJfVklFV19CQVNFKHdlYlZpZXcpOwogICAgIFdlYkNvbnRl
eHRNZW51UHJveHlHdGsqIGNvbnRleHRNZW51UHJveHkgPSB3ZWJraXRXZWJWaWV3QmFzZUdldEFj
dGl2ZUNvbnRleHRNZW51UHJveHkod2ViVmlld0Jhc2UpOwogICAgIEFTU0VSVChjb250ZXh0TWVu
dVByb3h5KTsKQEAgLTI2MTAsNiArMjYxMyw3IEBAIHZvaWQgd2Via2l0V2ViVmlld1BvcHVsYXRl
Q29udGV4dE1lbnUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgVmVjdG9yPFdlYkNvCiAK
ICAgICAvLyBDbGVhciB0aGUgbWVudSB0byBtYWtlIHN1cmUgaXQncyB1c2VsZXNzIGFmdGVyIHNp
Z25hbCBlbWlzc2lvbi4KICAgICB3ZWJraXRfY29udGV4dF9tZW51X3JlbW92ZV9hbGwoY29udGV4
dE1lbnUuZ2V0KCkpOworI2VuZGlmCiB9CiAjZWxpZiBQTEFURk9STShXUEUpCiB2b2lkIHdlYmtp
dFdlYlZpZXdQb3B1bGF0ZUNvbnRleHRNZW51KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0
IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgcHJvcG9zZWRNZW51LCBjb25zdCBXZWJI
aXRUZXN0UmVzdWx0RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEsIEdWYXJpYW50KiB1c2VyRGF0YSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvSW5wdXRNZXRob2RG
aWx0ZXJHdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9JbnB1dE1ldGhv
ZEZpbHRlckd0ay5jcHAKaW5kZXggOGQ4NWRhN2FkOTkyLi44YTA4ZjZmMDQ0NzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvSW5wdXRNZXRob2RGaWx0ZXJHdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvSW5wdXRNZXRob2RGaWx0
ZXJHdGsuY3BwCkBAIC0zOCw3ICszOCw3IEBAIEludFJlY3QgSW5wdXRNZXRob2RGaWx0ZXI6OnBs
YXRmb3JtVHJhbnNmb3JtQ3Vyc29yUmVjdFRvVmlld0Nvb3JkaW5hdGVzKGNvbnN0IEluCiAKIGJv
b2wgSW5wdXRNZXRob2RGaWx0ZXI6OnBsYXRmb3JtRXZlbnRLZXlJc0tleVByZXNzKFBsYXRmb3Jt
RXZlbnRLZXkqIGV2ZW50KSBjb25zdAogewotICAgIHJldHVybiBldmVudC0+dHlwZSA9PSBHREtf
S0VZX1BSRVNTOworICAgIHJldHVybiBnZGtfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoZXZlbnQpID09
IEdES19LRVlfUFJFU1M7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcAppbmRleCBhNjhh
MzA5ODNmNjAuLjU5YTI4MmNjMzdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTcwLDYgKzcwLDkgQEAgc3RkOjp1bmlx
dWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVEcmF3aW5nQXJl
YVByb3h5KFdlYlByb2MKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxh
eShjb25zdCBXZWJDb3JlOjpSZWdpb24mIHJlZ2lvbikKIHsKKyNpZiBVU0UoR1RLNCkKKyAgICBn
dGtfd2lkZ2V0X3F1ZXVlX2RyYXcobV92aWV3V2lkZ2V0KTsKKyNlbHNlCiAgICAgV2ViUGFnZVBy
b3h5KiBwYWdlUHJveHkgPSB3ZWJraXRXZWJWaWV3QmFzZUdldFBhZ2UoV0VCS0lUX1dFQl9WSUVX
X0JBU0UobV92aWV3V2lkZ2V0KSk7CiAgICAgQVNTRVJUKHBhZ2VQcm94eSk7CiAKQEAgLTgxLDYg
Kzg0LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBX
ZWJDb3JlOjpSZWdpb24mIHJlZ2lvbikKICAgICB9CiAKICAgICBndGtfd2lkZ2V0X3F1ZXVlX2Ry
YXdfcmVnaW9uKG1fdmlld1dpZGdldCwgdG9DYWlyb1JlZ2lvbihyZWdpb24pLmdldCgpKTsKKyNl
bmRpZgogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpCkBAIC0xNDgsMTEgKzE1
MiwxOCBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vy
c29yJiBjdXJzb3IpCiAgICAgLy8gaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYzODgKICAgICAvLyBTZXR0aW5nIHRoZSBjdXJzb3IgbWF5IGJlIGFuIGV4cGVuc2l2ZSBv
cGVyYXRpb24gaW4gc29tZSBiYWNrZW5kcywKICAgICAvLyBzbyBkb24ndCByZS1zZXQgdGhlIGN1
cnNvciBpZiBpdCdzIGFscmVhZHkgc2V0IHRvIHRoZSB0YXJnZXQgdmFsdWUuCisjaWYgVVNFKEdU
SzQpCisgICAgR2RrQ3Vyc29yKiBjdXJyZW50Q3Vyc29yID0gZ3RrX3dpZGdldF9nZXRfY3Vyc29y
KG1fdmlld1dpZGdldCk7CisgICAgR2RrQ3Vyc29yKiBuZXdDdXJzb3IgPSBjdXJzb3IucGxhdGZv
cm1DdXJzb3IoKS5nZXQoKTsKKyAgICBpZiAoY3VycmVudEN1cnNvciAhPSBuZXdDdXJzb3IpCisg
ICAgICAgIGd0a193aWRnZXRfc2V0X2N1cnNvcihtX3ZpZXdXaWRnZXQsIG5ld0N1cnNvcik7Cisj
ZWxzZQogICAgIEdka1dpbmRvdyogd2luZG93ID0gZ3RrX3dpZGdldF9nZXRfd2luZG93KG1fdmll
d1dpZGdldCk7CiAgICAgR2RrQ3Vyc29yKiBjdXJyZW50Q3Vyc29yID0gZ2RrX3dpbmRvd19nZXRf
Y3Vyc29yKHdpbmRvdyk7CiAgICAgR2RrQ3Vyc29yKiBuZXdDdXJzb3IgPSBjdXJzb3IucGxhdGZv
cm1DdXJzb3IoKS5nZXQoKTsKICAgICBpZiAoY3VycmVudEN1cnNvciAhPSBuZXdDdXJzb3IpCiAg
ICAgICAgIGdka193aW5kb3dfc2V0X2N1cnNvcih3aW5kb3csIG5ld0N1cnNvcik7CisjZW5kaWYK
IH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVz
KGJvb2wgaGlkZGVuVW50aWxNb3VzZU1vdmVzKQpAQCAtMjMwLDE3ICsyNDEsMjIgQEAgdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2
ZW50JiBldmVudCwgYm9vbAogewogICAgIGlmICh3YXNFdmVudEhhbmRsZWQpCiAgICAgICAgIHJl
dHVybjsKLQorI2lmICFVU0UoR1RLNCkKICAgICBXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2Vi
Vmlld0Jhc2UgPSBXRUJLSVRfV0VCX1ZJRVdfQkFTRShtX3ZpZXdXaWRnZXQpOwogICAgIHdlYmtp
dFdlYlZpZXdCYXNlRm9yd2FyZE5leHRLZXlFdmVudCh3ZWJraXRXZWJWaWV3QmFzZSk7CiAgICAg
Z3RrX21haW5fZG9fZXZlbnQoZXZlbnQubmF0aXZlRXZlbnQoKSk7CisjZW5kaWYKIH0KIAogUmVm
UHRyPFdlYlBvcHVwTWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBNZW51UHJv
eHkoV2ViUGFnZVByb3h5JiBwYWdlKQogeworI2lmIFVTRShHVEs0KQorICAgIHJldHVybiBudWxs
cHRyOworI2Vsc2UKICAgICBpZiAoV0VCS0lUX0lTX1dFQl9WSUVXKG1fdmlld1dpZGdldCkpCiAg
ICAgICAgIHJldHVybiBXZWJLaXRQb3B1cE1lbnU6OmNyZWF0ZShtX3ZpZXdXaWRnZXQsIHBhZ2Up
OwogICAgIHJldHVybiBXZWJQb3B1cE1lbnVQcm94eUd0azo6Y3JlYXRlKG1fdmlld1dpZGdldCwg
cGFnZSk7CisjZW5kaWYKIH0KIAogUmVmPFdlYkNvbnRleHRNZW51UHJveHk+IFBhZ2VDbGllbnRJ
bXBsOjpjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgQ29udGV4dE1l
bnVDb250ZXh0RGF0YSYmIGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKQEAgLTI1
OCw3ICsyNzQsMTEgQEAgUmVmUHRyPFdlYkNvbG9yUGlja2VyPiBQYWdlQ2xpZW50SW1wbDo6Y3Jl
YXRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5KiBwYWdlLCBjb24KICNpZiBFTkFCTEUoREFUQUxJ
U1RfRUxFTUVOVCkKIFJlZlB0cjxXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24+IFBhZ2VD
bGllbnRJbXBsOjpjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24oV2ViUGFnZVByb3h5
JiBwYWdlKQogeworI2lmIFVTRShHVEs0KQorICAgIHJldHVybiBudWxscHRyOworI2Vsc2UKICAg
ICByZXR1cm4gV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duR3RrOjpjcmVhdGUobV92aWV3
V2lkZ2V0LCBwYWdlKTsKKyNlbmRpZgogfQogI2VuZGlmCiAKQEAgLTMwNywxMiArMzI3LDE0IEBA
IHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENoYW5nZUNvbnRlbnRTaXplKGNvbnN0IEludFNpemUm
IHNpemUpCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIHZvaWQgUGFnZUNsaWVudEltcGw6OnN0
YXJ0RHJhZyhSZWY8U2VsZWN0aW9uRGF0YT4mJiBzZWxlY3Rpb24sIERyYWdPcGVyYXRpb24gZHJh
Z09wZXJhdGlvbiwgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4mJiBkcmFnSW1hZ2UpCiB7CisjaWYg
IVVTRShHVEs0KQogICAgIFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9W
SUVXX0JBU0UobV92aWV3V2lkZ2V0KTsKICAgICB3ZWJraXRXZWJWaWV3QmFzZURyYWdBbmREcm9w
SGFuZGxlcih3ZWJWaWV3KS5zdGFydERyYWcoV1RGTW92ZShzZWxlY3Rpb24pLCBkcmFnT3BlcmF0
aW9uLCBXVEZNb3ZlKGRyYWdJbWFnZSkpOwogCiAgICAgLy8gQSBkcmFnIHN0YXJ0aW5nIHNob3Vs
ZCBwcmV2ZW50IGEgZG91YmxlLWNsaWNrIGZyb20gaGFwcGVuaW5nLiBUaGlzIG1pZ2h0CiAgICAg
Ly8gaGFwcGVuIGlmIGEgZHJhZyBpcyBmb2xsb3dlZCB2ZXJ5IHF1aWNrbHkgYnkgYW5vdGhlciBj
bGljayAobGlrZSBpbiB0aGUgV1RSKS4KICAgICB3ZWJraXRXZWJWaWV3QmFzZVJlc2V0Q2xpY2tD
b3VudGVyKHdlYlZpZXcpOworI2VuZGlmCiB9CiAjZW5kaWYKIApAQCAtMzg2LDYgKzQwOCw3IEBA
IHZvaWQgUGFnZUNsaWVudEltcGw6OmJlZ2FuRXhpdEZ1bGxTY3JlZW4oY29uc3QgSW50UmVjdCYg
LyogaW5pdGlhbEZyYW1lICovLCBjb25zCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIHZvaWQg
UGFnZUNsaWVudEltcGw6OmRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2
ZW50JiBldmVudCwgYm9vbCB3YXNFdmVudEhhbmRsZWQpCiB7CisjaWYgIVVTRShHVEs0KQogICAg
IGNvbnN0IEdka0V2ZW50KiB0b3VjaEV2ZW50ID0gZXZlbnQubmF0aXZlRXZlbnQoKTsKIAogICAg
IEdlc3R1cmVDb250cm9sbGVyJiBnZXN0dXJlQ29udHJvbGxlciA9IHdlYmtpdFdlYlZpZXdCYXNl
R2VzdHVyZUNvbnRyb2xsZXIoV0VCS0lUX1dFQl9WSUVXX0JBU0UobV92aWV3V2lkZ2V0KSk7CkBA
IC00NDEsMTEgKzQ2NCwxMyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZl
bnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQsIGJvb2wgdwogICAgIHBvaW50ZXJF
dmVudC0+YW55LnNlbmRfZXZlbnQgPSBUUlVFOwogCiAgICAgZ3RrX3dpZGdldF9ldmVudChtX3Zp
ZXdXaWRnZXQsIHBvaW50ZXJFdmVudC5nZXQoKSk7CisjZW5kaWYKIH0KICNlbmRpZiAvLyBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjp3aGVlbEV2ZW50V2FzTm90
SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50JiBldmVudCkKIHsKKyNp
ZiAhVVNFKEdUSzQpCiAgICAgVmlld0dlc3R1cmVDb250cm9sbGVyKiBjb250cm9sbGVyID0gd2Vi
a2l0V2ViVmlld0Jhc2VWaWV3R2VzdHVyZUNvbnRyb2xsZXIoV0VCS0lUX1dFQl9WSUVXX0JBU0Uo
bV92aWV3V2lkZ2V0KSk7CiAgICAgaWYgKGNvbnRyb2xsZXIgJiYgY29udHJvbGxlci0+aXNTd2lw
ZUdlc3R1cmVFbmFibGVkKCkpIHsKICAgICAgICAgY29udHJvbGxlci0+d2hlZWxFdmVudFdhc05v
dEhhbmRsZWRCeVdlYkNvcmUoJmV2ZW50Lm5hdGl2ZUV2ZW50KCktPnNjcm9sbCk7CkBAIC00NTQs
NiArNDc5LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6d2hlZWxFdmVudFdhc05vdEhhbmRsZWRC
eVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYKIAogICAgIHdlYmtpdFdlYlZpZXdC
YXNlRm9yd2FyZE5leHRXaGVlbEV2ZW50KFdFQktJVF9XRUJfVklFV19CQVNFKG1fdmlld1dpZGdl
dCkpOwogICAgIGd0a19tYWluX2RvX2V2ZW50KGV2ZW50Lm5hdGl2ZUV2ZW50KCkpOworI2VuZGlm
CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9t
Q29udGVudFByb3ZpZGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dGhl
bnRpY2F0aW9uRGlhbG9nLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0QXV0aGVudGljYXRpb25EaWFsb2cuY3BwCmluZGV4IDE2NzRlZTE0MWZhZi4uYWNmZDMwMzNm
MDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1
dGhlbnRpY2F0aW9uRGlhbG9nLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEF1dGhlbnRpY2F0aW9uRGlhbG9nLmNwcApAQCAtMjAsNiArMjAsOCBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdEF1dGhlbnRpY2F0aW9uRGlhbG9nLmgi
CiAKKyNpZiAhVVNFKEdUSzQpCisKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlz
dGVuZXIuaCIKICNpbmNsdWRlICJXZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3RQcml2YXRlLmgi
CiAjaW5jbHVkZSAiV2ViS2l0Q3JlZGVudGlhbFByaXZhdGUuaCIKQEAgLTIzNSwzICsyMzcsNSBA
QCBHdGtXaWRnZXQqIHdlYmtpdEF1dGhlbnRpY2F0aW9uRGlhbG9nTmV3KFdlYktpdEF1dGhlbnRp
Y2F0aW9uUmVxdWVzdCogcmVxdWVzdCwgQwogICAgIHdlYmtpdEF1dGhlbnRpY2F0aW9uRGlhbG9n
SW5pdGlhbGl6ZShhdXRoRGlhbG9nKTsKICAgICByZXR1cm4gR1RLX1dJREdFVChhdXRoRGlhbG9n
KTsKIH0KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEF1dGhlbnRpY2F0aW9uRGlhbG9nLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdEF1dGhlbnRpY2F0aW9uRGlhbG9nLmgKaW5kZXggN2U2ODlmYTI3ODky
Li40ZDAzZWJjN2MyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0QXV0aGVudGljYXRpb25EaWFsb2cuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdEF1dGhlbnRpY2F0aW9uRGlhbG9nLmgKQEAgLTE5LDYgKzE5LDgg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiAhVVNFKEdUSzQpCisKICNpbmNsdWRlICJXZWJLaXRB
dXRoZW50aWNhdGlvblJlcXVlc3QuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3RGlhbG9nLmgi
CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgpAQCAtNTYsMyArNTgsNCBAQCBHdGtXaWRnZXQqIHdlYmtp
dEF1dGhlbnRpY2F0aW9uRGlhbG9nTmV3KFdlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdCosIENy
ZWRlbnRpYQogCiBHX0VORF9ERUNMUwogCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RW1vamlDaG9vc2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RW1vamlDaG9vc2VyLmNwcAppbmRleCBmMzBkOGVm
Nzk5MDcuLjE3ZTk0MzA5ODQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRFbW9qaUNob29zZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0RW1vamlDaG9vc2VyLmNwcApAQCAtMjUsNyArMjUsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdEVtb2ppQ2hvb3Nlci5oIgogCi0jaWYg
R1RLX0NIRUNLX1ZFUlNJT04oMywgMjQsIDApCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQs
IDApICYmICFVU0UoR1RLNCkKIAogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTYzNyw0ICs2MzcsNCBAQCBHdGtXaWRnZXQqIHdlYmtpdEVt
b2ppQ2hvb3Nlck5ldygpCiAgICAgcmV0dXJuIEdUS19XSURHRVQoYXV0aERpYWxvZyk7CiB9CiAK
LSNlbmRpZiAvLyBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAyNCwgMCkKKyNlbmRpZiAvLyBHVEtfQ0hF
Q0tfVkVSU0lPTigzLCAyNCwgMCkgJiYgIVVTRShHVEs0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFbW9qaUNob29zZXIuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RW1vamlDaG9vc2VyLmgKaW5kZXggMmIzZDBlNTBm
ZDE1Li5lNWU0MDcwZWIyZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0RW1vamlDaG9vc2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRFbW9qaUNob29zZXIuaApAQCAtMjEsNyArMjEsNyBAQAogCiAjaW5jbHVk
ZSA8Z3RrL2d0ay5oPgogCi0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQsIDApCisjaWYgR1RL
X0NIRUNLX1ZFUlNJT04oMywgMjQsIDApICYmICFVU0UoR1RLNCkKIAogR19CRUdJTl9ERUNMUwog
CkBAIC01MSw0ICs1MSw0IEBAIEd0a1dpZGdldCogd2Via2l0RW1vamlDaG9vc2VyTmV3KCk7CiAK
IEdfRU5EX0RFQ0xTCiAKLSNlbmRpZiAvLyBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAyNCwgMCkKKyNl
bmRpZiAvLyBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAyNCwgMCkgJiYgIVVTRShHVEs0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbnB1dE1ldGhvZENv
bnRleHRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbnB1
dE1ldGhvZENvbnRleHRHdGsuY3BwCmluZGV4IGUyNzU2NTAyMTg4Ny4uOGU1ZTVmOWViMjJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdElucHV0TWV0
aG9kQ29udGV4dEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRJbnB1dE1ldGhvZENvbnRleHRHdGsuY3BwCkBAIC02MCw3ICs2MCwxMSBAQCB2b2lkIHdl
YmtpdF9pbnB1dF9tZXRob2RfdW5kZXJsaW5lX3NldF9jb2xvcihXZWJLaXRJbnB1dE1ldGhvZFVu
ZGVybGluZSogdW5kZXJsaQogICoKICAqIFNpbmNlOiAyLjI4CiAgKi8KKyNpZiBVU0UoR1RLNCkK
K2dib29sZWFuIHdlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9maWx0ZXJfa2V5X2V2ZW50KFdl
YktpdElucHV0TWV0aG9kQ29udGV4dCogY29udGV4dCwgR2RrRXZlbnQqIGtleUV2ZW50KQorI2Vs
c2UKIGdib29sZWFuIHdlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9maWx0ZXJfa2V5X2V2ZW50
KFdlYktpdElucHV0TWV0aG9kQ29udGV4dCogY29udGV4dCwgR2RrRXZlbnRLZXkqIGtleUV2ZW50
KQorI2VuZGlmCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0lOUFVUX01F
VEhPRF9DT05URVhUKGNvbnRleHQpLCBGQUxTRSk7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
a2V5RXZlbnQsIEZBTFNFKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0SW1wbEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdElucHV0TWV0aG9kQ29udGV4dEltcGxHdGsuY3BwCmlu
ZGV4IDJlNzA5NzYzNzg4MS4uMTFiMGRlNGI5NTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdElucHV0TWV0aG9kQ29udGV4dEltcGxHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5wdXRNZXRob2RDb250
ZXh0SW1wbEd0ay5jcHAKQEAgLTE2OCw3ICsxNjgsMTEgQEAgc3RhdGljIHZvaWQgd2Via2l0SW5w
dXRNZXRob2RDb250ZXh0SW1wbEd0a0dldFByZWVkaXQoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0
KgogICAgICAgICAqY3Vyc29yT2Zmc2V0ID0gY2xhbXBUbzx1bnNpZ25lZD4ob2Zmc2V0KTsKIH0K
IAorI2lmIFVTRShHVEs0KQorc3RhdGljIGdib29sZWFuIHdlYmtpdElucHV0TWV0aG9kQ29udGV4
dEltcGxHdGtGaWx0ZXJLZXlFdmVudChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQqIGNvbnRleHQs
IEdka0V2ZW50KiBrZXlFdmVudCkKKyNlbHNlCiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0SW5wdXRN
ZXRob2RDb250ZXh0SW1wbEd0a0ZpbHRlcktleUV2ZW50KFdlYktpdElucHV0TWV0aG9kQ29udGV4
dCogY29udGV4dCwgR2RrRXZlbnRLZXkqIGtleUV2ZW50KQorI2VuZGlmCiB7CiAgICAgYXV0byog
cHJpdiA9IFdFQktJVF9JTlBVVF9NRVRIT0RfQ09OVEVYVF9JTVBMX0dUSyhjb250ZXh0KS0+cHJp
djsKICAgICByZXR1cm4gZ3RrX2ltX2NvbnRleHRfZmlsdGVyX2tleXByZXNzKHByaXYtPmNvbnRl
eHQuZ2V0KCksIGtleUV2ZW50KTsKQEAgLTIyOSw1ICsyMzMsNyBAQCBXZWJLaXRJbnB1dE1ldGhv
ZENvbnRleHQqIHdlYmtpdElucHV0TWV0aG9kQ29udGV4dEltcGxHdGtOZXcoKQogCiB2b2lkIHdl
YmtpdElucHV0TWV0aG9kQ29udGV4dEltcGxHdGtTZXRDbGllbnRXaW5kb3coV2ViS2l0SW5wdXRN
ZXRob2RDb250ZXh0SW1wbEd0ayogY29udGV4dCwgR2RrV2luZG93KiB3aW5kb3cpCiB7CisjaWYg
IVVTRShHVEs0KQogICAgIGd0a19pbV9jb250ZXh0X3NldF9jbGllbnRfd2luZG93KGNvbnRleHQt
PnByaXYtPmNvbnRleHQuZ2V0KCksIHdpbmRvdyk7CisjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9wdXBNZW51LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9wdXBNZW51LmNwcAppbmRleCA4YjEx
ZWFjNmRkOGEuLmE0ZmI1OTJkNTYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRQb3B1cE1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0UG9wdXBNZW51LmNwcApAQCAtMjgsMTcgKzI4LDI0IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFdlYktpdFBvcHVwTWVu
dTo6V2ViS2l0UG9wdXBNZW51KEd0a1dpZGdldCogd2ViVmlldywgV2ViUG9wdXBNZW51UHJveHk6
OkNsaWVudCYgY2xpZW50KQorI2lmIFVTRShHVEs0KQorICAgIDogV2ViUG9wdXBNZW51UHJveHko
Y2xpZW50KQorI2Vsc2UKICAgICA6IFdlYlBvcHVwTWVudVByb3h5R3RrKHdlYlZpZXcsIGNsaWVu
dCkKKyNlbmRpZgogewogfQogCisjaWYgIVVTRShHVEs0KQogc3RhdGljIHZvaWQgbWVudUNsb3Nl
Q2FsbGJhY2soV2ViS2l0UG9wdXBNZW51KiBwb3B1cE1lbnUpCiB7CiAgICAgcG9wdXBNZW51LT5h
Y3RpdmF0ZUl0ZW0oV1RGOjpudWxsb3B0KTsKIH0KKyNlbmRpZgogCiB2b2lkIFdlYktpdFBvcHVw
TWVudTo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIGRp
cmVjdGlvbiwgZG91YmxlIHBhZ2VTY2FsZUZhY3RvciwgY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRl
bT4mIGl0ZW1zLCBjb25zdCBQbGF0Zm9ybVBvcHVwTWVudURhdGEmIHBsYXRmb3JtRGF0YSwgaW50
MzJfdCBzZWxlY3RlZEluZGV4KQogeworI2lmICFVU0UoR1RLNCkKICAgICBHUmVmUHRyPFdlYktp
dE9wdGlvbk1lbnU+IG1lbnUgPSBhZG9wdEdSZWYod2Via2l0T3B0aW9uTWVudUNyZWF0ZSgqdGhp
cywgaXRlbXMsIHNlbGVjdGVkSW5kZXgpKTsKICAgICBjb25zdCBHZGtFdmVudCogZXZlbnQgPSBt
X2NsaWVudC0+Y3VycmVudGx5UHJvY2Vzc2VkTW91c2VEb3duRXZlbnQoKSA/IG1fY2xpZW50LT5j
dXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25FdmVudCgpLT5uYXRpdmVFdmVudCgpIDogbnVsbHB0
cjsKICAgICBpZiAod2Via2l0V2ViVmlld1Nob3dPcHRpb25NZW51KFdFQktJVF9XRUJfVklFVyht
X3dlYlZpZXcpLCByZWN0LCBtZW51LmdldCgpLCBldmVudCkpIHsKQEAgLTQ2LDI4ICs1MywzNCBA
QCB2b2lkIFdlYktpdFBvcHVwTWVudTo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0
LCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbgogICAgICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBw
ZWQobV9tZW51LmdldCgpLCAiY2xvc2UiLCBHX0NBTExCQUNLKG1lbnVDbG9zZUNhbGxiYWNrKSwg
dGhpcyk7CiAgICAgfSBlbHNlCiAgICAgICAgIFdlYlBvcHVwTWVudVByb3h5R3RrOjpzaG93UG9w
dXBNZW51KHJlY3QsIGRpcmVjdGlvbiwgcGFnZVNjYWxlRmFjdG9yLCBpdGVtcywgcGxhdGZvcm1E
YXRhLCBzZWxlY3RlZEluZGV4KTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYktpdFBvcHVwTWVudTo6
aGlkZVBvcHVwTWVudSgpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIGlmICghbV9tZW51KSB7CiAg
ICAgICAgIFdlYlBvcHVwTWVudVByb3h5R3RrOjpoaWRlUG9wdXBNZW51KCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9tYXRjaGVkKG1f
bWVudS5nZXQoKSwgR19TSUdOQUxfTUFUQ0hfREFUQSwgMCwgMCwgbnVsbHB0ciwgbnVsbHB0ciwg
dGhpcyk7CiAgICAgd2Via2l0X29wdGlvbl9tZW51X2Nsb3NlKG1fbWVudS5nZXQoKSk7CisjZW5k
aWYKIH0KIAogdm9pZCBXZWJLaXRQb3B1cE1lbnU6OmNhbmNlbFRyYWNraW5nKCkKIHsKKyNpZiAh
VVNFKEdUSzQpCiAgICAgaWYgKCFtX21lbnUpIHsKICAgICAgICAgV2ViUG9wdXBNZW51UHJveHlH
dGs6OmNhbmNlbFRyYWNraW5nKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaGlkZVBv
cHVwTWVudSgpOwogICAgIG1fbWVudSA9IG51bGxwdHI7CisjZW5kaWYKIH0KIAorI2lmICFVU0Uo
R1RLNCkKIHZvaWQgV2ViS2l0UG9wdXBNZW51OjphY3RpdmF0ZUl0ZW0oT3B0aW9uYWw8dW5zaWdu
ZWQ+IGl0ZW1JbmRleCkKIHsKICAgICBXZWJQb3B1cE1lbnVQcm94eUd0azo6YWN0aXZhdGVJdGVt
KGl0ZW1JbmRleCk7CkBAIC03Niw1ICs4OSw2IEBAIHZvaWQgV2ViS2l0UG9wdXBNZW51OjphY3Rp
dmF0ZUl0ZW0oT3B0aW9uYWw8dW5zaWduZWQ+IGl0ZW1JbmRleCkKICAgICAgICAgbV9tZW51ID0g
bnVsbHB0cjsKICAgICB9CiB9CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBvcHVwTWVudS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb3B1cE1lbnUuaAppbmRl
eCA4NGJhNjg4NTdjMzIuLmIzNTI0YTcyZTgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb3B1cE1lbnUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBvcHVwTWVudS5oCkBAIC0yNiw3ICsyNiwxMSBAQCB0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0T3B0aW9uTWVudSBXZWJLaXRPcHRpb25NZW51OwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAorI2lmIFVTRShHVEs0KQorY2xhc3MgV2ViS2l0UG9wdXBNZW51IGZpbmFs
IDogcHVibGljIFdlYlBvcHVwTWVudVByb3h5IHsKKyNlbHNlCiBjbGFzcyBXZWJLaXRQb3B1cE1l
bnUgZmluYWwgOiBwdWJsaWMgV2ViUG9wdXBNZW51UHJveHlHdGsgeworI2VuZGlmCiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxXZWJLaXRQb3B1cE1lbnU+IGNyZWF0ZShHdGtXaWRnZXQqIHdlYlZp
ZXcsIFdlYlBvcHVwTWVudVByb3h5OjpDbGllbnQmIGNsaWVudCkKICAgICB7CkBAIC0zNCw3ICsz
OCwxMiBAQCBwdWJsaWM6CiAgICAgfQogICAgIH5XZWJLaXRQb3B1cE1lbnUoKSA9IGRlZmF1bHQ7
CiAKKyNpZiBVU0UoR1RLNCkKKyAgICB2b2lkIHNlbGVjdEl0ZW0odW5zaWduZWQpIHsgfTsKKyAg
ICB2b2lkIGFjdGl2YXRlSXRlbShPcHRpb25hbDx1bnNpZ25lZD4pIHsgfTsKKyNlbHNlCiAgICAg
dm9pZCBhY3RpdmF0ZUl0ZW0oT3B0aW9uYWw8dW5zaWduZWQ+IGl0ZW1JbmRleCkgb3ZlcnJpZGU7
CisjZW5kaWYKIAogcHJpdmF0ZToKICAgICBXZWJLaXRQb3B1cE1lbnUoR3RrV2lkZ2V0KiwgV2Vi
UG9wdXBNZW51UHJveHk6OkNsaWVudCYpOwpAQCAtNDMsNyArNTIsMTAgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGhpZGVQb3B1cE1lbnUoKSBvdmVycmlkZTsKICAgICB2b2lkIGNhbmNlbFRyYWNraW5n
KCkgb3ZlcnJpZGU7CiAKKyNpZiAhVVNFKEdUSzQpCiAgICAgR1JlZlB0cjxXZWJLaXRPcHRpb25N
ZW51PiBtX21lbnU7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVy
YXRpb24uY3BwCmluZGV4IDQwODM0YThlMGIxMy4uNjdlY2NhZGM1NjBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9u
LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdQcml2YXRlLmgi
CiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtVdGlsaXRp
ZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0d0a1ZlcnNpb25pbmcuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNs
dWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFNjcmlwdERpYWxvZ0d0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNjcmlwdERpYWxvZ0d0ay5jcHAKaW5kZXggMGYyY2MyNzBk
MmE0Li45MzAzZTQxNzVkMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0U2NyaXB0RGlhbG9nR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFNjcmlwdERpYWxvZ0d0ay5jcHAKQEAgLTI1LDIyICsyNSwyOCBA
QAogCiB2b2lkIHdlYmtpdFNjcmlwdERpYWxvZ0FjY2VwdChXZWJLaXRTY3JpcHREaWFsb2cqIHNj
cmlwdERpYWxvZykKIHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgaWYgKCFXRUJLSVRfSVNfU0NSSVBU
X0RJQUxPR19JTVBMKHNjcmlwdERpYWxvZy0+bmF0aXZlRGlhbG9nKSkKICAgICAgICAgcmV0dXJu
OwogICAgIHdlYmtpdFNjcmlwdERpYWxvZ0ltcGxDb25maXJtKFdFQktJVF9TQ1JJUFRfRElBTE9H
X0lNUEwoc2NyaXB0RGlhbG9nLT5uYXRpdmVEaWFsb2cpKTsKKyNlbmRpZgogfQogCiB2b2lkIHdl
YmtpdFNjcmlwdERpYWxvZ0Rpc21pc3MoV2ViS2l0U2NyaXB0RGlhbG9nKiBzY3JpcHREaWFsb2cp
CiB7CisjaWYgIVVTRShHVEs0KQogICAgIGlmICghV0VCS0lUX0lTX1NDUklQVF9ESUFMT0dfSU1Q
TChzY3JpcHREaWFsb2ctPm5hdGl2ZURpYWxvZykpCiAgICAgICAgIHJldHVybjsKICAgICB3ZWJr
aXRTY3JpcHREaWFsb2dJbXBsQ2FuY2VsKFdFQktJVF9TQ1JJUFRfRElBTE9HX0lNUEwoc2NyaXB0
RGlhbG9nLT5uYXRpdmVEaWFsb2cpKTsKKyNlbmRpZgogfQogCiB2b2lkIHdlYmtpdFNjcmlwdERp
YWxvZ1NldFVzZXJJbnB1dChXZWJLaXRTY3JpcHREaWFsb2cqIHNjcmlwdERpYWxvZywgY29uc3Qg
U3RyaW5nJiB1c2VySW5wdXQpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIGlmICghV0VCS0lUX0lT
X1NDUklQVF9ESUFMT0dfSU1QTChzY3JpcHREaWFsb2ctPm5hdGl2ZURpYWxvZykpCiAgICAgICAg
IHJldHVybjsKIAogICAgIHdlYmtpdFNjcmlwdERpYWxvZ0ltcGxTZXRFbnRyeVRleHQoV0VCS0lU
X1NDUklQVF9ESUFMT0dfSU1QTChzY3JpcHREaWFsb2ctPm5hdGl2ZURpYWxvZyksIHVzZXJJbnB1
dCk7CisjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0U2NyaXB0RGlhbG9nSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFNjcmlwdERpYWxvZ0ltcGwuY3BwCmluZGV4IGQ1MDRhMTEzNjQwNS4uYjY3
NTQ4NmNjODMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFNjcmlwdERpYWxvZ0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0U2NyaXB0RGlhbG9nSW1wbC5jcHAKQEAgLTIwLDYgKzIwLDggQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXRTY3JpcHREaWFsb2dJbXBsLmgiCiAKKyNp
ZiAhVVNFKEdUSzQpCisKICNpbmNsdWRlICJXZWJLaXRTY3JpcHREaWFsb2dQcml2YXRlLmgiCiAj
aW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5o
PgpAQCAtMjcyLDMgKzI3NCw1IEBAIHZvaWQgd2Via2l0U2NyaXB0RGlhbG9nSW1wbFNldEVudHJ5
VGV4dChXZWJLaXRTY3JpcHREaWFsb2dJbXBsKiBkaWFsb2csIGNvbnN0IFN0CiAKICAgICBndGtf
ZW50cnlfc2V0X3RleHQoR1RLX0VOVFJZKGRpYWxvZy0+cHJpdi0+ZW50cnkpLCB0ZXh0LnV0Zjgo
KS5kYXRhKCkpOwogfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0U2NyaXB0RGlhbG9nSW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRTY3JpcHREaWFsb2dJbXBsLmgKaW5kZXggN2Y4NjNjNDUwMGZm
Li43YzEyZjAxNmViNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0U2NyaXB0RGlhbG9nSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0U2NyaXB0RGlhbG9nSW1wbC5oCkBAIC0xOSw2ICsxOSw4IEBACiAKICNw
cmFnbWEgb25jZQogCisjaWYgIVVTRShHVEs0KQorCiAjaW5jbHVkZSAiV2ViS2l0U2NyaXB0RGlh
bG9nLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0RpYWxvZy5oIgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgpAQCAtNTMsMyArNTUsNSBAQCB2b2lkIHdlYmtpdFNjcmlwdERpYWxv
Z0ltcGxDb25maXJtKFdlYktpdFNjcmlwdERpYWxvZ0ltcGwqKTsKIHZvaWQgd2Via2l0U2NyaXB0
RGlhbG9nSW1wbFNldEVudHJ5VGV4dChXZWJLaXRTY3JpcHREaWFsb2dJbXBsKiwgY29uc3QgU3Ry
aW5nJik7CiAKIEdfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCBiZTM4N2QxYjQ3
MzIuLmFiZTAxNDQ2Zjg3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL0NhaXJvVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HVW5pcXVlUHRy
R3RrLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0d0a1ZlcnNpb25pbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkSGVscGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9QbGF0Zm9ybURpc3BsYXkuaD4KQEAgLTc3LDEwICs3OCw2IEBACiAjaW5jbHVkZSAiV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eS5oIgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShYMTEpCi0jaW5j
bHVkZSA8Z2RrL2dka3guaD4KLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTk2LDYgKzkzLDcgQEAgcHVibGljOgogCiAgICAg
aW50IGN1cnJlbnRDbGlja0NvdW50Rm9yR2RrQnV0dG9uRXZlbnQoR2RrRXZlbnQqIGV2ZW50KQog
ICAgIHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgICAgIGludCBkb3VibGVDbGlja0Rpc3RhbmNlID0g
MjUwOwogICAgICAgICBpbnQgZG91YmxlQ2xpY2tUaW1lID0gNTsKICAgICAgICAgZ19vYmplY3Rf
Z2V0KGd0a19zZXR0aW5nc19nZXRfZm9yX3NjcmVlbihnZGtfZXZlbnRfZ2V0X3NjcmVlbihldmVu
dCkpLApAQCAtMTMyLDYgKzEzMCw3IEBAIHB1YmxpYzoKICAgICAgICAgcHJldmlvdXNDbGlja1Bv
aW50ID0gSW50UG9pbnQoeCwgeSk7CiAgICAgICAgIHByZXZpb3VzQ2xpY2tCdXR0b24gPSBidXR0
b247CiAgICAgICAgIHByZXZpb3VzQ2xpY2tUaW1lID0gZXZlbnRUaW1lOworI2VuZGlmCiAKICAg
ICAgICAgcmV0dXJuIGN1cnJlbnRDbGlja0NvdW50OwogICAgIH0KQEAgLTE0OSwxMSArMTQ4LDEx
IEBAIHR5cGVkZWYgSGFzaE1hcDx1aW50MzJfdCwgR1VuaXF1ZVB0cjxHZGtFdmVudD4+IFRvdWNo
RXZlbnRzTWFwOwogc3RydWN0IF9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUgewogICAgIF9XZWJL
aXRXZWJWaWV3QmFzZVByaXZhdGUoKQogICAgICAgICA6IHVwZGF0ZUFjdGl2aXR5U3RhdGVUaW1l
cihSdW5Mb29wOjptYWluKCksIHRoaXMsICZfV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlOjp1cGRh
dGVBY3Rpdml0eVN0YXRlVGltZXJGaXJlZCkKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAyNCwg
MCkKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAyNCwgMCkgJiYgIVVTRShHVEs0KQogICAgICAg
ICAsIHJlbGVhc2VFbW9qaUNob29zZXJUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZfV2Vi
S2l0V2ViVmlld0Jhc2VQcml2YXRlOjpyZWxlYXNlRW1vamlDaG9vc2VyVGltZXJGaXJlZCkKICNl
bmRpZgogICAgIHsKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAyNCwgMCkKKyNpZiBHVEtfQ0hF
Q0tfVkVSU0lPTigzLCAyNCwgMCkgJiYgIVVTRShHVEs0KQogICAgICAgICByZWxlYXNlRW1vamlD
aG9vc2VyVGltZXIuc2V0UHJpb3JpdHkoUnVuTG9vcFNvdXJjZVByaW9yaXR5OjpSZWxlYXNlVW51
c2VkUmVzb3VyY2VzVGltZXIpOwogI2VuZGlmCiAgICAgfQpAQCAtMTY2LDcgKzE2NSw3IEBAIHN0
cnVjdCBfV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlIHsKICAgICAgICAgYWN0aXZpdHlTdGF0ZUZs
YWdzVG9VcGRhdGUgPSB7IH07CiAgICAgfQogCi0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQs
IDApCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQsIDApICYmICFVU0UoR1RLNCkKICAgICB2
b2lkIHJlbGVhc2VFbW9qaUNob29zZXJUaW1lckZpcmVkKCkKICAgICB7CiAgICAgICAgIGlmIChl
bW9qaUNob29zZXIpIHsKQEAgLTE5MCw3ICsxODksOSBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdC
YXNlUHJpdmF0ZSB7CiAgICAgQXR0YWNobWVudFNpZGUgaW5zcGVjdG9yQXR0YWNobWVudFNpZGUg
eyBBdHRhY2htZW50U2lkZTo6Qm90dG9tIH07CiAgICAgdW5zaWduZWQgaW5zcGVjdG9yVmlld1Np
emUgeyAwIH07CiAgICAgR1VuaXF1ZVB0cjxHZGtFdmVudD4gY29udGV4dE1lbnVFdmVudDsKKyNp
ZiAhVVNFKEdUSzQpCiAgICAgV2ViQ29udGV4dE1lbnVQcm94eUd0ayogYWN0aXZlQ29udGV4dE1l
bnVQcm94eSB7IG51bGxwdHIgfTsKKyNlbmRpZgogICAgIElucHV0TWV0aG9kRmlsdGVyIGlucHV0
TWV0aG9kRmlsdGVyOwogICAgIEtleUJpbmRpbmdUcmFuc2xhdG9yIGtleUJpbmRpbmdUcmFuc2xh
dG9yOwogICAgIFRvdWNoRXZlbnRzTWFwIHRvdWNoRXZlbnRzOwpAQCAtMjE3LDE1ICsyMTgsMTcg
QEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUgewogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlPiBhY2NlbGVyYXRlZEJhY2tpbmdTdG9yZTsKIAot
I2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgIVVT
RShHVEs0KQogICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmFnQW5kRHJvcEhhbmRsZXI+IGRyYWdBbmRE
cm9wSGFuZGxlcjsKICNlbmRpZgogCisjaWYgIVVTRShHVEs0KQogICAgIHN0ZDo6dW5pcXVlX3B0
cjxHZXN0dXJlQ29udHJvbGxlcj4gZ2VzdHVyZUNvbnRyb2xsZXI7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFZpZXdHZXN0dXJlQ29udHJvbGxlcj4gdmlld0dlc3R1cmVDb250cm9sbGVyOwogICAgIGJv
b2wgaXNCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlRW5hYmxlZCB7IGZhbHNlIH07CisjZW5k
aWYKIAotI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDI0LCAwKQorI2lmIEdUS19DSEVDS19WRVJT
SU9OKDMsIDI0LCAwKSAmJiAhVVNFKEdUSzQpCiAgICAgR3RrV2lkZ2V0KiBlbW9qaUNob29zZXI7
CiAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiBlbW9qaUNob29zZXJDb21wbGV0
aW9uSGFuZGxlcjsKICAgICBSdW5Mb29wOjpUaW1lcjxXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGU+
IHJlbGVhc2VFbW9qaUNob29zZXJUaW1lcjsKQEAgLTI3NCw2ICsyNzcsNyBAQCBzdGF0aWMgZ2Jv
b2xlYW4gdG9wbGV2ZWxXaW5kb3dGb2N1c091dEV2ZW50KEd0a1dpZGdldCosIEdka0V2ZW50Rm9j
dXMqLCBXZWJLaXRXZQogICAgIHJldHVybiBGQUxTRTsKIH0KIAorI2lmICFVU0UoR1RLNCkKIHN0
YXRpYyBnYm9vbGVhbiB0b3BsZXZlbFdpbmRvd1N0YXRlRXZlbnQoR3RrV2lkZ2V0KiwgR2RrRXZl
bnRXaW5kb3dTdGF0ZSogZXZlbnQsIFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSkKIHsK
ICAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3QmFzZS0+cHJpdjsK
QEAgLTI5Miw2ICsyOTYsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gdG9wbGV2ZWxXaW5kb3dTdGF0ZUV2
ZW50KEd0a1dpZGdldCosIEdka0V2ZW50V2luZG93U3RhdGUqIGV2ZW50LAogCiAgICAgcmV0dXJu
IEZBTFNFOwogfQorI2VuZGlmCiAKIHN0YXRpYyB2b2lkIHRoZW1lQ2hhbmdlZChXZWJLaXRXZWJW
aWV3QmFzZSogd2ViVmlld0Jhc2UpCiB7CkBAIC0zNzIsOCArMzc3LDEwIEBAIHN0YXRpYyB2b2lk
IHdlYmtpdFdlYlZpZXdCYXNlU2V0VG9wbGV2ZWxPblNjcmVlbldpbmRvdyhXZWJLaXRXZWJWaWV3
QmFzZSogd2ViVmllCiAgICAgcHJpdi0+dG9wbGV2ZWxGb2N1c091dEV2ZW50SUQgPQogICAgICAg
ICBnX3NpZ25hbF9jb25uZWN0KHByaXYtPnRvcGxldmVsT25TY3JlZW5XaW5kb3csICJmb2N1cy1v
dXQtZXZlbnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sodG9wbGV2ZWxX
aW5kb3dGb2N1c091dEV2ZW50KSwgd2ViVmlld0Jhc2UpOworI2lmICFVU0UoR1RLNCkKICAgICBw
cml2LT50b3BsZXZlbFdpbmRvd1N0YXRlRXZlbnRJRCA9CiAgICAgICAgIGdfc2lnbmFsX2Nvbm5l
Y3QocHJpdi0+dG9wbGV2ZWxPblNjcmVlbldpbmRvdywgIndpbmRvdy1zdGF0ZS1ldmVudCIsIEdf
Q0FMTEJBQ0sodG9wbGV2ZWxXaW5kb3dTdGF0ZUV2ZW50KSwgd2ViVmlld0Jhc2UpOworI2VuZGlm
CiAKICAgICBhdXRvKiBzZXR0aW5ncyA9IGd0a193aWRnZXRfZ2V0X3NldHRpbmdzKEdUS19XSURH
RVQocHJpdi0+dG9wbGV2ZWxPblNjcmVlbldpbmRvdykpOwogICAgIHByaXYtPnRoZW1lQ2hhbmdl
ZElEID0KQEAgLTM5Miw2ICszOTksNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVJl
YWxpemUoR3RrV2lkZ2V0KiB3aWRnZXQpCiAgICAgV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXcg
PSBXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3aWRnZXQpOwogICAgIFdlYktpdFdlYlZpZXdCYXNlUHJp
dmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7CiAKKyNpZiAhVVNFKEdUSzQpCiAgICAgZ3RrX3dp
ZGdldF9zZXRfcmVhbGl6ZWQod2lkZ2V0LCBUUlVFKTsKIAogICAgIEd0a0FsbG9jYXRpb24gYWxs
b2NhdGlvbjsKQEAgLTQzMiw5ICs0NDAsMTIgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jh
c2VSZWFsaXplKEd0a1dpZGdldCogd2lkZ2V0KQogICAgIGF1dG8qIGltQ29udGV4dCA9IHByaXYt
PmlucHV0TWV0aG9kRmlsdGVyLmNvbnRleHQoKTsKICAgICBpZiAoV0VCS0lUX0lTX0lOUFVUX01F
VEhPRF9DT05URVhUX0lNUExfR1RLKGltQ29udGV4dCkpCiAgICAgICAgIHdlYmtpdElucHV0TWV0
aG9kQ29udGV4dEltcGxHdGtTZXRDbGllbnRXaW5kb3coV0VCS0lUX0lOUFVUX01FVEhPRF9DT05U
RVhUX0lNUExfR1RLKGltQ29udGV4dCksIHdpbmRvdyk7CisjZW5kaWYKIAogICAgIGlmIChwcml2
LT5hY2NlbGVyYXRlZEJhY2tpbmdTdG9yZSkKICAgICAgICAgcHJpdi0+YWNjZWxlcmF0ZWRCYWNr
aW5nU3RvcmUtPnJlYWxpemUoKTsKKworICAgIEdUS19XSURHRVRfQ0xBU1Mod2Via2l0X3dlYl92
aWV3X2Jhc2VfcGFyZW50X2NsYXNzKS0+cmVhbGl6ZSh3aWRnZXQpOwogfQogCiBzdGF0aWMgdm9p
ZCB3ZWJraXRXZWJWaWV3QmFzZVVucmVhbGl6ZShHdGtXaWRnZXQqIHdpZGdldCkKQEAgLTUyNCw4
ICs1MzUsMTUgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VDb250YWluZXJSZW1vdmUo
R3RrQ29udGFpbmVyKiBjb250YWluZXIsIEd0a1dpZGdldCoKICAgICAgICAgZ3RrX3dpZGdldF9x
dWV1ZV9yZXNpemUod2lkZ2V0Q29udGFpbmVyKTsKIH0KIAorI2lmIFVTRShHVEs0KQorc3RhdGlj
IHZvaWQgd2Via2l0V2ViVmlld0Jhc2VDb250YWluZXJGb3JhbGwoR3RrQ29udGFpbmVyKiBjb250
YWluZXIsIEd0a0NhbGxiYWNrIGNhbGxiYWNrLCBncG9pbnRlciBjYWxsYmFja0RhdGEpCisjZWxz
ZQogc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VDb250YWluZXJGb3JhbGwoR3RrQ29udGFp
bmVyKiBjb250YWluZXIsIGdib29sZWFuIGluY2x1ZGVJbnRlcm5hbHMsIEd0a0NhbGxiYWNrIGNh
bGxiYWNrLCBncG9pbnRlciBjYWxsYmFja0RhdGEpCisjZW5kaWYKIHsKKyNpZiBVU0UoR1RLNCkK
KyAgICBib29sIGluY2x1ZGVJbnRlcm5hbHMgPSB0cnVlOworI2VuZGlmCiAgICAgV2ViS2l0V2Vi
Vmlld0Jhc2UqIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVdfQkFTRShjb250YWluZXIpOwogICAg
IFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7CiAKQEAgLTU1
MSw3ICs1NjksNyBAQCB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ2hpbGRNb3ZlUmVzaXplKFdlYktp
dFdlYlZpZXdCYXNlKiB3ZWJWaWV3LCBHdGtXaWRnZXQqIGNoaQogICAgIGd0a193aWRnZXRfcXVl
dWVfcmVzaXplX25vX3JlZHJhdyhHVEtfV0lER0VUKHdlYlZpZXcpKTsKIH0KIAotI2lmIEdUS19D
SEVDS19WRVJTSU9OKDMsIDI0LCAwKQorI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDI0LCAwKSAm
JiAhVVNFKEdUSzQpCiBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUNvbXBsZXRlRW1vamlD
aG9vc2VyUmVxdWVzdChXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlldywgY29uc3QgU3RyaW5nJiB0
ZXh0KQogewogICAgIGlmIChhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gc3RkOjpleGNoYW5nZSh3
ZWJWaWV3LT5wcml2LT5lbW9qaUNob29zZXJDb21wbGV0aW9uSGFuZGxlciwgbnVsbHB0cikpCkBA
IC01NjUsNyArNTgzLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaXNwb3NlKEdP
YmplY3QqIGdvYmplY3QpCiAgICAgd2Via2l0V2ViVmlld0Jhc2VTZXRUb3BsZXZlbE9uU2NyZWVu
V2luZG93KHdlYlZpZXcsIG51bGxwdHIpOwogICAgIGlmICh3ZWJWaWV3LT5wcml2LT5hY2Nlc3Np
YmxlKQogICAgICAgICB3ZWJraXRXZWJWaWV3QWNjZXNzaWJsZVNldFdlYlZpZXcoV0VCS0lUX1dF
Ql9WSUVXX0FDQ0VTU0lCTEUod2ViVmlldy0+cHJpdi0+YWNjZXNzaWJsZS5nZXQoKSksIG51bGxw
dHIpOwotI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDI0LCAwKQorI2lmIEdUS19DSEVDS19WRVJT
SU9OKDMsIDI0LCAwKSAmJiAhVVNFKEdUSzQpCiAgICAgd2Via2l0V2ViVmlld0Jhc2VDb21wbGV0
ZUVtb2ppQ2hvb3NlclJlcXVlc3Qod2ViVmlldywgZW1wdHlTdHJpbmcoKSk7CiAjZW5kaWYKICAg
ICBpZiAod2ViVmlldy0+cHJpdi0+cG9pbnRlckxvY2tNYW5hZ2VyKSB7CkBAIC01ODUsMTUgKzYw
MywxOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUNvbnN0cnVjdGVkKEdPYmplY3Qq
IG9iamVjdCkKIAogICAgIEd0a1dpZGdldCogdmlld1dpZGdldCA9IEdUS19XSURHRVQob2JqZWN0
KTsKICAgICBndGtfd2lkZ2V0X3NldF9jYW5fZm9jdXModmlld1dpZGdldCwgVFJVRSk7CisjaWYg
IVVTRShHVEs0KQogICAgIGd0a19kcmFnX2Rlc3Rfc2V0KHZpZXdXaWRnZXQsIHN0YXRpY19jYXN0
PEd0a0Rlc3REZWZhdWx0cz4oMCksIG51bGxwdHIsIDAsCiAgICAgICAgIHN0YXRpY19jYXN0PEdk
a0RyYWdBY3Rpb24+KEdES19BQ1RJT05fQ09QWSB8IEdES19BQ1RJT05fTU9WRSB8IEdES19BQ1RJ
T05fTElOSyB8IEdES19BQ1RJT05fUFJJVkFURSkpOwogICAgIGd0a19kcmFnX2Rlc3Rfc2V0X3Rh
cmdldF9saXN0KHZpZXdXaWRnZXQsIFBhc3RlYm9hcmRIZWxwZXI6OnNpbmdsZXRvbigpLnRhcmdl
dExpc3QoKSk7CisjZW5kaWYKIAogICAgIFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZSogcHJpdiA9
IFdFQktJVF9XRUJfVklFV19CQVNFKG9iamVjdCktPnByaXY7CiAgICAgcHJpdi0+cGFnZUNsaWVu
dCA9IG1ha2VVbmlxdWU8UGFnZUNsaWVudEltcGw+KHZpZXdXaWRnZXQpOwogICAgIHByaXYtPmRp
YWxvZyA9IG51bGxwdHI7CiB9CiAKKyNpZiAhVVNFKEdUSzQpCiBzdGF0aWMgZ2Jvb2xlYW4gd2Vi
a2l0V2ViVmlld0Jhc2VEcmF3KEd0a1dpZGdldCogd2lkZ2V0LCBjYWlyb190KiBjcikKIHsKICAg
ICBXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UgPSBXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3
aWRnZXQpOwpAQCAtNjI3LDYgKzY0OCw3IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRXZWJWaWV3
QmFzZURyYXcoR3RrV2lkZ2V0KiB3aWRnZXQsIGNhaXJvX3QqIGNyKQogCiAgICAgcmV0dXJuIEZB
TFNFOwogfQorI2VuZGlmCiAKIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ2hpbGRBbGxv
Y2F0ZShHdGtXaWRnZXQqIGNoaWxkLCBncG9pbnRlciB1c2VyRGF0YSkKIHsKQEAgLTY0NCw5ICs2
NjYsMTkgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VDaGlsZEFsbG9jYXRlKEd0a1dp
ZGdldCogY2hpbGQsIGdwb2ludGVyIHVzZXJEYXRhKQogICAgIHByaXYtPmNoaWxkcmVuLnNldChj
aGlsZCwgSW50UmVjdCgpKTsKIH0KIAorI2lmIFVTRShHVEs0KQorc3RhdGljIHZvaWQgd2Via2l0
V2ViVmlld0Jhc2VTaXplQWxsb2NhdGUoR3RrV2lkZ2V0KiB3aWRnZXQsIGludCB3aWR0aCwgaW50
IGhlaWdodCwgaW50IGJhc2VsaW5lKQorI2Vsc2UKIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdC
YXNlU2l6ZUFsbG9jYXRlKEd0a1dpZGdldCogd2lkZ2V0LCBHdGtBbGxvY2F0aW9uKiBhbGxvY2F0
aW9uKQorI2VuZGlmCiB7CisjaWYgVVNFKEdUSzQpCisgICAgR1RLX1dJREdFVF9DTEFTUyh3ZWJr
aXRfd2ViX3ZpZXdfYmFzZV9wYXJlbnRfY2xhc3MpLT5zaXplX2FsbG9jYXRlKHdpZGdldCwgd2lk
dGgsIGhlaWdodCwgYmFzZWxpbmUpOworICAgIEd0a0FsbG9jYXRpb24gYWxsb2NhdGlvblN0YWNr
ID0geyAwLCAwLCB3aWR0aCwgaGVpZ2h0IH07CisgICAgR3RrQWxsb2NhdGlvbiogYWxsb2NhdGlv
biA9ICZhbGxvY2F0aW9uU3RhY2s7CisjZWxzZQogICAgIEdUS19XSURHRVRfQ0xBU1Mod2Via2l0
X3dlYl92aWV3X2Jhc2VfcGFyZW50X2NsYXNzKS0+c2l6ZV9hbGxvY2F0ZSh3aWRnZXQsIGFsbG9j
YXRpb24pOworI2VuZGlmCiAKICAgICBXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UgPSBX
RUJLSVRfV0VCX1ZJRVdfQkFTRSh3aWRnZXQpOwogICAgIGd0a19jb250YWluZXJfZm9yZWFjaChH
VEtfQ09OVEFJTkVSKHdlYlZpZXdCYXNlKSwgd2Via2l0V2ViVmlld0Jhc2VDaGlsZEFsbG9jYXRl
LCB3ZWJWaWV3QmFzZSk7CkBAIC02ODgsNiArNzIwLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0V2Vi
Vmlld0Jhc2VTaXplQWxsb2NhdGUoR3RrV2lkZ2V0KiB3aWRnZXQsIEd0a0FsbG9jYXRpb24qIGFs
bG8KICAgICAgICAgZHJhd2luZ0FyZWEtPnNldFNpemUodmlld1JlY3Quc2l6ZSgpKTsKIH0KIAor
I2lmICFVU0UoR1RLNCkKIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlR2V0UHJlZmVycmVk
V2lkdGgoR3RrV2lkZ2V0KiB3aWRnZXQsIGdpbnQqIG1pbmltdW1TaXplLCBnaW50KiBuYXR1cmFs
U2l6ZSkKIHsKICAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSBXRUJLSVRfV0VC
X1ZJRVdfQkFTRSh3aWRnZXQpLT5wcml2OwpAQCAtNzAxLDYgKzczNCw3IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdFdlYlZpZXdCYXNlR2V0UHJlZmVycmVkSGVpZ2h0KEd0a1dpZGdldCogd2lkZ2V0LCBn
aW50KiBtaW5pbXVtCiAgICAgKm1pbmltdW1TaXplID0gMDsKICAgICAqbmF0dXJhbFNpemUgPSBw
cml2LT5jb250ZW50c1NpemUuaGVpZ2h0KCk7CiB9CisjZW5kaWYKIAogc3RhdGljIHZvaWQgd2Vi
a2l0V2ViVmlld0Jhc2VNYXAoR3RrV2lkZ2V0KiB3aWRnZXQpCiB7CkBAIC03MzcsNiArNzcxLDcg
QEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VVbm1hcChHdGtXaWRnZXQqIHdpZGdldCkK
ICAgICB3ZWJraXRXZWJWaWV3QmFzZVNjaGVkdWxlVXBkYXRlQWN0aXZpdHlTdGF0ZSh3ZWJWaWV3
QmFzZSwgQWN0aXZpdHlTdGF0ZTo6SXNWaXNpYmxlKTsKIH0KIAorI2lmICFVU0UoR1RLNCkKIHN0
YXRpYyBnYm9vbGVhbiB3ZWJraXRXZWJWaWV3QmFzZUZvY3VzSW5FdmVudChHdGtXaWRnZXQqIHdp
ZGdldCwgR2RrRXZlbnRGb2N1cyogZXZlbnQpCiB7CiAgICAgV2ViS2l0V2ViVmlld0Jhc2UqIHdl
YlZpZXdCYXNlID0gV0VCS0lUX1dFQl9WSUVXX0JBU0Uod2lkZ2V0KTsKQEAgLTc5OSw3ICs4MzQs
NyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0V2ViVmlld0Jhc2VLZXlQcmVzc0V2ZW50KEd0a1dp
ZGdldCogd2lkZ2V0LCBHZGtFdmVudEtleSogawogICAgICAgICBwcml2LT5zaG91bGRGb3J3YXJk
TmV4dEtleUV2ZW50ID0gRkFMU0U7CiAgICAgICAgIHJldHVybiBHVEtfV0lER0VUX0NMQVNTKHdl
YmtpdF93ZWJfdmlld19iYXNlX3BhcmVudF9jbGFzcyktPmtleV9wcmVzc19ldmVudCh3aWRnZXQs
IGtleUV2ZW50KTsKICAgICB9Ci0gICAgYXV0byBmaWx0ZXJSZXN1bHQgPSBwcml2LT5pbnB1dE1l
dGhvZEZpbHRlci5maWx0ZXJLZXlFdmVudChrZXlFdmVudCk7CisgICAgYXV0byBmaWx0ZXJSZXN1
bHQgPSBwcml2LT5pbnB1dE1ldGhvZEZpbHRlci5maWx0ZXJLZXlFdmVudChyZWludGVycHJldF9j
YXN0PEdka0V2ZW50Kj4oa2V5RXZlbnQpKTsKICAgICBpZiAoIWZpbHRlclJlc3VsdC5oYW5kbGVk
KSB7CiAgICAgICAgIHByaXYtPnBhZ2VQcm94eS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVX
ZWJLZXlib2FyZEV2ZW50KHJlaW50ZXJwcmV0X2Nhc3Q8R2RrRXZlbnQqPihrZXlFdmVudCksIGZp
bHRlclJlc3VsdC5rZXlUZXh0LAogICAgICAgICAgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDo6
SGFuZGxlZEJ5SW5wdXRNZXRob2Q6Ok5vLCBXVEY6Om51bGxvcHQsIFdURjo6bnVsbG9wdCwgcHJp
di0+a2V5QmluZGluZ1RyYW5zbGF0b3IuY29tbWFuZHNGb3JLZXlFdmVudChrZXlFdmVudCkpKTsK
QEAgLTgxOCw3ICs4NTMsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0V2ViVmlld0Jhc2VLZXlS
ZWxlYXNlRXZlbnQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2ZW50S2V5KgogICAgICAgICByZXR1
cm4gR1RLX1dJREdFVF9DTEFTUyh3ZWJraXRfd2ViX3ZpZXdfYmFzZV9wYXJlbnRfY2xhc3MpLT5r
ZXlfcmVsZWFzZV9ldmVudCh3aWRnZXQsIGtleUV2ZW50KTsKICAgICB9CiAKLSAgICBpZiAoIXBy
aXYtPmlucHV0TWV0aG9kRmlsdGVyLmZpbHRlcktleUV2ZW50KGtleUV2ZW50KS5oYW5kbGVkKSB7
CisgICAgaWYgKCFwcml2LT5pbnB1dE1ldGhvZEZpbHRlci5maWx0ZXJLZXlFdmVudChyZWludGVy
cHJldF9jYXN0PEdka0V2ZW50Kj4oa2V5RXZlbnQpKS5oYW5kbGVkKSB7CiAgICAgICAgIHByaXYt
PnBhZ2VQcm94eS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KHJl
aW50ZXJwcmV0X2Nhc3Q8R2RrRXZlbnQqPihrZXlFdmVudCksIHsgfSwKICAgICAgICAgICAgIE5h
dGl2ZVdlYktleWJvYXJkRXZlbnQ6OkhhbmRsZWRCeUlucHV0TWV0aG9kOjpObywgV1RGOjpudWxs
b3B0LCBXVEY6Om51bGxvcHQsIHsgfSkpOwogICAgIH0KQEAgLTEwNDMsOCArMTA3OCw5IEBAIHN0
YXRpYyBnYm9vbGVhbiB3ZWJraXRXZWJWaWV3QmFzZUNyb3NzaW5nTm90aWZ5RXZlbnQoR3RrV2lk
Z2V0KiB3aWRnZXQsIEdka0V2ZW50CiAKICAgICByZXR1cm4gR0RLX0VWRU5UX1BST1BBR0FURTsK
IH0KKyNlbmRpZgogCi0jaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKSAmJiAhVVNFKEdUSzQpCiBzdGF0aWMgdm9pZCBhcHBlbmRUb3VjaEV2ZW50KFZlY3Rv
cjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cywgY29uc3QgR2RrRXZlbnQqIGV2
ZW50LCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSkKIHsKICAg
ICBnZG91YmxlIHgsIHk7CkBAIC0xMTM0LDYgKzExNzAsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Vi
a2l0V2ViVmlld0Jhc2VUb3VjaEV2ZW50KEd0a1dpZGdldCogd2lkZ2V0LCBHZGtFdmVudFRvdWNo
KiBldgogfQogI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAKKyNpZiAhVVNFKEdUSzQp
CiBjbGFzcyBUb3VjaEdlc3R1cmVDb250cm9sbGVyIGZpbmFsIDogcHVibGljIEdlc3R1cmVDb250
cm9sbGVyQ2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIApAQCAtMTI2MCwz
NiArMTI5Nyw0NCBAQCBHZXN0dXJlQ29udHJvbGxlciYgd2Via2l0V2ViVmlld0Jhc2VHZXN0dXJl
Q29udHJvbGxlcihXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlldwogICAgICAgICBwcml2LT5nZXN0
dXJlQ29udHJvbGxlciA9IG1ha2VVbmlxdWU8R2VzdHVyZUNvbnRyb2xsZXI+KEdUS19XSURHRVQo
d2ViVmlld0Jhc2UpLCBtYWtlVW5pcXVlPFRvdWNoR2VzdHVyZUNvbnRyb2xsZXI+KHdlYlZpZXdC
YXNlKSk7CiAgICAgcmV0dXJuICpwcml2LT5nZXN0dXJlQ29udHJvbGxlcjsKIH0KKyNlbmRpZgog
CiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0RW5hYmxlQmFja0ZvcndhcmROYXZpZ2F0aW9uR2Vz
dHVyZShXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGJvb2wgZW5hYmxlZCkKIHsKICAg
ICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3QmFzZS0+cHJpdjsKLQor
I2lmICFVU0UoR1RLNCkKICAgICBwcml2LT5pc0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVF
bmFibGVkID0gZW5hYmxlZDsKIAogICAgIGlmIChhdXRvKiBjb250cm9sbGVyID0gd2Via2l0V2Vi
Vmlld0Jhc2VWaWV3R2VzdHVyZUNvbnRyb2xsZXIod2ViVmlld0Jhc2UpKQogICAgICAgICBjb250
cm9sbGVyLT5zZXRTd2lwZUdlc3R1cmVFbmFibGVkKGVuYWJsZWQpOwogCiAgICAgcHJpdi0+cGFn
ZVByb3h5LT5zZXRTaG91bGRSZWNvcmROYXZpZ2F0aW9uU25hcHNob3RzKGVuYWJsZWQpOworI2Vu
ZGlmCiB9CiAKKyNpZiAhVVNFKEdUSzQpCiBWaWV3R2VzdHVyZUNvbnRyb2xsZXIqIHdlYmtpdFdl
YlZpZXdCYXNlVmlld0dlc3R1cmVDb250cm9sbGVyKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3
QmFzZSkKIHsKICAgICByZXR1cm4gd2ViVmlld0Jhc2UtPnByaXYtPnZpZXdHZXN0dXJlQ29udHJv
bGxlci5nZXQoKTsKIH0KKyNlbmRpZgogCiBib29sIHdlYmtpdFdlYlZpZXdCYXNlQmVnaW5CYWNr
U3dpcGVGb3JUZXN0aW5nKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSkKIHsKKyNpZiAh
VVNFKEdUSzQpCiAgICAgaWYgKGF1dG8qIGdlc3R1cmVDb250cm9sbGVyID0gd2Via2l0V2ViVmll
d0Jhc2VWaWV3R2VzdHVyZUNvbnRyb2xsZXIod2ViVmlld0Jhc2UpKQogICAgICAgICByZXR1cm4g
Z2VzdHVyZUNvbnRyb2xsZXItPmJlZ2luU2ltdWxhdGVkU3dpcGVJbkRpcmVjdGlvbkZvclRlc3Rp
bmcoVmlld0dlc3R1cmVDb250cm9sbGVyOjpTd2lwZURpcmVjdGlvbjo6QmFjayk7CisjZW5kaWYK
IAogICAgIHJldHVybiBGQUxTRTsKIH0KIAogYm9vbCB3ZWJraXRXZWJWaWV3QmFzZUNvbXBsZXRl
QmFja1N3aXBlRm9yVGVzdGluZyhXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UpCiB7Cisj
aWYgIVVTRShHVEs0KQogICAgIGlmIChhdXRvKiBnZXN0dXJlQ29udHJvbGxlciA9IHdlYmtpdFdl
YlZpZXdCYXNlVmlld0dlc3R1cmVDb250cm9sbGVyKHdlYlZpZXdCYXNlKSkKICAgICAgICAgcmV0
dXJuIGdlc3R1cmVDb250cm9sbGVyLT5jb21wbGV0ZVNpbXVsYXRlZFN3aXBlSW5EaXJlY3Rpb25G
b3JUZXN0aW5nKFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6U3dpcGVEaXJlY3Rpb246OkJhY2spOwor
I2VuZGlmCiAKICAgICByZXR1cm4gRkFMU0U7CiB9CkBAIC0xMzE3LDcgKzEzNjIsNyBAQCBzdGF0
aWMgZ2Jvb2xlYW4gd2Via2l0V2ViVmlld0Jhc2VRdWVyeVRvb2x0aXAoR3RrV2lkZ2V0KiB3aWRn
ZXQsIGdpbnQgLyogeCAqLywgZwogICAgIHJldHVybiBUUlVFOwogfQogCi0jaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKSAmJiAhVVNFKEdUSzQpCiBzdGF0
aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURyYWdEYXRhR2V0KEd0a1dpZGdldCogd2lkZ2V0LCBH
ZGtEcmFnQ29udGV4dCogY29udGV4dCwgR3RrU2VsZWN0aW9uRGF0YSogc2VsZWN0aW9uRGF0YSwg
Z3VpbnQgaW5mbywgZ3VpbnQgLyogdGltZSAqLykKIHsKICAgICBXZWJLaXRXZWJWaWV3QmFzZVBy
aXZhdGUqIHByaXYgPSBXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3aWRnZXQpLT5wcml2OwpAQCAtMTMz
OCwxMiArMTM4MywxNCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURyYWdEYXRhUmVj
ZWl2ZWQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0RyYWdDb250ZXh0KgogfQogI2VuZGlmIC8vIEVO
QUJMRShEUkFHX1NVUFBPUlQpCiAKKyNpZiAhVVNFKEdUSzQpCiBzdGF0aWMgZ2Jvb2xlYW4gd2Vi
a2l0V2ViVmlld0Jhc2VFdmVudChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRXZlbnQqIGV2ZW50KQog
ewogICAgIGlmIChnZGtfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoZXZlbnQpID09IEdES19UT1VDSFBB
RF9QSU5DSCkKICAgICAgICAgd2Via2l0V2ViVmlld0Jhc2VHZXN0dXJlQ29udHJvbGxlcihXRUJL
SVRfV0VCX1ZJRVdfQkFTRSh3aWRnZXQpKS5oYW5kbGVFdmVudChldmVudCk7CiAgICAgcmV0dXJu
IEdES19FVkVOVF9QUk9QQUdBVEU7CiB9CisjZW5kaWYKIAogc3RhdGljIEF0a09iamVjdCogd2Vi
a2l0V2ViVmlld0Jhc2VHZXRBY2Nlc3NpYmxlKEd0a1dpZGdldCogd2lkZ2V0KQogewpAQCAtMTM2
Miw3ICsxNDA5LDcgQEAgc3RhdGljIEF0a09iamVjdCogd2Via2l0V2ViVmlld0Jhc2VHZXRBY2Nl
c3NpYmxlKEd0a1dpZGdldCogd2lkZ2V0KQogICAgIHJldHVybiBwcml2LT5hY2Nlc3NpYmxlLmdl
dCgpOwogfQogCi0jaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKyNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKSAmJiAhVVNFKEdUSzQpCiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0V2ViVmlld0Jhc2VEcmFn
TW90aW9uKEd0a1dpZGdldCogd2lkZ2V0LCBHZGtEcmFnQ29udGV4dCogY29udGV4dCwgZ2ludCB4
LCBnaW50IHksIGd1aW50IHRpbWUpCiB7CiAgICAgd2Via2l0V2ViVmlld0Jhc2VEcmFnQW5kRHJv
cEhhbmRsZXIoV0VCS0lUX1dFQl9WSUVXX0JBU0Uod2lkZ2V0KSkuZHJhZ01vdGlvbihjb250ZXh0
LCBJbnRQb2ludCh4LCB5KSwgdGltZSk7CkBAIC0xMzg0LDYgKzE0MzEsNyBAQCBzdGF0aWMgZ2Jv
b2xlYW4gd2Via2l0V2ViVmlld0Jhc2VEcmFnRHJvcChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRHJh
Z0NvbnRleHQqIGNvbgogfQogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKKyNpZiAh
VVNFKEdUSzQpCiBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUhpZXJhcmNoeUNoYW5nZWQo
R3RrV2lkZ2V0KiB3aWRnZXQsIEd0a1dpZGdldCogb2xkVG9wbGV2ZWwpCiB7CiAgICAgV2ViS2l0
V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gV0VCS0lUX1dFQl9WSUVXX0JBU0Uod2lkZ2V0KS0+
cHJpdjsKQEAgLTEzOTgsNiArMTQ0Niw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNl
SGllcmFyY2h5Q2hhbmdlZChHdGtXaWRnZXQqIHdpZGdldCwgR3RrV2lkZ2V0KiBvbGRUCiAgICAg
ICAgICAgICB3ZWJraXRXZWJWaWV3QmFzZVNldFRvcGxldmVsT25TY3JlZW5XaW5kb3coV0VCS0lU
X1dFQl9WSUVXX0JBU0Uod2lkZ2V0KSwgR1RLX1dJTkRPVyh0b3BsZXZlbCkpOwogICAgIH0KIH0K
KyNlbmRpZgogCiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0V2ViVmlld0Jhc2VGb2N1cyhHdGtXaWRn
ZXQqIHdpZGdldCwgR3RrRGlyZWN0aW9uVHlwZSBkaXJlY3Rpb24pCiB7CkBAIC0xNDI3LDEyICsx
NDc2LDE3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19iYXNlX2NsYXNzX2luaXQoV2Vi
S2l0V2ViVmlld0Jhc2VDbGFzcyogd2Via2l0V2ViVmllCiAgICAgR3RrV2lkZ2V0Q2xhc3MqIHdp
ZGdldENsYXNzID0gR1RLX1dJREdFVF9DTEFTUyh3ZWJraXRXZWJWaWV3QmFzZUNsYXNzKTsKICAg
ICB3aWRnZXRDbGFzcy0+cmVhbGl6ZSA9IHdlYmtpdFdlYlZpZXdCYXNlUmVhbGl6ZTsKICAgICB3
aWRnZXRDbGFzcy0+dW5yZWFsaXplID0gd2Via2l0V2ViVmlld0Jhc2VVbnJlYWxpemU7CisjaWYg
IVVTRShHVEs0KQogICAgIHdpZGdldENsYXNzLT5kcmF3ID0gd2Via2l0V2ViVmlld0Jhc2VEcmF3
OworI2VuZGlmCiAgICAgd2lkZ2V0Q2xhc3MtPnNpemVfYWxsb2NhdGUgPSB3ZWJraXRXZWJWaWV3
QmFzZVNpemVBbGxvY2F0ZTsKKyNpZiAhVVNFKEdUSzQpCiAgICAgd2lkZ2V0Q2xhc3MtPmdldF9w
cmVmZXJyZWRfd2lkdGggPSB3ZWJraXRXZWJWaWV3QmFzZUdldFByZWZlcnJlZFdpZHRoOwogICAg
IHdpZGdldENsYXNzLT5nZXRfcHJlZmVycmVkX2hlaWdodCA9IHdlYmtpdFdlYlZpZXdCYXNlR2V0
UHJlZmVycmVkSGVpZ2h0OworI2VuZGlmCiAgICAgd2lkZ2V0Q2xhc3MtPm1hcCA9IHdlYmtpdFdl
YlZpZXdCYXNlTWFwOwogICAgIHdpZGdldENsYXNzLT51bm1hcCA9IHdlYmtpdFdlYlZpZXdCYXNl
VW5tYXA7CisjaWYgIVVTRShHVEs0KQogICAgIHdpZGdldENsYXNzLT5mb2N1cyA9IHdlYmtpdFdl
YlZpZXdCYXNlRm9jdXM7CiAgICAgd2lkZ2V0Q2xhc3MtPmZvY3VzX2luX2V2ZW50ID0gd2Via2l0
V2ViVmlld0Jhc2VGb2N1c0luRXZlbnQ7CiAgICAgd2lkZ2V0Q2xhc3MtPmZvY3VzX291dF9ldmVu
dCA9IHdlYmtpdFdlYlZpZXdCYXNlRm9jdXNPdXRFdmVudDsKQEAgLTE0NDUsMTEgKzE0OTksMTIg
QEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2Jhc2VfY2xhc3NfaW5pdChXZWJLaXRXZWJW
aWV3QmFzZUNsYXNzKiB3ZWJraXRXZWJWaWUKICAgICB3aWRnZXRDbGFzcy0+bW90aW9uX25vdGlm
eV9ldmVudCA9IHdlYmtpdFdlYlZpZXdCYXNlTW90aW9uTm90aWZ5RXZlbnQ7CiAgICAgd2lkZ2V0
Q2xhc3MtPmVudGVyX25vdGlmeV9ldmVudCA9IHdlYmtpdFdlYlZpZXdCYXNlQ3Jvc3NpbmdOb3Rp
ZnlFdmVudDsKICAgICB3aWRnZXRDbGFzcy0+bGVhdmVfbm90aWZ5X2V2ZW50ID0gd2Via2l0V2Vi
Vmlld0Jhc2VDcm9zc2luZ05vdGlmeUV2ZW50OwotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisj
ZW5kaWYKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAhVVNFKEdUSzQpCiAgICAgd2lkZ2V0
Q2xhc3MtPnRvdWNoX2V2ZW50ID0gd2Via2l0V2ViVmlld0Jhc2VUb3VjaEV2ZW50OwogI2VuZGlm
CiAgICAgd2lkZ2V0Q2xhc3MtPnF1ZXJ5X3Rvb2x0aXAgPSB3ZWJraXRXZWJWaWV3QmFzZVF1ZXJ5
VG9vbHRpcDsKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpICYmICFVU0UoR1RLNCkKICAgICB3aWRnZXRDbGFzcy0+ZHJhZ19lbmQgPSB3ZWJraXRXZWJW
aWV3QmFzZURyYWdFbmQ7CiAgICAgd2lkZ2V0Q2xhc3MtPmRyYWdfZGF0YV9nZXQgPSB3ZWJraXRX
ZWJWaWV3QmFzZURyYWdEYXRhR2V0OwogICAgIHdpZGdldENsYXNzLT5kcmFnX21vdGlvbiA9IHdl
YmtpdFdlYlZpZXdCYXNlRHJhZ01vdGlvbjsKQEAgLTE0NTcsOSArMTUxMiwxMyBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX3ZpZXdfYmFzZV9jbGFzc19pbml0KFdlYktpdFdlYlZpZXdCYXNlQ2xh
c3MqIHdlYmtpdFdlYlZpZQogICAgIHdpZGdldENsYXNzLT5kcmFnX2Ryb3AgPSB3ZWJraXRXZWJW
aWV3QmFzZURyYWdEcm9wOwogICAgIHdpZGdldENsYXNzLT5kcmFnX2RhdGFfcmVjZWl2ZWQgPSB3
ZWJraXRXZWJWaWV3QmFzZURyYWdEYXRhUmVjZWl2ZWQ7CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdf
U1VQUE9SVCkKKyNpZiAhVVNFKEdUSzQpCiAgICAgd2lkZ2V0Q2xhc3MtPmV2ZW50ID0gd2Via2l0
V2ViVmlld0Jhc2VFdmVudDsKKyNlbmRpZgogICAgIHdpZGdldENsYXNzLT5nZXRfYWNjZXNzaWJs
ZSA9IHdlYmtpdFdlYlZpZXdCYXNlR2V0QWNjZXNzaWJsZTsKKyNpZiAhVVNFKEdUSzQpCiAgICAg
d2lkZ2V0Q2xhc3MtPmhpZXJhcmNoeV9jaGFuZ2VkID0gd2Via2l0V2ViVmlld0Jhc2VIaWVyYXJj
aHlDaGFuZ2VkOworI2VuZGlmCiAgICAgd2lkZ2V0Q2xhc3MtPmRlc3Ryb3kgPSB3ZWJraXRXZWJW
aWV3QmFzZURlc3Ryb3k7CiAKICAgICBHT2JqZWN0Q2xhc3MqIGdvYmplY3RDbGFzcyA9IEdfT0JK
RUNUX0NMQVNTKHdlYmtpdFdlYlZpZXdCYXNlQ2xhc3MpOwpAQCAtMTUyOCw3ICsxNTg3LDcgQEAg
dm9pZCB3ZWJraXRXZWJWaWV3QmFzZVNldFRvb2x0aXBBcmVhKFdlYktpdFdlYlZpZXdCYXNlKiB3
ZWJWaWV3QmFzZSwgY29uc3QgSW50UmUKICAgICB3ZWJWaWV3QmFzZS0+cHJpdi0+dG9vbHRpcEFy
ZWEgPSB0b29sdGlwQXJlYTsKIH0KIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkgJiYgIVVTRShHVEs0KQogRHJhZ0FuZERyb3BIYW5kbGVyJiB3ZWJr
aXRXZWJWaWV3QmFzZURyYWdBbmREcm9wSGFuZGxlcihXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmll
d0Jhc2UpCiB7CiAgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gd2ViVmlld0Jh
c2UtPnByaXY7CkBAIC0xNjAyLDYgKzE2NjEsNyBAQCB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0
SW5zcGVjdG9yVmlld1NpemUoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlLAog
ICAgICAgICBndGtfd2lkZ2V0X3F1ZXVlX3Jlc2l6ZV9ub19yZWRyYXcoR1RLX1dJREdFVCh3ZWJr
aXRXZWJWaWV3QmFzZSkpOwogfQogCisjaWYgIVVTRShHVEs0KQogc3RhdGljIHZvaWQgYWN0aXZl
Q29udGV4dE1lbnVVbm1hcHBlZChHdGtNZW51KiBtZW51LCBXZWJLaXRXZWJWaWV3QmFzZSogd2Vi
Vmlld0Jhc2UpCiB7CiAgICAgaWYgKHdlYlZpZXdCYXNlLT5wcml2LT5hY3RpdmVDb250ZXh0TWVu
dVByb3h5ICYmIHdlYlZpZXdCYXNlLT5wcml2LT5hY3RpdmVDb250ZXh0TWVudVByb3h5LT5ndGtN
ZW51KCkgPT0gbWVudSkKQEAgLTE2MTgsNiArMTY3OCw3IEBAIFdlYkNvbnRleHRNZW51UHJveHlH
dGsqIHdlYmtpdFdlYlZpZXdCYXNlR2V0QWN0aXZlQ29udGV4dE1lbnVQcm94eShXZWJLaXRXZWJW
aWV3CiB7CiAgICAgcmV0dXJuIHdlYmtpdFdlYlZpZXdCYXNlLT5wcml2LT5hY3RpdmVDb250ZXh0
TWVudVByb3h5OwogfQorI2VuZGlmCiAKIEdka0V2ZW50KiB3ZWJraXRXZWJWaWV3QmFzZVRha2VD
b250ZXh0TWVudUV2ZW50KFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSkKIHsK
QEAgLTE3MjQsMTQgKzE3ODUsMTcgQEAgYm9vbCB3ZWJraXRXZWJWaWV3QmFzZU1ha2VHTENvbnRl
eHRDdXJyZW50KFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSkKIHZvaWQgd2Vi
a2l0V2ViVmlld0Jhc2VXaWxsU3dhcFdlYlByb2Nlc3MoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYmtp
dFdlYlZpZXdCYXNlKQogewogICAgIFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZSogcHJpdiA9IHdl
YmtpdFdlYlZpZXdCYXNlLT5wcml2OwotCisjaWYgIVVTRShHVEs0KQogICAgIGlmIChwcml2LT52
aWV3R2VzdHVyZUNvbnRyb2xsZXIpCiAgICAgICAgIHByaXYtPnZpZXdHZXN0dXJlQ29udHJvbGxl
ci0+ZGlzY29ubmVjdEZyb21Qcm9jZXNzKCk7CisjZW5kaWYKIH0KIAogdm9pZCB3ZWJraXRXZWJW
aWV3QmFzZURpZEV4aXRXZWJQcm9jZXNzKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3
QmFzZSkKIHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgd2Via2l0V2ViVmlld0Jhc2UtPnByaXYtPnZp
ZXdHZXN0dXJlQ29udHJvbGxlciA9IG51bGxwdHI7CisjZW5kaWYKIH0KIAogdm9pZCB3ZWJraXRX
ZWJWaWV3QmFzZURpZFJlbGF1bmNoV2ViUHJvY2VzcyhXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0
V2ViVmlld0Jhc2UpCkBAIC0xNzQ0LDEzICsxODA4LDE0IEBAIHZvaWQgd2Via2l0V2ViVmlld0Jh
c2VEaWRSZWxhdW5jaFdlYlByb2Nlc3MoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdC
YXNlCiAgICAgICAgIGF1dG8qIGRyYXdpbmdBcmVhID0gc3RhdGljX2Nhc3Q8RHJhd2luZ0FyZWFQ
cm94eUNvb3JkaW5hdGVkR3JhcGhpY3MqPihwcml2LT5wYWdlUHJveHktPmRyYXdpbmdBcmVhKCkp
OwogICAgICAgICBwcml2LT5hY2NlbGVyYXRlZEJhY2tpbmdTdG9yZS0+dXBkYXRlKGRyYXdpbmdB
cmVhLT5sYXllclRyZWVDb250ZXh0KCkpOwogICAgIH0KLQorI2lmICFVU0UoR1RLNCkKICAgICBp
ZiAocHJpdi0+dmlld0dlc3R1cmVDb250cm9sbGVyKQogICAgICAgICBwcml2LT52aWV3R2VzdHVy
ZUNvbnRyb2xsZXItPmNvbm5lY3RUb1Byb2Nlc3MoKTsKICAgICBlbHNlIHsKICAgICAgICAgcHJp
di0+dmlld0dlc3R1cmVDb250cm9sbGVyID0gbWFrZVVuaXF1ZTxXZWJLaXQ6OlZpZXdHZXN0dXJl
Q29udHJvbGxlcj4oKnByaXYtPnBhZ2VQcm94eSk7CiAgICAgICAgIHByaXYtPnZpZXdHZXN0dXJl
Q29udHJvbGxlci0+c2V0U3dpcGVHZXN0dXJlRW5hYmxlZChwcml2LT5pc0JhY2tGb3J3YXJkTmF2
aWdhdGlvbkdlc3R1cmVFbmFibGVkKTsKICAgICB9CisjZW5kaWYKIH0KIAogdm9pZCB3ZWJraXRX
ZWJWaWV3QmFzZVBhZ2VDbG9zZWQoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNl
KQpAQCAtMTc3Niw1NCArMTg0MSw2OCBAQCBSZWZQdHI8V2ViS2l0OjpWaWV3U25hcHNob3Q+IHdl
YmtpdFdlYlZpZXdCYXNlVGFrZVZpZXdTbmFwc2hvdChXZWJLaXRXZWJWaWV3QmFzZQogICAgICAg
ICBjYWlyb19yZWN0YW5nbGUoY3IuZ2V0KCksIGNsaXBSZWN0LT54KCksIGNsaXBSZWN0LT55KCks
IGNsaXBSZWN0LT53aWR0aCgpLCBjbGlwUmVjdC0+aGVpZ2h0KCkpOwogICAgICAgICBjYWlyb19j
bGlwKGNyLmdldCgpKTsKICAgICB9CisjaWYgIVVTRShHVEs0KQogICAgIHdlYmtpdFdlYlZpZXdC
YXNlRHJhdyhHVEtfV0lER0VUKHdlYmtpdFdlYlZpZXdCYXNlKSwgY3IuZ2V0KCkpOworI2VuZGlm
CiAKICAgICByZXR1cm4gVmlld1NuYXBzaG90OjpjcmVhdGUoV1RGTW92ZShzdXJmYWNlKSk7CiB9
CiAKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5G
cmFtZShXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UpCiB7CisjaWYgIVVTRShH
VEs0KQogICAgIFZpZXdHZXN0dXJlQ29udHJvbGxlciogY29udHJvbGxlciA9IHdlYmtpdFdlYlZp
ZXdCYXNlVmlld0dlc3R1cmVDb250cm9sbGVyKHdlYmtpdFdlYlZpZXdCYXNlKTsKICAgICBpZiAo
Y29udHJvbGxlciAmJiBjb250cm9sbGVyLT5pc1N3aXBlR2VzdHVyZUVuYWJsZWQoKSkKICAgICAg
ICAgY29udHJvbGxlci0+ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUoKTsKKyNl
bmRpZgogfQogCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5
TGF5b3V0Rm9yTWFpbkZyYW1lKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSkK
IHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgVmlld0dlc3R1cmVDb250cm9sbGVyKiBjb250cm9sbGVy
ID0gd2Via2l0V2ViVmlld0Jhc2VWaWV3R2VzdHVyZUNvbnRyb2xsZXIod2Via2l0V2ViVmlld0Jh
c2UpOwogICAgIGlmIChjb250cm9sbGVyICYmIGNvbnRyb2xsZXItPmlzU3dpcGVHZXN0dXJlRW5h
YmxlZCgpKQogICAgICAgICBjb250cm9sbGVyLT5kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGb3JNYWluRnJhbWUoKTsKKyNlbmRpZgogfQogCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlk
RmluaXNoTG9hZEZvck1haW5GcmFtZShXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jh
c2UpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIFZpZXdHZXN0dXJlQ29udHJvbGxlciogY29udHJv
bGxlciA9IHdlYmtpdFdlYlZpZXdCYXNlVmlld0dlc3R1cmVDb250cm9sbGVyKHdlYmtpdFdlYlZp
ZXdCYXNlKTsKICAgICBpZiAoY29udHJvbGxlciAmJiBjb250cm9sbGVyLT5pc1N3aXBlR2VzdHVy
ZUVuYWJsZWQoKSkKICAgICAgICAgY29udHJvbGxlci0+ZGlkRmluaXNoTG9hZEZvck1haW5GcmFt
ZSgpOworI2VuZGlmCiB9CiAKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRGYWlsTG9hZEZvck1h
aW5GcmFtZShXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UpCiB7CisjaWYgIVVT
RShHVEs0KQogICAgIFZpZXdHZXN0dXJlQ29udHJvbGxlciogY29udHJvbGxlciA9IHdlYmtpdFdl
YlZpZXdCYXNlVmlld0dlc3R1cmVDb250cm9sbGVyKHdlYmtpdFdlYlZpZXdCYXNlKTsKICAgICBp
ZiAoY29udHJvbGxlciAmJiBjb250cm9sbGVyLT5pc1N3aXBlR2VzdHVyZUVuYWJsZWQoKSkKICAg
ICAgICAgY29udHJvbGxlci0+ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKTsKKyNlbmRpZgogfQog
CiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5G
cmFtZShXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UsIFNhbWVEb2N1bWVudE5h
dmlnYXRpb25UeXBlIHR5cGUpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIFZpZXdHZXN0dXJlQ29u
dHJvbGxlciogY29udHJvbGxlciA9IHdlYmtpdFdlYlZpZXdCYXNlVmlld0dlc3R1cmVDb250cm9s
bGVyKHdlYmtpdFdlYlZpZXdCYXNlKTsKICAgICBpZiAoY29udHJvbGxlciAmJiBjb250cm9sbGVy
LT5pc1N3aXBlR2VzdHVyZUVuYWJsZWQoKSkKICAgICAgICAgY29udHJvbGxlci0+ZGlkU2FtZURv
Y3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZSh0eXBlKTsKKyNlbmRpZgogfQogCiB2b2lkIHdl
YmtpdFdlYlZpZXdCYXNlRGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKFdlYktpdFdlYlZpZXdCYXNl
KiB3ZWJraXRXZWJWaWV3QmFzZSkKIHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgVmlld0dlc3R1cmVD
b250cm9sbGVyKiBjb250cm9sbGVyID0gd2Via2l0V2ViVmlld0Jhc2VWaWV3R2VzdHVyZUNvbnRy
b2xsZXIod2Via2l0V2ViVmlld0Jhc2UpOwogICAgIGlmIChjb250cm9sbGVyICYmIGNvbnRyb2xs
ZXItPmlzU3dpcGVHZXN0dXJlRW5hYmxlZCgpKQogICAgICAgICB3ZWJraXRXZWJWaWV3QmFzZS0+
cHJpdi0+dmlld0dlc3R1cmVDb250cm9sbGVyLT5kaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsK
KyNlbmRpZgogfQogCi0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQsIDApCisjaWYgR1RLX0NI
RUNLX1ZFUlNJT04oMywgMjQsIDApICYmICFVU0UoR1RLNCkKIHN0YXRpYyB2b2lkIGVtb2ppQ2hv
b3NlckVtb2ppUGlja2VkKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSwgY29u
c3QgY2hhciogdGV4dCkKIHsKICAgICB3ZWJraXRXZWJWaWV3QmFzZUNvbXBsZXRlRW1vamlDaG9v
c2VyUmVxdWVzdCh3ZWJraXRXZWJWaWV3QmFzZSwgU3RyaW5nOjpmcm9tVVRGOCh0ZXh0KSk7CkBA
IC0xODM4LDcgKzE5MTcsNyBAQCBzdGF0aWMgdm9pZCBlbW9qaUNob29zZXJDbG9zZWQoV2ViS2l0
V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlKQogCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNl
U2hvd0Vtb2ppQ2hvb3NlcihXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UsIGNv
bnN0IEludFJlY3QmIGNhcmV0UmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewotI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDI0LCAwKQor
I2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDI0LCAwKSAmJiAhVVNFKEdUSzQpCiAgICAgV2ViS2l0
V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gd2Via2l0V2ViVmlld0Jhc2UtPnByaXY7CiAgICAg
cHJpdi0+cmVsZWFzZUVtb2ppQ2hvb3NlclRpbWVyLnN0b3AoKTsKIApAQCAtMTg3Miw2ICsxOTUx
LDcgQEAgaW50IHdlYmtpdFdlYlZpZXdCYXNlUmVuZGVySG9zdEZpbGVEZXNjcmlwdG9yKFdlYktp
dFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmEKIAogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVJl
cXVlc3RQb2ludGVyTG9jayhXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UpCiB7CisjaWYg
IVVTRShHVEs0KQogICAgIFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZSogcHJpdiA9IHdlYlZpZXdC
YXNlLT5wcml2OwogICAgIFJFTEVBU0VfQVNTRVJUKCFwcml2LT5wb2ludGVyTG9ja01hbmFnZXIp
OwogICAgIGlmICghcHJpdi0+bGFzdE1vdGlvbkV2ZW50KSB7CkBAIC0xODk3LDE2ICsxOTc3LDE5
IEBAIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VSZXF1ZXN0UG9pbnRlckxvY2soV2ViS2l0V2ViVmll
d0Jhc2UqIHdlYlZpZXdCYXNlKQogCiAgICAgcHJpdi0+cG9pbnRlckxvY2tNYW5hZ2VyID0gbnVs
bHB0cjsKICAgICBwcml2LT5wYWdlUHJveHktPmRpZERlbnlQb2ludGVyTG9jaygpOworI2VuZGlm
CiB9CiAKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRMb3NlUG9pbnRlckxvY2soV2ViS2l0V2Vi
Vmlld0Jhc2UqIHdlYlZpZXdCYXNlKQogeworI2lmICFVU0UoR1RLNCkKICAgICBXZWJLaXRXZWJW
aWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3QmFzZS0+cHJpdjsKICAgICBpZiAoIXByaXYt
PnBvaW50ZXJMb2NrTWFuYWdlcikKICAgICAgICAgcmV0dXJuOwogCiAgICAgcHJpdi0+cG9pbnRl
ckxvY2tNYW5hZ2VyLT51bmxvY2soKTsKICAgICBwcml2LT5wb2ludGVyTG9ja01hbmFnZXIgPSBu
dWxscHRyOworI2VuZGlmCiB9CiAKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VTZXRJbnB1dE1ldGhv
ZENvbnRleHQoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlLCBXZWJLaXRJbnB1dE1ldGhv
ZENvbnRleHQqIGNvbnRleHQpCkBAIC0xOTIxLDYgKzIwMDQsNyBAQCBXZWJLaXRJbnB1dE1ldGhv
ZENvbnRleHQqIHdlYmtpdFdlYlZpZXdCYXNlR2V0SW5wdXRNZXRob2RDb250ZXh0KFdlYktpdFdl
YlZpZXdCYQogCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZUNvbXBvc2l0aW9uS2V5
UHJlc3MoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlLCBjb25zdCBTdHJpbmcmIHRleHQs
IE9wdGlvbmFsPFZlY3RvcjxDb21wb3NpdGlvblVuZGVybGluZT4+JiYgdW5kZXJsaW5lcywgT3B0
aW9uYWw8RWRpdGluZ1JhbmdlPiYmIHNlbGVjdGlvblJhbmdlKQogeworI2lmICFVU0UoR1RLNCkK
ICAgICBzdGF0aWMgR2RrRXZlbnQqIGV2ZW50ID0gbnVsbHB0cjsKICAgICBpZiAoIWV2ZW50KSB7
CiAgICAgICAgIGV2ZW50ID0gZ2RrX2V2ZW50X25ldyhHREtfS0VZX1BSRVNTKTsKQEAgLTE5MzUs
NCArMjAxOSw1IEBAIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplQ29tcG9zaXRpb25L
ZXlQcmVzcyhXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0JhCiAKICAgICBXZWJLaXRXZWJWaWV3
QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3QmFzZS0+cHJpdjsKICAgICBwcml2LT5wYWdlUHJv
eHktPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgdGV4
dCwgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDo6SGFuZGxlZEJ5SW5wdXRNZXRob2Q6OlllcywgV1RG
TW92ZSh1bmRlcmxpbmVzKSwgV1RGTW92ZShzZWxlY3Rpb25SYW5nZSksIHsgfSkpOworI2VuZGlm
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXdCYXNlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3QmFzZVByaXZhdGUuaAppbmRleCBkZmMwMmRhODQ0MDEuLmM1NTMwODBiZmM1OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
QmFzZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXdCYXNlUHJpdmF0ZS5oCkBAIC01Myw4ICs1MywxMCBAQCB2b2lkIHdlYmtpdFdlYlZp
ZXdCYXNlRW50ZXJGdWxsU2NyZWVuKFdlYktpdFdlYlZpZXdCYXNlKik7CiB2b2lkIHdlYmtpdFdl
YlZpZXdCYXNlRXhpdEZ1bGxTY3JlZW4oV2ViS2l0V2ViVmlld0Jhc2UqKTsKIGJvb2wgd2Via2l0
V2ViVmlld0Jhc2VJc0Z1bGxTY3JlZW4oV2ViS2l0V2ViVmlld0Jhc2UqKTsKIHZvaWQgd2Via2l0
V2ViVmlld0Jhc2VTZXRJbnNwZWN0b3JWaWV3U2l6ZShXZWJLaXRXZWJWaWV3QmFzZSosIHVuc2ln
bmVkIHNpemUpOworI2lmICFVU0UoR1RLNCkKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VTZXRBY3Rp
dmVDb250ZXh0TWVudVByb3h5KFdlYktpdFdlYlZpZXdCYXNlKiwgV2ViS2l0OjpXZWJDb250ZXh0
TWVudVByb3h5R3RrKik7CiBXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlHdGsqIHdlYmtpdFdl
YlZpZXdCYXNlR2V0QWN0aXZlQ29udGV4dE1lbnVQcm94eShXZWJLaXRXZWJWaWV3QmFzZSopOwor
I2VuZGlmCiBHZGtFdmVudCogd2Via2l0V2ViVmlld0Jhc2VUYWtlQ29udGV4dE1lbnVFdmVudChX
ZWJLaXRXZWJWaWV3QmFzZSopOwogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVNldElucHV0TWV0aG9k
U3RhdGUoV2ViS2l0V2ViVmlld0Jhc2UqLCBPcHRpb25hbDxXZWJLaXQ6OklucHV0TWV0aG9kU3Rh
dGU+JiYpOwogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVVwZGF0ZVRleHRJbnB1dFN0YXRlKFdlYktp
dFdlYlZpZXdCYXNlKik7CkBAIC03OCwxNiArODAsMTkgQEAgdm9pZCB3ZWJraXRXZWJWaWV3QmFz
ZURpZEV4aXRXZWJQcm9jZXNzKFdlYktpdFdlYlZpZXdCYXNlKik7CiB2b2lkIHdlYmtpdFdlYlZp
ZXdCYXNlRGlkUmVsYXVuY2hXZWJQcm9jZXNzKFdlYktpdFdlYlZpZXdCYXNlKik7CiB2b2lkIHdl
YmtpdFdlYlZpZXdCYXNlUGFnZUNsb3NlZChXZWJLaXRXZWJWaWV3QmFzZSopOwogCi0jaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKSAmJiAhVVNFKEdUSzQp
CiBXZWJLaXQ6OkRyYWdBbmREcm9wSGFuZGxlciYgd2Via2l0V2ViVmlld0Jhc2VEcmFnQW5kRHJv
cEhhbmRsZXIoV2ViS2l0V2ViVmlld0Jhc2UqKTsKICNlbmRpZgogCisjaWYgIVVTRShHVEs0KQog
V2ViS2l0OjpHZXN0dXJlQ29udHJvbGxlciYgd2Via2l0V2ViVmlld0Jhc2VHZXN0dXJlQ29udHJv
bGxlcihXZWJLaXRXZWJWaWV3QmFzZSopOworI2VuZGlmCiAKIFJlZlB0cjxXZWJLaXQ6OlZpZXdT
bmFwc2hvdD4gd2Via2l0V2ViVmlld0Jhc2VUYWtlVmlld1NuYXBzaG90KFdlYktpdFdlYlZpZXdC
YXNlKiwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UmVjdD4mJik7Ci0KIHZvaWQgd2Via2l0V2ViVmll
d0Jhc2VTZXRFbmFibGVCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlKFdlYktpdFdlYlZpZXdC
YXNlKiwgYm9vbCBlbmFibGVkKTsKKyNpZiAhVVNFKEdUSzQpCiBXZWJLaXQ6OlZpZXdHZXN0dXJl
Q29udHJvbGxlciogd2Via2l0V2ViVmlld0Jhc2VWaWV3R2VzdHVyZUNvbnRyb2xsZXIoV2ViS2l0
V2ViVmlld0Jhc2UqKTsKKyNlbmRpZgogCiBib29sIHdlYmtpdFdlYlZpZXdCYXNlQmVnaW5CYWNr
U3dpcGVGb3JUZXN0aW5nKFdlYktpdFdlYlZpZXdCYXNlKik7CiBib29sIHdlYmtpdFdlYlZpZXdC
YXNlQ29tcGxldGVCYWNrU3dpcGVGb3JUZXN0aW5nKFdlYktpdFdlYlZpZXdCYXNlKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdEaWFs
b2cuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3RGlh
bG9nLmNwcAppbmRleCA3MGU2ZDM5NGIyYTEuLmU2NTNiZWM2MWRjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3RGlhbG9nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdEaWFsb2cuY3Bw
CkBAIC0yMCw2ICsyMCw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViS2l0
V2ViVmlld0RpYWxvZy5oIgogCisjaWYgIVVTRShHVEs0KQorCiAjaW5jbHVkZSA8d3RmL2dsaWIv
R1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL1dURkdUeXBlLmg+CiAKQEAgLTg5LDMgKzkx
LDUgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2RpYWxvZ19jbGFzc19pbml0KFdlYktp
dFdlYlZpZXdEaWFsb2dDbGFzcyoga2xhc3MpCiAKICAgICBndGtfd2lkZ2V0X2NsYXNzX3NldF9j
c3NfbmFtZSh3aWRnZXRDbGFzcywgIm1lc3NhZ2VkaWFsb2ciKTsKIH0KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdEaWFs
b2cuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0RpYWxv
Zy5oCmluZGV4IDY1MjFjNzc3YTU3Zi4uNmE3ZTA2NDU4OWFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdEaWFsb2cuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdEaWFsb2cuaApAQCAtMTks
NiArMTksOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmICFVU0UoR1RLNCkKKwogI2luY2x1ZGUg
PGd0ay9ndGsuaD4KIAogR19CRUdJTl9ERUNMUwpAQCAtNDcsMyArNDksNSBAQCBzdHJ1Y3QgX1dl
YktpdFdlYlZpZXdEaWFsb2dDbGFzcyB7CiBHVHlwZSB3ZWJraXRfd2ViX3ZpZXdfZGlhbG9nX2dl
dF90eXBlKCk7CiAKIEdfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3R3RrLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0d0ay5jcHAKaW5kZXggYWY3MWUzYjRk
OWUzLi5jMjk1NDE4YzE5ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViVmlld0d0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3R3RrLmNwcApAQCAtMzMsMjIgKzMzLDI3IEBACiAKIGdib29s
ZWFuIHdlYmtpdFdlYlZpZXdBdXRoZW50aWNhdGUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2Vi
S2l0QXV0aGVudGljYXRpb25SZXF1ZXN0KiByZXF1ZXN0KQogeworI2lmICFVU0UoR1RLNCkKICAg
ICBDcmVkZW50aWFsU3RvcmFnZU1vZGUgY3JlZGVudGlhbFN0b3JhZ2VNb2RlID0gd2Via2l0X2F1
dGhlbnRpY2F0aW9uX3JlcXVlc3RfY2FuX3NhdmVfY3JlZGVudGlhbHMocmVxdWVzdCkgPyBBbGxv
d1BlcnNpc3RlbnRTdG9yYWdlIDogRGlzYWxsb3dQZXJzaXN0ZW50U3RvcmFnZTsKICAgICB3ZWJr
aXRXZWJWaWV3QmFzZUFkZERpYWxvZyhXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3ZWJWaWV3KSwgd2Vi
a2l0QXV0aGVudGljYXRpb25EaWFsb2dOZXcocmVxdWVzdCwgY3JlZGVudGlhbFN0b3JhZ2VNb2Rl
KSk7CisjZW5kaWYKIAogICAgIHJldHVybiBUUlVFOwogfQogCiBnYm9vbGVhbiB3ZWJraXRXZWJW
aWV3U2NyaXB0RGlhbG9nKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFNjcmlwdERpYWxv
Zyogc2NyaXB0RGlhbG9nKQogeworI2lmICFVU0UoR1RLNCkKICAgICBHVW5pcXVlUHRyPGNoYXI+
IHRpdGxlKGdfc3RyZHVwX3ByaW50ZigiSmF2YVNjcmlwdCAtICVzIiwgd2Via2l0V2ViVmlld0dl
dFBhZ2Uod2ViVmlldykucGFnZUxvYWRTdGF0ZSgpLnVybCgpLnV0ZjgoKS5kYXRhKCkpKTsKICAg
ICAvLyBMaW1pdCBzY3JpcHQgZGlhbG9nIHNpemUgdG8gODAlIG9mIHRoZSB3ZWIgdmlldyBzaXpl
LgogICAgIEd0a1JlcXVpc2l0aW9uIG1heFNpemUgPSB7IHN0YXRpY19jYXN0PGludD4oZ3RrX3dp
ZGdldF9nZXRfYWxsb2NhdGVkX3dpZHRoKEdUS19XSURHRVQod2ViVmlldykpICogMC44MCksIHN0
YXRpY19jYXN0PGludD4oZ3RrX3dpZGdldF9nZXRfYWxsb2NhdGVkX2hlaWdodChHVEtfV0lER0VU
KHdlYlZpZXcpKSAqIDAuODApIH07CiAgICAgd2Via2l0V2ViVmlld0Jhc2VBZGREaWFsb2coV0VC
S0lUX1dFQl9WSUVXX0JBU0Uod2ViVmlldyksIHdlYmtpdFNjcmlwdERpYWxvZ0ltcGxOZXcoc2Ny
aXB0RGlhbG9nLCB0aXRsZS5nZXQoKSwgJm1heFNpemUpKTsKKyNlbmRpZgogCiAgICAgcmV0dXJu
IFRSVUU7CiB9CiAKKyNpZiAhVVNFKEdUSzQpCiBzdGF0aWMgdm9pZCBmaWxlQ2hvb3NlckRpYWxv
Z1Jlc3BvbnNlQ2FsbGJhY2soR3RrRmlsZUNob29zZXIqIGRpYWxvZywgZ2ludCByZXNwb25zZUlE
LCBXZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3QqIHJlcXVlc3QpCiB7CiAgICAgR1JlZlB0cjxXZWJL
aXRGaWxlQ2hvb3NlclJlcXVlc3Q+IGFkb3B0ZWRSZXF1ZXN0ID0gYWRvcHRHUmVmKHJlcXVlc3Qp
OwpAQCAtNjQsOSArNjksMTEgQEAgc3RhdGljIHZvaWQgZmlsZUNob29zZXJEaWFsb2dSZXNwb25z
ZUNhbGxiYWNrKEd0a0ZpbGVDaG9vc2VyKiBkaWFsb2csIGdpbnQgcmVzcG8KIAogICAgIGdfb2Jq
ZWN0X3VucmVmKGRpYWxvZyk7CiB9CisjZW5kaWYKIAogZ2Jvb2xlYW4gd2Via2l0V2ViVmlld1J1
bkZpbGVDaG9vc2VyKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdEZpbGVDaG9vc2VyUmVx
dWVzdCogcmVxdWVzdCkKIHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgR3RrV2lkZ2V0KiB0b3BsZXZl
bCA9IGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19XSURHRVQod2ViVmlldykpOwogICAgIGlm
ICghV2ViQ29yZTo6d2lkZ2V0SXNPbnNjcmVlblRvcGxldmVsV2luZG93KHRvcGxldmVsKSkKICAg
ICAgICAgdG9wbGV2ZWwgPSAwOwpAQCAtODgsMTAgKzk1LDEyIEBAIGdib29sZWFuIHdlYmtpdFdl
YlZpZXdSdW5GaWxlQ2hvb3NlcihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRGaWxlQ2hv
b3NlclJlCiAgICAgZ19zaWduYWxfY29ubmVjdChkaWFsb2csICJyZXNwb25zZSIsIEdfQ0FMTEJB
Q0soZmlsZUNob29zZXJEaWFsb2dSZXNwb25zZUNhbGxiYWNrKSwgZ19vYmplY3RfcmVmKHJlcXVl
c3QpKTsKIAogICAgIGd0a19uYXRpdmVfZGlhbG9nX3Nob3coR1RLX05BVElWRV9ESUFMT0coZGlh
bG9nKSk7CisjZW5kaWYKIAogICAgIHJldHVybiBUUlVFOwogfQogCisjaWYgIVVTRShHVEs0KQog
c3RydWN0IFdpbmRvd1N0YXRlRXZlbnQgewogICAgIGVudW0gY2xhc3MgVHlwZSB7IE1heGltaXpl
LCBNaW5pbWl6ZSwgUmVzdG9yZSB9OwogCkBAIC0xNTMsOSArMTYyLDExIEBAIHN0YXRpYyBnYm9v
bGVhbiB3aW5kb3dTdGF0ZUV2ZW50Q2FsbGJhY2soR3RrV2lkZ2V0KiB3aW5kb3csIEdka0V2ZW50
V2luZG93U3RhdGUqCiAKICAgICByZXR1cm4gRkFMU0U7CiB9CisjZW5kaWYKIAogdm9pZCB3ZWJr
aXRXZWJWaWV3TWF4aW1pemVXaW5kb3coV2ViS2l0V2ViVmlldyogdmlldywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogeworI2lmICFVU0UoR1RLNCkKICAg
ICBhdXRvKiB0b3BMZXZlbCA9IGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19XSURHRVQodmll
dykpOwogICAgIGlmICghZ3RrX3dpZGdldF9pc190b3BsZXZlbCh0b3BMZXZlbCkpIHsKICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTE4NSwxMCArMTk2LDEyIEBAIHZvaWQgd2Via2l0
V2ViVmlld01heGltaXplV2luZG93KFdlYktpdFdlYlZpZXcqIHZpZXcsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mCiAgICAgfQogI2VuZGlmCiAgICAgZ3RrX3dpZGdldF9zaG93KHRvcExldmVs
KTsKKyNlbmRpZgogfQogCiB2b2lkIHdlYmtpdFdlYlZpZXdNaW5pbWl6ZVdpbmRvdyhXZWJLaXRX
ZWJWaWV3KiB2aWV3LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIGF1dG8qIHRvcExldmVsID0gZ3RrX3dpZGdldF9n
ZXRfdG9wbGV2ZWwoR1RLX1dJREdFVCh2aWV3KSk7CiAgICAgaWYgKCFndGtfd2lkZ2V0X2lzX3Rv
cGxldmVsKHRvcExldmVsKSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwpAQCAtMjAy
LDEwICsyMTUsMTIgQEAgdm9pZCB3ZWJraXRXZWJWaWV3TWluaW1pemVXaW5kb3coV2ViS2l0V2Vi
VmlldyogdmlldywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYKICAgICBnX3NpZ25hbF9jb25u
ZWN0X29iamVjdCh3aW5kb3csICJ3aW5kb3ctc3RhdGUtZXZlbnQiLCBHX0NBTExCQUNLKHdpbmRv
d1N0YXRlRXZlbnRDYWxsYmFjayksIHZpZXcsIEdfQ09OTkVDVF9BRlRFUik7CiAgICAgZ3RrX3dp
bmRvd19pY29uaWZ5KHdpbmRvdyk7CiAgICAgZ3RrX3dpZGdldF9oaWRlKHRvcExldmVsKTsKKyNl
bmRpZgogfQogCiB2b2lkIHdlYmtpdFdlYlZpZXdSZXN0b3JlV2luZG93KFdlYktpdFdlYlZpZXcq
IHZpZXcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
KyNpZiAhVVNFKEdUSzQpCiAgICAgYXV0byogdG9wTGV2ZWwgPSBndGtfd2lkZ2V0X2dldF90b3Bs
ZXZlbChHVEtfV0lER0VUKHZpZXcpKTsKICAgICBpZiAoIWd0a193aWRnZXRfaXNfdG9wbGV2ZWwo
dG9wTGV2ZWwpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC0yMzgsNiArMjUz
LDcgQEAgdm9pZCB3ZWJraXRXZWJWaWV3UmVzdG9yZVdpbmRvdyhXZWJLaXRXZWJWaWV3KiB2aWV3
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYKICAgICB9CiAjZW5kaWYKICAgICBndGtfd2lk
Z2V0X3Nob3codG9wTGV2ZWwpOworI2VuZGlmCiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudUl0ZW0uaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGszL1dlYktpdENvbnRleHRNZW51SXRlbS5oCnNpbWls
YXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5oCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrMy9XZWJLaXRDb250ZXh0TWVudUl0ZW0uaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGszL1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5o
CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5oCnJlbmFtZSB0byBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrMy9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0azQvV2ViS2l0Q29udGV4dE1lbnVJ
dGVtLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrNC9XZWJLaXRDb250ZXh0TWVu
dUl0ZW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjJlMzQzNjkx
ZjYwYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGs0
L1dlYktpdENvbnRleHRNZW51SXRlbS5oCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVf
XykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikgJiYgIWRlZmluZWQoX19XRUJLSVRf
V0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIu
aD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdENv
bnRleHRNZW51SXRlbV9oCisjZGVmaW5lIFdlYktpdENvbnRleHRNZW51SXRlbV9oCisKKyNpbmNs
dWRlIDxndGsvZ3RrLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisjaW5j
bHVkZSA8d2Via2l0Mi9XZWJLaXRDb250ZXh0TWVudS5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2Vi
S2l0Q29udGV4dE1lbnVBY3Rpb25zLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGb3J3YXJk
RGVjbGFyYXRpb25zLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9D
T05URVhUX01FTlVfSVRFTSAgICAgICAgICAgICh3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1fZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX0NPTlRFWFRfTUVOVV9JVEVNKG9iaikgICAgICAgICAg
ICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX0NPTlRFWFRf
TUVOVV9JVEVNLCBXZWJLaXRDb250ZXh0TWVudUl0ZW0pKQorI2RlZmluZSBXRUJLSVRfSVNfQ09O
VEVYVF9NRU5VX0lURU0ob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgo
b2JqKSwgV0VCS0lUX1RZUEVfQ09OVEVYVF9NRU5VX0lURU0pKQorI2RlZmluZSBXRUJLSVRfQ09O
VEVYVF9NRU5VX0lURU1fQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgo
a2xhc3MpLCAgV0VCS0lUX1RZUEVfQ09OVEVYVF9NRU5VX0lURU0sIFdlYktpdENvbnRleHRNZW51
SXRlbUNsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lTX0NPTlRFWFRfTUVOVV9JVEVNX0NMQVNTKGts
YXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0NPTlRF
WFRfTUVOVV9JVEVNKSkKKyNkZWZpbmUgV0VCS0lUX0NPTlRFWFRfTUVOVV9JVEVNX0dFVF9DTEFT
UyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX0NP
TlRFWFRfTUVOVV9JVEVNLCBXZWJLaXRDb250ZXh0TWVudUl0ZW1DbGFzcykpCisKK3R5cGVkZWYg
c3RydWN0IF9XZWJLaXRDb250ZXh0TWVudUl0ZW1DbGFzcyAgIFdlYktpdENvbnRleHRNZW51SXRl
bUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdENvbnRleHRNZW51SXRlbVByaXZhdGUgV2Vi
S2l0Q29udGV4dE1lbnVJdGVtUHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRDb250ZXh0TWVudUl0
ZW0geworICAgIEdJbml0aWFsbHlVbm93bmVkIHBhcmVudDsKKworICAgIFdlYktpdENvbnRleHRN
ZW51SXRlbVByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktpdENvbnRleHRNZW51SXRl
bUNsYXNzIHsKKyAgICBHSW5pdGlhbGx5VW5vd25lZENsYXNzIHBhcmVudF9jbGFzczsKKworICAg
IHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jl
c2VydmVkMSkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOwor
ICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOworfTsKKworV0VCS0lUX0FQSSBH
VHlwZQord2Via2l0X2NvbnRleHRfbWVudV9pdGVtX2dldF90eXBlICAgICAgICAgICAgICAgICAg
ICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBXZWJLaXRDb250ZXh0TWVudUl0ZW0gKgord2Vi
a2l0X2NvbnRleHRfbWVudV9pdGVtX25ld19mcm9tX2dhY3Rpb24gICAgICAgICAgICAgICAgIChH
QWN0aW9uICAgICAgICAgICAgICAgICphY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAg
KmxhYmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHVmFyaWFudCAgICAgICAgICAgICAgICp0YXJnZXQpOworCitXRUJLSVRfQVBJ
IFdlYktpdENvbnRleHRNZW51SXRlbSAqCit3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1fbmV3X2Zy
b21fc3RvY2tfYWN0aW9uICAgICAgICAgICAgKFdlYktpdENvbnRleHRNZW51QWN0aW9uIGFjdGlv
bik7CisKK1dFQktJVF9BUEkgV2ViS2l0Q29udGV4dE1lbnVJdGVtICoKK3dlYmtpdF9jb250ZXh0
X21lbnVfaXRlbV9uZXdfZnJvbV9zdG9ja19hY3Rpb25fd2l0aF9sYWJlbCAoV2ViS2l0Q29udGV4
dE1lbnVBY3Rpb24gYWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICpsYWJlbCk7CisK
K1dFQktJVF9BUEkgV2ViS2l0Q29udGV4dE1lbnVJdGVtICoKK3dlYmtpdF9jb250ZXh0X21lbnVf
aXRlbV9uZXdfd2l0aF9zdWJtZW51ICAgICAgICAgICAgICAgICAoY29uc3QgZ2NoYXIgICAgICAg
ICAgICAqbGFiZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdlYktpdENvbnRleHRNZW51ICAgICAgKnN1Ym1lbnUpOworCitXRUJL
SVRfQVBJIFdlYktpdENvbnRleHRNZW51SXRlbSAqCit3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1f
bmV3X3NlcGFyYXRvciAgICAgICAgICAgICAgICAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIEdB
Y3Rpb24gKgord2Via2l0X2NvbnRleHRfbWVudV9pdGVtX2dldF9nYWN0aW9uICAgICAgICAgICAg
ICAgICAgICAgIChXZWJLaXRDb250ZXh0TWVudUl0ZW0gICppdGVtKTsKKworV0VCS0lUX0FQSSBX
ZWJLaXRDb250ZXh0TWVudUFjdGlvbgord2Via2l0X2NvbnRleHRfbWVudV9pdGVtX2dldF9zdG9j
a19hY3Rpb24gICAgICAgICAgICAgICAgIChXZWJLaXRDb250ZXh0TWVudUl0ZW0gICppdGVtKTsK
KworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X2NvbnRleHRfbWVudV9pdGVtX2lzX3NlcGFy
YXRvciAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRDb250ZXh0TWVudUl0ZW0gICppdGVtKTsK
KworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1fc2V0X3N1Ym1lbnUg
ICAgICAgICAgICAgICAgICAgICAgKFdlYktpdENvbnRleHRNZW51SXRlbSAgKml0ZW0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdl
YktpdENvbnRleHRNZW51ICAgICAgKnN1Ym1lbnUpOworCitXRUJLSVRfQVBJIFdlYktpdENvbnRl
eHRNZW51ICoKK3dlYmtpdF9jb250ZXh0X21lbnVfaXRlbV9nZXRfc3VibWVudSAgICAgICAgICAg
ICAgICAgICAgICAoV2ViS2l0Q29udGV4dE1lbnVJdGVtICAqaXRlbSk7CisKK0dfRU5EX0RFQ0xT
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0azQv
V2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrNC9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAuLmNhZmVkYTA2NWRkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGs0L1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5oCkBAIC0w
LDAgKzEsMjIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAh
ZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxB
VElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBk
aXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRJbnB1dE1ldGhvZENvbnRleHRfaAor
I2RlZmluZSBXZWJLaXRJbnB1dE1ldGhvZENvbnRleHRfaAorCisjaW5jbHVkZSA8Z2xpYi1vYmpl
Y3QuaD4KKyNpbmNsdWRlIDxnZGsvZ2RrLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZp
bmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9JTlBVVF9NRVRI
T0RfQ09OVEVYVCAgICAgICAgICAgICh3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgV0VCS0lUX0lOUFVUX01FVEhPRF9DT05URVhUKG9iaikgICAgICAgICAg
ICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX0lOUFVUX01F
VEhPRF9DT05URVhULCBXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQpKQorI2RlZmluZSBXRUJLSVRf
SU5QVVRfTUVUSE9EX0NPTlRFWFRfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1Nf
Q0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfSU5QVVRfTUVUSE9EX0NPTlRFWFQsIFdlYktpdElu
cHV0TWV0aG9kQ29udGV4dENsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lTX0lOUFVUX01FVEhPRF9D
T05URVhUKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdF
QktJVF9UWVBFX0lOUFVUX01FVEhPRF9DT05URVhUKSkKKyNkZWZpbmUgV0VCS0lUX0lTX0lOUFVU
X01FVEhPRF9DT05URVhUX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGts
YXNzKSwgIFdFQktJVF9UWVBFX0lOUFVUX01FVEhPRF9DT05URVhUKSkKKyNkZWZpbmUgV0VCS0lU
X0lOUFVUX01FVEhPRF9DT05URVhUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dF
VF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX0lOUFVUX01FVEhPRF9DT05URVhULCBXZWJLaXRJ
bnB1dE1ldGhvZENvbnRleHRDbGFzcykpCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfSU5QVVRfTUVU
SE9EX1VOREVSTElORSAgICAgICAgICAod2Via2l0X2lucHV0X21ldGhvZF91bmRlcmxpbmVfZ2V0
X3R5cGUoKSkKKworLyoqCisgKiBXZWJLaXRJbnB1dFB1cnBvc2U6CisgKiBAV0VCS0lUX0lOUFVU
X1BVUlBPU0VfRlJFRV9GT1JNOiBFZGl0YWJsZSBlbGVtZW50IGV4cGVjdHMgYW55IGNoYXJhY3Rl
cnMKKyAqIEBXRUJLSVRfSU5QVVRfUFVSUE9TRV9ESUdJVFM6IEVkaXRhYmxlIGVsZW1lbnQgZXhw
ZWN0cyBkaWdpdHMKKyAqIEBXRUJLSVRfSU5QVVRfUFVSUE9TRV9OVU1CRVI6IEVkaXRhYmxlIGVs
ZW1lbnQgZXhwZWN0cyBhIG51bWJlcgorICogQFdFQktJVF9JTlBVVF9QVVJQT1NFX1BIT05FOiBF
ZGl0YWJsZSBlbGVtZW50IGV4cGVjdHMgYSB0ZWxlcGhvbmUKKyAqIEBXRUJLSVRfSU5QVVRfUFVS
UE9TRV9VUkw6IEVkaXRhYmxlIGVsZW1lbnQgZXhwZWN0cyBhIFVSTAorICogQFdFQktJVF9JTlBV
VF9QVVJQT1NFX0VNQUlMOiBFZGl0YWJsZSBlbGVtZW50IGV4cGVjdHMgYW4gZW1haWwKKyAqIEBX
RUJLSVRfSU5QVVRfUFVSUE9TRV9QQVNTV09SRDogRWRpdGFibGUgZWxlbWVudCBleHBlY3RzIGEg
cGFzc3dvcmQKKyAqCisgKiBFbnVtIHZhbHVlcyB1c2VkIHRvIGRlc2NyaWJlIHRoZSBwcmltYXJ5
IHB1cnBvc2Ugb2YgdGhlIGFjdGl2ZSBlZGl0YWJsZSBlbGVtZW50LgorICoKKyAqIFNpbmNlOiAy
LjI4CisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgV0VCS0lUX0lOUFVUX1BVUlBPU0VfRlJFRV9G
T1JNLAorICAgIFdFQktJVF9JTlBVVF9QVVJQT1NFX0RJR0lUUywKKyAgICBXRUJLSVRfSU5QVVRf
UFVSUE9TRV9OVU1CRVIsCisgICAgV0VCS0lUX0lOUFVUX1BVUlBPU0VfUEhPTkUsCisgICAgV0VC
S0lUX0lOUFVUX1BVUlBPU0VfVVJMLAorICAgIFdFQktJVF9JTlBVVF9QVVJQT1NFX0VNQUlMLAor
ICAgIFdFQktJVF9JTlBVVF9QVVJQT1NFX1BBU1NXT1JECit9IFdlYktpdElucHV0UHVycG9zZTsK
KworLyoqCisgKiBXZWJLaXRJbnB1dEhpbnRzOgorICogQFdFQktJVF9JTlBVVF9ISU5UX05PTkU6
IE5vIHNwZWNpYWwgYmVoYXZpb3Igc3VnZ2VzdGVkCisgKiBAV0VCS0lUX0lOUFVUX0hJTlRfU1BF
TExDSEVDSzogU3VnZ2VzdCBzcGVsbCBjaGVja2luZworICogQFdFQktJVF9JTlBVVF9ISU5UX0xP
V0VSQ0FTRTogU3VnZ2VzdCB0byBub3QgYXV0b2NhcGl0bGl6ZQorICogQFdFQktJVF9JTlBVVF9I
SU5UX1VQUEVSQ0FTRV9DSEFSUzogU3VnZ2VzdCB0byBjYXBpdGFsaXplIGFsbCB0ZXh0CisgKiBA
V0VCS0lUX0lOUFVUX0hJTlRfVVBQRVJDQVNFX1dPUkRTOiBTdWdnZXN0IHRvIGNhcGl0YWxpemUg
dGhlIGZpcnN0IGNoYXJhY3RlciBvZiBlYWNoIHdvcmQKKyAqIEBXRUJLSVRfSU5QVVRfSElOVF9V
UFBFUkNBU0VfU0VOVEVOQ0VTOiBTdWdnZXN0IHRvIGNhcGl0YWxpemUgdGhlIGZpcnN0IHdvcmQg
b2YgZWFjaCBzZW50ZW5jZQorICogQFdFQktJVF9JTlBVVF9ISU5UX0lOSElCSVRfT1NLOiBTdWdn
ZXN0IHRvIG5vdCBzaG93IGFuIG9uc2NyZWVuIGtleWJvYXJkCisgKgorICogRW51bSB2YWx1ZXMg
dXNlZCB0byBkZXNjcmliZSBoaW50cyB0aGF0IG1pZ2h0IGJlIHRha2VuIGludG8gYWNjb3VudCBi
eSBpbnB1dCBtZXRob2RzLgorICoKKyAqIFNpbmNlOiAyLjI4CisgKi8KK3R5cGVkZWYgZW51bSB7
CisgICAgV0VCS0lUX0lOUFVUX0hJTlRfTk9ORSAgICAgICAgICAgICAgICA9IDAsCisgICAgV0VC
S0lUX0lOUFVUX0hJTlRfU1BFTExDSEVDSyAgICAgICAgICA9IDEgPDwgMCwKKyAgICBXRUJLSVRf
SU5QVVRfSElOVF9MT1dFUkNBU0UgICAgICAgICAgID0gMSA8PCAxLAorICAgIFdFQktJVF9JTlBV
VF9ISU5UX1VQUEVSQ0FTRV9DSEFSUyAgICAgPSAxIDw8IDIsCisgICAgV0VCS0lUX0lOUFVUX0hJ
TlRfVVBQRVJDQVNFX1dPUkRTICAgICA9IDEgPDwgMywKKyAgICBXRUJLSVRfSU5QVVRfSElOVF9V
UFBFUkNBU0VfU0VOVEVOQ0VTID0gMSA8PCA0LAorICAgIFdFQktJVF9JTlBVVF9ISU5UX0lOSElC
SVRfT1NLICAgICAgICAgPSAxIDw8IDUKK30gV2ViS2l0SW5wdXRIaW50czsKKwordHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdElucHV0TWV0aG9kQ29udGV4dCAgICAgICAgV2ViS2l0SW5wdXRNZXRob2RD
b250ZXh0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdElucHV0TWV0aG9kQ29udGV4dENsYXNzICAg
V2ViS2l0SW5wdXRNZXRob2RDb250ZXh0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0SW5w
dXRNZXRob2RDb250ZXh0UHJpdmF0ZSBXZWJLaXRJbnB1dE1ldGhvZENvbnRleHRQcml2YXRlOwor
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdElucHV0TWV0aG9kVW5kZXJsaW5lICAgICAgV2ViS2l0SW5w
dXRNZXRob2RVbmRlcmxpbmU7CisKK3N0cnVjdCBfV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0IHsK
KyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIC8qPCBwcml2YXRlID4qLworICAgIFdlYktpdElu
cHV0TWV0aG9kQ29udGV4dFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktpdElucHV0
TWV0aG9kQ29udGV4dENsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisg
ICAgLyogU2lnbmFscyAqLworICAgIHZvaWQgICAgICgqIHByZWVkaXRfc3RhcnRlZCkgICAgKFdl
YktpdElucHV0TWV0aG9kQ29udGV4dCAqY29udGV4dCk7CisgICAgdm9pZCAgICAgKCogcHJlZWRp
dF9jaGFuZ2VkKSAgICAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICpjb250ZXh0KTsKKyAgICB2
b2lkICAgICAoKiBwcmVlZGl0X2ZpbmlzaGVkKSAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQg
KmNvbnRleHQpOworICAgIHZvaWQgICAgICgqIGNvbW1pdHRlZCkgICAgICAgICAgKFdlYktpdElu
cHV0TWV0aG9kQ29udGV4dCAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBjaGFyICAgICAgICAgICAgICAgKnRleHQpOworICAgIHZvaWQgICAgICgq
IGRlbGV0ZV9zdXJyb3VuZGluZykgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAqY29udGV4dCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAg
ICAgICAgIG9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWlu
dCAgICAgICAgICAgICAgICAgICAgIG5fY2hhcnMpOworCisgICAgLyogVmlydHVhbCBmdW5jdGlv
bnMgKi8KKyAgICB2b2lkICAgICAoKiBzZXRfZW5hYmxlX3ByZWVkaXQpIChXZWJLaXRJbnB1dE1l
dGhvZENvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgICBlbmFibGVkKTsKKyAgICB2b2lkICAgICAoKiBn
ZXRfcHJlZWRpdCkgICAgICAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgKmNvbnRleHQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NoYXIgICAgICAgICAgICAgICAg
ICAgKip0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaXN0ICAg
ICAgICAgICAgICAgICAgICoqdW5kZXJsaW5lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAgKmN1cnNvcl9vZmZzZXQpOworICAg
IGdib29sZWFuICgqIGZpbHRlcl9rZXlfZXZlbnQpICAgKFdlYktpdElucHV0TWV0aG9kQ29udGV4
dCAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZGtFdmVu
dCAgICAgICAgICAgICAgICAgKmtleV9ldmVudCk7CisgICAgdm9pZCAgICAgKCogbm90aWZ5X2Zv
Y3VzX2luKSAgICAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICpjb250ZXh0KTsKKyAgICB2b2lk
ICAgICAoKiBub3RpZnlfZm9jdXNfb3V0KSAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgKmNv
bnRleHQpOworICAgIHZvaWQgICAgICgqIG5vdGlmeV9jdXJzb3JfYXJlYSkgKFdlYktpdElucHV0
TWV0aG9kQ29udGV4dCAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgIHgsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICB5LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAg
ICAgICAgICBoZWlnaHQpOworICAgIHZvaWQgICAgICgqIG5vdGlmeV9zdXJyb3VuZGluZykgKFdl
YktpdElucHV0TWV0aG9kQ29udGV4dCAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAgKnRleHQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgICAgICBsZW5n
dGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAg
ICAgICAgICAgICBjdXJzb3JfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25faW5kZXgpOworICAgIHZv
aWQgICAgICgqIHJlc2V0KSAgICAgICAgICAgICAgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAq
Y29udGV4dCk7CisKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2
b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKKyAg
ICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDQpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9y
ZXNlcnZlZDUpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDYpICh2b2lkKTsK
KyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDcpICh2b2lkKTsKK307CisKK1dFQktJVF9BUEkg
R1R5cGUKK3dlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9nZXRfdHlwZSAgICAgICAgICAgKHZv
aWQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9zZXRf
ZW5hYmxlX3ByZWVkaXQgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAgICpjb250ZXh0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAg
ICAgICAgICAgICAgICAgIGVuYWJsZWQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9pbnB1
dF9tZXRob2RfY29udGV4dF9nZXRfcHJlZWRpdCAgICAgICAgKFdlYktpdElucHV0TWV0aG9kQ29u
dGV4dCAgICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2hhciAgICAgICAgICAgICAgICAgICAgICAqKnRleHQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGlzdCAgICAgICAgICAgICAgICAg
ICAgICoqdW5kZXJsaW5lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGd1aW50ICAgICAgICAgICAgICAgICAgICAgICpjdXJzb3Jfb2Zmc2V0KTsKKwor
V0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0X2ZpbHRlcl9r
ZXlfZXZlbnQgICAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICAgKmNvbnRleHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZGtFdmVudCAgICAgICAg
ICAgICAgICAgICAqa2V5X2V2ZW50KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfaW5wdXRf
bWV0aG9kX2NvbnRleHRfbm90aWZ5X2ZvY3VzX2luICAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRl
eHQgICAqY29udGV4dCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2lucHV0X21ldGhvZF9j
b250ZXh0X25vdGlmeV9mb2N1c19vdXQgICAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICAgKmNv
bnRleHQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9u
b3RpZnlfY3Vyc29yX2FyZWEgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAgICpjb250ZXh0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAg
ICAgICAgICAgICAgICAgICAgIHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgeSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAg
ICAgICAgICB3aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQpOworCitXRUJLSVRfQVBJ
IHZvaWQKK3dlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9ub3RpZnlfc3Vycm91bmRpbmcgKFdl
YktpdElucHV0TWV0aG9kQ29udGV4dCAgICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICAgKnRl
eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg
ICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgICAgICAgIGN1cnNv
cl9pbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGd1aW50ICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25faW5kZXgpOworCitXRUJLSVRf
QVBJIHZvaWQKK3dlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9yZXNldCAgICAgICAgICAgICAg
KFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAgICpjb250ZXh0KTsKKworCitXRUJLSVRfQVBJIEdU
eXBlCit3ZWJraXRfaW5wdXRfbWV0aG9kX3VuZGVybGluZV9nZXRfdHlwZSAgICAgICAgICh2b2lk
KTsKKworV0VCS0lUX0FQSSBXZWJLaXRJbnB1dE1ldGhvZFVuZGVybGluZSAqCit3ZWJraXRfaW5w
dXRfbWV0aG9kX3VuZGVybGluZV9uZXcgICAgICAgICAgICAgIChndWludCAgICAgICAgICAgICAg
ICAgICAgICAgc3RhcnRfb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgICAgICAgIGVuZF9vZmZzZXQpOwor
CitXRUJLSVRfQVBJIFdlYktpdElucHV0TWV0aG9kVW5kZXJsaW5lICoKK3dlYmtpdF9pbnB1dF9t
ZXRob2RfdW5kZXJsaW5lX2NvcHkgICAgICAgICAgICAgKFdlYktpdElucHV0TWV0aG9kVW5kZXJs
aW5lICp1bmRlcmxpbmUpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9pbnB1dF9tZXRob2Rf
dW5kZXJsaW5lX2ZyZWUgICAgICAgICAgICAgKFdlYktpdElucHV0TWV0aG9kVW5kZXJsaW5lICp1
bmRlcmxpbmUpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9pbnB1dF9tZXRob2RfdW5kZXJs
aW5lX3NldF9jb2xvciAgICAgICAgKFdlYktpdElucHV0TWV0aG9kVW5kZXJsaW5lICp1bmRlcmxp
bmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBHZGtSR0JBICAgICAgICAgICAgICAqcmdiYSk7CisKK1dFQktJVF9BUEkgV2ViS2l0SW5wdXRQ
dXJwb3NlCit3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfZ2V0X2lucHV0X3B1cnBvc2UgIChX
ZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAqY29udGV4dCk7CisKK1dFQktJVF9BUEkgdm9pZAor
d2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0X3NldF9pbnB1dF9wdXJwb3NlICAoV2ViS2l0SW5w
dXRNZXRob2RDb250ZXh0ICAgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXZWJLaXRJbnB1dFB1cnBvc2UgICAgICAgICAgcHVycG9zZSk7
CisKK1dFQktJVF9BUEkgV2ViS2l0SW5wdXRIaW50cword2Via2l0X2lucHV0X21ldGhvZF9jb250
ZXh0X2dldF9pbnB1dF9oaW50cyAgICAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICAgKmNvbnRl
eHQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9zZXRf
aW5wdXRfaGludHMgICAgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAgICpjb250ZXh0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0SW5wdXRI
aW50cyAgICAgICAgICAgIGhpbnRzKTsKKworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vZ3RrL1dlYkF1dG9tYXRp
b25TZXNzaW9uR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vZ3Rr
L1dlYkF1dG9tYXRpb25TZXNzaW9uR3RrLmNwcAppbmRleCBkNjAzMWQ5ZmYyM2UuLjQyODAyMmVl
YTg2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9ndGsv
V2ViQXV0b21hdGlvblNlc3Npb25HdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0F1dG9tYXRpb24vZ3RrL1dlYkF1dG9tYXRpb25TZXNzaW9uR3RrLmNwcApAQCAtMzAsMTIgKzMw
LDEyIEBACiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtV
dGlsaXRpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0d0a1ZlcnNpb25pbmcuaD4KLSNpbmNsdWRl
IDxndGsvZ3RrLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKICNpZiBFTkFCTEUoV0VCRFJJVkVSX01PVVNFX0lOVEVSQUNUSU9OUykKKyNpZiAhVVNF
KEdUSzQpCiBzdGF0aWMgdW5zaWduZWQgbW9kaWZpZXJzVG9FdmVudFN0YXRlKE9wdGlvblNldDxX
ZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycykKIHsKICAgICB1bnNpZ25lZCBzdGF0ZSA9IDA7
CkBAIC0xMDIsOSArMTAyLDExIEBAIHN0YXRpYyB2b2lkIGRvTW90aW9uRXZlbnQoR3RrV2lkZ2V0
KiB3aWRnZXQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBsb2NhdGlvbiwKICAgICBldmVudC0+
bW90aW9uLnlfcm9vdCA9IHlSb290OwogICAgIGd0a19tYWluX2RvX2V2ZW50KGV2ZW50LmdldCgp
KTsKIH0KKyNlbmRpZgogCiB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVs
YXRlTW91c2VJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIE1vdXNlSW50ZXJhY3Rpb24g
aW50ZXJhY3Rpb24sIE1vdXNlQnV0dG9uIGJ1dHRvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IGxvY2F0aW9uSW5WaWV3LCBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBrZXlNb2RpZmll
cnMpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIHVuc2lnbmVkIGdka0J1dHRvbiA9IG1vdXNlQnV0
dG9uVG9HZGtCdXR0b24oYnV0dG9uKTsKICAgICBhdXRvIG1vZGlmaWVyID0gc3RhdGVNb2RpZmll
ckZvckdka0J1dHRvbihnZGtCdXR0b24pOwogICAgIHVuc2lnbmVkIHN0YXRlID0gbW9kaWZpZXJz
VG9FdmVudFN0YXRlKGtleU1vZGlmaWVycykgfCBtX2N1cnJlbnRNb2RpZmllcnM7CkBAIC0xMzIs
MTAgKzEzNCwxMiBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRl
TW91c2VJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsCiAgICAgICAgIGRvTW91c2VFdmVu
dChHREtfQlVUVE9OX1JFTEVBU0UsIHBhZ2Uudmlld1dpZGdldCgpLCBsb2NhdGlvbkluVmlldywg
Z2RrQnV0dG9uLCBzdGF0ZSB8IG1vZGlmaWVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorI2Vu
ZGlmCiB9CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpCiAK
ICNpZiBFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykKKyNpZiAhVVNFKEdU
SzQpCiBzdGF0aWMgdm9pZCBkb0tleVN0cm9rZUV2ZW50KEdka0V2ZW50VHlwZSB0eXBlLCBHdGtX
aWRnZXQqIHdpZGdldCwgdW5zaWduZWQga2V5VmFsLCB1bnNpZ25lZCBzdGF0ZSwgYm9vbCBkb1Jl
bGVhc2VBZnRlclByZXNzID0gZmFsc2UpCiB7CiAgICAgQVNTRVJUKHR5cGUgPT0gR0RLX0tFWV9Q
UkVTUyB8fCB0eXBlID09IEdES19LRVlfUkVMRUFTRSk7CkBAIC0zMDQsOSArMzA4LDExIEBAIHN0
YXRpYyB1bnNpZ25lZCBtb2RpZmllcnNGb3JLZXlDb2RlKHVuc2lnbmVkIGtleUNvZGUpCiAgICAg
fQogICAgIHJldHVybiAwOwogfQorI2VuZGlmCiAKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246
OnBsYXRmb3JtU2ltdWxhdGVLZXlib2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwg
S2V5Ym9hcmRJbnRlcmFjdGlvbiBpbnRlcmFjdGlvbiwgV1RGOjpWYXJpYW50PFZpcnR1YWxLZXks
IENoYXJLZXk+JiYga2V5KQogeworI2lmICFVU0UoR1RLNCkKICAgICB1bnNpZ25lZCBrZXlDb2Rl
OwogICAgIFdURjo6c3dpdGNoT24oa2V5LAogICAgICAgICBbJl0gKFZpcnR1YWxLZXkgdmlydHVh
bEtleSkgewpAQCAtMzMxLDE2ICszMzcsMTkgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
cGxhdGZvcm1TaW11bGF0ZUtleWJvYXJkSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiBwYWcKICAg
ICAgICAgZG9LZXlTdHJva2VFdmVudChHREtfS0VZX1BSRVNTLCBwYWdlLnZpZXdXaWRnZXQoKSwg
a2V5Q29kZSwgbV9jdXJyZW50TW9kaWZpZXJzLCB0cnVlKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQorI2VuZGlmCiB9CiAKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxh
dGVLZXlTZXF1ZW5jZShXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IFN0cmluZyYga2V5U2VxdWVu
Y2UpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIENTdHJpbmcga2V5U2VxdWVuY2VVVEY4ID0ga2V5
U2VxdWVuY2UudXRmOCgpOwogICAgIGNvbnN0IGNoYXIqIHAgPSBrZXlTZXF1ZW5jZVVURjguZGF0
YSgpOwogICAgIGRvIHsKICAgICAgICAgZG9LZXlTdHJva2VFdmVudChHREtfS0VZX1BSRVNTLCBw
YWdlLnZpZXdXaWRnZXQoKSwgZ2RrX3VuaWNvZGVfdG9fa2V5dmFsKGdfdXRmOF9nZXRfY2hhcihw
KSksIG1fY3VycmVudE1vZGlmaWVycywgdHJ1ZSk7CiAgICAgICAgIHAgPSBnX3V0ZjhfbmV4dF9j
aGFyKHApOwogICAgIH0gd2hpbGUgKCpwKTsKKyNlbmRpZgogfQogI2VuZGlmIC8vIEVOQUJMRShX
RUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1JlbW90ZVdlYkluc3BlY3RvclByb3h5R3RrLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvUmVtb3RlV2ViSW5zcGVj
dG9yUHJveHlHdGsuY3BwCmluZGV4IDc4ZjYxZjBmMGI2OS4uZGNiODk2ZTZlOWEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1JlbW90ZVdlYkluc3Bl
Y3RvclByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
Z3RrL1JlbW90ZVdlYkluc3BlY3RvclByb3h5R3RrLmNwcApAQCAtMTIwLDcgKzEyMCw5IEBAIHZv
aWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2F2ZShjb25zdCBTdHJpbmcmIHN1
Z2dlc3RlZFVSTCwgY29uc3QgU3RyCiAgICAgICAgIEdUS19XSU5ET1cobV93aW5kb3cpLCBHVEtf
RklMRV9DSE9PU0VSX0FDVElPTl9TQVZFLCAiU2F2ZSIsICJDYW5jZWwiKSk7CiAKICAgICBHdGtG
aWxlQ2hvb3NlciogY2hvb3NlciA9IEdUS19GSUxFX0NIT09TRVIoZGlhbG9nLmdldCgpKTsKKyNp
ZiAhVVNFKEdUSzQpCiAgICAgZ3RrX2ZpbGVfY2hvb3Nlcl9zZXRfZG9fb3ZlcndyaXRlX2NvbmZp
cm1hdGlvbihjaG9vc2VyLCBUUlVFKTsKKyNlbmRpZgogCiAgICAgLy8gU29tZSBpbnNwZWN0b3Ig
dmlld3MgKEF1ZGl0cyBmb3IgaW5zdGFuY2UpIHVzZSBhIGN1c3RvbSBVUkkgc2NoZW1lLCBzdWNo
CiAgICAgLy8gYXMgd2ViLWluc3BlY3Rvci4gU28gd2UgY2FuJ3QgcmVseSBvbiB0aGUgVVJMIGJl
aW5nIGEgdmFsaWQgZmlsZTovLy8gVVJMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3BlY3RvclByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCmluZGV4
IDc4ZmNhNzQ5NDg5MS4uODlmOGRkNzBiNmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3BlY3RvclByb3h5R3RrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3BlY3RvclByb3h5R3RrLmNw
cApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQ2VydGlmaWNhdGVJbmZvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtVdGls
aXRpZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0d0a1ZlcnNpb25pbmcuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0luc3BlY3RvckRlYnVnZ2FibGVUeXBlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJ
bXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CkBAIC00OTQsNyArNDk1
LDkgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TYXZlKGNvbnN0IFN0cmluZyYg
c3VnZ2VzdGVkVVJMLCBjb25zdCBTdHJpbmcmIGMKICAgICAgICAgR1RLX1dJTkRPVyhwYXJlbnQp
LCBHVEtfRklMRV9DSE9PU0VSX0FDVElPTl9TQVZFLCAiU2F2ZSIsICJDYW5jZWwiKSk7CiAKICAg
ICBHdGtGaWxlQ2hvb3NlciogY2hvb3NlciA9IEdUS19GSUxFX0NIT09TRVIoZGlhbG9nLmdldCgp
KTsKKyNpZiAhVVNFKEdUSzQpCiAgICAgZ3RrX2ZpbGVfY2hvb3Nlcl9zZXRfZG9fb3ZlcndyaXRl
X2NvbmZpcm1hdGlvbihjaG9vc2VyLCBUUlVFKTsKKyNlbmRpZgogCiAgICAgLy8gU29tZSBpbnNw
ZWN0b3Igdmlld3MgKEF1ZGl0cyBmb3IgaW5zdGFuY2UpIHVzZSBhIGN1c3RvbSBVUkkgc2NoZW1l
LCBzdWNoCiAgICAgLy8gYXMgd2ViLWluc3BlY3Rvci4gU28gd2UgY2FuJ3QgcmVseSBvbiB0aGUg
VVJMIGJlaW5nIGEgdmFsaWQgZmlsZTovLy8gVVJMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYktpdEluc3BlY3RvcldpbmRvdy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYktpdEluc3BlY3RvcldpbmRvdy5j
cHAKaW5kZXggNTUwZDAwM2Y2MTY0Li5kOGI2OTM2Y2FhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvV2ViS2l0SW5zcGVjdG9yV2luZG93LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYktpdEluc3BlY3Rv
cldpbmRvdy5jcHAKQEAgLTUyLDE0ICs1MiwxOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfaW5zcGVj
dG9yX3dpbmRvd19pbml0KFdlYktpdEluc3BlY3RvcldpbmRvdyogd2luZG93KQogewogICAgIHdp
bmRvdy0+aGVhZGVyQmFyID0gZ3RrX2hlYWRlcl9iYXJfbmV3KCk7CiAgICAgZ3RrX2hlYWRlcl9i
YXJfc2V0X3RpdGxlKEdUS19IRUFERVJfQkFSKHdpbmRvdy0+aGVhZGVyQmFyKSwgXygiV2ViIElu
c3BlY3RvciIpKTsKKyNpZiAhVVNFKEdUSzQpCiAgICAgZ3RrX2hlYWRlcl9iYXJfc2V0X3Nob3df
Y2xvc2VfYnV0dG9uKEdUS19IRUFERVJfQkFSKHdpbmRvdy0+aGVhZGVyQmFyKSwgVFJVRSk7Cisj
ZW5kaWYKICAgICBndGtfd2luZG93X3NldF90aXRsZWJhcihHVEtfV0lORE9XKHdpbmRvdyksIHdp
bmRvdy0+aGVhZGVyQmFyKTsKICAgICBndGtfd2lkZ2V0X3Nob3cod2luZG93LT5oZWFkZXJCYXIp
OwogfQogCiBHdGtXaWRnZXQqIHdlYmtpdEluc3BlY3RvcldpbmRvd05ldygpCiB7Ci0gICAgcmV0
dXJuIEdUS19XSURHRVQoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX0lOU1BFQ1RPUl9XSU5ET1cs
ICJ0eXBlIiwgR1RLX1dJTkRPV19UT1BMRVZFTCwKKyAgICByZXR1cm4gR1RLX1dJREdFVChnX29i
amVjdF9uZXcoV0VCS0lUX1RZUEVfSU5TUEVDVE9SX1dJTkRPVywKKyNpZiAhVVNFKEdUSzQpCisg
ICAgICAgICJ0eXBlIiwgR1RLX1dJTkRPV19UT1BMRVZFTCwKKyNlbmRpZgogICAgICAgICAiZGVm
YXVsdC13aWR0aCIsIFdlYkluc3BlY3RvclByb3h5Ojppbml0aWFsV2luZG93V2lkdGgsICJkZWZh
dWx0LWhlaWdodCIsIFdlYkluc3BlY3RvclByb3h5Ojppbml0aWFsV2luZG93SGVpZ2h0LCBudWxs
cHRyKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNWJm
ZjM0MWY1ZDdmLi42Y2ExMDBhZjBlMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCkBAIC0yMTcxLDcgKzIxNzEsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRSZW5k
ZXJUcmVlU2l6ZSh1aW50NjRfdCB0cmVlU2l6ZSkgeyBtX3JlbmRlclRyZWVTaXplID0gdHJlZVNp
emU7IH0KIAotI2lmIFBMQVRGT1JNKFgxMSkKKyNpZiBQTEFURk9STShYMTEpICYmIEVOQUJMRShO
RVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIHZvaWQgY3JlYXRlUGx1Z2luQ29udGFpbmVyKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKICAgICB2b2lkIHdpbmRvd2VkUGx1Z2lu
R2VvbWV0cnlEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZnJhbWVSZWN0LCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCwgdWludDY0X3Qgd2luZG93SUQpOwogICAgIHZv
aWQgd2luZG93ZWRQbHVnaW5WaXNpYmlsaXR5RGlkQ2hhbmdlKGJvb2wgaXNWaXNpYmxlLCB1aW50
NjRfdCB3aW5kb3dJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggODNmZDNkZDViZWMwLi5hOTgxNTNlMjViZmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTM5
NSw3ICszOTUsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpY3RhdGlvbkFs
dGVybmF0aXZlcyh1aW50NjRfdCBkaWN0YXRpb25Db250ZXh0KSAtPiAoVmVjdG9yPFN0cmluZz4g
YWx0ZXJuYXRpdmVzKSBTeW5jaHJvbm91cwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShYMTEpCisj
aWYgUExBVEZPUk0oWDExKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAjIFgx
MSB3aW5kb3dlZCBwbHVnaW4gbWVzc2FnZXMKICAgICBDcmVhdGVQbHVnaW5Db250YWluZXIoKSAt
PiAodWludDY0X3Qgd2luZG93SUQpIFN5bmNocm9ub3VzCiAgICAgV2luZG93ZWRQbHVnaW5HZW9t
ZXRyeURpZENoYW5nZShXZWJDb3JlOjpJbnRSZWN0IGZyYW1lUmVjdCwgV2ViQ29yZTo6SW50UmVj
dCBjbGlwUmVjdCwgdWludDY0X3Qgd2luZG93SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9jYWlyby9CYWNraW5nU3RvcmVDYWlyby5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9jYWlyby9CYWNraW5nU3RvcmVDYWlyby5jcHAKaW5kZXggMzAzNWY2ZjNlZTY4Li5k
YzBhNzBiODgyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2NhaXJvL0Jh
Y2tpbmdTdG9yZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9jYWlyby9C
YWNraW5nU3RvcmVDYWlyby5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1JlZlB0ckNhaXJvLmg+CiAjaW5jbHVkZSA8Y2Fpcm8uaD4KIAotI2lmIFBMQVRGT1JNKEdUSykg
JiYgUExBVEZPUk0oWDExKSAmJiBkZWZpbmVkKEdES19XSU5ET1dJTkdfWDExKQorI2lmIFBMQVRG
T1JNKEdUSykgJiYgUExBVEZPUk0oWDExKSAmJiBkZWZpbmVkKEdES19XSU5ET1dJTkdfWDExKSAm
JiAhVVNFKEdUSzQpCiAjaW5jbHVkZSA8V2ViQ29yZS9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9Y
MTEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtRGlzcGxheVgxMS5oPgogI2luY2x1ZGUg
PGdkay9nZGt4Lmg+CkBAIC00OCw3ICs0OCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBzdGQ6OnVuaXF1ZV9wdHI8QmFja2luZ1N0b3JlQmFja2VuZENhaXJvPiBCYWNraW5nU3RvcmU6
OmNyZWF0ZUJhY2tlbmQoKQogewotI2lmIFBMQVRGT1JNKEdUSykgJiYgUExBVEZPUk0oWDExKSAm
JiBkZWZpbmVkKEdES19XSU5ET1dJTkdfWDExKQorI2lmIFBMQVRGT1JNKEdUSykgJiYgUExBVEZP
Uk0oWDExKSAmJiBkZWZpbmVkKEdES19XSU5ET1dJTkdfWDExKSAmJiAhVVNFKEdUSzQpCiAgICAg
Y29uc3QgYXV0byYgc2hhcmVkRGlzcGxheSA9IFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxh
eSgpOwogICAgIGlmIChpczxQbGF0Zm9ybURpc3BsYXlYMTE+KHNoYXJlZERpc3BsYXkpKSB7CiAg
ICAgICAgIEdka1Zpc3VhbCogdmlzdWFsID0gZ3RrX3dpZGdldF9nZXRfdmlzdWFsKG1fd2ViUGFn
ZVByb3h5LnZpZXdXaWRnZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
bGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKaW5kZXggOGM0MjU5YmUxYzU4Li5hYjdkN2QwOTVl
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bv
b2xHTGliLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQ
b29sR0xpYi5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vzcwog
ICAgIHBhcmFtZXRlcnMuZ3N0cmVhbWVyT3B0aW9ucyA9IFdlYkNvcmU6OmV4dHJhY3RHU3RyZWFt
ZXJPcHRpb25zRnJvbUNvbW1hbmRMaW5lKCk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEdUSykK
KyNpZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkKICAgICBwYXJhbWV0ZXJzLnVzZVN5c3Rl
bUFwcGVhcmFuY2VGb3JTY3JvbGxiYXJzID0gbV9jb25maWd1cmF0aW9uLT51c2VTeXN0ZW1BcHBl
YXJhbmNlRm9yU2Nyb2xsYmFycygpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQu
Y3BwCmluZGV4IDU4OWE1YWNkN2Y3ZS4uZWEyMmI0ZDYyMGU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVX
YXlsYW5kLmNwcApAQCAtMzIsNyArMzIsMTEgQEAKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIK
IC8vIFRoZXNlIGluY2x1ZGVzIG5lZWQgdG8gYmUgaW4gdGhpcyBvcmRlciBiZWNhdXNlIHdheWxh
bmQtZWdsLmggZGVmaW5lcyBXTF9FR0xfUExBVEZPUk0KIC8vIGFuZCBlZ2xwbGF0Zm9ybS5oLCBp
bmNsdWRlZCBieSBlZ2wuaCwgY2hlY2tzIHRoYXQgdG8gZGVjaWRlIHdoZXRoZXIgaXQncyBXYXls
YW5kIHBsYXRmb3JtLgorI2lmIFVTRShHVEs0KQorI2luY2x1ZGUgPGdkay93YXlsYW5kL2dka3dh
eWxhbmQuaD4KKyNlbHNlCiAjaW5jbHVkZSA8Z2RrL2dka3dheWxhbmQuaD4KKyNlbmRpZgogI2lu
Y2x1ZGUgPEVHTC9lZ2wuaD4KICNpbmNsdWRlIDxFR0wvZWdsZXh0Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9DYWlyb1V0aWxpdGllcy5oPgpAQCAtMjExLDYgKzIxNSw3IEBAIHZvaWQgQWNjZWxlcmF0
ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjp0cnlFbnN1cmVHTENvbnRleHQoKQogCiAgICAgbV9nbENv
bnRleHRJbml0aWFsaXplZCA9IHRydWU7CiAKKyNpZiAhVVNFKEdUSzQpCiAgICAgR1VuaXF1ZU91
dFB0cjxHRXJyb3I+IGVycm9yOwogICAgIG1fZ2RrR0xDb250ZXh0ID0gYWRvcHRHUmVmKGdka193
aW5kb3dfY3JlYXRlX2dsX2NvbnRleHQoZ3RrX3dpZGdldF9nZXRfd2luZG93KG1fd2ViUGFnZS52
aWV3V2lkZ2V0KCkpLCAmZXJyb3Iub3V0UHRyKCkpKTsKICAgICBpZiAobV9nZGtHTENvbnRleHQp
IHsKQEAgLTIyMSw2ICsyMjYsNyBAQCB2b2lkIEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFu
ZDo6dHJ5RW5zdXJlR0xDb250ZXh0KCkKICAgICB9CiAKICAgICBnX3dhcm5pbmcoIkdESyBpcyBu
b3QgYWJsZSB0byBjcmVhdGUgYSBHTCBjb250ZXh0LCBmYWxsaW5nIGJhY2sgdG8gZ2xSZWFkUGl4
ZWxzIChzbG93ISk6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworI2VuZGlmCiAKICAgICBtX2dsQ29u
dGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgpOwogfQpAQCAtMzEzLDEx
ICszMTksMTMgQEAgYm9vbCBBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQ6OnBhaW50KGNh
aXJvX3QqIGNyLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKIAogICAgIGNhaXJvX3NhdmUoY3Ip
OwogCisjaWYgIVVTRShHVEs0KQogICAgIGlmIChtX2dka0dMQ29udGV4dCkgewogICAgICAgICBn
ZGtfY2Fpcm9fZHJhd19mcm9tX2dsKGNyLCBndGtfd2lkZ2V0X2dldF93aW5kb3cobV93ZWJQYWdl
LnZpZXdXaWRnZXQoKSksIHRleHR1cmUsIEdMX1RFWFRVUkUsIG1fd2ViUGFnZS5kZXZpY2VTY2Fs
ZUZhY3RvcigpLCAwLCAwLCB0ZXh0dXJlU2l6ZS53aWR0aCgpLCB0ZXh0dXJlU2l6ZS5oZWlnaHQo
KSk7CiAgICAgICAgIGNhaXJvX3Jlc3RvcmUoY3IpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CisjZW5kaWYKIAogICAgIEFTU0VSVChtX2dsQ29udGV4dCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVgxMS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVYMTEu
Y3BwCmluZGV4IDhiODZmOTg4OWJhNy4uNDkxZDMwYzdlYzRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVYMTEuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVgxMS5j
cHAKQEAgLTM3LDcgKzM3LDExIEBACiAjaW5jbHVkZSA8WDExL1hsaWIuaD4KICNpbmNsdWRlIDxY
MTEvZXh0ZW5zaW9ucy9YZGFtYWdlLmg+CiAjaW5jbHVkZSA8Y2Fpcm8teGxpYi5oPgorI2lmIFVT
RShHVEs0KQorI2luY2x1ZGUgPGdkay94MTEvZ2RreC5oPgorI2Vsc2UKICNpbmNsdWRlIDxnZGsv
Z2RreC5oPgorI2VuZGlmCiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC00OCw2ICs1Miw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogc3RhdGljIE9wdGlvbmFsPGludD4gc19kYW1hZ2VF
dmVudEJhc2U7CiBzdGF0aWMgT3B0aW9uYWw8aW50PiBzX2RhbWFnZUVycm9yQmFzZTsKIAorI2lm
ICFVU0UoR1RLNCkKIGNsYXNzIFhEYW1hZ2VOb3RpZmllciB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoWERhbWFnZU5vdGlmaWVyKTsKICAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8WERhbWFn
ZU5vdGlmaWVyPjsKQEAgLTEwMiw2ICsxMDcsNyBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDxE
YW1hZ2UsIFdURjo6RnVuY3Rpb248dm9pZCgpPj4gbV9ub3RpZnlGdW5jdGlvbnM7CiB9OworI2Vu
ZGlmCiAKIGJvb2wgQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVYMTE6OmNoZWNrUmVxdWlyZW1lbnRz
KCkKIHsKQEAgLTEzMSw2ICsxMzcsNyBAQCBBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVgxMTo6fkFj
Y2VsZXJhdGVkQmFja2luZ1N0b3JlWDExKCkKICAgICBpZiAoIW1fc3VyZmFjZSAmJiAhbV9kYW1h
Z2UpCiAgICAgICAgIHJldHVybjsKIAorI2lmICFVU0UoR1RLNCkKICAgICBEaXNwbGF5KiBkaXNw
bGF5ID0gZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5WDExPihQbGF0Zm9ybURpc3BsYXk6OnNoYXJl
ZERpc3BsYXkoKSkubmF0aXZlKCk7CiAgICAgWEVycm9yVHJhcHBlciB0cmFwcGVyKGRpc3BsYXks
IFhFcnJvclRyYXBwZXI6OlBvbGljeTo6Q3Jhc2gsIHsgQmFkRHJhd2FibGUsIHhEYW1hZ2VFcnJv
ckNvZGUoQmFkRGFtYWdlKSB9KTsKICAgICBpZiAobV9kYW1hZ2UpIHsKQEAgLTEzOCw2ICsxNDUs
NyBAQCBBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVgxMTo6fkFjY2VsZXJhdGVkQmFja2luZ1N0b3Jl
WDExKCkKICAgICAgICAgbV9kYW1hZ2UucmVzZXQoKTsKICAgICAgICAgWFN5bmMoZGlzcGxheSwg
RmFsc2UpOwogICAgIH0KKyNlbmRpZgogfQogCiB2b2lkIEFjY2VsZXJhdGVkQmFja2luZ1N0b3Jl
WDExOjp1cGRhdGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKQEAg
LTE0OSwxMiArMTU3LDE0IEBAIHZvaWQgQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVYMTE6OnVwZGF0
ZShjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0CiAgICAgRGlzcGxheSog
ZGlzcGxheSA9IGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVgxMT4oUGxhdGZvcm1EaXNwbGF5Ojpz
aGFyZWREaXNwbGF5KCkpLm5hdGl2ZSgpOwogCiAgICAgaWYgKG1fc3VyZmFjZSkgeworI2lmICFV
U0UoR1RLNCkKICAgICAgICAgWEVycm9yVHJhcHBlciB0cmFwcGVyKGRpc3BsYXksIFhFcnJvclRy
YXBwZXI6OlBvbGljeTo6Q3Jhc2gsIHsgQmFkRHJhd2FibGUsIHhEYW1hZ2VFcnJvckNvZGUoQmFk
RGFtYWdlKSB9KTsKICAgICAgICAgaWYgKG1fZGFtYWdlKSB7CiAgICAgICAgICAgICBYRGFtYWdl
Tm90aWZpZXI6OnNpbmdsZXRvbigpLnJlbW92ZShtX2RhbWFnZS5nZXQoKSk7CiAgICAgICAgICAg
ICBtX2RhbWFnZS5yZXNldCgpOwogICAgICAgICAgICAgWFN5bmMoZGlzcGxheSwgRmFsc2UpOwog
ICAgICAgICB9CisjZW5kaWYKICAgICAgICAgbV9zdXJmYWNlID0gbnVsbHB0cjsKICAgICB9CiAK
QEAgLTE2OCw3ICsxNzgsNyBAQCB2b2lkIEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlWDExOjp1cGRh
dGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dAogICAgIEludFNpemUg
c2l6ZSA9IGRyYXdpbmdBcmVhLT5zaXplKCk7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3Ig
PSBtX3dlYlBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKTsKICAgICBzaXplLnNjYWxlKGRldmljZVNj
YWxlRmFjdG9yKTsKLQorI2lmICFVU0UoR1RLNCkKICAgICBYRXJyb3JUcmFwcGVyIHRyYXBwZXIo
ZGlzcGxheSwgWEVycm9yVHJhcHBlcjo6UG9saWN5OjpDcmFzaCwgeyBCYWREcmF3YWJsZSwgeERh
bWFnZUVycm9yQ29kZShCYWREYW1hZ2UpIH0pOwogICAgIEFTU0VSVChkb3duY2FzdDxQbGF0Zm9y
bURpc3BsYXlYMTE+KFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpKS5uYXRpdmUoKSA9
PSBHREtfRElTUExBWV9YRElTUExBWShnZGtfZGlzcGxheV9nZXRfZGVmYXVsdCgpKSk7CiAgICAg
R2RrVmlzdWFsKiB2aXN1YWwgPSBnZGtfc2NyZWVuX2dldF9yZ2JhX3Zpc3VhbChnZGtfc2NyZWVu
X2dldF9kZWZhdWx0KCkpOwpAQCAtMTgyLDYgKzE5Miw3IEBAIHZvaWQgQWNjZWxlcmF0ZWRCYWNr
aW5nU3RvcmVYMTE6OnVwZGF0ZShjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250
ZXh0CiAgICAgICAgICAgICBndGtfd2lkZ2V0X3F1ZXVlX2RyYXcobV93ZWJQYWdlLnZpZXdXaWRn
ZXQoKSk7CiAgICAgfSk7CiAgICAgWFN5bmMoZGlzcGxheSwgRmFsc2UpOworI2VuZGlmCiB9CiAK
IGJvb2wgQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVYMTE6OnBhaW50KGNhaXJvX3QqIGNyLCBjb25z
dCBJbnRSZWN0JiBjbGlwUmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2d0ay9EcmFnQW5kRHJvcEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3Rr
L0RyYWdBbmREcm9wSGFuZGxlci5jcHAKaW5kZXggNmNkODcyM2VmZTBjLi41MmI4NWZiNDM2MGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9EcmFnQW5kRHJvcEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9EcmFnQW5kRHJvcEhhbmRs
ZXIuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
RHJhZ0FuZERyb3BIYW5kbGVyLmgiCiAKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpICYmICFVU0UoR1RLNCkKIAogI2luY2x1ZGUgIldlYlBhZ2VQcm94
eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2d0ay9EcmFnQW5kRHJvcEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2d0ay9EcmFnQW5kRHJvcEhhbmRsZXIuaAppbmRleCA1OTE0YjdlMGRmNTQuLjJi
MzA1YWE4NWMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0RyYWdB
bmREcm9wSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9EcmFnQW5k
RHJvcEhhbmRsZXIuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgIVVTRShHVEs0
KQogCiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnQWN0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
SW50UG9pbnQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9HZXN0
dXJlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvR2VzdHVyZUNv
bnRyb2xsZXIuY3BwCmluZGV4IDc2NDk4YjgwMTU4NC4uZjJjNDUxY2Y1YzQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvR2VzdHVyZUNvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9HZXN0dXJlQ29udHJvbGxlci5jcHAKQEAgLTI2
LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHZXN0dXJlQ29udHJv
bGxlci5oIgogCisjaWYgIVVTRShHVEs0KQorCiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxiYXIu
aD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAKQEAgLTI3MCwzICsyNzIsNSBAQCBHZXN0dXJlQ29u
dHJvbGxlcjo6TG9uZ1ByZXNzR2VzdHVyZTo6TG9uZ1ByZXNzR2VzdHVyZShHdGtXaWRnZXQqIHdp
ZGdldCwgR2VzdHVyZQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvR2VzdHVyZUNvbnRyb2xsZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9HZXN0dXJlQ29udHJvbGxlci5oCmluZGV4IDJh
ZGRiY2Q1OWMwMS4uNTE0NmQ0NTg0ZTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9ndGsvR2VzdHVyZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9ndGsvR2VzdHVyZUNvbnRyb2xsZXIuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2lmICFVU0UoR1RLNCkKKwogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CkBA
IC0zNSw2ICszNyw3IEBAIHR5cGVkZWYgc3RydWN0IF9HZGtFdmVudFRvdWNoIEdka0V2ZW50VG91
Y2g7CiB0eXBlZGVmIHN0cnVjdCBfR2RrRXZlbnRTZXF1ZW5jZSBHZGtFdmVudFNlcXVlbmNlOwog
dHlwZWRlZiBzdHJ1Y3QgX0d0a0dlc3R1cmUgR3RrR2VzdHVyZTsKIAorCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgR2VzdHVyZUNvbnRyb2xsZXJDbGllbnQgewpAQCAtMTU4LDMgKzE2MSw1
IEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvS2V5QmluZGluZ1RyYW5zbGF0b3Iu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmNw
cAppbmRleCAzYTllZThjNzE2ZGQuLjdlNjUyMjUyYzVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9ndGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuY3BwCkBAIC0xOSw4ICsx
OSw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiS2V5QmluZGluZ1RyYW5zbGF0
b3IuaCIKIAorI2luY2x1ZGUgPFdlYkNvcmUvR3RrVmVyc2lvbmluZy5oPgogI2luY2x1ZGUgPGdk
ay9nZGtrZXlzeW1zLmg+Ci0jaW5jbHVkZSA8Z3RrL2d0ay5oPgogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIApAQCAtNjgsNiArNjgsNyBAQCBzdGF0aWMgdm9pZCBpbnNlcnRFbW9qaUNhbGxiYWNrKEd0
a1dpZGdldCogd2lkZ2V0LCBLZXlCaW5kaW5nVHJhbnNsYXRvciogdHJhbnNsYQogfQogI2VuZGlm
CiAKKyNpZiAhVVNFKEdUSzQpCiAvLyBHVEsrIHdpbGwgc3RpbGwgc2VuZCB0aGVzZSBzaWduYWxz
IHRvIHRoZSB3ZWIgdmlldy4gU28gd2UgY2FuIHNhZmVseSBzdG9wIHNpZ25hbAogLy8gZW1pc3Np
b24gd2l0aG91dCBicmVha2luZyBhY2Nlc3NpYmlsaXR5Lgogc3RhdGljIHZvaWQgcG9wdXBNZW51
Q2FsbGJhY2soR3RrV2lkZ2V0KiB3aWRnZXQsIEtleUJpbmRpbmdUcmFuc2xhdG9yKikKQEAgLTc5
LDYgKzgwLDcgQEAgc3RhdGljIHZvaWQgc2hvd0hlbHBDYWxsYmFjayhHdGtXaWRnZXQqIHdpZGdl
dCwgS2V5QmluZGluZ1RyYW5zbGF0b3IqKQogewogICAgIGdfc2lnbmFsX3N0b3BfZW1pc3Npb25f
YnlfbmFtZSh3aWRnZXQsICJzaG93LWhlbHAiKTsKIH0KKyNlbmRpZgogCiBzdGF0aWMgY29uc3Qg
Y2hhciogY29uc3QgZ3RrRGVsZXRlQ29tbWFuZHNbXVsyXSA9IHsKICAgICB7ICJEZWxldGVCYWNr
d2FyZCIsICAgICAgICAgICAgICAgIkRlbGV0ZUZvcndhcmQiICAgICAgICAgICAgICAgICAgICAg
ICAgfSwgLy8gQ2hhcmFjdGVycwpAQCAtMTc5LDggKzE4MSwxMCBAQCBLZXlCaW5kaW5nVHJhbnNs
YXRvcjo6S2V5QmluZGluZ1RyYW5zbGF0b3IoKQogICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9uYXRp
dmVXaWRnZXQuZ2V0KCksICJtb3ZlLWN1cnNvciIsIEdfQ0FMTEJBQ0sobW92ZUN1cnNvckNhbGxi
YWNrKSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVjdChtX25hdGl2ZVdpZGdldC5nZXQoKSwg
ImRlbGV0ZS1mcm9tLWN1cnNvciIsIEdfQ0FMTEJBQ0soZGVsZXRlRnJvbUN1cnNvckNhbGxiYWNr
KSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVjdChtX25hdGl2ZVdpZGdldC5nZXQoKSwgInRv
Z2dsZS1vdmVyd3JpdGUiLCBHX0NBTExCQUNLKHRvZ2dsZU92ZXJ3cml0ZUNhbGxiYWNrKSwgdGhp
cyk7CisjaWYgIVVTRShHVEs0KQogICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9uYXRpdmVXaWRnZXQu
Z2V0KCksICJwb3B1cC1tZW51IiwgR19DQUxMQkFDSyhwb3B1cE1lbnVDYWxsYmFjayksIHRoaXMp
OwogICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9uYXRpdmVXaWRnZXQuZ2V0KCksICJzaG93LWhlbHAi
LCBHX0NBTExCQUNLKHNob3dIZWxwQ2FsbGJhY2spLCB0aGlzKTsKKyNlbmRpZgogI2lmIEdUS19D
SEVDS19WRVJTSU9OKDMsIDI0LCAwKQogICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9uYXRpdmVXaWRn
ZXQuZ2V0KCksICJpbnNlcnQtZW1vamkiLCBHX0NBTExCQUNLKGluc2VydEVtb2ppQ2FsbGJhY2sp
LCB0aGlzKTsKICNlbmRpZgpAQCAtMjEzLDEwICsyMTcsMTUgQEAgVmVjdG9yPFN0cmluZz4gS2V5
QmluZGluZ1RyYW5zbGF0b3I6OmNvbW1hbmRzRm9yS2V5RXZlbnQoR2RrRXZlbnRLZXkqIGV2ZW50
KQogCiAgICAgZ3VpbnQga2V5dmFsOwogICAgIEdka01vZGlmaWVyVHlwZSBzdGF0ZTsKKyNpZiBV
U0UoR1RLNCkKKyAgICBrZXl2YWwgPSAwOworICAgIHN0YXRlID0gc3RhdGljX2Nhc3Q8R2RrTW9k
aWZpZXJUeXBlPigwKTsKKyNlbHNlCiAgICAgZ2RrX2V2ZW50X2dldF9rZXl2YWwocmVpbnRlcnBy
ZXRfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSwgJmtleXZhbCk7CiAgICAgZ2RrX2V2ZW50X2dldF9z
dGF0ZShyZWludGVycHJldF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQpLCAmc3RhdGUpOwogCiAgICAg
Z3RrX2JpbmRpbmdzX2FjdGl2YXRlX2V2ZW50KEdfT0JKRUNUKG1fbmF0aXZlV2lkZ2V0LmdldCgp
KSwgZXZlbnQpOworI2VuZGlmCiAgICAgaWYgKCFtX3BlbmRpbmdFZGl0b3JDb21tYW5kcy5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybiBXVEZNb3ZlKG1fcGVuZGluZ0VkaXRvckNvbW1hbmRzKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0tleUJpbmRpbmdUcmFu
c2xhdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvS2V5QmluZGluZ1RyYW5zbGF0
b3IuaAppbmRleCBiMmRlZDVkZTZjMGEuLjhlYmIxNDQwZWU2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmgKQEAgLTIzLDcgKzIz
LDEyIEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCisjaWYgVVNFKEdUSzQpCit0eXBlZGVmIHN0cnVjdCBfR2RrS2V5RXZlbnQgR2Rr
S2V5RXZlbnQ7Cit0eXBlZGVmIEdka0tleUV2ZW50IEdka0V2ZW50S2V5OworI2Vsc2UKIHR5cGVk
ZWYgc3RydWN0IF9HZGtFdmVudEtleSBHZGtFdmVudEtleTsKKyNlbmRpZgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1BvaW50
ZXJMb2NrTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvUG9pbnRlckxv
Y2tNYW5hZ2VyLmNwcAppbmRleCA2ZDIzYzM5OWMzY2EuLmQxN2U2NDc4ZDg5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1BvaW50ZXJMb2NrTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1BvaW50ZXJMb2NrTWFuYWdlci5jcHAKQEAg
LTcxLDYgKzcxLDcgQEAgYm9vbCBQb2ludGVyTG9ja01hbmFnZXI6OmxvY2soKQogewogICAgIFJF
TEVBU0VfQVNTRVJUKCFtX2RldmljZSk7CiAKKyNpZiAhVVNFKEdUSzQpCiAgICAgYXV0byogdmll
d1dpZGdldCA9IG1fd2ViUGFnZS52aWV3V2lkZ2V0KCk7CiAgICAgbV9kZXZpY2UgPSBnZGtfc2Vh
dF9nZXRfcG9pbnRlcihnZGtfZGlzcGxheV9nZXRfZGVmYXVsdF9zZWF0KGd0a193aWRnZXRfZ2V0
X2Rpc3BsYXkodmlld1dpZGdldCkpKTsKICAgICBHUmVmUHRyPEdka0N1cnNvcj4gY3Vyc29yID0g
YWRvcHRHUmVmKGdka19jdXJzb3JfbmV3X2Zyb21fbmFtZShndGtfd2lkZ2V0X2dldF9kaXNwbGF5
KHZpZXdXaWRnZXQpLCAibm9uZSIpKTsKQEAgLTgwLDYgKzgxLDcgQEAgYm9vbCBQb2ludGVyTG9j
a01hbmFnZXI6OmxvY2soKQogICAgICAgICBtX2RldmljZSA9IG51bGxwdHI7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CisjZW5kaWYKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtODks
OCArOTEsMTAgQEAgYm9vbCBQb2ludGVyTG9ja01hbmFnZXI6OnVubG9jaygpCiAgICAgaWYgKCFt
X2RldmljZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisjaWYgIVVTRShHVEs0KQogICAgIGdk
a19zZWF0X3VuZ3JhYihnZGtfZGV2aWNlX2dldF9zZWF0KG1fZGV2aWNlKSk7CiAgICAgbV9kZXZp
Y2UgPSBudWxscHRyOworI2VuZGlmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9ja01hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9ja01hbmFnZXIuaAppbmRleCBjNzBjZjdl
MmE5N2YuLjE1N2VhYmU2ZjllZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL1BvaW50ZXJMb2NrTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0
ay9Qb2ludGVyTG9ja01hbmFnZXIuaApAQCAtMjgsNyArMjgsMTEgQEAKICNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX0dka0RldmljZSBHZGtEZXZpY2U7Cisj
aWYgVVNFKEdUSzQpCit0eXBlZGVmIHN0cnVjdCBfR2RrRXZlbnQgR2RrRXZlbnQ7CisjZWxzZQog
dHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7CisjZW5kaWYKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgSW50UG9pbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9ndGsvUG9pbnRlckxvY2tNYW5hZ2VyV2F5bGFuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9ndGsvUG9pbnRlckxvY2tNYW5hZ2VyV2F5bGFuZC5jcHAKaW5kZXggNjFiYWU1Nzk4
ZDdlLi4xZmFhYjYyOWI0ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0
ay9Qb2ludGVyTG9ja01hbmFnZXJXYXlsYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9ndGsvUG9pbnRlckxvY2tNYW5hZ2VyV2F5bGFuZC5jcHAKQEAgLTMxLDcgKzMxLDExIEBA
CiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAicG9pbnRlci1jb25zdHJhaW50
cy11bnN0YWJsZS12MS1jbGllbnQtcHJvdG9jb2wuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1dsVW5p
cXVlUHRyLmg+CisjaWYgVVNFKEdUSzQpCisjaW5jbHVkZSA8Z2RrL3dheWxhbmQvZ2Rrd2F5bGFu
ZC5oPgorI2Vsc2UKICNpbmNsdWRlIDxnZGsvZ2Rrd2F5bGFuZC5oPgorI2VuZGlmCiAjaW5jbHVk
ZSA8Z3RrL2d0ay5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTkxLDkgKzk1LDExIEBAIGJv
b2wgUG9pbnRlckxvY2tNYW5hZ2VyV2F5bGFuZDo6bG9jaygpCiAgICAgbV9yZWxhdGl2ZVBvaW50
ZXIgPSB6d3BfcmVsYXRpdmVfcG9pbnRlcl9tYW5hZ2VyX3YxX2dldF9yZWxhdGl2ZV9wb2ludGVy
KG1fcmVsYXRpdmVQb2ludGVyTWFuYWdlciwgcG9pbnRlcik7CiAgICAgendwX3JlbGF0aXZlX3Bv
aW50ZXJfdjFfYWRkX2xpc3RlbmVyKG1fcmVsYXRpdmVQb2ludGVyLCAmc19yZWxhdGl2ZVBvaW50
ZXJMaXN0ZW5lciwgdGhpcyk7CiAKKyNpZiAhVVNFKEdUSzQpCiAgICAgUkVMRUFTRV9BU1NFUlQo
IW1fbG9ja2VkUG9pbnRlcik7CiAgICAgYXV0byogc3VyZmFjZSA9IGdka193YXlsYW5kX3dpbmRv
d19nZXRfd2xfc3VyZmFjZShndGtfd2lkZ2V0X2dldF93aW5kb3cobV93ZWJQYWdlLnZpZXdXaWRn
ZXQoKSkpOwogICAgIG1fbG9ja2VkUG9pbnRlciA9IHp3cF9wb2ludGVyX2NvbnN0cmFpbnRzX3Yx
X2xvY2tfcG9pbnRlcihtX3BvaW50ZXJDb25zdHJhaW50cywgc3VyZmFjZSwgcG9pbnRlciwgbnVs
bHB0ciwgWldQX1BPSU5URVJfQ09OU1RSQUlOVFNfVjFfTElGRVRJTUVfUEVSU0lTVEVOVCk7Cisj
ZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvZ3RrL1BvaW50ZXJMb2NrTWFuYWdlclgxMS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9ndGsvUG9pbnRlckxvY2tNYW5hZ2VyWDExLmNwcAppbmRleCAwM2Q4NDE2OTdjNDEu
LmZlZjIxMmJmMjVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1Bv
aW50ZXJMb2NrTWFuYWdlclgxMS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3Rr
L1BvaW50ZXJMb2NrTWFuYWdlclgxMS5jcHAKQEAgLTI5LDcgKzI5LDkgQEAKICNpZiBQTEFURk9S
TShYMTEpCiAKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpZiAhVVNFKEdUSzQpCiAjaW5j
bHVkZSA8Z2RrL2dka3guaD4KKyNlbmRpZgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CkBAIC00Miw2ICs0NCw3IEBAIFBvaW50ZXJMb2NrTWFuYWdlclgxMTo6UG9p
bnRlckxvY2tNYW5hZ2VyWDExKFdlYlBhZ2VQcm94eSYgd2ViUGFnZSwgY29uc3QgR2RrRXZlCiAK
IHZvaWQgUG9pbnRlckxvY2tNYW5hZ2VyWDExOjpkaWRSZWNlaXZlTW90aW9uRXZlbnQoY29uc3Qg
R2RrRXZlbnQqIGV2ZW50KQogeworI2lmICFVU0UoR1RLNCkKICAgICBkb3VibGUgY3VycmVudFgs
IGN1cnJlbnRZOwogICAgIGdka19ldmVudF9nZXRfcm9vdF9jb29yZHMoZXZlbnQsICZjdXJyZW50
WCwgJmN1cnJlbnRZKTsKICAgICBkb3VibGUgaW5pdGlhbFgsIGluaXRpYWxZOwpAQCAtNTEsNiAr
NTQsNyBAQCB2b2lkIFBvaW50ZXJMb2NrTWFuYWdlclgxMTo6ZGlkUmVjZWl2ZU1vdGlvbkV2ZW50
KGNvbnN0IEdka0V2ZW50KiBldmVudCkKIAogICAgIGhhbmRsZU1vdGlvbihJbnRQb2ludChjdXJy
ZW50WCAtIGluaXRpYWxYLCBjdXJyZW50WSAtIGluaXRpYWxZKSk7CiAgICAgZ2RrX2RldmljZV93
YXJwKG1fZGV2aWNlLCBndGtfd2lkZ2V0X2dldF9zY3JlZW4obV93ZWJQYWdlLnZpZXdXaWRnZXQo
KSksIGluaXRpYWxYLCBpbml0aWFsWSk7CisjZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNr
ZXJHdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYkNvbG9yUGlja2VyR3Rr
LmNwcAppbmRleCAxNGNmMjExZTdkNDIuLmY2MmRjYmI2MTcwOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYkNvbG9yUGlja2VyR3RrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJHdGsuY3BwCkBAIC0zMCw4ICszMCw4
IEBACiAKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0d0a1V0
aWxpdGllcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3RrVmVyc2lvbmluZy5oPgogI2luY2x1ZGUg
PGdsaWIvZ2kxOG4tbGliLmg+Ci0jaW5jbHVkZSA8Z3RrL2d0ay5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuY3BwCmluZGV4IDVmYWQyZmY3
ZjM0MS4uNDEwMzJiODZiNGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
dGsvV2ViQ29udGV4dE1lbnVQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuY3BwCkBAIC00Nyw2ICs0Nyw3IEBAIHN0YXRp
YyBjb25zdCBjaGFyKiBnQ29udGV4dE1lbnVJdGVtR3JvdXAgPSAid2Via2l0Q29udGV4dE1lbnUi
OwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorI2lmICFV
U0UoR1RLNCkKIHN0YXRpYyB2b2lkIGNvbnRleHRNZW51SXRlbUFjdGl2YXRlZENhbGxiYWNrKEdB
Y3Rpb24qIGFjdGlvbiwgR1ZhcmlhbnQqLCBXZWJQYWdlUHJveHkqIHBhZ2UpCiB7CiAgICAgYXV0
byogc3RhdGVUeXBlID0gZ19hY3Rpb25fZ2V0X3N0YXRlX3R5cGUoYWN0aW9uKTsKQEAgLTE1OCw5
ICsxNTksMTEgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5R3RrOjpwb3B1bGF0ZShjb25zdCBW
ZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiBpdGUKICAgICB9CiAgICAgZ3RrX21lbnVf
c2hlbGxfYmluZF9tb2RlbChHVEtfTUVOVV9TSEVMTChtX21lbnUpLCBHX01FTlVfTU9ERUwobWVu
dS5nZXQoKSksIG51bGxwdHIsIFRSVUUpOwogfQorI2VuZGlmCiAKIHZvaWQgV2ViQ29udGV4dE1l
bnVQcm94eUd0azo6c2hvdygpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIFZlY3RvcjxSZWY8V2Vi
Q29udGV4dE1lbnVJdGVtPj4gcHJvcG9zZWRBUElJdGVtczsKICAgICBmb3IgKGF1dG8mIGl0ZW0g
OiBtX2NvbnRleHQubWVudUl0ZW1zKCkpIHsKICAgICAgICAgaWYgKGl0ZW0uYWN0aW9uKCkgIT0g
Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51KQpAQCAtMTY4LDEwICsxNzEsMTIgQEAgdm9pZCBX
ZWJDb250ZXh0TWVudVByb3h5R3RrOjpzaG93KCkKICAgICB9CiAKICAgICBtX3BhZ2UtPmNvbnRl
eHRNZW51Q2xpZW50KCkuZ2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51KCptX3BhZ2UsIFdU
Rk1vdmUocHJvcG9zZWRBUElJdGVtcyksIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6Y3Jl
YXRlKHRoaXMpLmdldCgpLCBtX2NvbnRleHQud2ViSGl0VGVzdFJlc3VsdERhdGEoKSwgbV9wYWdl
LT5wcm9jZXNzKCkudHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyhtX3VzZXJEYXRhLm9iamVjdCgp
KS5nZXQoKSk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJDb250ZXh0TWVudVByb3h5R3RrOjpzaG93
Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiYmIGl0
ZW1zKQogeworI2lmICFVU0UoR1RLNCkKICAgICBpZiAoIWl0ZW1zLmlzRW1wdHkoKSkKICAgICAg
ICAgcG9wdWxhdGUoaXRlbXMpOwogCkBAIC0xODcsMjEgKzE5MiwyNyBAQCB2b2lkIFdlYkNvbnRl
eHRNZW51UHJveHlHdGs6OnNob3dDb250ZXh0TWVudVdpdGhJdGVtcyhWZWN0b3I8UmVmPFdlYkNv
bnRleHRNZW51SQogICAgIGNvbnN0IEdka0V2ZW50KiBldmVudCA9IG1vdXNlRXZlbnQgPyBtb3Vz
ZUV2ZW50LT5uYXRpdmVFdmVudCgpIDogMDsKICAgICBndGtfbWVudV9hdHRhY2hfdG9fd2lkZ2V0
KG1fbWVudSwgR1RLX1dJREdFVChtX3dlYlZpZXcpLCBudWxscHRyKTsKICAgICBndGtfbWVudV9w
b3B1cChtX21lbnUsIG51bGxwdHIsIG51bGxwdHIsIHJlaW50ZXJwcmV0X2Nhc3Q8R3RrTWVudVBv
c2l0aW9uRnVuYz4obWVudVBvc2l0aW9uRnVuY3Rpb24pLCB0aGlzLCBldmVudCA/IGV2ZW50LT5i
dXR0b24uYnV0dG9uIDogMywgZXZlbnQgPyBldmVudC0+YnV0dG9uLnRpbWUgOiBHREtfQ1VSUkVO
VF9USU1FKTsKKyNlbmRpZgogfQogCiBXZWJDb250ZXh0TWVudVByb3h5R3RrOjpXZWJDb250ZXh0
TWVudVByb3h5R3RrKEd0a1dpZGdldCogd2ViVmlldywgV2ViUGFnZVByb3h5JiBwYWdlLCBDb250
ZXh0TWVudUNvbnRleHREYXRhJiYgY29udGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQog
ICAgIDogV2ViQ29udGV4dE1lbnVQcm94eShXVEZNb3ZlKGNvbnRleHQpLCB1c2VyRGF0YSkKKyNp
ZiAhVVNFKEdUSzQpCiAgICAgLCBtX3dlYlZpZXcod2ViVmlldykKICAgICAsIG1fcGFnZSgmcGFn
ZSkKICAgICAsIG1fbWVudShHVEtfTUVOVShndGtfbWVudV9uZXcoKSkpCisjZW5kaWYKIHsKKyNp
ZiAhVVNFKEdUSzQpCiAgICAgR1JlZlB0cjxHU2ltcGxlQWN0aW9uR3JvdXA+IGdyb3VwID0gYWRv
cHRHUmVmKGdfc2ltcGxlX2FjdGlvbl9ncm91cF9uZXcoKSk7CiAgICAgZ3RrX3dpZGdldF9pbnNl
cnRfYWN0aW9uX2dyb3VwKEdUS19XSURHRVQobV9tZW51KSwgZ0NvbnRleHRNZW51SXRlbUdyb3Vw
LCBHX0FDVElPTl9HUk9VUChncm91cC5nZXQoKSkpOwogICAgIHdlYmtpdFdlYlZpZXdCYXNlU2V0
QWN0aXZlQ29udGV4dE1lbnVQcm94eShXRUJLSVRfV0VCX1ZJRVdfQkFTRShtX3dlYlZpZXcpLCB0
aGlzKTsKKyNlbmRpZgogfQogCiBXZWJDb250ZXh0TWVudVByb3h5R3RrOjp+V2ViQ29udGV4dE1l
bnVQcm94eUd0aygpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIGd0a19tZW51X3BvcGRvd24obV9t
ZW51KTsKIAogICAgIGZvciAoYXV0byYgaGFuZGxlciA6IG1fc2lnbmFsSGFuZGxlcnMpCkBAIC0y
MTAsOCArMjIxLDEwIEBAIFdlYkNvbnRleHRNZW51UHJveHlHdGs6On5XZWJDb250ZXh0TWVudVBy
b3h5R3RrKCkKIAogICAgIGd0a193aWRnZXRfaW5zZXJ0X2FjdGlvbl9ncm91cChHVEtfV0lER0VU
KG1fbWVudSksIGdDb250ZXh0TWVudUl0ZW1Hcm91cCwgbnVsbHB0cik7CiAgICAgZ3RrX3dpZGdl
dF9kZXN0cm95KEdUS19XSURHRVQobV9tZW51KSk7CisjZW5kaWYKIH0KIAorI2lmICFVU0UoR1RL
NCkKIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eUd0azo6bWVudVBvc2l0aW9uRnVuY3Rpb24oR3Rr
TWVudSogbWVudSwgZ2ludCogeCwgZ2ludCogeSwgZ2Jvb2xlYW4qIHB1c2hJbiwgV2ViQ29udGV4
dE1lbnVQcm94eUd0ayogcG9wdXBNZW51KQogewogICAgIEd0a1JlcXVpc2l0aW9uIG1lbnVTaXpl
OwpAQCAtMjI4LDYgKzI0MSw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eUd0azo6bWVudVBv
c2l0aW9uRnVuY3Rpb24oR3RrTWVudSogbWVudSwgZ2ludCogeCwgZ2ludCoKIAogICAgICpwdXNo
SW4gPSBGQUxTRTsKIH0KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKICNlbmRpZiAv
LyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2d0ay9XZWJDb250ZXh0TWVudVByb3h5R3RrLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9ndGsvV2ViQ29udGV4dE1lbnVQcm94eUd0ay5oCmluZGV4IGU1YzVlYTBiM2RiMC4uYWEzMzU4
OWExOWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViQ29udGV4
dE1lbnVQcm94eUd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJDb250
ZXh0TWVudVByb3h5R3RrLmgKQEAgLTQ5LDEzICs0OSwxNiBAQCBwdWJsaWM6CiAgICAgfQogICAg
IH5XZWJDb250ZXh0TWVudVByb3h5R3RrKCk7CiAKKyNpZiAhVVNFKEdUSzQpCiAgICAgdm9pZCBw
b3B1bGF0ZShjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtR2xpYj4mKTsKICAgICBHdGtN
ZW51KiBndGtNZW51KCkgY29uc3QgeyByZXR1cm4gbV9tZW51OyB9CisjZW5kaWYKIAogcHJpdmF0
ZToKICAgICBXZWJDb250ZXh0TWVudVByb3h5R3RrKEd0a1dpZGdldCosIFdlYlBhZ2VQcm94eSYs
IENvbnRleHRNZW51Q29udGV4dERhdGEmJiwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIHNo
b3coKSBvdmVycmlkZTsKICAgICB2b2lkIHNob3dDb250ZXh0TWVudVdpdGhJdGVtcyhWZWN0b3I8
UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiYpIG92ZXJyaWRlOworI2lmICFVU0UoR1RLNCkKICAg
ICB2b2lkIGFwcGVuZChHTWVudSosIGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbUdsaWImKTsKICAg
ICBHUmVmUHRyPEdNZW51PiBidWlsZE1lbnUoY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRl
bUdsaWI+Jik7CiAgICAgdm9pZCBwb3B1bGF0ZShjb25zdCBWZWN0b3I8UmVmPFdlYkNvbnRleHRN
ZW51SXRlbT4+Jik7CkBAIC02Nyw2ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgR3RrTWVudSogbV9t
ZW51OwogICAgIFdlYkNvcmU6OkludFBvaW50IG1fcG9wdXBQb3NpdGlvbjsKICAgICBIYXNoTWFw
PHVuc2lnbmVkIGxvbmcsIHZvaWQqPiBtX3NpZ25hbEhhbmRsZXJzOworI2VuZGlmCiB9OwogCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJEYXRhTGlzdFN1Z2dl
c3Rpb25zRHJvcGRvd25HdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYkRh
dGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bkd0ay5jcHAKaW5kZXggNmEzNjc4OTA0MDJiLi40ZDY3
ZDVmODJjNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJEYXRh
TGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25HdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2d0ay9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25HdGsuY3BwCkBAIC0yNiw3ICsy
Niw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViRGF0YUxpc3RTdWdnZXN0
aW9uc0Ryb3Bkb3duR3RrLmgiCiAKLSNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyNpZiBF
TkFCTEUoREFUQUxJU1RfRUxFTUVOVCkgJiYgIVVTRShHVEs0KQogCiAjaW5jbHVkZSAiV2ViUGFn
ZVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlv
bi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYkRhdGFMaXN0
U3VnZ2VzdGlvbnNEcm9wZG93bkd0ay5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dl
YkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bkd0ay5oCmluZGV4IDY0MDdkNjI2NzIzNy4uMGZk
Y2IxNzAwMjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViRGF0
YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duR3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvZ3RrL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bkd0ay5oCkBAIC0yNSw3ICsyNSw3
IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisjaWYg
RU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpICYmICFVU0UoR1RLNCkKIAogI2luY2x1ZGUgIldlYkRh
dGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9ndGsvV2ViUGFnZVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2d0ay9XZWJQYWdlUHJveHlHdGsuY3BwCmluZGV4IGU5OGIwNTIzNjE3MC4uYWFiZjYyNmYz
MjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUGFnZVByb3h5
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUGFnZVByb3h5R3Rr
LmNwcApAQCAtMzksOSArMzksMTIgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVk
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybURpc3BsYXkuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1VzZXJBZ2VudC5oPgotI2luY2x1ZGUgPGd0ay9ndGt4Lmg+CiAjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAKKyNpZiBQTEFURk9STShYMTEpICYmIEVOQUJMRShORVRTQ0FQRV9Q
TFVHSU5fQVBJKQorI2luY2x1ZGUgPGd0ay9ndGt4Lmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpwbGF0Zm9ybUluaXRpYWxpemUoKQpAQCAtOTMs
NyArOTYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlRWRpdG9yU3RhdGUoY29uc3QgRWRp
dG9yU3RhdGUmIGVkaXRvclN0YXRlKQogICAgIHBhZ2VDbGllbnQoKS5zZWxlY3Rpb25EaWRDaGFu
Z2UoKTsKIH0KIAotI2lmIFBMQVRGT1JNKFgxMSkKKyNpZiBQTEFURk9STShYMTEpICYmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQogdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBHdGtXaWRn
ZXQqID4gUGx1Z2luV2luZG93TWFwOwogc3RhdGljIFBsdWdpbldpbmRvd01hcCYgcGx1Z2luV2lu
ZG93TWFwKCkKIHsKQEAgLTE0Nyw3ICsxNTAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6d2luZG93
ZWRQbHVnaW5WaXNpYmlsaXR5RGlkQ2hhbmdlKGJvb2wgaXNWaXNpYmxlLCB1aW50NjRfdCB3aQog
ICAgIGVsc2UKICAgICAgICAgZ3RrX3dpZGdldF9oaWRlKHBsdWdpbik7CiB9Ci0jZW5kaWYgLy8g
UExBVEZPUk0oWDExKQorI2VuZGlmIC8vIFBMQVRGT1JNKFgxMSkgJiYgRU5BQkxFKE5FVFNDQVBF
X1BMVUdJTl9BUEkpCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRJbnB1dE1ldGhvZFN0YXRlKE9w
dGlvbmFsPElucHV0TWV0aG9kU3RhdGU+JiYgc3RhdGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmNwcAppbmRleCBmMmI5NzQ1
NDdjMzUuLjQ2NGRlNmNjYjljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHlHdGsuaCIKIAorI2lmICFV
U0UoR1RLNCkKKwogI2luY2x1ZGUgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJX
ZWJQb3B1cEl0ZW0uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0d0a1V0aWxpdGllcy5oPgpAQCAtNDQx
LDMgKzQ0Myw1IEBAIGJvb2wgV2ViUG9wdXBNZW51UHJveHlHdGs6OnR5cGVBaGVhZEZpbmQoR2Rr
RXZlbnRLZXkqIGV2ZW50KQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlH
dGsuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5o
CmluZGV4IDg3ZDBiNmY2ZGMwMS4uNTU3NWM3ODgzYjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaApAQCAtMjAsNiArMjAsNyBA
QAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVQcm94eS5oIgorI2lmICFV
U0UoR1RLNCkKICNpbmNsdWRlIDxXZWJDb3JlL0dVbmlxdWVQdHJHdGsuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgpAQCAtODcsMyArODgs
NSBAQCBwcml2YXRlOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxl
ci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5o
CmluZGV4IGI1NzJhYTNhNTM2ZC4uNjMxMzZiZjFhYTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oCkBAIC0xNDQsNyArMTQ0
LDcgQEAgcHVibGljOgogICAgIC8vIERlY3JlbWVudHMgYSBjb3VudGVyIHRoYXQsIHdoZW4gaXQg
cmVhY2hlcyAwLCBzdG9wcyBwcmV2ZW50aW5nIHRoZSBwbHVnLWluIGZyb20gYmVpbmcgZGVzdHJv
eWVkLgogICAgIHZpcnR1YWwgdm9pZCB1bnByb3RlY3RQbHVnaW5Gcm9tRGVzdHJ1Y3Rpb24oKSA9
IDA7CiAKLSNpZiBQTEFURk9STShYMTEpCisjaWYgUExBVEZPUk0oWDExKSAmJiBFTkFCTEUoTkVU
U0NBUEVfUExVR0lOX0FQSSkKICAgICAvLyBDcmVhdGUgYSBwbHVnaW4gY29udGFpbmVyIGZvciB3
aW5kb3dlZCBwbHVnaW5zCiAgICAgdmlydHVhbCB1aW50NjRfdCBjcmVhdGVQbHVnaW5Db250YWlu
ZXIoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd2VkUGx1Z2luR2VvbWV0cnlEaWRDaGFu
Z2UoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZnJhbWVSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBjbGlwUmVjdCwgdWludDY0X3Qgd2luZG93SUQpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggZWI5MWU5MDk0MmU0Li5m
N2YyMjBhZTM1YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCkBAIC03Myw3ICs3Myw3IEBACiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25I
YW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCi0jaWYgUExB
VEZPUk0oWDExKQorI2lmIFBMQVRGT1JNKFgxMSkgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9B
UEkpCiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybURpc3BsYXkuaD4KICNlbmRpZgogCkBAIC0x
NjgyLDcgKzE2ODIsNyBAQCB2b2lkIFBsdWdpblZpZXc6OmRpZEZhaWxMb2FkKFdlYkZyYW1lKiB3
ZWJGcmFtZSwgYm9vbCB3YXNDYW5jZWxsZWQpCiAgICAgbV9wbHVnaW4tPmZyYW1lRGlkRmFpbChy
ZXF1ZXN0LT5yZXF1ZXN0SUQoKSwgd2FzQ2FuY2VsbGVkKTsKIH0KIAotI2lmIFBMQVRGT1JNKFgx
MSkKKyNpZiBQTEFURk9STShYMTEpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogdWlu
dDY0X3QgUGx1Z2luVmlldzo6Y3JlYXRlUGx1Z2luQ29udGFpbmVyKCkKIHsKICAgICB1aW50NjRf
dCB3aW5kb3dJRCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5WaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5WaWV3LmgKaW5kZXggMDNhOTFiY2I5YTgwLi5hYzk0ODA0ZGZjYTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTIyNiw3ICsyMjYsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgYXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlF
bmFibGVkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm90ZWN0UGx1Z2luRnJvbURlc3Ry
dWN0aW9uKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB1bnByb3RlY3RQbHVnaW5Gcm9tRGVzdHJ1Y3Rp
b24oKSBvdmVycmlkZTsKLSNpZiBQTEFURk9STShYMTEpCisjaWYgUExBVEZPUk0oWDExKSAmJiBF
TkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICB1aW50NjRfdCBjcmVhdGVQbHVnaW5Db250
YWluZXIoKSBvdmVycmlkZTsKICAgICB2b2lkIHdpbmRvd2VkUGx1Z2luR2VvbWV0cnlEaWRDaGFu
Z2UoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZnJhbWVSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBjbGlwUmVjdCwgdWludDY0X3Qgd2luZG93SUQpIG92ZXJyaWRlOwogICAgIHZvaWQgd2lu
ZG93ZWRQbHVnaW5WaXNpYmlsaXR5RGlkQ2hhbmdlKGJvb2wgaXNWaXNpYmxlLCB1aW50NjRfdCB3
aW5kb3dJRCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IGUxZDhiMGIwYjdmMC4uYTRiZmU1ZTQ1Mjk4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDA4LDcgKzQwOCw3IEBA
IFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICNpZiBFTkFCTEUoUExBVEZPUk1fRFJJVkVOX1RFWFRf
Q0hFQ0tJTkcpCiAgICAgLCBtX3RleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eShtYWtlVW5pcXVl
UmVmPFRleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eT4oKnRoaXMpKQogI2VuZGlmCi0jaWYgUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgKFBM
QVRGT1JNKEdUSykgJiYgIVVTRShHVEs0KSkKICAgICAsIG1fdmlld0dlc3R1cmVHZW9tZXRyeUNv
bGxlY3RvcihtYWtlVW5pcXVlPFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3I+KCp0aGlzKSkK
ICNlbGlmIEVOQUJMRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShHVEspCiAgICAgLCBtX2Fj
Y2Vzc2liaWxpdHlPYmplY3QobnVsbHB0cikKQEAgLTE0NDIsNyArMTQ0Miw3IEBAIHZvaWQgV2Vi
UGFnZTo6Y2xvc2UoKQogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICB3ZWJQcm9jZXNz
LnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyKTsKICNlbmRpZgotI2lmIFBMQVRGT1JN
KENPQ09BKSB8fCBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IChQTEFURk9S
TShHVEspICYmICFVU0UoR1RLNCkpCiAgICAgbV92aWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9y
ID0gbnVsbHB0cjsKICNlbmRpZgogCkBAIC00NDQzLDcgKzQ0NDMsNyBAQCB2b2lkIFdlYlBhZ2U6
Om1haW5GcmFtZURpZExheW91dCgpCiAgICAgICAgIG1fY2FjaGVkUGFnZUNvdW50ID0gcGFnZUNv
dW50OwogICAgIH0KIAotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspCisjaWYg
UExBVEZPUk0oQ09DT0EpIHx8IChQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkpCiAgICAgaWYg
KG1fdmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3RvcikKICAgICAgICAgbV92aWV3R2VzdHVyZUdl
b21ldHJ5Q29sbGVjdG9yLT5tYWluRnJhbWVEaWRMYXlvdXQoKTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDMwZjAyMzVlNzkwYi4uY2Q0
ZjJmMjc4MDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CkBAIC0xODEyLDcgKzE4MTIsNyBAQCBwcml2YXRlOgogICAgIFVuaXF1ZVJlZjxUZXh0Q2hlY2tp
bmdDb250cm9sbGVyUHJveHk+IG1fdGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5OwogI2VuZGlm
CiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKENP
Q09BKSB8fCAoUExBVEZPUk0oR1RLKSAmJiAhVVNFKEdUSzQpKQogICAgIHN0ZDo6dW5pcXVlX3B0
cjxWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yPiBtX3ZpZXdHZXN0dXJlR2VvbWV0cnlDb2xs
ZWN0b3I7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVgxMS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlWDExLmNwcAppbmRleCBlM2VhODQ0
Nzc5OTAuLjZmMWQ3NDdlZTE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVgxMS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVgxMS5jcHAKQEAgLTM0
LDcgKzM0LDExIEBACiAjaW5jbHVkZSA8WDExL1hsaWIuaD4KICNpbmNsdWRlIDxYMTEvZXh0ZW5z
aW9ucy9YY29tcG9zaXRlLmg+CiAjaW5jbHVkZSA8Y2Fpcm8teGxpYi5oPgorI2lmIFVTRShHVEs0
KQorI2luY2x1ZGUgPGdkay94MTEvZ2RreC5oPgorI2Vsc2UKICNpbmNsdWRlIDxnZGsvZ2RreC5o
PgorI2VuZGlmCiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7
CkBAIC00NywxNyArNTEsMjAgQEAgc3RkOjp1bmlxdWVfcHRyPEFjY2VsZXJhdGVkU3VyZmFjZVgx
MT4gQWNjZWxlcmF0ZWRTdXJmYWNlWDExOjpjcmVhdGUoV2ViUGFnZSYgd2UKICAgICByZXR1cm4g
c3RkOjp1bmlxdWVfcHRyPEFjY2VsZXJhdGVkU3VyZmFjZVgxMT4obmV3IEFjY2VsZXJhdGVkU3Vy
ZmFjZVgxMSh3ZWJQYWdlLCBjbGllbnQpKTsKIH0KIAorI2lmICFVU0UoR1RLNCkKIHN0YXRpYyBH
ZGtWaXN1YWwqIGRlZmF1bHRWaXN1YWwoKQogewogICAgIGlmIChHZGtWaXN1YWwqIHZpc3VhbCA9
IGdka19zY3JlZW5fZ2V0X3JnYmFfdmlzdWFsKGdka19zY3JlZW5fZ2V0X2RlZmF1bHQoKSkpCiAg
ICAgICAgIHJldHVybiB2aXN1YWw7CiAgICAgcmV0dXJuIGdka19zY3JlZW5fZ2V0X3N5c3RlbV92
aXN1YWwoZ2RrX3NjcmVlbl9nZXRfZGVmYXVsdCgpKTsKIH0KKyNlbmRpZgogCiBBY2NlbGVyYXRl
ZFN1cmZhY2VYMTE6OkFjY2VsZXJhdGVkU3VyZmFjZVgxMShXZWJQYWdlJiB3ZWJQYWdlLCBDbGll
bnQmIGNsaWVudCkKICAgICA6IEFjY2VsZXJhdGVkU3VyZmFjZSh3ZWJQYWdlLCBjbGllbnQpCiAg
ICAgLCBtX2Rpc3BsYXkoZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5WDExPihQbGF0Zm9ybURpc3Bs
YXk6OnNoYXJlZERpc3BsYXkoKSkubmF0aXZlKCkpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIFNj
cmVlbiogc2NyZWVuID0gRGVmYXVsdFNjcmVlbk9mRGlzcGxheShtX2Rpc3BsYXkpOwogCiAgICAg
QVNTRVJUKGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVgxMT4oUGxhdGZvcm1EaXNwbGF5OjpzaGFy
ZWREaXNwbGF5KCkpLm5hdGl2ZSgpID09IG1fZGlzcGxheSk7CkBAIC0xMTAsNiArMTE3LDcgQEAg
QWNjZWxlcmF0ZWRTdXJmYWNlWDExOjpBY2NlbGVyYXRlZFN1cmZhY2VYMTEoV2ViUGFnZSYgd2Vi
UGFnZSwgQ2xpZW50JiBjbGllbnQpCiAgICAgWFNlbGVjdElucHV0KG1fZGlzcGxheSwgbV93aW5k
b3cuZ2V0KCksIE5vRXZlbnRNYXNrKTsKICAgICBYQ29tcG9zaXRlUmVkaXJlY3RXaW5kb3cobV9k
aXNwbGF5LCBtX3dpbmRvdy5nZXQoKSwgQ29tcG9zaXRlUmVkaXJlY3RNYW51YWwpOwogICAgIGNy
ZWF0ZVBpeG1hcCgpOworI2VuZGlmCiB9CiAKIEFjY2VsZXJhdGVkU3VyZmFjZVgxMTo6fkFjY2Vs
ZXJhdGVkU3VyZmFjZVgxMSgpCkBAIC0xMjUsMTIgKzEzMywxNCBAQCBBY2NlbGVyYXRlZFN1cmZh
Y2VYMTE6On5BY2NlbGVyYXRlZFN1cmZhY2VYMTEoKQogCiB2b2lkIEFjY2VsZXJhdGVkU3VyZmFj
ZVgxMTo6Y3JlYXRlUGl4bWFwKCkKIHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgbV9waXhtYXAgPSBY
Q29tcG9zaXRlTmFtZVdpbmRvd1BpeG1hcChtX2Rpc3BsYXksIG1fd2luZG93LmdldCgpKTsKICAg
ICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzdXJmYWNlID0gYWRvcHRSZWYoY2Fpcm9feGxpYl9z
dXJmYWNlX2NyZWF0ZShtX2Rpc3BsYXksIG1fcGl4bWFwLmdldCgpLCBHREtfVklTVUFMX1hWSVNV
QUwoZGVmYXVsdFZpc3VhbCgpKSwgbV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSkpOwog
ICAgIFJlZlB0cjxjYWlyb190PiBjciA9IGFkb3B0UmVmKGNhaXJvX2NyZWF0ZShzdXJmYWNlLmdl
dCgpKSk7CiAgICAgY2Fpcm9fc2V0X29wZXJhdG9yKGNyLmdldCgpLCBDQUlST19PUEVSQVRPUl9D
TEVBUik7CiAgICAgY2Fpcm9fcGFpbnQoY3IuZ2V0KCkpOwogICAgIFhTeW5jKG1fZGlzcGxheSwg
RmFsc2UpOworI2VuZGlmCiB9CiAKIGJvb2wgQWNjZWxlcmF0ZWRTdXJmYWNlWDExOjpob3N0UmVz
aXplKGNvbnN0IEludFNpemUmIHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRpb25HdGsuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcAppbmRleCAz
MWVmZjExZjdhZTAuLmU5MTEzYzk2YWUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRpb25HdGsuY3BwCkBA
IC03MzcsNyArNzM3LDcgQEAgdm9pZCBXZWJQcmludE9wZXJhdGlvbkd0azo6cHJpbnQoY2Fpcm9f
c3VyZmFjZV90KiBzdXJmYWNlLCBkb3VibGUgeERQSSwgZG91YmxlIHkKICAgICBtX3hEUEkgPSB4
RFBJOwogICAgIG1feURQSSA9IHlEUEk7CiAgICAgbV9jYWlyb0NvbnRleHQgPSBhZG9wdFJlZihj
YWlyb19jcmVhdGUoc3VyZmFjZSkpOwotCisjaWYgIVVTRShHVEs0KQogICAgIC8vIE1ha2Ugc3Vy
ZSB0aGUgcHJpbnQgcGFnZXMgaWRsZSBoYXMgbW9yZSBwcmlvcml0eSB0aGFuIElQQyBtZXNzYWdl
cyBjb21taW5nIGZyb20KICAgICAvLyB0aGUgSU8gdGhyZWFkLCBzbyB0aGF0IHRoZSBFbmRQcmlu
dGluZyBtZXNzYWdlIGlzIGFsd2F5cyBoYW5kbGVkIG9uY2UgdGhlIHByaW50CiAgICAgLy8gb3Bl
cmF0aW9uIGhhcyBmaW5pc2hlZC4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjI4MDEuCkBAIC03NDgsNiArNzQ4LDcgQEAgdm9pZCBXZWJQcmludE9wZXJhdGlv
bkd0azo6cHJpbnQoY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlLCBkb3VibGUgeERQSSwgZG91Ymxl
IHkKICAgICAgICAgQVNTRVJUKG1haW5Mb29wKTsKICAgICAgICAgZ19tYWluX2xvb3BfcnVuKG1h
aW5Mb29wKTsKICAgICB9CisjZW5kaWYKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtl
L09wdGlvbnNHVEsuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQppbmRleCA5
NWZjNjA2MDUwZDIuLmIxNzAwYjIzY2Y0ZiAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlv
bnNHVEsuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKQEAgLTEyMCw3
ICsxMjAsMTEgQEAgV0VCS0lUX09QVElPTl9ERVBFTkQoVVNFX1dQRV9SRU5ERVJFUiBFTkFCTEVf
V0FZTEFORF9UQVJHRVQpCiBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChFTkFCTEVfREVWRUxPUEVS
X01PREUgJHtERVZFTE9QRVJfTU9ERX0pCiBpZiAoREVWRUxPUEVSX01PREUpCiAgICAgV0VCS0lU
X09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01JTklCUk9XU0VSIFBVQkxJQyBPTikK
LSAgICBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQVBJX1RFU1RTIFBS
SVZBVEUgT04pCisgICAgaWYgKFVTRV9HVEs0KQorICAgICAgICBXRUJLSVRfT1BUSU9OX0RFRkFV
TFRfUE9SVF9WQUxVRShFTkFCTEVfQVBJX1RFU1RTIFBSSVZBVEUgT0ZGKQorICAgIGVsc2UgKCkK
KyAgICAgICAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0FQSV9URVNU
UyBQUklWQVRFIE9OKQorICAgIGVuZGlmICgpCiBlbHNlICgpCiAgICAgV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01JTklCUk9XU0VSIFBVQkxJQyBPRkYpCiAgICAgV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0FQSV9URVNUUyBQUklWQVRFIE9G
RikKQEAgLTI2Miw2ICsyNjYsMTAgQEAgaWYgKFVTRV9MSUJTRUNSRVQpCiAgICAgZW5kaWYgKCkK
IGVuZGlmICgpCiAKK2lmIChVU0VfR1RLNCkKKyAgICBzZXQoRU5BQkxFX0lOVFJPU1BFQ1RJT04g
T0ZGKQorZW5kaWYgKCkKKwogaWYgKEVOQUJMRV9JTlRST1NQRUNUSU9OKQogICAgIGZpbmRfcGFj
a2FnZShHT2JqZWN0SW50cm9zcGVjdGlvbikKICAgICBpZiAoTk9UIElOVFJPU1BFQ1RJT05fRk9V
TkQpCkBAIC00MzIsNiArNDQwLDcgQEAgc2V0KERFUklWRURfU09VUkNFU19XRUJLSVQyR1RLX0FQ
SV9ESVIgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMkdUS19ESVJ9L3dlYmtpdDIKIHNldChERVJJ
VkVEX1NPVVJDRVNfSkFWQVNDUklQQ09SRUdUS19ESVIgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVND
UklQVENPUkVfRElSfS9qYXZhc2NyaXB0Y29yZWd0aykKIHNldChERVJJVkVEX1NPVVJDRVNfSkFW
QVNDUklQQ09SRV9HTElCX0FQSV9ESVIgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVf
RElSfS9qYXZhc2NyaXB0Y29yZWd0ay9qc2MpCiBzZXQoRk9SV0FSRElOR19IRUFERVJTX1dFQktJ
VDJHVEtfRElSICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0vd2Via2l0Mmd0aykKK3NldChGT1JX
QVJESU5HX0hFQURFUlNfV0VCS0lUMkdUS19WRVJTSU9ORURfRElSICR7Rk9SV0FSRElOR19IRUFE
RVJTX0RJUn0vd2Via2l0Mmd0ay0ke1dFQktJVEdUS19BUElfVkVSU0lPTn0pCiBzZXQoRk9SV0FS
RElOR19IRUFERVJTX1dFQktJVDJHVEtfRVhURU5TSU9OX0RJUiAke0ZPUldBUkRJTkdfSEVBREVS
U19ESVJ9L3dlYmtpdDJndGstd2ViZXh0ZW5zaW9uKQogCiBzZXQoSmF2YVNjcmlwdENvcmVfUEtH
Q09ORklHX0ZJTEUgJHtDTUFLRV9CSU5BUllfRElSfS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvamF2
YXNjcmlwdGNvcmVndGstJHtXRUJLSVRHVEtfQVBJX1ZFUlNJT059LnBjKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDA3N2FmODYyNGE0NC4uMGZk
ZWQ0NjBmMDc1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMjAtMDQtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEs0XSBNYWtlIGl0IHBvc3NpYmxlIHRv
IGJ1aWxkIHdpdGggR1RLNCB3aXRob3V0IGVycm9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwOTY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvQnJvd3NlckNlbGxSZW5k
ZXJlclZhcmlhbnQuYzoKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvQnJvd3NlckNlbGxSZW5k
ZXJlclZhcmlhbnQuaDoKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvQnJvd3NlckRvd25sb2Fk
c0Jhci5jOgorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyRG93bmxvYWRzQmFyLmg6
CisgICAgICAgICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJNYWluLmM6IEFkZGVkLgorICAgICAg
ICAoYnJvd3Nlcl9tYWluKToKKyAgICAgICAgKGJyb3dzZXJfbWFpbl9xdWl0KToKKyAgICAgICAg
KiBNaW5pQnJvd3Nlci9ndGsvQnJvd3Nlck1haW4uaDogQWRkZWQuCisgICAgICAgICogTWluaUJy
b3dzZXIvZ3RrL0Jyb3dzZXJTZWFyY2hCYXIuYzoKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsv
QnJvd3NlclNlYXJjaEJhci5oOgorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyU2V0
dGluZ3NEaWFsb2cuYzoKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvQnJvd3NlclNldHRpbmdz
RGlhbG9nLmg6CisgICAgICAgICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYzoKKyAgICAg
ICAgKGJyb3dzZXJUYWJDb25zdHJ1Y3RlZCk6CisgICAgICAgIChicm93c2VyX3RhYl9zdGFydF9z
ZWFyY2gpOgorICAgICAgICAoYnJvd3Nlcl90YWJfc3RvcF9zZWFyY2gpOgorICAgICAgICAoYnJv
d3Nlcl90YWJfZW50ZXJfZnVsbHNjcmVlbik6CisgICAgICAgIChicm93c2VyX3RhYl9sZWF2ZV9m
dWxsc2NyZWVuKToKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5oOgorICAg
ICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmM6CisgICAgICAgICh3ZWJWaWV3
VVJJQ2hhbmdlZCk6CisgICAgICAgIChyZXNldEVudHJ5UHJvZ3Jlc3MpOgorICAgICAgICAod2Vi
Vmlld0xvYWRQcm9ncmVzc0NoYW5nZWQpOgorICAgICAgICAoZG93bmxvYWRTdGFydGVkKToKKyAg
ICAgICAgKGJyb3dzZXJXaW5kb3dVcGRhdGVOYXZpZ2F0aW9uQWN0aW9ucyk6CisgICAgICAgICh3
ZWJWaWV3UmVhZHlUb1Nob3cpOgorICAgICAgICAoYnJvd3NlcldpbmRvd1VwZGF0ZVpvb21BY3Rp
b25zKToKKyAgICAgICAgKHdlYlZpZXdab29tTGV2ZWxDaGFuZ2VkKToKKyAgICAgICAgKHVwZGF0
ZVVyaUVudHJ5SWNvbik6CisgICAgICAgICh3ZWJWaWV3SXNMb2FkaW5nQ2hhbmdlZCk6CisgICAg
ICAgIChicm93c2VyV2luZG93RmluYWxpemUpOgorICAgICAgICAoYnJvd3NlcldpbmRvd1NldHVw
RWRpdG9yVG9vbGJhcik6CisgICAgICAgIChicm93c2VyV2luZG93U3dpdGNoVGFiKToKKyAgICAg
ICAgKGJyb3dzZXJfd2luZG93X2luaXQpOgorICAgICAgICAoYnJvd3Nlcl93aW5kb3dfY2xhc3Nf
aW5pdCk6CisgICAgICAgIChicm93c2VyX3dpbmRvd19uZXcpOgorICAgICAgICAoYnJvd3Nlcl93
aW5kb3dfYXBwZW5kX3ZpZXcpOgorICAgICAgICAoYnJvd3Nlcl93aW5kb3dfc2V0X2JhY2tncm91
bmRfY29sb3IpOgorICAgICAgICAoYnJvd3Nlcl93aW5kb3dfZ2V0X29yX2NyZWF0ZV93ZWJfdmll
d19mb3JfYXV0b21hdGlvbik6CisgICAgICAgICogTWluaUJyb3dzZXIvZ3RrL0NNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9tYWluLmM6CisgICAgICAgIChtYWluKToK
KyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2NoZWNrZXIucHk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9nbGliL1BsYXRmb3Jt
R1RLLmNtYWtlOgorCiAyMDIwLTA0LTIzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CiAKICAgICAgICAgc3RyZXNzL2Vuc3VyZS1jcmFzaC5qcyBzaG91bGRuJ3Qgc3BldyBzdHVm
ZiBvbnRvIG15IHNjcmVlbgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dz
ZXJDZWxsUmVuZGVyZXJWYXJpYW50LmMgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlckNl
bGxSZW5kZXJlclZhcmlhbnQuYwppbmRleCBjYjJjYWEzNWIzMTEuLjZmOGEyM2NmNzY1NiAxMDA2
NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJDZWxsUmVuZGVyZXJWYXJpYW50
LmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJDZWxsUmVuZGVyZXJWYXJpYW50
LmMKQEAgLTI3LDYgKzI3LDggQEAKICNpbmNsdWRlICJCcm93c2VyTWFyc2hhbC5oIgogI2luY2x1
ZGUgPGVycm5vLmg+CiAKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCisKIGVudW0g
ewogICAgIFBST1BfMCwKIApAQCAtMzQ0LDMgKzM0Niw0IEBAIEd0a0NlbGxSZW5kZXJlciAqYnJv
d3Nlcl9jZWxsX3JlbmRlcmVyX3ZhcmlhbnRfbmV3KHZvaWQpCiAgICAgcmV0dXJuIEdUS19DRUxM
X1JFTkRFUkVSKGdfb2JqZWN0X25ldyhCUk9XU0VSX1RZUEVfQ0VMTF9SRU5ERVJFUl9WQVJJQU5U
LCBOVUxMKSk7CiB9CiAKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3Rr
L0Jyb3dzZXJDZWxsUmVuZGVyZXJWYXJpYW50LmggYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJv
d3NlckNlbGxSZW5kZXJlclZhcmlhbnQuaAppbmRleCA0ZmNlM2JiNjA2YTcuLmE3OTNhMWE3NjAw
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJDZWxsUmVuZGVyZXJW
YXJpYW50LmgKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJDZWxsUmVuZGVyZXJW
YXJpYW50LmgKQEAgLTI4LDYgKzI4LDggQEAKIAogI2luY2x1ZGUgPGd0ay9ndGsuaD4KIAorI2lm
ICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKKwogR19CRUdJTl9ERUNMUwogCiAjZGVmaW5l
IEJST1dTRVJfVFlQRV9DRUxMX1JFTkRFUkVSX1ZBUklBTlQgICAgICAgICAgICAoYnJvd3Nlcl9j
ZWxsX3JlbmRlcmVyX3ZhcmlhbnRfZ2V0X3R5cGUoKSkKQEAgLTQ3LDMgKzQ5LDUgQEAgR3RrQ2Vs
bFJlbmRlcmVyKiBicm93c2VyX2NlbGxfcmVuZGVyZXJfdmFyaWFudF9uZXcodm9pZCk7CiBHX0VO
RF9ERUNMUwogCiAjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nl
ci9ndGsvQnJvd3NlckRvd25sb2Fkc0Jhci5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dz
ZXJEb3dubG9hZHNCYXIuYwppbmRleCBiMGVjM2NlMTQ3MGYuLmU3ODg0ZjVmNTZjOCAxMDA2NDQK
LS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJEb3dubG9hZHNCYXIuYworKysgYi9U
b29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlckRvd25sb2Fkc0Jhci5jCkBAIC0yNiw2ICsyNiw4
IEBACiAjaW5jbHVkZSAiY21ha2Vjb25maWcuaCIKICNpbmNsdWRlICJCcm93c2VyRG93bmxvYWRz
QmFyLmgiCiAKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCisKICNpbmNsdWRlIDxn
bGliL2dpMThuLmg+CiAKICNkZWZpbmUgQlJPV1NFUl9UWVBFX0RPV05MT0FEIChicm93c2VyX2Rv
d25sb2FkX2dldF90eXBlKCkpCkBAIC0yNzUsMyArMjc3LDUgQEAgdm9pZCBicm93c2VyX2Rvd25s
b2Fkc19iYXJfYWRkX2Rvd25sb2FkKEJyb3dzZXJEb3dubG9hZHNCYXIgKmRvd25sb2Fkc0Jhciwg
V2ViS2kKICAgICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWChjb250ZW50Qm94KSwgYnJvd3Nl
ckRvd25sb2FkLCBGQUxTRSwgVFJVRSwgMCk7CiAgICAgZ3RrX3dpZGdldF9zaG93KGJyb3dzZXJE
b3dubG9hZCk7CiB9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3Rr
L0Jyb3dzZXJEb3dubG9hZHNCYXIuaCBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyRG93
bmxvYWRzQmFyLmgKaW5kZXggMTcwNGE1ZDAxNDQ2Li5iM2QzYjY5OTkwNzEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyRG93bmxvYWRzQmFyLmgKKysrIGIvVG9vbHMv
TWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJEb3dubG9hZHNCYXIuaApAQCAtMjksNiArMjksOCBAQAog
I2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3ZWJraXQyL3dlYmtpdDIuaD4KIAorI2lm
ICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKKwogR19CRUdJTl9ERUNMUwogCiAjZGVmaW5l
IEJST1dTRVJfVFlQRV9ET1dOTE9BRFNfQkFSICAgICAgICAgICAgKGJyb3dzZXJfZG93bmxvYWRz
X2Jhcl9nZXRfdHlwZSgpKQpAQCAtNDksMyArNTEsNSBAQCB2b2lkIGJyb3dzZXJfZG93bmxvYWRz
X2Jhcl9hZGRfZG93bmxvYWQoQnJvd3NlckRvd25sb2Fkc0JhciAqLCBXZWJLaXREb3dubG9hZCAq
KQogR19FTkRfREVDTFMKIAogI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWlu
aUJyb3dzZXIvZ3RrL0Jyb3dzZXJNYWluLmMgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3Nl
ck1haW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjI1OGYxMzA0
ZWQ3MgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyTWFp
bi5jCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgIkJyb3dzZXJNYWluLmgiCisKKyNpZiBHVEtfQ0hFQ0tf
VkVSU0lPTigzLCA5OCwgMCkKK3N0YXRpYyBHTWFpbkxvb3AgKm1haW5Mb29wOworI2VuZGlmCisK
K3ZvaWQgYnJvd3Nlcl9tYWluKCkKK3sKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkK
KyAgICBtYWluTG9vcCA9IGdfbWFpbl9sb29wX25ldyhOVUxMLCBUUlVFKTsKKyAgICBnX21haW5f
bG9vcF9ydW4obWFpbkxvb3ApOworI2Vsc2UKKyAgICBndGtfbWFpbigpOworI2VuZGlmCit9CisK
K3ZvaWQgYnJvd3Nlcl9tYWluX3F1aXQoKQoreworI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDk4
LCAwKQorICAgIGdfbWFpbl9sb29wX3F1aXQobWFpbkxvb3ApOworICAgIGdfbWFpbl9sb29wX3Vu
cmVmKG1haW5Mb29wKTsKKyNlbHNlCisgICAgZ3RrX21haW5fcXVpdCgpOworI2VuZGlmCit9CmRp
ZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3Nlck1haW4uaCBiL1Rvb2xzL01p
bmlCcm93c2VyL2d0ay9Ccm93c2VyTWFpbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMC4uMjJjZDgwMzdhMGVhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTWluaUJy
b3dzZXIvZ3RrL0Jyb3dzZXJNYWluLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJyb3dzZXJNYWluX2gK
KyNkZWZpbmUgQnJvd3Nlck1haW5faAorCisjaW5jbHVkZSA8Z3RrL2d0ay5oPgorCitHX0JFR0lO
X0RFQ0xTCisKK3ZvaWQgYnJvd3Nlcl9tYWluKHZvaWQpOwordm9pZCBicm93c2VyX21haW5fcXVp
dCh2b2lkKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmIC8qIEJyb3dzZXJNYWluX2ggKi8KZGlm
ZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyU2VhcmNoQmFyLmMgYi9Ub29s
cy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclNlYXJjaEJhci5jCmluZGV4IDIyOTMwYzRjNWVmYi4u
MzUxMjQzY2JkNWE2IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclNl
YXJjaEJhci5jCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyU2VhcmNoQmFyLmMK
QEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjbWFrZWNvbmZpZy5oIgogI2luY2x1ZGUgIkJy
b3dzZXJTZWFyY2hCYXIuaCIKIAorI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKKwog
c3RhdGljIGNvbnN0IGNoYXIgKnNlYXJjaEVudHJ5RmFpbGVkU3R5bGUgPSAiR3RrRW50cnkjc2Vh
cmNoRW50cnkge2JhY2tncm91bmQtY29sb3I6ICNmZjY2NjY7fSI7CiAKIHN0cnVjdCBfQnJvd3Nl
clNlYXJjaEJhciB7CkBAIC0yOTEsMyArMjkzLDUgQEAgdm9pZCBicm93c2VyX3NlYXJjaF9iYXJf
Y2xvc2UoQnJvd3NlclNlYXJjaEJhciAqc2VhcmNoQmFyKQogICAgIFdlYktpdEZpbmRDb250cm9s
bGVyICpjb250cm9sbGVyID0gd2Via2l0X3dlYl92aWV3X2dldF9maW5kX2NvbnRyb2xsZXIoc2Vh
cmNoQmFyLT53ZWJWaWV3KTsKICAgICB3ZWJraXRfZmluZF9jb250cm9sbGVyX3NlYXJjaF9maW5p
c2goY29udHJvbGxlcik7CiB9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dz
ZXIvZ3RrL0Jyb3dzZXJTZWFyY2hCYXIuaCBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2Vy
U2VhcmNoQmFyLmgKaW5kZXggMWRlOGQ4YWJhMmExLi45YmFhMjJlNzg4MTEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyU2VhcmNoQmFyLmgKKysrIGIvVG9vbHMvTWlu
aUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZWFyY2hCYXIuaApAQCAtMjksNiArMjksOCBAQAogI2luY2x1
ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3ZWJraXQyL3dlYmtpdDIuaD4KIAorI2lmICFHVEtf
Q0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKKwogR19CRUdJTl9ERUNMUwogCiAjZGVmaW5lIEJST1dT
RVJfVFlQRV9TRUFSQ0hfQkFSICAgICAgICAgICAgKGJyb3dzZXJfc2VhcmNoX2Jhcl9nZXRfdHlw
ZSgpKQpAQCAtNTUsMyArNTcsNSBAQCB2b2lkIGJyb3dzZXJfc2VhcmNoX2Jhcl9jbG9zZShCcm93
c2VyU2VhcmNoQmFyICopOwogR19FTkRfREVDTFMKIAogI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZXR0aW5nc0RpYWxvZy5jIGIvVG9v
bHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZXR0aW5nc0RpYWxvZy5jCmluZGV4IGY5MzUwZjhl
YzYyMi4uMTc4ZjA1MzlkMWI1IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJv
d3NlclNldHRpbmdzRGlhbG9nLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJT
ZXR0aW5nc0RpYWxvZy5jCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiQnJvd3NlclNldHRp
bmdzRGlhbG9nLmgiCiAjaW5jbHVkZSAiQnJvd3NlckNlbGxSZW5kZXJlclZhcmlhbnQuaCIKIAor
I2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKKwogZW51bSB7CiAgICAgUFJPUF8wLAog
CkBAIC0yMzYsMyArMjM4LDQgQEAgR3RrV2lkZ2V0ICpicm93c2VyX3NldHRpbmdzX2RpYWxvZ19u
ZXcoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKQogICAgIHJldHVybiBHVEtfV0lER0VUKGdfb2Jq
ZWN0X25ldyhCUk9XU0VSX1RZUEVfU0VUVElOR1NfRElBTE9HLCAic2V0dGluZ3MiLCBzZXR0aW5n
cywgTlVMTCkpOwogfQogCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0
ay9Ccm93c2VyU2V0dGluZ3NEaWFsb2cuaCBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2Vy
U2V0dGluZ3NEaWFsb2cuaAppbmRleCBmM2RiY2QwNDJjMDQuLjJjMzM5NzdjMGYzZCAxMDA2NDQK
LS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZXR0aW5nc0RpYWxvZy5oCisrKyBi
L1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyU2V0dGluZ3NEaWFsb2cuaApAQCAtMjksNiAr
MjksOCBAQAogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3ZWJraXQyL3dlYmtpdDIu
aD4KIAorI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKKwogR19CRUdJTl9ERUNMUwog
CiAjZGVmaW5lIEJST1dTRVJfVFlQRV9TRVRUSU5HU19ESUFMT0cgICAgICAgICAgICAoYnJvd3Nl
cl9zZXR0aW5nc19kaWFsb2dfZ2V0X3R5cGUoKSkKQEAgLTQ4LDMgKzUwLDUgQEAgR3RrV2lkZ2V0
KiBicm93c2VyX3NldHRpbmdzX2RpYWxvZ19uZXcoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsK
IEdfRU5EX0RFQ0xTCiAKICNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlC
cm93c2VyL2d0ay9Ccm93c2VyVGFiLmMgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRh
Yi5jCmluZGV4IDllOTk3OGVmZDNkOC4uNmMxNzljNGM4ZmE4IDEwMDY0NAotLS0gYS9Ub29scy9N
aW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9C
cm93c2VyVGFiLmMKQEAgLTQyLDcgKzQyLDkgQEAgc3RydWN0IF9Ccm93c2VyVGFiIHsKICAgICBH
dGtCb3ggcGFyZW50OwogCiAgICAgV2ViS2l0V2ViVmlldyAqd2ViVmlldzsKKyNpZiAhR1RLX0NI
RUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAgQnJvd3NlclNlYXJjaEJhciAqc2VhcmNoQmFyOwor
I2VuZGlmCiAgICAgR3RrV2lkZ2V0ICpzdGF0dXNMYWJlbDsKICAgICBnYm9vbGVhbiB3YXNTZWFy
Y2hpbmdXaGVuRW50ZXJlZEZ1bGxzY3JlZW47CiAgICAgZ2Jvb2xlYW4gaW5zcGVjdG9ySXNWaXNp
YmxlOwpAQCAtOTUsNyArOTcsNyBAQCBzdGF0aWMgZ2NoYXIgKmdldFdlYlZpZXdPcmlnaW4oV2Vi
S2l0V2ViVmlldyAqd2ViVmlldykKIAogICAgIHJldHVybiBvcmlnaW5TdHI7CiB9Ci0KKyNpZiAh
R1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiBzdGF0aWMgdm9pZCB0aXRsZUNoYW5nZWQoV2Vi
S2l0V2ViVmlldyAqd2ViVmlldywgR1BhcmFtU3BlYyAqcHNwZWMsIEJyb3dzZXJUYWIgKnRhYikK
IHsKICAgICBjb25zdCBjaGFyICp0aXRsZSA9IHdlYmtpdF93ZWJfdmlld19nZXRfdGl0bGUod2Vi
Vmlldyk7CkBAIC0zNDMsNiArMzQ1LDcgQEAgc3RhdGljIGdib29sZWFuIHJ1bkNvbG9yQ2hvb3Nl
ckNhbGxiYWNrKFdlYktpdFdlYlZpZXcgKndlYlZpZXcsIFdlYktpdENvbG9yQ2hvb3MKIAogICAg
IHJldHVybiBUUlVFOwogfQorI2VuZGlmCiAKIHN0YXRpYyBnYm9vbGVhbiBpbnNwZWN0b3JPcGVu
ZWRJbldpbmRvdyhXZWJLaXRXZWJJbnNwZWN0b3IgKmluc3BlY3RvciwgQnJvd3NlclRhYiAqdGFi
KQogewpAQCAtMzkyLDYgKzM5NSw3IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJUYWJDb25zdHJ1Y3Rl
ZChHT2JqZWN0ICpnT2JqZWN0KQogCiAgICAgR19PQkpFQ1RfQ0xBU1MoYnJvd3Nlcl90YWJfcGFy
ZW50X2NsYXNzKS0+Y29uc3RydWN0ZWQoZ09iamVjdCk7CiAKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJ
T04oMywgOTgsIDApCiAgICAgdGFiLT5zZWFyY2hCYXIgPSBCUk9XU0VSX1NFQVJDSF9CQVIoYnJv
d3Nlcl9zZWFyY2hfYmFyX25ldyh0YWItPndlYlZpZXcpKTsKICAgICBndGtfYm94X3BhY2tfc3Rh
cnQoR1RLX0JPWCh0YWIpLCBHVEtfV0lER0VUKHRhYi0+c2VhcmNoQmFyKSwgRkFMU0UsIEZBTFNF
LCAwKTsKIApAQCAtNDIyLDcgKzQyNiwxMSBAQCBzdGF0aWMgdm9pZCBicm93c2VyVGFiQ29uc3Ry
dWN0ZWQoR09iamVjdCAqZ09iamVjdCkKIAogICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05U
QUlORVIob3ZlcmxheSksIEdUS19XSURHRVQodGFiLT53ZWJWaWV3KSk7CiAgICAgZ3RrX3dpZGdl
dF9zaG93KEdUS19XSURHRVQodGFiLT53ZWJWaWV3KSk7CisjZWxzZQorICAgIGd0a19jb250YWlu
ZXJfYWRkKEdUS19DT05UQUlORVIodGFiKSwgR1RLX1dJREdFVCh0YWItPndlYlZpZXcpKTsKKyNl
bmRpZgogCisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAgIHRhYi0+dGl0bGVC
b3ggPSBndGtfYm94X25ldyhHVEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCwgNCk7CiAKICAgICBH
dGtXaWRnZXQgKmhib3ggPSBndGtfYm94X25ldyhHVEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCwg
Nik7CkBAIC00NjAsNiArNDY4LDcgQEAgc3RhdGljIHZvaWQgYnJvd3NlclRhYkNvbnN0cnVjdGVk
KEdPYmplY3QgKmdPYmplY3QpCiAgICAgZ19zaWduYWxfY29ubmVjdCh0YWItPndlYlZpZXcsICJs
b2FkLWZhaWxlZC13aXRoLXRscy1lcnJvcnMiLCBHX0NBTExCQUNLKGxvYWRGYWlsZWRXaXRoVExT
ZXJyb3JzKSwgdGFiKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KHRhYi0+d2ViVmlldywgInBlcm1p
c3Npb24tcmVxdWVzdCIsIEdfQ0FMTEJBQ0soZGVjaWRlUGVybWlzc2lvblJlcXVlc3QpLCB0YWIp
OwogICAgIGdfc2lnbmFsX2Nvbm5lY3QodGFiLT53ZWJWaWV3LCAicnVuLWNvbG9yLWNob29zZXIi
LCBHX0NBTExCQUNLKHJ1bkNvbG9yQ2hvb3NlckNhbGxiYWNrKSwgdGFiKTsKKyNlbmRpZgogCiAg
ICAgV2ViS2l0V2ViSW5zcGVjdG9yICppbnNwZWN0b3IgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2lu
c3BlY3Rvcih0YWItPndlYlZpZXcpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QoaW5zcGVjdG9yLCAi
b3Blbi13aW5kb3ciLCBHX0NBTExCQUNLKGluc3BlY3Rvck9wZW5lZEluV2luZG93KSwgdGFiKTsK
QEAgLTU2MiwxOSArNTcxLDIyIEBAIHZvaWQgYnJvd3Nlcl90YWJfdG9nZ2xlX2luc3BlY3RvcihC
cm93c2VyVGFiICp0YWIpCiB2b2lkIGJyb3dzZXJfdGFiX3N0YXJ0X3NlYXJjaChCcm93c2VyVGFi
ICp0YWIpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChCUk9XU0VSX0lTX1RBQih0YWIpKTsKLQor
I2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKICAgICBpZiAoIWd0a193aWRnZXRfZ2V0
X3Zpc2libGUoR1RLX1dJREdFVCh0YWItPnNlYXJjaEJhcikpKQogICAgICAgICBicm93c2VyX3Nl
YXJjaF9iYXJfb3Blbih0YWItPnNlYXJjaEJhcik7CisjZW5kaWYKIH0KIAogdm9pZCBicm93c2Vy
X3RhYl9zdG9wX3NlYXJjaChCcm93c2VyVGFiICp0YWIpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFp
bChCUk9XU0VSX0lTX1RBQih0YWIpKTsKLQorI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwg
MCkKICAgICBpZiAoZ3RrX3dpZGdldF9nZXRfdmlzaWJsZShHVEtfV0lER0VUKHRhYi0+c2VhcmNo
QmFyKSkpCiAgICAgICAgIGJyb3dzZXJfc2VhcmNoX2Jhcl9jbG9zZSh0YWItPnNlYXJjaEJhcik7
CisjZW5kaWYKIH0KIAorI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKIHZvaWQgYnJv
d3Nlcl90YWJfYWRkX2FjY2VsZXJhdG9ycyhCcm93c2VyVGFiICp0YWIsIEd0a0FjY2VsR3JvdXAg
KmFjY2VsR3JvdXApCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChCUk9XU0VSX0lTX1RBQih0YWIp
KTsKQEAgLTU4Miw2ICs1OTQsNyBAQCB2b2lkIGJyb3dzZXJfdGFiX2FkZF9hY2NlbGVyYXRvcnMo
QnJvd3NlclRhYiAqdGFiLCBHdGtBY2NlbEdyb3VwICphY2NlbEdyb3VwKQogCiAgICAgYnJvd3Nl
cl9zZWFyY2hfYmFyX2FkZF9hY2NlbGVyYXRvcnModGFiLT5zZWFyY2hCYXIsIGFjY2VsR3JvdXAp
OwogfQorI2VuZGlmCiAKIHN0YXRpYyBnYm9vbGVhbiBmdWxsU2NyZWVuTWVzc2FnZVRpbWVvdXRD
YWxsYmFjayhCcm93c2VyVGFiICp0YWIpCiB7CkBAIC02MDcsOCArNjIwLDEwIEBAIHZvaWQgYnJv
d3Nlcl90YWJfZW50ZXJfZnVsbHNjcmVlbihCcm93c2VyVGFiICp0YWIpCiAgICAgdGFiLT5mdWxs
U2NyZWVuTWVzc2FnZUxhYmVsSWQgPSBnX3RpbWVvdXRfYWRkX3NlY29uZHMoMiwgKEdTb3VyY2VG
dW5jKWZ1bGxTY3JlZW5NZXNzYWdlVGltZW91dENhbGxiYWNrLCB0YWIpOwogICAgIGdfc291cmNl
X3NldF9uYW1lX2J5X2lkKHRhYi0+ZnVsbFNjcmVlbk1lc3NhZ2VMYWJlbElkLCAiW1dlYktpdF0g
ZnVsbFNjcmVlbk1lc3NhZ2VUaW1lb3V0Q2FsbGJhY2siKTsKIAorI2lmICFHVEtfQ0hFQ0tfVkVS
U0lPTigzLCA5OCwgMCkKICAgICB0YWItPndhc1NlYXJjaGluZ1doZW5FbnRlcmVkRnVsbHNjcmVl
biA9IGd0a193aWRnZXRfZ2V0X3Zpc2libGUoR1RLX1dJREdFVCh0YWItPnNlYXJjaEJhcikpOwog
ICAgIGJyb3dzZXJfdGFiX3N0b3Bfc2VhcmNoKHRhYik7CisjZW5kaWYKIH0KIAogdm9pZCBicm93
c2VyX3RhYl9sZWF2ZV9mdWxsc2NyZWVuKEJyb3dzZXJUYWIgKnRhYikKQEAgLTYyMiw2ICs2Mzcs
NyBAQCB2b2lkIGJyb3dzZXJfdGFiX2xlYXZlX2Z1bGxzY3JlZW4oQnJvd3NlclRhYiAqdGFiKQog
CiAgICAgZ3RrX3dpZGdldF9oaWRlKHRhYi0+ZnVsbFNjcmVlbk1lc3NhZ2VMYWJlbCk7CiAKKyNp
ZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAgaWYgKHRhYi0+d2FzU2VhcmNoaW5n
V2hlbkVudGVyZWRGdWxsc2NyZWVuKSB7CiAgICAgICAgIC8qIE9wZW5pbmcgdGhlIHNlYXJjaCBi
YXIgc3RlYWxzIHRoZSBmb2N1cy4gVXN1YWxseSwgd2Ugd2FudAogICAgICAgICAgKiB0aGlzIGJ1
dCBub3Qgd2hlbiBjb21pbmcgYmFjayBmcm9tIGZ1bGxzY3JlZW4uCkBAIC02MzEsNiArNjQ3LDcg
QEAgdm9pZCBicm93c2VyX3RhYl9sZWF2ZV9mdWxsc2NyZWVuKEJyb3dzZXJUYWIgKnRhYikKICAg
ICAgICAgYnJvd3Nlcl90YWJfc3RhcnRfc2VhcmNoKHRhYik7CiAgICAgICAgIGd0a193aW5kb3df
c2V0X2ZvY3VzKHdpbmRvdywgZm9jdXNXaWRnZXQpOwogICAgIH0KKyNlbmRpZgogfQogCiB2b2lk
IGJyb3dzZXJfdGFiX3NldF9iYWNrZ3JvdW5kX2NvbG9yKEJyb3dzZXJUYWIgKnRhYiwgR2RrUkdC
QSAqcmdiYSkKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmgg
Yi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5oCmluZGV4IGQ0NTU3Mzc0MTVjNS4u
YzUwYTgwOTdlMDI4IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRh
Yi5oCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmgKQEAgLTUxLDcgKzUx
LDkgQEAgdm9pZCBicm93c2VyX3RhYl9zZXRfc3RhdHVzX3RleHQoQnJvd3NlclRhYiosIGNvbnN0
IGNoYXIqIHRleHQpOwogdm9pZCBicm93c2VyX3RhYl90b2dnbGVfaW5zcGVjdG9yKEJyb3dzZXJU
YWIqKTsKIHZvaWQgYnJvd3Nlcl90YWJfc3RhcnRfc2VhcmNoKEJyb3dzZXJUYWIqKTsKIHZvaWQg
YnJvd3Nlcl90YWJfc3RvcF9zZWFyY2goQnJvd3NlclRhYiopOworI2lmICFHVEtfQ0hFQ0tfVkVS
U0lPTigzLCA5OCwgMCkKIHZvaWQgYnJvd3Nlcl90YWJfYWRkX2FjY2VsZXJhdG9ycyhCcm93c2Vy
VGFiKiwgR3RrQWNjZWxHcm91cCopOworI2VuZGlmCiB2b2lkIGJyb3dzZXJfdGFiX2VudGVyX2Z1
bGxzY3JlZW4oQnJvd3NlclRhYiopOwogdm9pZCBicm93c2VyX3RhYl9sZWF2ZV9mdWxsc2NyZWVu
KEJyb3dzZXJUYWIqKTsKIHZvaWQgYnJvd3Nlcl90YWJfc2V0X2JhY2tncm91bmRfY29sb3IoQnJv
d3NlclRhYiosIEdka1JHQkEqKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9C
cm93c2VyV2luZG93LmMgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCmlu
ZGV4IDIxYzNjM2QzNmI4Yi4uNTNjNTY0ZjQ1NDNkIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJv
d3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93
c2VyV2luZG93LmMKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJCcm93c2VyV2luZG93Lmgi
CiAKICNpbmNsdWRlICJCcm93c2VyRG93bmxvYWRzQmFyLmgiCisjaW5jbHVkZSAiQnJvd3Nlck1h
aW4uaCIKICNpbmNsdWRlICJCcm93c2VyU2VhcmNoQmFyLmgiCiAjaW5jbHVkZSAiQnJvd3NlclNl
dHRpbmdzRGlhbG9nLmgiCiAjaW5jbHVkZSAiQnJvd3NlclRhYi5oIgpAQCAtNDIsNyArNDMsOSBA
QCBzdHJ1Y3QgX0Jyb3dzZXJXaW5kb3cgewogCiAgICAgV2ViS2l0V2ViQ29udGV4dCAqd2ViQ29u
dGV4dDsKIAorI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKICAgICBHdGtBY2NlbEdy
b3VwICphY2NlbEdyb3VwOworI2VuZGlmCiAgICAgR3RrV2lkZ2V0ICptYWluQm94OwogICAgIEd0
a1dpZGdldCAqdG9vbGJhcjsKICAgICBHdGtXaWRnZXQgKnVyaUVudHJ5OwpAQCAtMTAwLDYgKzEw
Myw3IEBAIHN0YXRpYyB2b2lkIHJlc2V0U3RhdHVzVGV4dChHdGtXaWRnZXQgKndpZGdldCwgQnJv
d3NlcldpbmRvdyAqd2luZG93KQogICAgIGJyb3dzZXJXaW5kb3dTZXRTdGF0dXNUZXh0KHdpbmRv
dywgTlVMTCk7CiB9CiAKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiBzdGF0aWMg
dm9pZCBhY3RpdmF0ZVVyaUVudHJ5Q2FsbGJhY2soQnJvd3NlcldpbmRvdyAqd2luZG93KQogewog
ICAgIGJyb3dzZXJfd2luZG93X2xvYWRfdXJpKHdpbmRvdywgZ3RrX2VudHJ5X2dldF90ZXh0KEdU
S19FTlRSWSh3aW5kb3ctPnVyaUVudHJ5KSkpOwpAQCAtMTM5LDE1ICsxNDMsMTggQEAgc3RhdGlj
IHZvaWQgc2V0dGluZ3NDYWxsYmFjayhCcm93c2VyV2luZG93ICp3aW5kb3cpCiAgICAgZ19vYmpl
Y3RfYWRkX3dlYWtfcG9pbnRlcihHX09CSkVDVCh3aW5kb3ctPnNldHRpbmdzRGlhbG9nKSwgKGdw
b2ludGVyICopJndpbmRvdy0+c2V0dGluZ3NEaWFsb2cpOwogICAgIGd0a193aWRnZXRfc2hvdyh3
aW5kb3ctPnNldHRpbmdzRGlhbG9nKTsKIH0KKyNlbmRpZgogCiBzdGF0aWMgdm9pZCB3ZWJWaWV3
VVJJQ2hhbmdlZChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LCBHUGFyYW1TcGVjICpwc3BlYywgQnJv
d3NlcldpbmRvdyAqd2luZG93KQogeworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkK
ICAgICBjaGFyICpleHRlcm5hbFVSSSA9IGdldEV4dGVybmFsVVJJKHdlYmtpdF93ZWJfdmlld19n
ZXRfdXJpKHdlYlZpZXcpKTsKICAgICBpZiAoZXh0ZXJuYWxVUkkpIHsKICAgICAgICAgZ3RrX2Vu
dHJ5X3NldF90ZXh0KEdUS19FTlRSWSh3aW5kb3ctPnVyaUVudHJ5KSwgZXh0ZXJuYWxVUkkpOwog
ICAgICAgICBnX2ZyZWUoZXh0ZXJuYWxVUkkpOwogICAgIH0gZWxzZQogICAgICAgICBndGtfZW50
cnlfc2V0X3RleHQoR1RLX0VOVFJZKHdpbmRvdy0+dXJpRW50cnkpLCAiIik7CisjZW5kaWYKIH0K
IAogc3RhdGljIHZvaWQgd2ViVmlld1RpdGxlQ2hhbmdlZChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3
LCBHUGFyYW1TcGVjICpwc3BlYywgQnJvd3NlcldpbmRvdyAqd2luZG93KQpAQCAtMTY2LDcgKzE3
Myw5IEBAIHN0YXRpYyB2b2lkIHdlYlZpZXdUaXRsZUNoYW5nZWQoV2ViS2l0V2ViVmlldyAqd2Vi
VmlldywgR1BhcmFtU3BlYyAqcHNwZWMsIEJyb3dzCiAKIHN0YXRpYyBnYm9vbGVhbiByZXNldEVu
dHJ5UHJvZ3Jlc3MoQnJvd3NlcldpbmRvdyAqd2luZG93KQogeworI2lmICFHVEtfQ0hFQ0tfVkVS
U0lPTigzLCA5OCwgMCkKICAgICBndGtfZW50cnlfc2V0X3Byb2dyZXNzX2ZyYWN0aW9uKEdUS19F
TlRSWSh3aW5kb3ctPnVyaUVudHJ5KSwgMCk7CisjZW5kaWYKICAgICB3aW5kb3ctPnJlc2V0RW50
cnlQcm9ncmVzc1RpbWVvdXRJZCA9IDA7CiAgICAgcmV0dXJuIEZBTFNFOwogfQpAQCAtMTc0LDcg
KzE4Myw5IEBAIHN0YXRpYyBnYm9vbGVhbiByZXNldEVudHJ5UHJvZ3Jlc3MoQnJvd3NlcldpbmRv
dyAqd2luZG93KQogc3RhdGljIHZvaWQgd2ViVmlld0xvYWRQcm9ncmVzc0NoYW5nZWQoV2ViS2l0
V2ViVmlldyAqd2ViVmlldywgR1BhcmFtU3BlYyAqcHNwZWMsIEJyb3dzZXJXaW5kb3cgKndpbmRv
dykKIHsKICAgICBnZG91YmxlIHByb2dyZXNzID0gd2Via2l0X3dlYl92aWV3X2dldF9lc3RpbWF0
ZWRfbG9hZF9wcm9ncmVzcyh3ZWJWaWV3KTsKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgs
IDApCiAgICAgZ3RrX2VudHJ5X3NldF9wcm9ncmVzc19mcmFjdGlvbihHVEtfRU5UUlkod2luZG93
LT51cmlFbnRyeSksIHByb2dyZXNzKTsKKyNlbmRpZgogICAgIGlmIChwcm9ncmVzcyA9PSAxLjAp
IHsKICAgICAgICAgd2luZG93LT5yZXNldEVudHJ5UHJvZ3Jlc3NUaW1lb3V0SWQgPSBnX3RpbWVv
dXRfYWRkKDUwMCwgKEdTb3VyY2VGdW5jKXJlc2V0RW50cnlQcm9ncmVzcywgd2luZG93KTsKICAg
ICAgICAgZ19zb3VyY2Vfc2V0X25hbWVfYnlfaWQod2luZG93LT5yZXNldEVudHJ5UHJvZ3Jlc3NU
aW1lb3V0SWQsICJbV2ViS2l0XSByZXNldEVudHJ5UHJvZ3Jlc3MiKTsKQEAgLTE4Niw2ICsxOTcs
NyBAQCBzdGF0aWMgdm9pZCB3ZWJWaWV3TG9hZFByb2dyZXNzQ2hhbmdlZChXZWJLaXRXZWJWaWV3
ICp3ZWJWaWV3LCBHUGFyYW1TcGVjICpwc3BlYwogCiBzdGF0aWMgdm9pZCBkb3dubG9hZFN0YXJ0
ZWQoV2ViS2l0V2ViQ29udGV4dCAqd2ViQ29udGV4dCwgV2ViS2l0RG93bmxvYWQgKmRvd25sb2Fk
LCBCcm93c2VyV2luZG93ICp3aW5kb3cpCiB7CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4
LCAwKQogICAgIGlmICghd2luZG93LT5kb3dubG9hZHNCYXIpIHsKICAgICAgICAgd2luZG93LT5k
b3dubG9hZHNCYXIgPSBicm93c2VyX2Rvd25sb2Fkc19iYXJfbmV3KCk7CiAgICAgICAgIGd0a19i
b3hfcGFja19zdGFydChHVEtfQk9YKHdpbmRvdy0+bWFpbkJveCksIHdpbmRvdy0+ZG93bmxvYWRz
QmFyLCBGQUxTRSwgRkFMU0UsIDApOwpAQCAtMTk0LDggKzIwNiwxMCBAQCBzdGF0aWMgdm9pZCBk
b3dubG9hZFN0YXJ0ZWQoV2ViS2l0V2ViQ29udGV4dCAqd2ViQ29udGV4dCwgV2ViS2l0RG93bmxv
YWQgKmRvd25sbwogICAgICAgICBndGtfd2lkZ2V0X3Nob3cod2luZG93LT5kb3dubG9hZHNCYXIp
OwogICAgIH0KICAgICBicm93c2VyX2Rvd25sb2Fkc19iYXJfYWRkX2Rvd25sb2FkKEJST1dTRVJf
RE9XTkxPQURTX0JBUih3aW5kb3ctPmRvd25sb2Fkc0JhciksIGRvd25sb2FkKTsKKyNlbmRpZgog
fQogCisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogc3RhdGljIHZvaWQgYnJvd3Nl
cldpbmRvd0hpc3RvcnlJdGVtU2VsZWN0ZWQoQnJvd3NlcldpbmRvdyAqd2luZG93LCBHdGtNZW51
SXRlbSAqaXRlbSkKIHsKICAgICBHdGtBY3Rpb24gKmFjdGlvbiA9IGd0a19hY3RpdmF0YWJsZV9n
ZXRfcmVsYXRlZF9hY3Rpb24oR1RLX0FDVElWQVRBQkxFKGl0ZW0pKTsKQEAgLTI0MCw5ICsyNTQs
MTEgQEAgc3RhdGljIEd0a1dpZGdldCAqYnJvd3NlcldpbmRvd0NyZWF0ZUJhY2tGb3J3YXJkTWVu
dShCcm93c2VyV2luZG93ICp3aW5kb3csIEdMaXMKIAogICAgIHJldHVybiBtZW51OwogfQorI2Vu
ZGlmCiAKIHN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dVcGRhdGVOYXZpZ2F0aW9uQWN0aW9ucyhC
cm93c2VyV2luZG93ICp3aW5kb3csIFdlYktpdEJhY2tGb3J3YXJkTGlzdCAqYmFja0ZvcndhcmRs
aXN0KQogeworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKICAgICBXZWJLaXRXZWJW
aWV3ICp3ZWJWaWV3ID0gYnJvd3Nlcl90YWJfZ2V0X3dlYl92aWV3KHdpbmRvdy0+YWN0aXZlVGFi
KTsKICAgICBndGtfd2lkZ2V0X3NldF9zZW5zaXRpdmUod2luZG93LT5iYWNrSXRlbSwgd2Via2l0
X3dlYl92aWV3X2Nhbl9nb19iYWNrKHdlYlZpZXcpKTsKICAgICBndGtfd2lkZ2V0X3NldF9zZW5z
aXRpdmUod2luZG93LT5mb3J3YXJkSXRlbSwgd2Via2l0X3dlYl92aWV3X2Nhbl9nb19mb3J3YXJk
KHdlYlZpZXcpKTsKQEAgLTI1Niw2ICsyNzIsNyBAQCBzdGF0aWMgdm9pZCBicm93c2VyV2luZG93
VXBkYXRlTmF2aWdhdGlvbkFjdGlvbnMoQnJvd3NlcldpbmRvdyAqd2luZG93LCBXZWJLaXRCYQog
ICAgIGd0a19tZW51X3Rvb2xfYnV0dG9uX3NldF9tZW51KEdUS19NRU5VX1RPT0xfQlVUVE9OKHdp
bmRvdy0+Zm9yd2FyZEl0ZW0pLAogICAgICAgICBicm93c2VyV2luZG93Q3JlYXRlQmFja0Zvcndh
cmRNZW51KHdpbmRvdywgbGlzdCkpOwogICAgIGdfbGlzdF9mcmVlKGxpc3QpOworI2VuZGlmCiB9
CiAKIHN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dUcnlDbG9zZUN1cnJlbnRXZWJWaWV3KEJyb3dz
ZXJXaW5kb3cgKndpbmRvdykKQEAgLTMxNiw4ICszMzMsMTAgQEAgc3RhdGljIHZvaWQgd2ViVmll
d1JlYWR5VG9TaG93KFdlYktpdFdlYlZpZXcgKndlYlZpZXcsIEJyb3dzZXJXaW5kb3cgKndpbmRv
dykKIAogICAgIEdka1JlY3RhbmdsZSBnZW9tZXRyeTsKICAgICB3ZWJraXRfd2luZG93X3Byb3Bl
cnRpZXNfZ2V0X2dlb21ldHJ5KHdpbmRvd1Byb3BlcnRpZXMsICZnZW9tZXRyeSk7CisjaWYgIUdU
S19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAgIGlmIChnZW9tZXRyeS54ID49IDAgJiYgZ2Vv
bWV0cnkueSA+PSAwKQogICAgICAgICBndGtfd2luZG93X21vdmUoR1RLX1dJTkRPVyh3aW5kb3cp
LCBnZW9tZXRyeS54LCBnZW9tZXRyeS55KTsKKyNlbmRpZgogICAgIGlmIChnZW9tZXRyeS53aWR0
aCA+IDAgJiYgZ2VvbWV0cnkuaGVpZ2h0ID4gMCkKICAgICAgICAgZ3RrX3dpbmRvd19yZXNpemUo
R1RLX1dJTkRPVyh3aW5kb3cpLCBnZW9tZXRyeS53aWR0aCwgZ2VvbWV0cnkuaGVpZ2h0KTsKIApA
QCAtNDM5LDYgKzQ1OCw3IEBAIHN0YXRpYyBnYm9vbGVhbiBicm93c2VyV2luZG93Wm9vbU91dChC
cm93c2VyV2luZG93ICp3aW5kb3cpCiAgICAgcmV0dXJuIEZBTFNFOwogfQogCisjaWYgIUdUS19D
SEVDS19WRVJTSU9OKDMsIDk4LCAwKQogc3RhdGljIGdib29sZWFuIHNjcm9sbEV2ZW50Q2FsbGJh
Y2soV2ViS2l0V2ViVmlldyAqd2ViVmlldywgY29uc3QgR2RrRXZlbnRTY3JvbGwgKmV2ZW50LCBC
cm93c2VyV2luZG93ICp3aW5kb3cpCiB7CiAgICAgR2RrTW9kaWZpZXJUeXBlIG1vZCA9IGd0a19h
Y2NlbGVyYXRvcl9nZXRfZGVmYXVsdF9tb2RfbWFzaygpOwpAQCAtNDUxLDI1ICs0NzEsMzIgQEAg
c3RhdGljIGdib29sZWFuIHNjcm9sbEV2ZW50Q2FsbGJhY2soV2ViS2l0V2ViVmlldyAqd2ViVmll
dywgY29uc3QgR2RrRXZlbnRTY3JvbGwKIAogICAgIHJldHVybiBicm93c2VyV2luZG93Wm9vbU91
dCh3aW5kb3cpOwogfQorI2VuZGlmCiAKIHN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dVcGRhdGVa
b29tQWN0aW9ucyhCcm93c2VyV2luZG93ICp3aW5kb3cpCiB7CisjaWYgIUdUS19DSEVDS19WRVJT
SU9OKDMsIDk4LCAwKQogICAgIGd0a193aWRnZXRfc2V0X3NlbnNpdGl2ZSh3aW5kb3ctPnpvb21J
bkl0ZW0sIGJyb3dzZXJXaW5kb3dDYW5ab29tSW4od2luZG93KSk7CiAgICAgZ3RrX3dpZGdldF9z
ZXRfc2Vuc2l0aXZlKHdpbmRvdy0+em9vbU91dEl0ZW0sIGJyb3dzZXJXaW5kb3dDYW5ab29tT3V0
KHdpbmRvdykpOworI2VuZGlmCiB9CiAKIHN0YXRpYyB2b2lkIHdlYlZpZXdab29tTGV2ZWxDaGFu
Z2VkKEdPYmplY3QgKm9iamVjdCwgR1BhcmFtU3BlYyAqcGFyYW1TcGVjLCBCcm93c2VyV2luZG93
ICp3aW5kb3cpCiB7CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAgIGJyb3dz
ZXJXaW5kb3dVcGRhdGVab29tQWN0aW9ucyh3aW5kb3cpOworI2VuZGlmCiB9CiAKIHN0YXRpYyB2
b2lkIHVwZGF0ZVVyaUVudHJ5SWNvbihCcm93c2VyV2luZG93ICp3aW5kb3cpCiB7CisjaWYgIUdU
S19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAgIEd0a0VudHJ5ICplbnRyeSA9IEdUS19FTlRS
WSh3aW5kb3ctPnVyaUVudHJ5KTsKICAgICBpZiAod2luZG93LT5mYXZpY29uKQogICAgICAgICBn
dGtfZW50cnlfc2V0X2ljb25fZnJvbV9waXhidWYoZW50cnksIEdUS19FTlRSWV9JQ09OX1BSSU1B
UlksIHdpbmRvdy0+ZmF2aWNvbik7CiAgICAgZWxzZQogICAgICAgICBndGtfZW50cnlfc2V0X2lj
b25fZnJvbV9zdG9jayhlbnRyeSwgR1RLX0VOVFJZX0lDT05fUFJJTUFSWSwgR1RLX1NUT0NLX05F
Vyk7CisjZW5kaWYKIH0KIAogc3RhdGljIHZvaWQgZmF2aWNvbkNoYW5nZWQoV2ViS2l0V2ViVmll
dyAqd2ViVmlldywgR1BhcmFtU3BlYyAqcGFyYW1TcGVjLCBCcm93c2VyV2luZG93ICp3aW5kb3cp
CkBAIC00OTIsMTEgKzUxOSwxNCBAQCBzdGF0aWMgdm9pZCBmYXZpY29uQ2hhbmdlZChXZWJLaXRX
ZWJWaWV3ICp3ZWJWaWV3LCBHUGFyYW1TcGVjICpwYXJhbVNwZWMsIEJyb3dzZQogCiBzdGF0aWMg
dm9pZCB3ZWJWaWV3SXNMb2FkaW5nQ2hhbmdlZChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LCBHUGFy
YW1TcGVjICpwYXJhbVNwZWMsIEJyb3dzZXJXaW5kb3cgKndpbmRvdykKIHsKKyNpZiAhR1RLX0NI
RUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAgZ2Jvb2xlYW4gaXNMb2FkaW5nID0gd2Via2l0X3dl
Yl92aWV3X2lzX2xvYWRpbmcod2ViVmlldyk7CiAgICAgZ3RrX3Rvb2xfYnV0dG9uX3NldF9sYWJl
bChHVEtfVE9PTF9CVVRUT04od2luZG93LT5yZWxvYWRPclN0b3BCdXR0b24pLCBpc0xvYWRpbmcg
PyAiU3RvcCIgOiAiUmVsb2FkIik7CiAgICAgZ3RrX3Rvb2xfYnV0dG9uX3NldF9zdG9ja19pZChH
VEtfVE9PTF9CVVRUT04od2luZG93LT5yZWxvYWRPclN0b3BCdXR0b24pLCBpc0xvYWRpbmcgPyBH
VEtfU1RPQ0tfU1RPUCA6IEdUS19TVE9DS19SRUZSRVNIKTsKKyNlbmRpZgogfQogCisjaWYgIUdU
S19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogc3RhdGljIHZvaWQgem9vbUluQ2FsbGJhY2soQnJv
d3NlcldpbmRvdyAqd2luZG93KQogewogICAgIGJyb3dzZXJXaW5kb3dab29tSW4od2luZG93KTsK
QEAgLTUxNyw2ICs1NDcsNyBAQCBzdGF0aWMgdm9pZCBzZWFyY2hDYWxsYmFjayhCcm93c2VyV2lu
ZG93ICp3aW5kb3cpCiB7CiAgICAgYnJvd3Nlcl90YWJfc3RhcnRfc2VhcmNoKHdpbmRvdy0+YWN0
aXZlVGFiKTsKIH0KKyNlbmRpZgogCiBzdGF0aWMgdm9pZCBuZXdUYWJDYWxsYmFjayhCcm93c2Vy
V2luZG93ICp3aW5kb3cpCiB7CkBAIC02MTcsNiArNjQ4LDcgQEAgc3RhdGljIGdib29sZWFuIHBy
aW50UGFnZShCcm93c2VyV2luZG93ICp3aW5kb3csIGdwb2ludGVyIHVzZXJfZGF0YSkKICAgICBy
ZXR1cm4gVFJVRTsKIH0KIAorI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKIHN0YXRp
YyB2b2lkIGVkaXRpbmdDb21tYW5kQ2FsbGJhY2soR3RrV2lkZ2V0ICp3aWRnZXQsIEJyb3dzZXJX
aW5kb3cgKndpbmRvdykKIHsKICAgICBXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3ID0gYnJvd3Nlcl90
YWJfZ2V0X3dlYl92aWV3KHdpbmRvdy0+YWN0aXZlVGFiKTsKQEAgLTY4MSw2ICs3MTMsNyBAQCBz
dGF0aWMgdm9pZCB0eXBpbmdBdHRyaWJ1dGVzQ2hhbmdlZChXZWJLaXRFZGl0b3JTdGF0ZSAqZWRp
dG9yU3RhdGUsIEdQYXJhbVNwZWMgKgogICAgIGJyb3dzZXJXaW5kb3dFZGl0aW5nQ29tbWFuZFRv
Z2dsZUJ1dHRvblNldEFjdGl2ZSh3aW5kb3csIHdpbmRvdy0+dW5kZXJsaW5lSXRlbSwgdHlwaW5n
QXR0cmlidXRlcyAmIFdFQktJVF9FRElUT1JfVFlQSU5HX0FUVFJJQlVURV9VTkRFUkxJTkUpOwog
ICAgIGJyb3dzZXJXaW5kb3dFZGl0aW5nQ29tbWFuZFRvZ2dsZUJ1dHRvblNldEFjdGl2ZSh3aW5k
b3csIHdpbmRvdy0+c3RyaWtldGhyb3VnaEl0ZW0sIHR5cGluZ0F0dHJpYnV0ZXMgJiBXRUJLSVRf
RURJVE9SX1RZUElOR19BVFRSSUJVVEVfU1RSSUtFVEhST1VHSCk7CiB9CisjZW5kaWYKIAogc3Rh
dGljIHZvaWQgYnJvd3NlcldpbmRvd0ZpbmFsaXplKEdPYmplY3QgKmdPYmplY3QpCiB7CkBAIC02
OTMsMTAgKzcyNiwxMiBAQCBzdGF0aWMgdm9pZCBicm93c2VyV2luZG93RmluYWxpemUoR09iamVj
dCAqZ09iamVjdCkKICAgICAgICAgd2luZG93LT5mYXZpY29uID0gTlVMTDsKICAgICB9CiAKKyNp
ZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAgaWYgKHdpbmRvdy0+YWNjZWxHcm91
cCkgewogICAgICAgICBnX29iamVjdF91bnJlZih3aW5kb3ctPmFjY2VsR3JvdXApOwogICAgICAg
ICB3aW5kb3ctPmFjY2VsR3JvdXAgPSBOVUxMOwogICAgIH0KKyNlbmRpZgogCiAgICAgaWYgKHdp
bmRvdy0+cmVzZXRFbnRyeVByb2dyZXNzVGltZW91dElkKQogICAgICAgICBnX3NvdXJjZV9yZW1v
dmUod2luZG93LT5yZXNldEVudHJ5UHJvZ3Jlc3NUaW1lb3V0SWQpOwpAQCAtNzA4LDcgKzc0Myw3
IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dGaW5hbGl6ZShHT2JqZWN0ICpnT2JqZWN0KQog
ICAgIEdfT0JKRUNUX0NMQVNTKGJyb3dzZXJfd2luZG93X3BhcmVudF9jbGFzcyktPmZpbmFsaXpl
KGdPYmplY3QpOwogCiAgICAgaWYgKCF3aW5kb3dMaXN0KQotICAgICAgICBndGtfbWFpbl9xdWl0
KCk7CisgICAgICAgIGJyb3dzZXJfbWFpbl9xdWl0KCk7CiB9CiAKIHN0YXRpYyB2b2lkIGJyb3dz
ZXJXaW5kb3dEaXNwb3NlKEdPYmplY3QgKmdPYmplY3QpCkBAIC03MjUsNiArNzYwLDcgQEAgc3Rh
dGljIHZvaWQgYnJvd3NlcldpbmRvd0Rpc3Bvc2UoR09iamVjdCAqZ09iamVjdCkKIAogc3RhdGlj
IHZvaWQgYnJvd3NlcldpbmRvd1NldHVwRWRpdG9yVG9vbGJhcihCcm93c2VyV2luZG93ICp3aW5k
b3cpCiB7CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAgIEd0a1dpZGdldCAq
dG9vbGJhciA9IGd0a190b29sYmFyX25ldygpOwogICAgIGd0a19vcmllbnRhYmxlX3NldF9vcmll
bnRhdGlvbihHVEtfT1JJRU5UQUJMRSh0b29sYmFyKSwgR1RLX09SSUVOVEFUSU9OX0hPUklaT05U
QUwpOwogICAgIGd0a190b29sYmFyX3NldF9zdHlsZShHVEtfVE9PTEJBUih0b29sYmFyKSwgR1RL
X1RPT0xCQVJfQk9USF9IT1JJWik7CkBAIC04NzAsNiArOTA2LDcgQEAgc3RhdGljIHZvaWQgYnJv
d3NlcldpbmRvd1NldHVwRWRpdG9yVG9vbGJhcihCcm93c2VyV2luZG93ICp3aW5kb3cpCiAgICAg
Z3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1god2luZG93LT5tYWluQm94KSwgdG9vbGJhciwgRkFM
U0UsIEZBTFNFLCAwKTsKICAgICBndGtfYm94X3Jlb3JkZXJfY2hpbGQoR1RLX0JPWCh3aW5kb3ct
Pm1haW5Cb3gpLCB0b29sYmFyLCAxKTsKICAgICBndGtfd2lkZ2V0X3Nob3codG9vbGJhcik7Cisj
ZW5kaWYKIH0KIAogc3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd1N3aXRjaFRhYihHdGtOb3RlYm9v
ayAqbm90ZWJvb2ssIEJyb3dzZXJUYWIgKnRhYiwgZ3VpbnQgdGFiSW5kZXgsIEJyb3dzZXJXaW5k
b3cgKndpbmRvdykKQEAgLTg5Niw3ICs5MzMsOSBAQCBzdGF0aWMgdm9pZCBicm93c2VyV2luZG93
U3dpdGNoVGFiKEd0a05vdGVib29rICpub3RlYm9vaywgQnJvd3NlclRhYiAqdGFiLCBndWludAog
ICAgIFdlYktpdFdlYlZpZXcgKndlYlZpZXcgPSBicm93c2VyX3RhYl9nZXRfd2ViX3ZpZXcod2lu
ZG93LT5hY3RpdmVUYWIpOwogICAgIGlmICh3ZWJraXRfd2ViX3ZpZXdfaXNfZWRpdGFibGUod2Vi
VmlldykpIHsKICAgICAgICAgYnJvd3NlcldpbmRvd1NldHVwRWRpdG9yVG9vbGJhcih3aW5kb3cp
OworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKICAgICAgICAgZ19zaWduYWxfY29u
bmVjdCh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2VkaXRvcl9zdGF0ZSh3ZWJWaWV3KSwgIm5vdGlmeTo6
dHlwaW5nLWF0dHJpYnV0ZXMiLCBHX0NBTExCQUNLKHR5cGluZ0F0dHJpYnV0ZXNDaGFuZ2VkKSwg
d2luZG93KTsKKyNlbmRpZgogICAgIH0KICAgICB3ZWJWaWV3VVJJQ2hhbmdlZCh3ZWJWaWV3LCBO
VUxMLCB3aW5kb3cpOwogICAgIHdlYlZpZXdUaXRsZUNoYW5nZWQod2ViVmlldywgTlVMTCwgd2lu
ZG93KTsKQEAgLTkxOSw3ICs5NTgsOSBAQCBzdGF0aWMgdm9pZCBicm93c2VyV2luZG93U3dpdGNo
VGFiKEd0a05vdGVib29rICpub3RlYm9vaywgQnJvd3NlclRhYiAqdGFiLCBndWludAogICAgIGdf
c2lnbmFsX2Nvbm5lY3Qod2ViVmlldywgIm5vdGlmeTo6ZmF2aWNvbiIsIEdfQ0FMTEJBQ0soZmF2
aWNvbkNoYW5nZWQpLCB3aW5kb3cpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViVmlldywgImVu
dGVyLWZ1bGxzY3JlZW4iLCBHX0NBTExCQUNLKHdlYlZpZXdFbnRlckZ1bGxTY3JlZW4pLCB3aW5k
b3cpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViVmlldywgImxlYXZlLWZ1bGxzY3JlZW4iLCBH
X0NBTExCQUNLKHdlYlZpZXdMZWF2ZUZ1bGxTY3JlZW4pLCB3aW5kb3cpOworI2lmICFHVEtfQ0hF
Q0tfVkVSU0lPTigzLCA5OCwgMCkKICAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlZpZXcsICJzY3Jv
bGwtZXZlbnQiLCBHX0NBTExCQUNLKHNjcm9sbEV2ZW50Q2FsbGJhY2spLCB3aW5kb3cpOworI2Vu
ZGlmCiAKICAgICBXZWJLaXRCYWNrRm9yd2FyZExpc3QgKmJhY2tGb3J3YXJkbGlzdCA9IHdlYmtp
dF93ZWJfdmlld19nZXRfYmFja19mb3J3YXJkX2xpc3Qod2ViVmlldyk7CiAgICAgYnJvd3Nlcldp
bmRvd1VwZGF0ZU5hdmlnYXRpb25BY3Rpb25zKHdpbmRvdywgYmFja0ZvcndhcmRsaXN0KTsKQEAg
LTk0MSw2ICs5ODIsNyBAQCBzdGF0aWMgdm9pZCBicm93c2VyX3dpbmRvd19pbml0KEJyb3dzZXJX
aW5kb3cgKndpbmRvdykKICAgICBndGtfd2luZG93X3NldF90aXRsZShHVEtfV0lORE9XKHdpbmRv
dyksIGRlZmF1bHRXaW5kb3dUaXRsZSk7CiAgICAgZ3RrX3dpbmRvd19zZXRfZGVmYXVsdF9zaXpl
KEdUS19XSU5ET1cod2luZG93KSwgODAwLCA2MDApOwogCisjaWYgIUdUS19DSEVDS19WRVJTSU9O
KDMsIDk4LCAwKQogICAgIHdpbmRvdy0+dXJpRW50cnkgPSBndGtfZW50cnlfbmV3KCk7CiAgICAg
Z19zaWduYWxfY29ubmVjdF9zd2FwcGVkKHdpbmRvdy0+dXJpRW50cnksICJhY3RpdmF0ZSIsIEdf
Q0FMTEJBQ0soYWN0aXZhdGVVcmlFbnRyeUNhbGxiYWNrKSwgKGdwb2ludGVyKXdpbmRvdyk7CiAg
ICAgZ3RrX2VudHJ5X3NldF9pY29uX2FjdGl2YXRhYmxlKEdUS19FTlRSWSh3aW5kb3ctPnVyaUVu
dHJ5KSwgR1RLX0VOVFJZX0lDT05fUFJJTUFSWSwgRkFMU0UpOwpAQCAtMTA4OCwxMSArMTEzMCwx
MyBAQCBzdGF0aWMgdm9pZCBicm93c2VyX3dpbmRvd19pbml0KEJyb3dzZXJXaW5kb3cgKndpbmRv
dykKICAgICBndGtfdG9vbGJhcl9pbnNlcnQoR1RLX1RPT0xCQVIodG9vbGJhciksIGl0ZW0sIC0x
KTsKICAgICBndGtfd2lkZ2V0X2FkZF9hY2NlbGVyYXRvcih3aW5kb3ctPnJlbG9hZE9yU3RvcEJ1
dHRvbiwgImNsaWNrZWQiLCB3aW5kb3ctPmFjY2VsR3JvdXAsIEdES19LRVlfRjUsIDAsIEdUS19B
Q0NFTF9WSVNJQkxFKTsKICAgICBndGtfd2lkZ2V0X3Nob3cod2luZG93LT5yZWxvYWRPclN0b3BC
dXR0b24pOwotCisjZW5kaWYKICAgICBHdGtXaWRnZXQgKnZib3ggPSBndGtfYm94X25ldyhHVEtf
T1JJRU5UQVRJT05fVkVSVElDQUwsIDApOwogICAgIHdpbmRvdy0+bWFpbkJveCA9IHZib3g7Cisj
aWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAgIGd0a19ib3hfcGFja19zdGFydChH
VEtfQk9YKHZib3gpLCB0b29sYmFyLCBGQUxTRSwgRkFMU0UsIDApOwogICAgIGd0a193aWRnZXRf
c2hvdyh0b29sYmFyKTsKKyNlbmRpZgogCiAgICAgd2luZG93LT5ub3RlYm9vayA9IGd0a19ub3Rl
Ym9va19uZXcoKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KHdpbmRvdy0+bm90ZWJvb2ssICJzd2l0
Y2gtcGFnZSIsIEdfQ0FMTEJBQ0soYnJvd3NlcldpbmRvd1N3aXRjaFRhYiksIHdpbmRvdyk7CkBA
IC0xMTAwLDggKzExNDQsMTIgQEAgc3RhdGljIHZvaWQgYnJvd3Nlcl93aW5kb3dfaW5pdChCcm93
c2VyV2luZG93ICp3aW5kb3cpCiAgICAgZ19zaWduYWxfY29ubmVjdCh3aW5kb3ctPm5vdGVib29r
LCAicGFnZS1yZW1vdmVkIiwgR19DQUxMQkFDSyhicm93c2VyV2luZG93VGFiQWRkZWRPclJlbW92
ZWQpLCB3aW5kb3cpOwogICAgIGd0a19ub3RlYm9va19zZXRfc2hvd190YWJzKEdUS19OT1RFQk9P
Syh3aW5kb3ctPm5vdGVib29rKSwgRkFMU0UpOwogICAgIGd0a19ub3RlYm9va19zZXRfc2hvd19i
b3JkZXIoR1RLX05PVEVCT09LKHdpbmRvdy0+bm90ZWJvb2spLCBGQUxTRSk7CisjaWYgIUdUS19D
SEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9YKHdp
bmRvdy0+bWFpbkJveCksIHdpbmRvdy0+bm90ZWJvb2ssIFRSVUUsIFRSVUUsIDApOwogICAgIGd0
a193aWRnZXRfc2hvdyh3aW5kb3ctPm5vdGVib29rKTsKKyNlbHNlCisgICAgZ3RrX2NvbnRhaW5l
cl9hZGQoR1RLX0NPTlRBSU5FUih3aW5kb3ctPm1haW5Cb3gpLCB3aW5kb3ctPm5vdGVib29rKTsK
KyNlbmRpZgogCiAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUih3aW5kb3cpLCB2
Ym94KTsKICAgICBndGtfd2lkZ2V0X3Nob3codmJveCk7CkBAIC0xMTI1LDYgKzExNzMsNyBAQCBz
dGF0aWMgdm9pZCBicm93c2VyV2luZG93U2F2ZVNlc3Npb24oQnJvd3NlcldpbmRvdyAqd2luZG93
KQogICAgIGdfYnl0ZXNfdW5yZWYoYnl0ZXMpOwogfQogCisjaWYgIUdUS19DSEVDS19WRVJTSU9O
KDMsIDk4LCAwKQogc3RhdGljIGdib29sZWFuIGJyb3dzZXJXaW5kb3dEZWxldGVFdmVudChHdGtX
aWRnZXQgKndpZGdldCwgR2RrRXZlbnRBbnkqIGV2ZW50KQogewogICAgIEJyb3dzZXJXaW5kb3cg
KndpbmRvdyA9IEJST1dTRVJfV0lORE9XKHdpZGdldCk7CkBAIC0xMTMyLDYgKzExODEsNyBAQCBz
dGF0aWMgZ2Jvb2xlYW4gYnJvd3NlcldpbmRvd0RlbGV0ZUV2ZW50KEd0a1dpZGdldCAqd2lkZ2V0
LCBHZGtFdmVudEFueSogZXZlbnQpCiAgICAgYnJvd3NlcldpbmRvd1RyeUNsb3NlKHdpbmRvdyk7
CiAgICAgcmV0dXJuIFRSVUU7CiB9CisjZW5kaWYKIAogc3RhdGljIHZvaWQgYnJvd3Nlcl93aW5k
b3dfY2xhc3NfaW5pdChCcm93c2VyV2luZG93Q2xhc3MgKmtsYXNzKQogewpAQCAtMTE0MSw4ICsx
MTkxLDEwIEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJfd2luZG93X2NsYXNzX2luaXQoQnJvd3Nlcldp
bmRvd0NsYXNzICprbGFzcykKICAgICBnb2JqZWN0Q2xhc3MtPmRpc3Bvc2UgPSBicm93c2VyV2lu
ZG93RGlzcG9zZTsKICAgICBnb2JqZWN0Q2xhc3MtPmZpbmFsaXplID0gYnJvd3NlcldpbmRvd0Zp
bmFsaXplOwogCisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAgIEd0a1dpZGdl
dENsYXNzICp3aWRnZXRDbGFzcyA9IEdUS19XSURHRVRfQ0xBU1Moa2xhc3MpOwogICAgIHdpZGdl
dENsYXNzLT5kZWxldGVfZXZlbnQgPSBicm93c2VyV2luZG93RGVsZXRlRXZlbnQ7CisjZW5kaWYK
IH0KIAogLyogUHVibGljIEFQSS4gKi8KQEAgLTExNTEsNyArMTIwMywxMCBAQCBHdGtXaWRnZXQg
KmJyb3dzZXJfd2luZG93X25ldyhHdGtXaW5kb3cgKnBhcmVudCwgV2ViS2l0V2ViQ29udGV4dCAq
d2ViQ29udGV4dCkKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRF
WFQod2ViQ29udGV4dCksIE5VTEwpOwogCiAgICAgQnJvd3NlcldpbmRvdyAqd2luZG93ID0gQlJP
V1NFUl9XSU5ET1coZ19vYmplY3RfbmV3KEJST1dTRVJfVFlQRV9XSU5ET1csCi0gICAgICAgICJ0
eXBlIiwgR1RLX1dJTkRPV19UT1BMRVZFTCwgTlVMTCkpOworI2lmICFHVEtfQ0hFQ0tfVkVSU0lP
TigzLCA5OCwgMCkKKyAgICAgICAgInR5cGUiLCBHVEtfV0lORE9XX1RPUExFVkVMLAorI2VuZGlm
CisgICAgICAgIE5VTEwpKTsKIAogICAgIHdpbmRvdy0+d2ViQ29udGV4dCA9IHdlYkNvbnRleHQ7
CiAgICAgZ19zaWduYWxfY29ubmVjdCh3aW5kb3ctPndlYkNvbnRleHQsICJkb3dubG9hZC1zdGFy
dGVkIiwgR19DQUxMQkFDSyhkb3dubG9hZFN0YXJ0ZWQpLCB3aW5kb3cpOwpAQCAtMTE4MSwxMSAr
MTIzNiwxNSBAQCB2b2lkIGJyb3dzZXJfd2luZG93X2FwcGVuZF92aWV3KEJyb3dzZXJXaW5kb3cg
KndpbmRvdywgV2ViS2l0V2ViVmlldyAqd2ViVmlldykKICAgICB9CiAKICAgICBHdGtXaWRnZXQg
KnRhYiA9IGJyb3dzZXJfdGFiX25ldyh3ZWJWaWV3KTsKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04o
MywgOTgsIDApCiAgICAgaWYgKGd0a193aWRnZXRfZ2V0X2FwcF9wYWludGFibGUoR1RLX1dJREdF
VCh3aW5kb3cpKSkKICAgICAgICAgYnJvd3Nlcl90YWJfc2V0X2JhY2tncm91bmRfY29sb3IoQlJP
V1NFUl9UQUIodGFiKSwgJndpbmRvdy0+YmFja2dyb3VuZENvbG9yKTsKICAgICBicm93c2VyX3Rh
Yl9hZGRfYWNjZWxlcmF0b3JzKEJST1dTRVJfVEFCKHRhYiksIHdpbmRvdy0+YWNjZWxHcm91cCk7
CisjZW5kaWYKICAgICBndGtfbm90ZWJvb2tfYXBwZW5kX3BhZ2UoR1RLX05PVEVCT09LKHdpbmRv
dy0+bm90ZWJvb2spLCB0YWIsIGJyb3dzZXJfdGFiX2dldF90aXRsZV93aWRnZXQoQlJPV1NFUl9U
QUIodGFiKSkpOworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKICAgICBndGtfY29u
dGFpbmVyX2NoaWxkX3NldChHVEtfQ09OVEFJTkVSKHdpbmRvdy0+bm90ZWJvb2spLCB0YWIsICJ0
YWItZXhwYW5kIiwgVFJVRSwgTlVMTCk7CisjZW5kaWYKICAgICBndGtfd2lkZ2V0X3Nob3codGFi
KTsKIH0KIApAQCAtMTIzOCwxMiArMTI5NywxNCBAQCB2b2lkIGJyb3dzZXJfd2luZG93X3NldF9i
YWNrZ3JvdW5kX2NvbG9yKEJyb3dzZXJXaW5kb3cgKndpbmRvdywgR2RrUkdCQSAqcmdiYSkKIAog
ICAgIHdpbmRvdy0+YmFja2dyb3VuZENvbG9yID0gKnJnYmE7CiAKKyNpZiAhR1RLX0NIRUNLX1ZF
UlNJT04oMywgOTgsIDApCiAgICAgR2RrVmlzdWFsICpyZ2JhVmlzdWFsID0gZ2RrX3NjcmVlbl9n
ZXRfcmdiYV92aXN1YWwoZ3RrX3dpbmRvd19nZXRfc2NyZWVuKEdUS19XSU5ET1cod2luZG93KSkp
OwogICAgIGlmICghcmdiYVZpc3VhbCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZ3RrX3dpZGdl
dF9zZXRfdmlzdWFsKEdUS19XSURHRVQod2luZG93KSwgcmdiYVZpc3VhbCk7CiAgICAgZ3RrX3dp
ZGdldF9zZXRfYXBwX3BhaW50YWJsZShHVEtfV0lER0VUKHdpbmRvdyksIFRSVUUpOworI2VuZGlm
CiB9CiAKIHN0YXRpYyBCcm93c2VyV2luZG93ICpmaW5kQWN0aXZlV2luZG93KHZvaWQpCkBAIC0x
Mjc4LDcgKzEzMzksOSBAQCBXZWJLaXRXZWJWaWV3ICpicm93c2VyX3dpbmRvd19nZXRfb3JfY3Jl
YXRlX3dlYl92aWV3X2Zvcl9hdXRvbWF0aW9uKHZvaWQpCiAgICAgICAgICJpcy1jb250cm9sbGVk
LWJ5LWF1dG9tYXRpb24iLCBUUlVFLAogICAgICAgICBOVUxMKSk7CiAgICAgR3RrV2lkZ2V0ICpu
ZXdXaW5kb3cgPSBicm93c2VyX3dpbmRvd19uZXcoR1RLX1dJTkRPVyh3aW5kb3cpLCB3aW5kb3ct
PndlYkNvbnRleHQpOworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKICAgICBndGtf
d2luZG93X3NldF9mb2N1c19vbl9tYXAoR1RLX1dJTkRPVyhuZXdXaW5kb3cpLCBGQUxTRSk7Cisj
ZW5kaWYKICAgICBicm93c2VyX3dpbmRvd19hcHBlbmRfdmlldyhCUk9XU0VSX1dJTkRPVyhuZXdX
aW5kb3cpLCBuZXdXZWJWaWV3KTsKICAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF91cmkobmV3V2Vi
VmlldywgImFib3V0OmJsYW5rIik7CiAgICAgZ3RrX3dpZGdldF9zaG93KG5ld1dpbmRvdyk7CmRp
ZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9N
aW5pQnJvd3Nlci9ndGsvQ01ha2VMaXN0cy50eHQKaW5kZXggZjBhYTY1YjI4OGVkLi5kZmM4NDEz
NWZkYjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9DTWFrZUxpc3RzLnR4dAor
KysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQ01ha2VMaXN0cy50eHQKQEAgLTgsNiArOCw4IEBA
IHNldChNaW5pQnJvd3Nlcl9TT1VSQ0VTCiAgICAgQnJvd3NlckNlbGxSZW5kZXJlclZhcmlhbnQu
aAogICAgIEJyb3dzZXJEb3dubG9hZHNCYXIuYwogICAgIEJyb3dzZXJEb3dubG9hZHNCYXIuaAor
ICAgIEJyb3dzZXJNYWluLmMKKyAgICBCcm93c2VyTWFpbi5oCiAgICAgQnJvd3NlclNlYXJjaEJh
ci5jCiAgICAgQnJvd3NlclNlYXJjaEJhci5oCiAgICAgQnJvd3NlclNldHRpbmdzRGlhbG9nLmMK
QEAgLTI0LDYgKzI2LDcgQEAgc2V0KE1pbmlCcm93c2VyX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RP
UklFUwogICAgICR7TWluaUJyb3dzZXJfREVSSVZFRF9TT1VSQ0VTX0RJUn0KICAgICAke0RFUklW
RURfU09VUkNFU19XRUJLSVQyR1RLX0RJUn0KICAgICAke0ZPUldBUkRJTkdfSEVBREVSU19XRUJL
SVQyR1RLX0RJUn0KKyAgICAke0ZPUldBUkRJTkdfSEVBREVSU19XRUJLSVQyR1RLX1ZFUlNJT05F
RF9ESVJ9CiAgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfQogICAgICR7Q01BS0VfU09VUkNF
X0RJUn0vU291cmNlCiApCkBAIC01Niw3ICs1OSwxMiBAQCBhZGRfY3VzdG9tX2NvbW1hbmQoCiAg
ICAgQ09NTUFORCBnbGliLWdlbm1hcnNoYWwgLS1wcmVmaXg9YnJvd3Nlcl9tYXJzaGFsICR7TWlu
aUJyb3dzZXJfRElSfS9icm93c2VyLW1hcnNoYWwubGlzdCAtLWhlYWRlciA+ICR7TWluaUJyb3dz
ZXJfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQnJvd3Nlck1hcnNoYWwuaAogICAgIFZFUkJBVElNKQog
Ci1zZXQoTWluaUJyb3dzZXJfUFJJVkFURV9ERUZJTklUSU9OUyBHREtfVkVSU0lPTl9NSU5fUkVR
VUlSRUQ9R0RLX1ZFUlNJT05fM182KQoraWYgKFVTRV9HVEs0KQorICAgIHNldChNaW5pQnJvd3Nl
cl9QUklWQVRFX0RFRklOSVRJT05TIEdES19WRVJTSU9OX01JTl9SRVFVSVJFRD1HREtfVkVSU0lP
Tl8zXzkyKQorZWxzZSAoKQorICAgIHNldChNaW5pQnJvd3Nlcl9QUklWQVRFX0RFRklOSVRJT05T
IEdES19WRVJTSU9OX01JTl9SRVFVSVJFRD1HREtfVkVSU0lPTl8zXzIyKQorZW5kaWYgKCkKKwog
aWYgKERFVkVMT1BFUl9NT0RFKQogICAgIGxpc3QoQVBQRU5EIE1pbmlCcm93c2VyX1BSSVZBVEVf
REVGSU5JVElPTlMgLURXRUJLSVRfSU5KRUNURURfQlVORExFX1BBVEg9IiR7Q01BS0VfTElCUkFS
WV9PVVRQVVRfRElSRUNUT1JZfSIpCiBlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJy
b3dzZXIvZ3RrL21haW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9tYWluLmMKaW5kZXggOTJj
OWE0MzNjNjRlLi5lN2U3ZWQ2NDUzZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0
ay9tYWluLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL21haW4uYwpAQCAtMjcsNiArMjcs
NyBAQAogCiAjaW5jbHVkZSAiY21ha2Vjb25maWcuaCIKIAorI2luY2x1ZGUgIkJyb3dzZXJNYWlu
LmgiCiAjaW5jbHVkZSAiQnJvd3NlcldpbmRvdy5oIgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaWYg
RU5BQkxFX1dFQl9BVURJTyB8fCBFTkFCTEVfVklERU8KQEAgLTUwNCwxMSArNTA1LDE3IEBAIGlu
dCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgZ19zZXRlbnYoIldFQktJVF9JTkpF
Q1RFRF9CVU5ETEVfUEFUSCIsIFdFQktJVF9JTkpFQ1RFRF9CVU5ETEVfUEFUSCwgRkFMU0UpOwog
I2VuZGlmCiAKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKKyAgICBndGtfaW5pdCgp
OworI2Vsc2UKICAgICBndGtfaW5pdCgmYXJnYywgJmFyZ3YpOworI2VuZGlmCiAKICAgICBHT3B0
aW9uQ29udGV4dCAqY29udGV4dCA9IGdfb3B0aW9uX2NvbnRleHRfbmV3KE5VTEwpOwogICAgIGdf
b3B0aW9uX2NvbnRleHRfYWRkX21haW5fZW50cmllcyhjb250ZXh0LCBjb21tYW5kTGluZU9wdGlv
bnMsIDApOworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKICAgICBnX29wdGlvbl9j
b250ZXh0X2FkZF9ncm91cChjb250ZXh0LCBndGtfZ2V0X29wdGlvbl9ncm91cChUUlVFKSk7Cisj
ZW5kaWYKICNpZiBFTkFCTEVfV0VCX0FVRElPIHx8IEVOQUJMRV9WSURFTwogICAgIGdfb3B0aW9u
X2NvbnRleHRfYWRkX2dyb3VwKGNvbnRleHQsIGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXAoKSk7
CiAjZW5kaWYKQEAgLTU0Myw3ICs1NTAsMTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFy
Z3ZbXSkKIAogICAgIFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlciAqbWFuYWdlciA9IChwcml2YXRl
TW9kZSB8fCBhdXRvbWF0aW9uTW9kZSkgPyB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfbmV3
X2VwaGVtZXJhbCgpIDogd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX25ldyhOVUxMKTsKICAg
ICBXZWJLaXRXZWJDb250ZXh0ICp3ZWJDb250ZXh0ID0gZ19vYmplY3RfbmV3KFdFQktJVF9UWVBF
X1dFQl9DT05URVhULCAid2Vic2l0ZS1kYXRhLW1hbmFnZXIiLCBtYW5hZ2VyLCAicHJvY2Vzcy1z
d2FwLW9uLWNyb3NzLXNpdGUtbmF2aWdhdGlvbi1lbmFibGVkIiwgVFJVRSwKLSAgICAgICAgInVz
ZS1zeXN0ZW0tYXBwZWFyYW5jZS1mb3Itc2Nyb2xsYmFycyIsIEZBTFNFLCBOVUxMKTsKKyNpZiAh
R1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCisgICAgICAgICJ1c2Utc3lzdGVtLWFwcGVhcmFu
Y2UtZm9yLXNjcm9sbGJhcnMiLCBGQUxTRSwKKyNlbmRpZgorICAgICAgICBOVUxMKTsKICAgICBn
X29iamVjdF91bnJlZihtYW5hZ2VyKTsKIAogICAgIGlmIChjb29raWVzUG9saWN5KSB7CkBAIC02
MTEsOCArNjIxLDEwIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgICAg
IGdfb2JqZWN0X3NldChndGtfd2lkZ2V0X2dldF9zZXR0aW5ncyhHVEtfV0lER0VUKG1haW5XaW5k
b3cpKSwgImd0ay1hcHBsaWNhdGlvbi1wcmVmZXItZGFyay10aGVtZSIsIFRSVUUsIE5VTEwpOwog
ICAgIGlmIChmdWxsU2NyZWVuKQogICAgICAgICBndGtfd2luZG93X2Z1bGxzY3JlZW4oR1RLX1dJ
TkRPVyhtYWluV2luZG93KSk7CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAg
IGVsc2UgaWYgKGdlb21ldHJ5KQogICAgICAgICBndGtfd2luZG93X3BhcnNlX2dlb21ldHJ5KEdU
S19XSU5ET1cobWFpbldpbmRvdyksIGdlb21ldHJ5KTsKKyNlbmRpZgogCiAgICAgaWYgKGJhY2tn
cm91bmRDb2xvcikKICAgICAgICAgYnJvd3Nlcl93aW5kb3dfc2V0X2JhY2tncm91bmRfY29sb3Io
bWFpbldpbmRvdywgYmFja2dyb3VuZENvbG9yKTsKQEAgLTY0Nyw3ICs2NTksNyBAQCBpbnQgbWFp
bihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgIGdfY2xlYXJfb2JqZWN0KCZ3ZWJraXRTZXR0
aW5ncyk7CiAgICAgZ19jbGVhcl9vYmplY3QoJnVzZXJDb250ZW50TWFuYWdlcik7CiAKLSAgICBn
dGtfbWFpbigpOworICAgIGJyb3dzZXJfbWFpbigpOwogCiAgICAgaWYgKHByaXZhdGVNb2RlKQog
ICAgICAgICBnX29iamVjdF91bnJlZih3ZWJDb250ZXh0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Bs
YXRmb3JtR1RLLmNtYWtlIGIvVG9vbHMvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggZTlhZGU3YTY5
OWE2Li5iMzU2NDFkNzllMWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1BsYXRmb3JtR1RLLmNtYWtlCisr
KyBiL1Rvb2xzL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xLDUgKzEsOCBAQAogaWYgKERFVkVMT1BF
Ul9NT0RFKQotICAgIGFkZF9zdWJkaXJlY3RvcnkoV2ViS2l0VGVzdFJ1bm5lcikKKyAgICBpZiAo
Tk9UIFVTRV9HVEs0KQorICAgICAgICBhZGRfc3ViZGlyZWN0b3J5KFdlYktpdFRlc3RSdW5uZXIp
CisgICAgZW5kaWYgKCkKKwogICAgIGFkZF9zdWJkaXJlY3RvcnkoSW1hZ2VEaWZmKQogCiAgICAg
aWYgKEVOQUJMRV9BUElfVEVTVFMpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2NoZWNrZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIu
cHkKaW5kZXggMTNkMWQ0OGUyZTY0Li44ZmNlZjdhMjYxZTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXIucHkKQEAgLTM3NCw2ICszNzQsOCBAQCBfU0tJUFBFRF9GSUxFU19X
SVRIX1dBUk5JTkcgPSBbCiAKICAgICAjIFdlYktpdCouaCBhbmQgSlNDKi5oIGZpbGVzIGluLCBl
eGNlcHQgdGhvc2UgZW5kaW5nIGluIFByaXZhdGUuaCBhcmUgQVBJIGhlYWRlcnMsIHdoaWNoIGRv
IG5vdCBmb2xsb3cgV2ViS2l0IGNvZGluZyBzdHlsZS4KICAgICByZS5jb21waWxlKHJlLmVzY2Fw
ZShvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdKYXZhU2NyaXB0Q29yZScsICdBUEknLCAnZ2xpYicp
ICsgb3MucGF0aC5zZXApICsgcidKU0MoPyEuKlByaXZhdGVcLmgpLipcLmgkJyksCisgICAgcmUu
Y29tcGlsZShyZS5lc2NhcGUob3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0JywgJ1VJUHJv
Y2VzcycsICdBUEknLCAnZ3RrMycpICsgb3MucGF0aC5zZXApICsgcidXZWJLaXQoPyEuKlByaXZh
dGVcLmgpLipcLmgkJyksCisgICAgcmUuY29tcGlsZShyZS5lc2NhcGUob3MucGF0aC5qb2luKCdT
b3VyY2UnLCAnV2ViS2l0JywgJ1VJUHJvY2VzcycsICdBUEknLCAnZ3RrNCcpICsgb3MucGF0aC5z
ZXApICsgcidXZWJLaXQoPyEuKlByaXZhdGVcLmgpLipcLmgkJyksCiAgICAgcmUuY29tcGlsZShy
ZS5lc2NhcGUob3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0JywgJ1VJUHJvY2VzcycsICdB
UEknLCAnZ3RrJykgKyBvcy5wYXRoLnNlcCkgKyByJ1dlYktpdCg/IS4qUHJpdmF0ZVwuaCkuKlwu
aCQnKSwKICAgICByZS5jb21waWxlKHJlLmVzY2FwZShvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdX
ZWJLaXQnLCAnVUlQcm9jZXNzJywgJ0FQSScsICd3cGUnKSArIG9zLnBhdGguc2VwKSArIHInV2Vi
S2l0KD8hLipQcml2YXRlXC5oKS4qXC5oJCcpLAogICAgIHJlLmNvbXBpbGUocmUuZXNjYXBlKG9z
LnBhdGguam9pbignU291cmNlJywgJ1dlYktpdCcsICdXZWJQcm9jZXNzJywgJ0luamVjdGVkQnVu
ZGxlJywgJ0FQSScsICdndGsnKSArIG9zLnBhdGguc2VwKSArIHInV2ViS2l0KD8hLipQcml2YXRl
XC5oKS4qXC5oJCcpLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1BsYXRm
b3JtR1RLLmNtYWtlIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1BsYXRmb3JtR1RLLmNtYWtl
CmluZGV4IDYwZGQ5ZGY4MzdmMC4uYzUzOWMwNjU0MzYxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2dsaWIvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9nbGliL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC05LDYgKzksNyBAQCBsaXN0KEFQUEVORCBXZWJL
aXRHTGliQVBJVGVzdHNfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICR7REVSSVZFRF9TT1VSQ0VT
X0pBVkFTQ1JJUENPUkVHVEtfRElSfQogICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtf
RElSfQogICAgICR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJVDJHVEtfRElSfQorICAgICR7Rk9S
V0FSRElOR19IRUFERVJTX1dFQktJVDJHVEtfVkVSU0lPTkVEX0RJUn0KICAgICAke0ZPUldBUkRJ
TkdfSEVBREVSU19XRUJLSVQyR1RLX0VYVEVOU0lPTl9ESVJ9CiApCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397562</attachid>
            <date>2020-04-25 06:45:58 -0700</date>
            <delta_ts>2020-04-27 05:57:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wkgtk4.diff</filename>
            <type>text/plain</type>
            <size>202502</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA4NDM5Y2RhOWY3YjYuLjdi
YjM2MTQ4MDUwYSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDIwLTA0LTI0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KKworICAgICAgICBbR1RLNF0gTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCB3aXRo
IEdUSzQgd2l0aG91dCBlcnJvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMDk2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIERpc2FibGUgQVBJIHRlc3RzIGFuZCBHT2JqZWN0IGludHJvc3BlY3Rpb24g
d2hlbiBidWlsZGluZyB3aXRoIEdUSzQuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9u
c0dUSy5jbWFrZToKKwogMjAyMC0wNC0yMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgogCiAgICAgICAgIE1ha2UgSlNDT25seSB3b3JrIG9uIG1hY09TCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTcyYjU1OTIzNmQxLi41ODg3NDBhMDU2ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAor
MjAyMC0wNC0yNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0dUSzRdIE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgd2l0aCBHVEs0IHdpdGhv
dXQgZXJyb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTA5NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHBsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5UmVmcmVzaE1vbml0b3I6OmNyZWF0ZURlZmF1bHREaXNwbGF5UmVmcmVzaE1vbml0b3IpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0
b3JHdGsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvR2RrQ2Fpcm9VdGlsaXRp
ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0RGVmYXVsdENhaXJvRm9udE9wdGlvbnMpOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlQ3VzdG9tQ3Vyc29yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvRHJhZ0ltYWdlR3Rr
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL0dSZWZQdHJHdGsuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9HUmVmUHRyR3RrLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0dVbmlxdWVQdHJHdGsu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvR3RrVmVyc2lvbmluZy5oOgorICAgICAgICAoZ2Rr
X2V2ZW50X2NvcHkpOgorICAgICAgICAoZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKToKKyAgICAg
ICAgKGd0a193aWRnZXRfcXVldWVfcmVzaXplX25vX3JlZHJhdyk6CisgICAgICAgIChnZGtfZXZl
bnRfZ2V0X3N0YXRlKToKKyAgICAgICAgKGdka19ldmVudF9nZXRfY29vcmRzKToKKyAgICAgICAg
KGdka19ldmVudF9nZXRfcm9vdF9jb29yZHMpOgorICAgICAgICAoZ2RrX2V2ZW50X2lzX3Njcm9s
bF9zdG9wX2V2ZW50KToKKyAgICAgICAgKGdka19ldmVudF9nZXRfc2Nyb2xsX2RpcmVjdGlvbik6
CisgICAgICAgIChnZGtfZXZlbnRfZ2V0X3Njcm9sbF9kZWx0YXMpOgorICAgICAgICAoZ2RrX2V2
ZW50X2dldF9idXR0b24pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVy
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50Ojptb2RpZmllcnNDb250YWluQ2Fwc0xvY2sp
OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybVBhc3RlYm9hcmRHdGsuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjpQbGF0Zm9ybVBhc3RlYm9hcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZVRvQ2xpcGJvYXJkKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUGFzdGVib2FyZDo6cmVhZEZyb21DbGlwYm9hcmQp
OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpnZXRDdXJyZW50U2NyZWVuTW9uaXRvcik6CisKIDIwMjAtMDQtMjMgIFJvYiBC
dWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBNYWtlIENhY2hlZFJlc291cmNlTG9h
ZGVyIG1vcmUgY29uZm9ybWluZyB0byBGZXRjaCBzcGVjaWZpY2F0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCmluZGV4IDJmYjZlNTMzZTY4NC4uN2Rm
Zjc3ZDAzNmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBh
c3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9h
cmQuaApAQCAtMTI2LDcgKzEyNiw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKICAgICBSZXRhaW5QdHI8aWQ+IG1fcGFzdGVib2FyZDsKICNlbmRpZgotI2lmIFBMQVRGT1JN
KEdUSykKKyNpZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkKICAgICBHdGtDbGlwYm9hcmQq
IG1fY2xpcGJvYXJkOwogI2VuZGlmCiAjaWYgVVNFKExJQldQRSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3Bw
CmluZGV4IDc2YTIwODEzYTY1NS4uNWQ2ZTUzNDkyZDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAK
QEAgLTUwLDcgKzUwLDcgQEAgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gRGlzcGxheVJl
ZnJlc2hNb25pdG9yOjpjcmVhdGVEZWZhdWx0RGlzcGxheVJlZnJlc2gKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIHJldHVybiBEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OmNyZWF0ZShk
aXNwbGF5SUQpOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykg
JiYgIVVTRShHVEs0KQogICAgIHJldHVybiBEaXNwbGF5UmVmcmVzaE1vbml0b3JHdGs6OmNyZWF0
ZShkaXNwbGF5SUQpOwogI2VuZGlmCiAgICAgVU5VU0VEX1BBUkFNKGRpc3BsYXlJRCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGlzcGxheVJlZnJl
c2hNb25pdG9yR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9E
aXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuY3BwCmluZGV4IDA5YThiODVkODBhZi4uZmI0YjU0Zjc0
NDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGlz
cGxheVJlZnJlc2hNb25pdG9yR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ndGsvRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrLmNwcApAQCAtMjYsNyArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRpc3BsYXlSZWZyZXNoTW9uaXRvckd0
ay5oIgogCi0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikK
KyNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKSAmJiAhVVNF
KEdUSzQpCiAKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4K
QEAgLTk0LDQgKzk0LDQgQEAgdm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JHdGs6OmRpc3BsYXlM
aW5rRmlyZWQoKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoUkVR
VUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorI2VuZGlmIC8vIFVTRShSRVFV
RVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpICYmICFVU0UoR1RLNCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVz
aE1vbml0b3JHdGsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNw
bGF5UmVmcmVzaE1vbml0b3JHdGsuaAppbmRleCA5YmQxMzU3YWEzZTguLmUyYTBlNGM1MGUzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0Rpc3BsYXlS
ZWZyZXNoTW9uaXRvckd0ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJh
Z21hIG9uY2UKIAotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklU
T1IpCisjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikgJiYg
IVVTRShHVEs0KQogCiAjaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yLmgiCiAKQEAgLTUz
LDQgKzUzLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYg
Ly8gVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKKyNlbmRpZiAv
LyBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKSAmJiAhVVNFKEdU
SzQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvR2Rr
Q2Fpcm9VdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L0dka0NhaXJvVXRpbGl0aWVzLmNwcAppbmRleCBkMmI0MGNhYWRkMzYuLjBlYzFkYzg0NzAyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0dka0NhaXJv
VXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsv
R2RrQ2Fpcm9VdGlsaXRpZXMuY3BwCkBAIC0zOCwxMCArMzgsMTIgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjb25zdCBjYWlyb19mb250X29wdGlvbnNfdCogZ2V0RGVmYXVsdENhaXJvRm9udE9w
dGlvbnMoKQogeworI2lmICFVU0UoR1RLNCkKICAgICBpZiAoYXV0byogc2NyZWVuID0gZ2RrX3Nj
cmVlbl9nZXRfZGVmYXVsdCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBvcHRpb25zID0gZ2RrX3Nj
cmVlbl9nZXRfZm9udF9vcHRpb25zKHNjcmVlbikpCiAgICAgICAgICAgICByZXR1cm4gb3B0aW9u
czsKICAgICB9CisjZW5kaWYKIAogICAgIHN0YXRpYyBjYWlyb19mb250X29wdGlvbnNfdCogb3B0
aW9uczsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgZmxhZzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAKaW5kZXggMmExYWFlZTEyZTk1Li4xYmEzZjI1ZGY4MDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwCkBAIC02Myw4ICs2
MywxNCBAQCBzdGF0aWMgR1JlZlB0cjxHZGtDdXJzb3I+IGNyZWF0ZUN1c3RvbUN1cnNvcihJbWFn
ZSogaW1hZ2UsIGNvbnN0IEludFBvaW50JiBob3RTcAogCiAjaWYgVVNFKEdUSzQpCiAgICAgQVNT
RVJUKGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2Zvcm1hdChzdXJmYWNlLmdldCgpKSA9PSBDQUlS
T19GT1JNQVRfQVJHQjMyKTsKLSAgICBhdXRvIHRleHR1cmUgPSBhZG9wdEdSZWYoZ2RrX21lbW9y
eV90ZXh0dXJlX25ldyhjYWlyb19pbWFnZV9zdXJmYWNlX2dldF93aWR0aChzdXJmYWNlLmdldCgp
KSwgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfaGVpZ2h0KHN1cmZhY2UuZ2V0KCkpLAotICAgICAg
ICBHREtfTUVNT1JZX0E4UjhHOEI4X1BSRU1VTFRJUExJRUQsIGNhaXJvX2ltYWdlX3N1cmZhY2Vf
Z2V0X2RhdGEoc3VyZmFjZS5nZXQoKSksIGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShz
dXJmYWNlLmdldCgpKSkpOworICAgIGF1dG8gd2lkdGggPSBjYWlyb19pbWFnZV9zdXJmYWNlX2dl
dF93aWR0aChzdXJmYWNlLmdldCgpKTsKKyAgICBhdXRvIGhlaWdodCA9IGNhaXJvX2ltYWdlX3N1
cmZhY2VfZ2V0X2hlaWdodChzdXJmYWNlLmdldCgpKTsKKyAgICBhdXRvIHN0cmlkZSA9IGNhaXJv
X2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShzdXJmYWNlLmdldCgpKTsKKyAgICBHUmVmUHRyPEdC
eXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoZ19ieXRlc19uZXdfd2l0aF9mcmVlX2Z1bmMoY2Fpcm9f
aW1hZ2Vfc3VyZmFjZV9nZXRfZGF0YShzdXJmYWNlLmdldCgpKSwgaGVpZ2h0ICogc3RyaWRlLAor
ICAgICAgICBbXShncG9pbnRlciBkYXRhKSB7CisgICAgICAgICAgICBjYWlyb19zdXJmYWNlX2Rl
c3Ryb3koc3RhdGljX2Nhc3Q8Y2Fpcm9fc3VyZmFjZV90Kj4oZGF0YSkpOworICAgICAgICB9LCBz
dXJmYWNlLmxlYWtSZWYoKSkpOworICAgIGF1dG8gdGV4dHVyZSA9IGFkb3B0R1JlZihnZGtfbWVt
b3J5X3RleHR1cmVfbmV3KHdpZHRoLCBoZWlnaHQsIEdES19NRU1PUllfQThSOEc4QjhfUFJFTVVM
VElQTElFRCwgYnl0ZXMuZ2V0KCksIHN0cmlkZSkpOwogICAgIHJldHVybiBhZG9wdEdSZWYoZ2Rr
X2N1cnNvcl9uZXdfZnJvbV90ZXh0dXJlKHRleHR1cmUuZ2V0KCksIGVmZmVjdGl2ZUhvdFNwb3Qu
eCgpLCBlZmZlY3RpdmVIb3RTcG90LnkoKSwgZmFsbGJhY2tDdXJzb3IoKS5nZXQoKSkpOwogI2Vs
c2UKICAgICByZXR1cm4gYWRvcHRHUmVmKGdka19jdXJzb3JfbmV3X2Zyb21fc3VyZmFjZShnZGtf
ZGlzcGxheV9nZXRfZGVmYXVsdCgpLCBzdXJmYWNlLmdldCgpLCBlZmZlY3RpdmVIb3RTcG90Lngo
KSwgZWZmZWN0aXZlSG90U3BvdC55KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0RyYWdJbWFnZUd0ay5jcHAKaW5kZXggODQ1ZmRhYWVhNmMwLi42YTFhNzNmOWQ3ZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3BwCkBAIC03Miw4ICs3
MiwxMCBAQCBEcmFnSW1hZ2VSZWYgZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJbWFn
ZVJlZiBpbWFnZSwgZmxvYXQgZnJhY3Rpb24pCiAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKKyNpZiAhVVNFKEdUSzQpCiAgICAgaWYgKCFnZGtfc2NyZWVuX2lzX2Nv
bXBvc2l0ZWQoZ2RrX3NjcmVlbl9nZXRfZGVmYXVsdCgpKSkKICAgICAgICAgcmV0dXJuIGltYWdl
OworI2VuZGlmCiAKICAgICBSZWZQdHI8Y2Fpcm9fdD4gY29udGV4dCA9IGFkb3B0UmVmKGNhaXJv
X2NyZWF0ZShpbWFnZS5nZXQoKSkpOwogICAgIGNhaXJvX3NldF9vcGVyYXRvcihjb250ZXh0Lmdl
dCgpLCBDQUlST19PUEVSQVRPUl9ERVNUX0lOKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9HUmVmUHRyR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9HUmVmUHRyR3RrLmNwcAppbmRleCBiNzY4YzhmZGU2OGMuLjEyMGM2MjJiZWQwOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dSZWZQdHJHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HUmVmUHRyR3RrLmNwcApAQCAtMzEsNiArMzEsNyBA
QAogCiBuYW1lc3BhY2UgV1RGIHsKIAorI2lmICFVU0UoR1RLNCkKIHRlbXBsYXRlIDw+IEd0a1Rh
cmdldExpc3QqIHJlZkdQdHIoR3RrVGFyZ2V0TGlzdCogcHRyKQogewogICAgIGlmIChwdHIpCkBA
IC00Myw2ICs0NCw3IEBAIHRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEd0a1RhcmdldExpc3Qq
IHB0cikKICAgICBpZiAocHRyKQogICAgICAgICBndGtfdGFyZ2V0X2xpc3RfdW5yZWYocHRyKTsK
IH0KKyNlbmRpZgogCiAjaWYgVVNFKExJQlNFQ1JFVCkKIHRlbXBsYXRlIDw+IFNlY3JldFZhbHVl
KiByZWZHUHRyKFNlY3JldFZhbHVlKiBwdHIpCkBAIC01OSw2ICs2MSw3IEBAIHRlbXBsYXRlIDw+
IHZvaWQgZGVyZWZHUHRyKFNlY3JldFZhbHVlKiBwdHIpCiB9CiAjZW5kaWYKIAorI2lmICFVU0Uo
R1RLNCkKIHRlbXBsYXRlIDw+IEd0a1dpZGdldFBhdGgqIHJlZkdQdHIoR3RrV2lkZ2V0UGF0aCog
cHRyKQogewogICAgIGlmIChwdHIpCkBAIC03MSw1ICs3NCw2IEBAIHRlbXBsYXRlIDw+IHZvaWQg
ZGVyZWZHUHRyKEd0a1dpZGdldFBhdGgqIHB0cikKICAgICBpZiAocHRyKQogICAgICAgICBndGtf
d2lkZ2V0X3BhdGhfdW5yZWYocHRyKTsKIH0KKyNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR1JlZlB0ckd0ay5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0dSZWZQdHJHdGsuaAppbmRleCBkMjZiMDU1ZGE4MzIuLmRjYzNiNmEzZTg1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dSZWZQdHJHdGsuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR1JlZlB0ckd0ay5oCkBAIC0yNywxNiArMjcs
MjAgQEAgdHlwZWRlZiBzdHJ1Y3QgX1NlY3JldFZhbHVlIFNlY3JldFZhbHVlOwogCiBuYW1lc3Bh
Y2UgV1RGIHsKIAorI2lmICFVU0UoR1RLNCkKIHRlbXBsYXRlIDw+IEd0a1RhcmdldExpc3QqIHJl
ZkdQdHIoR3RrVGFyZ2V0TGlzdCogcHRyKTsKIHRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEd0
a1RhcmdldExpc3QqIHB0cik7CisjZW5kaWYKIAogI2lmIFVTRShMSUJTRUNSRVQpCiB0ZW1wbGF0
ZSA8PiBTZWNyZXRWYWx1ZSogcmVmR1B0cihTZWNyZXRWYWx1ZSogcHRyKTsKIHRlbXBsYXRlIDw+
IHZvaWQgZGVyZWZHUHRyKFNlY3JldFZhbHVlKiBwdHIpOwogI2VuZGlmCiAKKyNpZiAhVVNFKEdU
SzQpCiB0ZW1wbGF0ZSA8PiBHdGtXaWRnZXRQYXRoKiByZWZHUHRyKEd0a1dpZGdldFBhdGgqIHB0
cik7CiB0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHdGtXaWRnZXRQYXRoKiBwdHIpOworI2Vu
ZGlmCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dVbmlx
dWVQdHJHdGsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HVW5pcXVlUHRyR3RrLmgK
aW5kZXggZGI5NzYwYmFlNWI1Li44ODZhNzgzNGVjZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9HVW5pcXVlUHRyR3RrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0dVbmlxdWVQdHJHdGsuaApAQCAtMjUsNyArMjUsMTIgQEAKIAogbmFtZXNwYWNl
IFdURiB7CiAKKyNpZiBVU0UoR1RLNCkKKy8vIEZJWE1FOiBVc2UgR1JlZlB0ciBpbiBHVEs0LCB0
aGlzIGlzIGp1c3QgdG8gZml4IHRoZSBidWlsZCBmb3Igbm93LgorV1RGX0RFRklORV9HUFRSX0RF
TEVURVIoR2RrRXZlbnQsIGdka19ldmVudF91bnJlZikKKyNlbHNlCiBXVEZfREVGSU5FX0dQVFJf
REVMRVRFUihHZGtFdmVudCwgZ2RrX2V2ZW50X2ZyZWUpCisjZW5kaWYKIFdURl9ERUZJTkVfR1BU
Ul9ERUxFVEVSKEd0a1RyZWVQYXRoLCBndGtfdHJlZV9wYXRoX2ZyZWUpCiAKIH0gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1ZlcnNp
b25pbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtWZXJzaW9uaW5nLmgKaW5k
ZXggNzNmM2Y2ZjNhNDg0Li5hODJlZmE1ZWYzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9HdGtWZXJzaW9uaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL0d0a1ZlcnNpb25pbmcuaApAQCAtMjQsNiArMjQsMTEgQEAKIAogI2lmIFVTRShHVEs0
KQogCisjZGVmaW5lIEdES19NT0QxX01BU0sgR0RLX0FMVF9NQVNLCisKK3R5cGVkZWYgR2RrS2V5
RXZlbnQgR2RrRXZlbnRLZXk7Cit0eXBlZGVmIEdka0ZvY3VzRXZlbnQgR2RrRXZlbnRGb2N1czsK
Kwogc3RhdGljIGlubGluZSBnYm9vbGVhbgogZ3RrX3dpZGdldF9pc190b3BsZXZlbChHdGtXaWRn
ZXQqIHdpZGdldCkKIHsKQEAgLTU3LDU5ICs2Miw3NyBAQCBndGtfaW5pdF9jaGVjayhpbnQqLCBj
aGFyKioqKQogICAgIHJldHVybiBndGtfaW5pdF9jaGVjaygpOwogfQogCi0jZGVmaW5lIEdES19N
T0QxX01BU0sgR0RLX0FMVF9NQVNLCitzdGF0aWMgaW5saW5lIEdka0V2ZW50KgorZ2RrX2V2ZW50
X2NvcHkoR2RrRXZlbnQqIGV2ZW50KQoreworICAgIHJldHVybiBnZGtfZXZlbnRfcmVmKGV2ZW50
KTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUoR3Rr
V2lkZ2V0KiB3aWRnZXQsIEd0a0FsbG9jYXRpb24qIGFsbG9jYXRpb24pCit7CisgICAgZ3RrX3dp
ZGdldF9zaXplX2FsbG9jYXRlKHdpZGdldCwgYWxsb2NhdGlvbiwgLTEpOworfQorCitzdGF0aWMg
aW5saW5lIHZvaWQKK2d0a193aWRnZXRfcXVldWVfcmVzaXplX25vX3JlZHJhdyhHdGtXaWRnZXQq
IHdpZGdldCkKK3sKKyAgICBndGtfd2lkZ2V0X3F1ZXVlX3Jlc2l6ZSh3aWRnZXQpOworfQogCiBz
dGF0aWMgaW5saW5lIGdib29sZWFuCi1nZGtfZXZlbnRfZ2V0X3N0YXRlKEdka0V2ZW50ICpldmVu
dCwgR2RrTW9kaWZpZXJUeXBlICpzdGF0ZSkKK2dka19ldmVudF9nZXRfc3RhdGUoY29uc3QgR2Rr
RXZlbnQgKmV2ZW50LCBHZGtNb2RpZmllclR5cGUgKnN0YXRlKQogewotICAgICpzdGF0ZSA9IGdk
a19ldmVudF9nZXRfbW9kaWZpZXJfc3RhdGUoZXZlbnQpOworICAgICpzdGF0ZSA9IGdka19ldmVu
dF9nZXRfbW9kaWZpZXJfc3RhdGUoY29uc3RfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSk7CiAgICAg
Ly8gVGhlIEdUSzMgbWV0aG9kIHJldHVybnMgVFJVRSBpZiB0aGVyZSBpcyBhIHN0YXRlLCBvdGhl
cndpc2UKICAgICAvLyBGQUxTRS4KICAgICByZXR1cm4gISEqc3RhdGU7CiB9CiAKIHN0YXRpYyBp
bmxpbmUgZ2Jvb2xlYW4KLWdka19ldmVudF9nZXRfY29vcmRzKEdka0V2ZW50ICpldmVudCwgZG91
YmxlICp4LCBkb3VibGUgKnkpCitnZGtfZXZlbnRfZ2V0X2Nvb3Jkcyhjb25zdCBHZGtFdmVudCAq
ZXZlbnQsIGRvdWJsZSAqeCwgZG91YmxlICp5KQogewotICAgIHJldHVybiBnZGtfZXZlbnRfZ2V0
X3Bvc2l0aW9uKGV2ZW50LCB4LCB5KTsKKyAgICByZXR1cm4gZ2RrX2V2ZW50X2dldF9wb3NpdGlv
bihjb25zdF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQpLCB4LCB5KTsKIH0KIAogc3RhdGljIGlubGlu
ZSBnYm9vbGVhbgotZ2RrX2V2ZW50X2dldF9yb290X2Nvb3JkcyhHZGtFdmVudCAqZXZlbnQsIGRv
dWJsZSAqeCwgZG91YmxlICp5KQorZ2RrX2V2ZW50X2dldF9yb290X2Nvb3Jkcyhjb25zdCBHZGtF
dmVudCAqZXZlbnQsIGRvdWJsZSAqeCwgZG91YmxlICp5KQogewogICAgIC8vIEdUSzQgZG9lcyBu
b3QgcHJvdmlkZSBhIHdheSBvZiBvYnRhaW5pbmcgc2NyZWVuLXJlbGF0aXZlIGV2ZW50IGNvb3Jk
aW5hdGVzLCBhbmQgZXZlbgogICAgIC8vIG9uIFdheWxhbmQgR1RLMyBjYW5ub3Qga25vdyB3aGVy
ZSBhIHN1cmZhY2UgaXMgYW5kIHdpbGwgcmV0dXJuIHRoZSBzdXJmYWNlLXJlbGF0aXZlCiAgICAg
Ly8gY29vcmRpbmF0ZXMgYW55d2F5LCBzbyBkbyB0aGUgc2FtZSBoZXJlLgotICAgIHJldHVybiBn
ZGtfZXZlbnRfZ2V0X3Bvc2l0aW9uKGV2ZW50LCB4LCB5KTsKKyAgICByZXR1cm4gZ2RrX2V2ZW50
X2dldF9wb3NpdGlvbihjb25zdF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQpLCB4LCB5KTsKIH0KIAog
c3RhdGljIGlubGluZSBnYm9vbGVhbgotZ2RrX2V2ZW50X2lzX3Njcm9sbF9zdG9wX2V2ZW50KEdk
a0V2ZW50KiBldmVudCkKK2dka19ldmVudF9pc19zY3JvbGxfc3RvcF9ldmVudChjb25zdCBHZGtF
dmVudCogZXZlbnQpCiB7Ci0gICAgcmV0dXJuIGdka19zY3JvbGxfZXZlbnRfaXNfc3RvcChldmVu
dCk7CisgICAgcmV0dXJuIGdka19zY3JvbGxfZXZlbnRfaXNfc3RvcChjb25zdF9jYXN0PEdka0V2
ZW50Kj4oZXZlbnQpKTsKIH0KIAogc3RhdGljIGlubGluZSBnYm9vbGVhbgotZ2RrX2V2ZW50X2dl
dF9zY3JvbGxfZGlyZWN0aW9uKEdka0V2ZW50KiBldmVudCwgR2RrU2Nyb2xsRGlyZWN0aW9uKiBk
aXJlY3Rpb24pCitnZGtfZXZlbnRfZ2V0X3Njcm9sbF9kaXJlY3Rpb24oY29uc3QgR2RrRXZlbnQq
IGV2ZW50LCBHZGtTY3JvbGxEaXJlY3Rpb24qIGRpcmVjdGlvbikKIHsKLSAgICAqZGlyZWN0aW9u
ID0gZ2RrX3Njcm9sbF9ldmVudF9nZXRfZGlyZWN0aW9uKGV2ZW50KTsKKyAgICAqZGlyZWN0aW9u
ID0gZ2RrX3Njcm9sbF9ldmVudF9nZXRfZGlyZWN0aW9uKGNvbnN0X2Nhc3Q8R2RrRXZlbnQqPihl
dmVudCkpOwogICAgIC8vIFRoZSBHVEszIG1ldGhvZCByZXR1cm5zIFRSVUUgaWYgdGhlIHNjcm9s
bCBkaXJlY3Rpb24gaXMgbm90CiAgICAgLy8gR0RLX1NDUk9MTF9TTU9PVEgsIHNvIGRvIHRoZSBz
YW1lIGhlcmUuCiAgICAgcmV0dXJuICpkaXJlY3Rpb24gIT0gR0RLX1NDUk9MTF9TTU9PVEg7CiB9
CiAKIHN0YXRpYyBpbmxpbmUgZ2Jvb2xlYW4KLWdka19ldmVudF9nZXRfc2Nyb2xsX2RlbHRhcyhH
ZGtFdmVudCogZXZlbnQsIGdkb3VibGUgKngsIGdkb3VibGUgKnkpCitnZGtfZXZlbnRfZ2V0X3Nj
cm9sbF9kZWx0YXMoY29uc3QgR2RrRXZlbnQqIGV2ZW50LCBnZG91YmxlICp4LCBnZG91YmxlICp5
KQogewotICAgIGdka19zY3JvbGxfZXZlbnRfZ2V0X2RlbHRhcyhldmVudCwgeCwgeSk7CisgICAg
Z2RrX3Njcm9sbF9ldmVudF9nZXRfZGVsdGFzKGNvbnN0X2Nhc3Q8R2RrRXZlbnQqPihldmVudCks
IHgsIHkpOwogICAgIC8vIFRoZSBHVEszIG1ldGhvZCByZXR1cm5zIFRSVUUgaWYgdGhlIGV2ZW50
IGlzIGEgc21vb3RoIHNjcm9sbAogICAgIC8vIGV2ZW50LCBzbyBkbyB0aGUgc2FtZSBoZXJlLgot
ICAgIHJldHVybiBnZGtfc2Nyb2xsX2V2ZW50X2dldF9kaXJlY3Rpb24oZXZlbnQpID09IEdES19T
Q1JPTExfU01PT1RIOworICAgIHJldHVybiBnZGtfc2Nyb2xsX2V2ZW50X2dldF9kaXJlY3Rpb24o
Y29uc3RfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSkgPT0gR0RLX1NDUk9MTF9TTU9PVEg7CiB9CiAK
IHN0YXRpYyBpbmxpbmUgZ2Jvb2xlYW4KLWdka19ldmVudF9nZXRfYnV0dG9uKEdka0V2ZW50KiBl
dmVudCkKK2dka19ldmVudF9nZXRfYnV0dG9uKGNvbnN0IEdka0V2ZW50KiBldmVudCwgZ3VpbnQq
IGJ1dHRvbikKIHsKLSAgICByZXR1cm4gZ2RrX2J1dHRvbl9ldmVudF9nZXRfYnV0dG9uKGV2ZW50
KTsKKyAgICBpZiAoYnV0dG9uKQorICAgICAgICAqYnV0dG9uID0gZ2RrX2J1dHRvbl9ldmVudF9n
ZXRfYnV0dG9uKGNvbnN0X2Nhc3Q8R2RrRXZlbnQqPihldmVudCkpOworICAgIHJldHVybiB0cnVl
OwogfQogI2VuZGlmIC8vIFVTRShHVEs0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwCmluZGV4IGFmOGZmMzQyNDZiYy4uNTc0OTY2YTU5ZmJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIu
Y3BwCkBAIC0yMyw2ICsyMyw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGFz
dGVib2FyZEhlbHBlci5oIgogCisjaWYgIVVTRShHVEs0KQorCiAjaW5jbHVkZSAiQml0bWFwSW1h
Z2UuaCIKICNpbmNsdWRlICJTZWxlY3Rpb25EYXRhLmgiCiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgpA
QCAtMzE0LDUgKzMxNiw3IEBAIHZvaWQgUGFzdGVib2FyZEhlbHBlcjo6d3JpdGVDbGlwYm9hcmRD
b250ZW50cyhHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCwgY29uc3QgU2VsCiAgICAgICAgIGd0a190
YXJnZXRfdGFibGVfZnJlZSh0YWJsZSwgbnVtYmVyT2ZUYXJnZXRzKTsKIH0KIAotfQorfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gIVVTRShHVEs0KQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuaAppbmRleCA1YTM5NWU2OTVhYzIu
LjRjM2Y0NTEwODFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bh
c3RlYm9hcmRIZWxwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVi
b2FyZEhlbHBlci5oCkBAIC0yMiw4ICsyMiw5IEBACiAgKgogICovCiAKLSNpZm5kZWYgUGFzdGVi
b2FyZEhlbHBlcl9oCi0jZGVmaW5lIFBhc3RlYm9hcmRIZWxwZXJfaAorI3ByYWdtYSBvbmNlCisK
KyNpZiAhVVNFKEdUSzQpCiAKICNpbmNsdWRlICJHUmVmUHRyR3RrLmgiCiAjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+CkBAIC01OCw2ICs1OSw2IEBAIHByaXZhdGU6CiAgICAgR1JlZlB0cjxHdGtU
YXJnZXRMaXN0PiBtX3RhcmdldExpc3Q7CiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKLSNlbmRpZiAvLyBQYXN0ZWJvYXJkSGVscGVyX2gKKyNlbmRpZiAvLyAhVVNFKEdUSzQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2
ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJk
RXZlbnRHdGsuY3BwCmluZGV4IGU3NTUwOTA4MzEzOS4uMDUxNmU3MDk3M2UwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50
R3RrLmNwcApAQCAtMTM3NCw2ICsxMzc0LDcgQEAgYm9vbCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6
Om1vZGlmaWVyc0NvbnRhaW5DYXBzTG9jayh1bnNpZ25lZCBtb2RpZmllcikKICAgICAvLyB0aGUg
c2FtZSBoZXJlLiBUaGlzIHdpbGwgYWxzbyByZXR1cm4gdHJ1ZSBpbiBXYXlsYW5kIGlmIHRoZXJl
J3MgYSBjYXBzIGxvY2sga2V5LCBzbyBpdCdzIG5vdCB3b3J0aCBpdAogICAgIC8vIGNoZWNraW5n
IHRoZSBhY3R1YWwgZGlzcGxheSBoZXJlLgogICAgIHN0YXRpYyBib29sIGxvY2tNYXNrSXNDYXBz
TG9jayA9IGZhbHNlOworI2lmICFVU0UoR1RLNCkKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXpl
ZCA9IGZhbHNlOwogICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKICAgICAgICAgR1VuaXF1ZU91dFB0
cjxHZGtLZXltYXBLZXk+IGtleXM7CkBAIC0xMzg0LDYgKzEzODUsNyBAQCBib29sIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6bW9kaWZpZXJzQ29udGFpbkNhcHNMb2NrKHVuc2lnbmVkIG1vZGlmaWVy
KQogICAgICAgICBsb2NrTWFza0lzQ2Fwc0xvY2sgPSBnZGtfa2V5bWFwX2dldF9lbnRyaWVzX2Zv
cl9rZXl2YWwoZ2RrX2tleW1hcF9nZXRfZm9yX2Rpc3BsYXkoZ2RrX2Rpc3BsYXlfZ2V0X2RlZmF1
bHQoKSksIEdES19LRVlfQ2Fwc19Mb2NrLCAma2V5cy5vdXRQdHIoKSwgJmVudHJpZXNDb3VudCkg
JiYgZW50cmllc0NvdW50OwogI2VuZGlmCiAgICAgfQorI2VuZGlmCiAgICAgcmV0dXJuIGxvY2tN
YXNrSXNDYXBzTG9jazsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1BsYXRmb3JtUGFzdGVib2FyZEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUGxhdGZvcm1QYXN0ZWJvYXJkR3RrLmNwcAppbmRleCAzOGIxNWNmZWIzZDkuLjBjOTdlOWZm
M2ZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtUGFz
dGVib2FyZEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3Jt
UGFzdGVib2FyZEd0ay5jcHAKQEAgLTI4LDIxICsyOCwzMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKKyNpZiBVU0UoR1RLNCkKK1BsYXRmb3JtUGFzdGVib2FyZDo6UGxhdGZvcm1QYXN0ZWJv
YXJkKGNvbnN0IFN0cmluZyYpCit7Cit9CisjZWxzZQogUGxhdGZvcm1QYXN0ZWJvYXJkOjpQbGF0
Zm9ybVBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKICAgICA6IG1fY2xp
cGJvYXJkKGd0a19jbGlwYm9hcmRfZ2V0KGdka19hdG9tX2ludGVybihwYXN0ZWJvYXJkTmFtZS51
dGY4KCkuZGF0YSgpLCBUUlVFKSkpCiB7CiAgICAgQVNTRVJUKG1fY2xpcGJvYXJkKTsKIH0KKyNl
bmRpZgogCiB2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGVUb0NsaXBib2FyZChjb25zdCBT
ZWxlY3Rpb25EYXRhJiBzZWxlY3Rpb24sIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIHByaW1hcnlT
ZWxlY3Rpb25DbGVhcmVkKQogeworI2lmICFVU0UoR1RLNCkKICAgICBQYXN0ZWJvYXJkSGVscGVy
OjpzaW5nbGV0b24oKS53cml0ZUNsaXBib2FyZENvbnRlbnRzKG1fY2xpcGJvYXJkLCBzZWxlY3Rp
b24sIGd0a19jbGlwYm9hcmRfZ2V0KEdES19TRUxFQ1RJT05fUFJJTUFSWSkgPT0gbV9jbGlwYm9h
cmQgPyBXVEZNb3ZlKHByaW1hcnlTZWxlY3Rpb25DbGVhcmVkKSA6IG51bGxwdHIpOworI2VuZGlm
CiB9CiAKIFJlZjxTZWxlY3Rpb25EYXRhPiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRGcm9tQ2xp
cGJvYXJkKCkKIHsKICAgICBSZWY8U2VsZWN0aW9uRGF0YT4gc2VsZWN0aW9uKFNlbGVjdGlvbkRh
dGE6OmNyZWF0ZSgpKTsKKyNpZiAhVVNFKEdUSzQpCiAgICAgUGFzdGVib2FyZEhlbHBlcjo6c2lu
Z2xldG9uKCkuZ2V0Q2xpcGJvYXJkQ29udGVudHMobV9jbGlwYm9hcmQsIHNlbGVjdGlvbi5nZXQo
KSk7CisjZW5kaWYKICAgICByZXR1cm4gc2VsZWN0aW9uOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcAppbmRleCAyNWRmYjQ3MTkx
ZmEuLjRlOTc3YWEyODVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1BsYXRmb3JtU2NyZWVuR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
UGxhdGZvcm1TY3JlZW5HdGsuY3BwCkBAIC0xNjYsNiArMTY2LDkgQEAgdm9pZCBzZXRTY3JlZW5E
UElPYnNlcnZlckhhbmRsZXIoRnVuY3Rpb248dm9pZCgpPiYmIGhhbmRsZXIsIHZvaWQqIGNvbnRl
eHQpCiAKIEdka01vbml0b3IqIGdldEN1cnJlbnRTY3JlZW5Nb25pdG9yKCkKIHsKKyNpZiBVU0Uo
R1RLNCkKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbHNlCiAgICAgR2RrRGlzcGxheSogZGlzcGxh
eSA9IGdka19kaXNwbGF5X2dldF9kZWZhdWx0KCk7CiAgICAgaWYgKCFkaXNwbGF5KQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKQEAgLTE3NSw2ICsxNzgsNyBAQCBHZGtNb25pdG9yKiBnZXRDdXJy
ZW50U2NyZWVuTW9uaXRvcigpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJu
IGdka19kaXNwbGF5X2dldF9tb25pdG9yX2F0X3dpbmRvdyhkaXNwbGF5LCByb290V2luZG93KTsK
KyNlbmRpZgogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGRmMjUyZjEyZWVlLi5hMGViMjQzN2JkNTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkzIEBACisyMDIwLTA0LTI0ICBDYXJsb3MgR2FyY2lhIENhbXBv
cyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLNF0gTWFrZSBpdCBwb3NzaWJs
ZSB0byBidWlsZCB3aXRoIEdUSzQgd2l0aG91dCBlcnJvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDk2NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBpZmRlZnMgd2hlbiBuZWVkZWQgdG8gbWFr
ZSBpdCBwb3NzaWJsZSB0byBjb21wbGV0ZSBhIGJ1aWxkIHdpdGggR1RLNC4gVGhpcyB3YXkgd2Ug
Y2FuIGNvbnRpbnVlIHdvcmtpbmcgb24KKyAgICAgICAgZXZlcnkgZmVhdHVyZSBpbmRpdmlkdWFs
bHkgYW5kIGNoZWNraW5nIGl0IGFjdHVhbGx5IHdvcmtzLiBNb3ZlIHB1YmxpYyBoZWFkZXJzIGNv
bnRhaW5pbmcgQVBJIHNwZWNpZmljIHRvIEdUSzMKKyAgICAgICAgYW5kIEdUSzQgaW50byB0aGVp
ciBvd24gZ3RrMyBhbmQgZ3RrNCBkaXJlY3RvcnkuCisKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5j
bWFrZToKKyAgICAgICAgKiBTaGFyZWQvQVBJL2dsaWIvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmNw
cDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oOgorICAgICAgICAq
IFNoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdl
YldoZWVsRXZlbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvZ2xpYi9XZWJDb250ZXh0TWVudUl0ZW1H
bGliLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtR2xpYjo6V2ViQ29u
dGV4dE1lbnVJdGVtR2xpYik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbUds
aWI6OmJ1aWxkQWN0aW9uTmFtZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRN
ZW51SXRlbUdsaWI6OmNyZWF0ZUFjdGlvbklmTmVlZGVkKToKKyAgICAgICAgKiBTaGFyZWQvZ2xp
Yi9XZWJDb250ZXh0TWVudUl0ZW1HbGliLmg6CisgICAgICAgICogU2hhcmVkL2d0ay9OYXRpdmVX
ZWJLZXlib2FyZEV2ZW50R3RrLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvZ3RrL05hdGl2ZVdlYk1v
dXNlRXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpOYXRpdmVXZWJNb3VzZUV2ZW50OjpO
YXRpdmVXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvZ3RrL05hdGl2ZVdlYlRvdWNo
RXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpOYXRpdmVXZWJUb3VjaEV2ZW50OjpOYXRp
dmVXZWJUb3VjaEV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvZ3RrL05hdGl2ZVdlYldoZWVsRXZl
bnRHdGsuY3BwOgorICAgICAgICAqIFNoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6YnV0dG9uRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJF
dmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9ndGsv
V2ViRXZlbnRGYWN0b3J5Lmg6CisgICAgICAgICogU291cmNlc0dUSy50eHQ6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2dsaWIvSW5wdXRNZXRob2RGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnB1dE1ldGhv
ZEZpbHRlcjo6ZmlsdGVyS2V5RXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9J
bnB1dE1ldGhvZEZpbHRlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJ
bnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmNwcDoKKyAgICAgICAg
KGNyZWF0ZUdzdEluc3RhbGxQbHVnaW5zQ29udGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFByaXZhdGUuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRVSUNsaWVudC5jcHA6CisgICAgICAgIChVSUNsaWVudDo6c2V0V2luZG93RnJhbWVUaW1l
ckZpcmVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5j
cHA6CisgICAgICAgICh3ZWJraXRXZWJDb250ZXh0R2V0UHJvcGVydHkpOgorICAgICAgICAod2Vi
a2l0V2ViQ29udGV4dFNldFByb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9j
bGFzc19pbml0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5j
cHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3UnVuQXNNb2RhbCk6CisgICAgICAgICh3ZWJraXRX
ZWJWaWV3UG9wdWxhdGVDb250ZXh0TWVudSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
SW5wdXRNZXRob2RGaWx0ZXJHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnB1dE1ldGhvZEZp
bHRlcjo6cGxhdGZvcm1FdmVudEtleUlzS2V5UHJlc3MgY29uc3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6c2V0Q3Vyc29yKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRv
bmVXaXRoS2V5RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRl
UG9wdXBNZW51UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRl
RGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OnN0YXJ0RHJhZyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkb25l
V2l0aFRvdWNoRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6d2hlZWxF
dmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEF1dGhlbnRpY2F0aW9uRGlhbG9nLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvbkRpYWxvZy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEVtb2ppQ2hvb3Nlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0RW1vamlDaG9vc2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0SW5wdXRNZXRob2RDb250ZXh0R3RrLmNwcDoKKyAgICAgICAgKHdlYmtpdF9pbnB1dF9tZXRo
b2RfY29udGV4dF9maWx0ZXJfa2V5X2V2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHRJbXBsR3RrLmNwcDoKKyAgICAgICAgKHdlYmtpdElu
cHV0TWV0aG9kQ29udGV4dEltcGxHdGtGaWx0ZXJLZXlFdmVudCk6CisgICAgICAgICh3ZWJraXRJ
bnB1dE1ldGhvZENvbnRleHRJbXBsR3RrU2V0Q2xpZW50V2luZG93KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRQb3B1cE1lbnUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJL
aXRQb3B1cE1lbnU6OldlYktpdFBvcHVwTWVudSk6CisgICAgICAgIChXZWJLaXQ6OldlYktpdFBv
cHVwTWVudTo6c2hvd1BvcHVwTWVudSk6CisgICAgICAgIChXZWJLaXQ6OldlYktpdFBvcHVwTWVu
dTo6aGlkZVBvcHVwTWVudSk6CisgICAgICAgIChXZWJLaXQ6OldlYktpdFBvcHVwTWVudTo6Y2Fu
Y2VsVHJhY2tpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBvcHVwTWVu
dS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9uLmNw
cDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTY3JpcHREaWFsb2dHdGsuY3Bw
OgorICAgICAgICAod2Via2l0U2NyaXB0RGlhbG9nQWNjZXB0KToKKyAgICAgICAgKHdlYmtpdFNj
cmlwdERpYWxvZ0Rpc21pc3MpOgorICAgICAgICAod2Via2l0U2NyaXB0RGlhbG9nU2V0VXNlcklu
cHV0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTY3JpcHREaWFsb2dJbXBs
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTY3JpcHREaWFsb2dJbXBs
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwOgor
ICAgICAgICAoQ2xpY2tDb3VudGVyOjpjdXJyZW50Q2xpY2tDb3VudEZvckdka0J1dHRvbkV2ZW50
KToKKyAgICAgICAgKF9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGU6Ol9XZWJLaXRXZWJWaWV3QmFz
ZVByaXZhdGUpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VTZXRUb3BsZXZlbE9uU2NyZWVu
V2luZG93KToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlUmVhbGl6ZSk6CisgICAgICAgICh3
ZWJraXRXZWJWaWV3QmFzZUNvbnRhaW5lckZvcmFsbCk6CisgICAgICAgICh3ZWJraXRXZWJWaWV3
QmFzZURpc3Bvc2UpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VDb25zdHJ1Y3RlZCk6Cisg
ICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZVNpemVBbGxvY2F0ZSk6CisgICAgICAgICh3ZWJraXRX
ZWJWaWV3QmFzZUtleVByZXNzRXZlbnQpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VLZXlS
ZWxlYXNlRXZlbnQpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VTZXRFbmFibGVCYWNrRm9y
d2FyZE5hdmlnYXRpb25HZXN0dXJlKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlQmVnaW5C
YWNrU3dpcGVGb3JUZXN0aW5nKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlQ29tcGxldGVC
YWNrU3dpcGVGb3JUZXN0aW5nKToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19iYXNlX2NsYXNz
X2luaXQpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VXaWxsU3dhcFdlYlByb2Nlc3MpOgor
ICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VEaWRFeGl0V2ViUHJvY2Vzcyk6CisgICAgICAgICh3
ZWJraXRXZWJWaWV3QmFzZURpZFJlbGF1bmNoV2ViUHJvY2Vzcyk6CisgICAgICAgICh3ZWJraXRX
ZWJWaWV3QmFzZVRha2VWaWV3U25hcHNob3QpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VE
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZSk6CisgICAgICAgICh3ZWJraXRXZWJW
aWV3QmFzZURpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSk6CisgICAg
ICAgICh3ZWJraXRXZWJWaWV3QmFzZURpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUpOgorICAgICAg
ICAod2Via2l0V2ViVmlld0Jhc2VEaWRGYWlsTG9hZEZvck1haW5GcmFtZSk6CisgICAgICAgICh3
ZWJraXRXZWJWaWV3QmFzZURpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUpOgor
ICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VEaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24pOgorICAg
ICAgICAod2Via2l0V2ViVmlld0Jhc2VTaG93RW1vamlDaG9vc2VyKToKKyAgICAgICAgKHdlYmtp
dFdlYlZpZXdCYXNlUmVxdWVzdFBvaW50ZXJMb2NrKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdC
YXNlRGlkTG9zZVBvaW50ZXJMb2NrKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlU3ludGhl
c2l6ZUNvbXBvc2l0aW9uS2V5UHJlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdEaWFsb2cuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXdEaWFsb2cuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJW
aWV3R3RrLmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdBdXRoZW50aWNhdGUpOgorICAgICAg
ICAod2Via2l0V2ViVmlld1NjcmlwdERpYWxvZyk6CisgICAgICAgICh3ZWJraXRXZWJWaWV3UnVu
RmlsZUNob29zZXIpOgorICAgICAgICAod2Via2l0V2ViVmlld01heGltaXplV2luZG93KToKKyAg
ICAgICAgKHdlYmtpdFdlYlZpZXdNaW5pbWl6ZVdpbmRvdyk6CisgICAgICAgICh3ZWJraXRXZWJW
aWV3UmVzdG9yZVdpbmRvdyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGszL1dlYktpdENv
bnRleHRNZW51SXRlbS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
My9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0azQvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmg6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5oLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrNC9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5wdXRN
ZXRob2RDb250ZXh0LmguCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vZ3RrL1dlYkF1
dG9tYXRpb25TZXNzaW9uR3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNl
c3Npb246OnBsYXRmb3JtU2ltdWxhdGVNb3VzZUludGVyYWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlib2FyZEludGVyYWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2lt
dWxhdGVLZXlTZXF1ZW5jZSk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TYXZlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVj
dG9yL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybVNhdmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0
b3IvZ3RrL1dlYktpdEluc3BlY3RvcldpbmRvdy5jcHA6CisgICAgICAgICh3ZWJraXRfaW5zcGVj
dG9yX3dpbmRvd19pbml0KToKKyAgICAgICAgKHdlYmtpdEluc3BlY3RvcldpbmRvd05ldyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2NhaXJvL0JhY2tp
bmdTdG9yZUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QmFja2luZ1N0b3JlOjpjcmVhdGVC
YWNrZW5kKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9y
ZVdheWxhbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdh
eWxhbmQ6OnRyeUVuc3VyZUdMQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVk
QmFja2luZ1N0b3JlV2F5bGFuZDo6cGFpbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvQWNj
ZWxlcmF0ZWRCYWNraW5nU3RvcmVYMTEuY3BwOgorICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRl
ZEJhY2tpbmdTdG9yZVgxMTo6fkFjY2VsZXJhdGVkQmFja2luZ1N0b3JlWDExKToKKyAgICAgICAg
KFdlYktpdDo6QWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVYMTE6OnVwZGF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL2d0ay9EcmFnQW5kRHJvcEhhbmRsZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vz
cy9ndGsvRHJhZ0FuZERyb3BIYW5kbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9HZXN0
dXJlQ29udHJvbGxlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9HZXN0dXJlQ29udHJv
bGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpLZXlCaW5kaW5nVHJhbnNsYXRvcjo6S2V5QmluZGluZ1RyYW5z
bGF0b3IpOgorICAgICAgICAoV2ViS2l0OjpLZXlCaW5kaW5nVHJhbnNsYXRvcjo6Y29tbWFuZHNG
b3JLZXlFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRv
ci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvUG9pbnRlckxvY2tNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UG9pbnRlckxvY2tNYW5hZ2VyOjpsb2NrKToKKyAgICAgICAgKFdlYktp
dDo6UG9pbnRlckxvY2tNYW5hZ2VyOjp1bmxvY2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsv
UG9pbnRlckxvY2tNYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9j
a01hbmFnZXJXYXlsYW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UG9pbnRlckxvY2tNYW5hZ2Vy
V2F5bGFuZDo6bG9jayk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9ja01hbmFn
ZXJYMTEuY3BwOgorICAgICAgICAoV2ViS2l0OjpQb2ludGVyTG9ja01hbmFnZXJYMTE6OmRpZFJl
Y2VpdmVNb3Rpb25FdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tl
ckd0ay5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0TWVudVByb3h5R3Rr
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eUd0azo6c2hvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlHdGs6OnNob3dDb250ZXh0TWVudVdp
dGhJdGVtcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlHdGs6OldlYkNv
bnRleHRNZW51UHJveHlHdGspOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5
R3RrOjp+V2ViQ29udGV4dE1lbnVQcm94eUd0ayk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9X
ZWJDb250ZXh0TWVudVByb3h5R3RrLmg6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJEYXRh
TGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25HdGsuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsv
V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duR3RrLmg6CisgICAgICAgICogVUlQcm9jZXNz
L2d0ay9XZWJQYWdlUHJveHlHdGsuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUG9w
dXBNZW51UHJveHlHdGsuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51
UHJveHlHdGsuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxl
ci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2xvc2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjptYWluRnJhbWVEaWRMYXlvdXQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VYMTEuY3BwOgorICAgICAgICAoV2ViS2l0OjpB
Y2NlbGVyYXRlZFN1cmZhY2VYMTE6OkFjY2VsZXJhdGVkU3VyZmFjZVgxMSk6CisgICAgICAgIChX
ZWJLaXQ6OkFjY2VsZXJhdGVkU3VyZmFjZVgxMTo6Y3JlYXRlUGl4bWFwKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJpbnRPcGVyYXRpb25HdGs6OnByaW50KToKKwogMjAyMC0wNC0yMyAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBCb3VuY2UgZGlz
cGxheVdhc1JlZnJlc2hlZCgpIHZpYSBFdmVudERpc3BhdGNoZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNt
YWtlCmluZGV4IDc1MzljYzg5ZDc2ZC4uOTYzMWI5OWRiNjk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsu
Y21ha2UKQEAgLTgsNiArOCw3IEBAIHNldChQbHVnaW5Qcm9jZXNzX09VVFBVVF9OQU1FIFdlYktp
dFBsdWdpblByb2Nlc3MpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNf
V0VCS0lUMkdUS19BUElfRElSfSkKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtGT1JXQVJESU5HX0hF
QURFUlNfV0VCS0lUMkdUS19ESVJ9KQorZmlsZShNQUtFX0RJUkVDVE9SWSAke0ZPUldBUkRJTkdf
SEVBREVSU19XRUJLSVQyR1RLX1ZFUlNJT05FRF9ESVJ9KQogZmlsZShNQUtFX0RJUkVDVE9SWSAk
e0ZPUldBUkRJTkdfSEVBREVSU19XRUJLSVQyR1RLX0VYVEVOU0lPTl9ESVJ9KQogCiBjb25maWd1
cmVfZmlsZShVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRWZXJzaW9uLmguaW4gJHtERVJJVkVEX1NP
VVJDRVNfV0VCS0lUMkdUS19BUElfRElSfS9XZWJLaXRWZXJzaW9uLmgpCkBAIC0zMywxMSArMzQs
MjAgQEAgbGlzdChBUFBFTkQgV2ViS2l0X1VOSUZJRURfU09VUkNFX0xJU1RfRklMRVMKICAgICAi
U291cmNlc0dUSy50eHQiCiApCiAKLWxpc3QoQVBQRU5EIFdlYktpdF9NRVNTQUdFU19JTl9GSUxF
UwotICAgIFVJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIubWVzc2FnZXMuaW4KK2lmIChO
T1QgVVNFX0dUSzQpCisgICAgbGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKKyAgICAgICAgVUlQ
cm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKIAotICAgIFdlYlByb2Nlc3MvV2ViUGFn
ZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLm1lc3NhZ2VzLmluCi0pCisgICAgICAgIFVJ
UHJvY2Vzcy9ndGsvVmlld0dlc3R1cmVDb250cm9sbGVyR3RrLmNwcAorCisgICAgICAgIFdlYlBy
b2Nlc3MvV2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcAorICAgICkKKyAg
ICBsaXN0KEFQUEVORCBXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKKyAgICAgICAgVUlQcm9jZXNz
L1ZpZXdHZXN0dXJlQ29udHJvbGxlci5tZXNzYWdlcy5pbgorCisgICAgICAgIFdlYlByb2Nlc3Mv
V2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLm1lc3NhZ2VzLmluCisgICAgKQor
ZW5kaWYgKCkKIAogbGlzdChBUFBFTkQgV2ViS2l0X0RFUklWRURfU09VUkNFUwogICAgICR7REVS
SVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUuYwpA
QCAtNTUsOSArNjUsMTcgQEAgaWYgKEVOQUJMRV9XQVlMQU5EX1RBUkdFVCkKICAgICApCiBlbmRp
ZiAoKQogCitpZiAoVVNFX0dUSzQpCisgICAgc2V0KEdUS19BUElfVkVSU0lPTiA0KQorZWxzZSAo
KQorICAgIHNldChHVEtfQVBJX1ZFUlNJT04gMykKK2VuZGlmICgpCisKIHNldChXZWJLaXQyR1RL
X0lOU1RBTExFRF9IRUFERVJTCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMkdUS19BUElf
RElSfS9XZWJLaXRFbnVtVHlwZXMuaAogICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtf
QVBJX0RJUn0vV2ViS2l0VmVyc2lvbi5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJ
L2d0ayR7R1RLX0FQSV9WRVJTSU9OfS9XZWJLaXRDb250ZXh0TWVudUl0ZW0uaAorICAgICR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGske0dUS19BUElfVkVSU0lPTn0vV2ViS2l0SW5wdXRN
ZXRob2RDb250ZXh0LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEFwcGxpY2F0aW9uSW5mby5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmgKQEAgLTY4LDcgKzg2LDYgQEAgc2V0KFdlYktp
dDJHVEtfSU5TVEFMTEVEX0hFQURFUlMKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdENyZWRlbnRpYWwuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0Q29udGV4dE1lbnUuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0Q29udGV4dE1lbnVBY3Rpb25zLmgKLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29raWVNYW5hZ2VyLmgKICAgICAke1dFQktJVF9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERlZmluZXMuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTg0LDcg
KzEwMSw2IEBAIHNldChXZWJLaXQyR1RLX0lOU1RBTExFRF9IRUFERVJTCiAgICAgJHtXRUJLSVRf
RElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXIuaAogICAgICR7
V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRIaXRU
ZXN0UmVzdWx0LmgKLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdElu
cHV0TWV0aG9kQ29udGV4dC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmgKICAgICAk
e1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuaAog
ICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TWltZUluZm8uaApAQCAt
MzY1LDYgKzM4MSw3IEBAIHNldChXZWJLaXRET01fR1RLRE9DX0hFQURFUlMKICMgVGhpcyBpcyBu
ZWNlc3NhcnkgYmVjYXVzZSBvZiBhIGNvbmZsaWN0IGJldHdlZW4gdGhlIEdUSysgQVBJIFdlYktp
dFZlcnNpb24uaCBhbmQgb25lIGdlbmVyYXRlZCBieSBXZWJDb3JlLgogbGlzdChJTlNFUlQgV2Vi
S2l0X0lOQ0xVREVfRElSRUNUT1JJRVMgMAogICAgICIke0ZPUldBUkRJTkdfSEVBREVSU19XRUJL
SVQyR1RLX0RJUn0iCisgICAgIiR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJVDJHVEtfVkVSU0lP
TkVEX0RJUn0iCiAgICAgIiR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJVDJHVEtfRVhURU5TSU9O
X0RJUn0iCiAgICAgIiR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtfQVBJX0RJUn0iCiAgICAg
IiR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtfRElSfSIKQEAgLTM5Miw2ICs0MDksNyBAQCBs
aXN0KEFQUEVORCBXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9
L1VJUHJvY2Vzcy9BUEkvQy9jYWlybyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJ
L0MvZ3RrIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYiIKKyAgICAiJHtX
RUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ayR7R1RLX0FQSV9WRVJTSU9OfSIKICAgICAiJHtX
RUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ayIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvSW5z
cGVjdG9yL2dsaWIiCkBAIC01ODcsNiArNjA1LDcgQEAgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3Jp
ZXMod2Via2l0Mmd0a2luamVjdGVkYnVuZGxlIFBSSVZBVEUKICAgICAiJHtERVJJVkVEX1NPVVJD
RVNfRElSfS9JbmplY3RlZEJ1bmRsZSIKICAgICAiJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfSIK
ICAgICAiJHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lUMkdUS19ESVJ9IgorICAgICIke0ZPUldB
UkRJTkdfSEVBREVSU19XRUJLSVQyR1RLX1ZFUlNJT05FRF9ESVJ9IgogICAgICIke0RFUklWRURf
U09VUkNFU19XRUJLSVQyR1RLX0FQSV9ESVJ9IgogKQogCkBAIC02NjEsNiArNjgwLDcgQEAgaWYg
KEVOQUJMRV9JTlRST1NQRUNUSU9OKQogICAgICAgICAgICAgLUkke0ZPUldBUkRJTkdfSEVBREVS
U19ESVJ9CiAgICAgICAgICAgICAtSSR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0vSmF2YVNjcmlw
dENvcmUvZ2xpYgogICAgICAgICAgICAgLUkke0ZPUldBUkRJTkdfSEVBREVSU19XRUJLSVQyR1RL
X0RJUn0KKyAgICAgICAgICAgIC1JJHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lUMkdUS19WRVJT
SU9ORURfRElSfQogICAgICAgICAgICAgJHtXZWJLaXQyR1RLX0lOU1RBTExFRF9IRUFERVJTfQog
ICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9TaGFyZWQvQVBJL2dsaWIvKi5jcHAKICAgICAgICAg
ICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliLyouY3BwCkBAIC03MDcsNiArNzI3
LDcgQEAgaWYgKEVOQUJMRV9JTlRST1NQRUNUSU9OKQogICAgICAgICAgICAgLUkke0ZPUldBUkRJ
TkdfSEVBREVSU19ESVJ9CiAgICAgICAgICAgICAtSSR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0v
SmF2YVNjcmlwdENvcmUvZ2xpYgogICAgICAgICAgICAgLUkke0ZPUldBUkRJTkdfSEVBREVSU19X
RUJLSVQyR1RLX0RJUn0KKyAgICAgICAgICAgIC1JJHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lU
MkdUS19WRVJTSU9ORURfRElSfQogICAgICAgICAgICAgLUkke0ZPUldBUkRJTkdfSEVBREVSU19X
RUJLSVQyR1RLX0VYVEVOU0lPTl9ESVJ9CiAgICAgICAgICAgICAtSSR7V0VCS0lUX0RJUn0vV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrCiAgICAgICAgICAgICAke1dlYktpdERPTV9J
TlNUQUxMRURfSEVBREVSU30KQEAgLTcxNyw5ICs3MzgsOSBAQCBpZiAoRU5BQkxFX0lOVFJPU1BF
Q1RJT04pCiAgICAgICAgICAgICAke1dFQktJVF9ESVJ9L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRV
c2VyTWVzc2FnZS5jcHAKICAgICAgICAgICAgICR7V0VCS0lUX0RJUn0vU2hhcmVkL0FQSS9nbGli
L1dlYktpdFVSSVJlcXVlc3QuY3BwCiAgICAgICAgICAgICAke1dFQktJVF9ESVJ9L1NoYXJlZC9B
UEkvZ2xpYi9XZWJLaXRVUklSZXNwb25zZS5jcHAKKyAgICAgICAgICAgICR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzL0FQSS9ndGske0dUS19BUElfVkVSU0lPTn0vV2ViS2l0Q29udGV4dE1lbnVJdGVt
LmgKICAgICAgICAgICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29u
dGV4dE1lbnUuaAogICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRDb250ZXh0TWVudUFjdGlvbnMuaAotICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudUl0ZW0uaAogICAgICAgICAgICAgJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRIaXRUZXN0UmVzdWx0LmgKICAgICAgICAg
ICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lc3NhZ2UuaAog
ICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1
ZXN0LmgKQEAgLTc4Miw5ICs4MDMsMTEgQEAgZmlsZShXUklURSAke0NNQUtFX0JJTkFSWV9ESVJ9
L2d0a2RvYy13ZWJraXQyZ3RrLmNmZwogICAgICIgICAgICAgLUkke1dFQktJVF9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvZ3RrXG4iCiAgICAgIiAgICAgICAtSSR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJH
VEtfRElSfVxuIgogICAgICIgICAgICAgLUkke0ZPUldBUkRJTkdfSEVBREVSU19XRUJLSVQyR1RL
X0RJUn1cbiIKKyAgICAiICAgICAgIC1JJHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lUMkdUS19W
RVJTSU9ORURfRElSfVxuIgogICAgICJkb2NfZGlyPSR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jc1xuIgogICAgICJzb3VyY2VfZGlycz0ke1dFQktJVF9ESVJ9L1NoYXJlZC9BUEkv
Z2xpYlxuIgogICAgICIgICAgICAgICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xp
YlxuIgorICAgICIgICAgICAgICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrJHtH
VEtfQVBJX1ZFUlNJT059XG4iCiAgICAgIiAgICAgICAgICAgICR7V0VCS0lUX0RJUn0vVUlQcm9j
ZXNzL0FQSS9ndGtcbiIKICAgICAiICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9nbGliXG4iCiAgICAgIiAgICAgICAgICAgICR7V0VCS0lUX0RJ
Un0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrXG4iCkBAIC04MDMsNiArODI2LDcg
QEAgZmlsZShXUklURSAke0NNQUtFX0JJTkFSWV9ESVJ9L2d0a2RvYy13ZWJraXRkb20uY2ZnCiAg
ICAgIiAgICAgICAtSSR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTVxuIgogICAgICIgICAgICAgLUkke0RFUklWRURfU09VUkNFU19XRUJLSVQyR1RLX0RJ
Un1cbiIKICAgICAiICAgICAgIC1JJHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lUMkdUS19ESVJ9
XG4iCisgICAgIiAgICAgICAtSSR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJVDJHVEtfVkVSU0lP
TkVEX0RJUn1cbiIKICAgICAiZG9jX2Rpcj0ke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vZG9jc1xuIgogICAgICJzb3VyY2VfZGlycz0ke1dFQktJVF9E
SVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NXG4iCiAgICAgIiAgICAg
ICAgICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TVxuIgpAQCAtODIwLDYgKzg0NCwxMSBAQCBhZGRfY3VzdG9tX2NvbW1hbmQoCiAgICAgREVQRU5E
UyAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrCiAgICAgQ09NTUFORCBsbiAtbiAtcyAt
ZiAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrICR7Rk9SV0FSRElOR19IRUFERVJTX1dF
QktJVDJHVEtfRElSfS93ZWJraXQyCiApCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVU
ICR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJVDJHVEtfVkVSU0lPTkVEX0RJUn0vd2Via2l0Mgor
ICAgIERFUEVORFMgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ayR7R1RLX0FQSV9WRVJT
SU9OfQorICAgIENPTU1BTkQgbG4gLW4gLXMgLWYgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJ
L2d0ayR7R1RLX0FQSV9WRVJTSU9OfSAke0ZPUldBUkRJTkdfSEVBREVSU19XRUJLSVQyR1RLX1ZF
UlNJT05FRF9ESVJ9L3dlYmtpdDIKKykKIGFkZF9jdXN0b21fY29tbWFuZCgKICAgICBPVVRQVVQg
JHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lUMkdUS19FWFRFTlNJT05fRElSfS93ZWJraXQyCiAg
ICAgREVQRU5EUyAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
awpAQCAtODMyLDYgKzg2MSw3IEBAIGFkZF9jdXN0b21fY29tbWFuZCgKICkKIGFkZF9jdXN0b21f
dGFyZ2V0KFdlYktpdC1mYWtlLWFwaS1oZWFkZXJzCiAgICAgREVQRU5EUyAke0ZPUldBUkRJTkdf
SEVBREVSU19XRUJLSVQyR1RLX0RJUn0vd2Via2l0MgorICAgICAgICAgICAgJHtGT1JXQVJESU5H
X0hFQURFUlNfV0VCS0lUMkdUS19WRVJTSU9ORURfRElSfS93ZWJraXQyCiAgICAgICAgICAgICAk
e0ZPUldBUkRJTkdfSEVBREVSU19XRUJLSVQyR1RLX0VYVEVOU0lPTl9ESVJ9L3dlYmtpdDIKICAg
ICAgICAgICAgICR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJVDJHVEtfRVhURU5TSU9OX0RJUn0v
d2Via2l0ZG9tCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9X
ZWJLaXRDb250ZXh0TWVudUl0ZW0uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2dsaWIv
V2ViS2l0Q29udGV4dE1lbnVJdGVtLmNwcAppbmRleCBlNWQyZTI5ZTIzYjMuLmRiNjE0OTNiNzgw
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2dsaWIvV2ViS2l0Q29udGV4
dE1lbnVJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRD
b250ZXh0TWVudUl0ZW0uY3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgV2ViQ29udGV4dE1lbnVJdGVt
RGF0YSB3ZWJraXRDb250ZXh0TWVudUl0ZW1Ub1dlYkNvbnRleHRNZW51SXRlbURhdGEoV2ViS2l0
Q29udGUKICAgICByZXR1cm4gV2ViQ29udGV4dE1lbnVJdGVtRGF0YShpdGVtLT5wcml2LT5tZW51
SXRlbS0+dHlwZSgpLCBpdGVtLT5wcml2LT5tZW51SXRlbS0+YWN0aW9uKCksIGl0ZW0tPnByaXYt
Pm1lbnVJdGVtLT50aXRsZSgpLCBpdGVtLT5wcml2LT5tZW51SXRlbS0+ZW5hYmxlZCgpLCBpdGVt
LT5wcml2LT5tZW51SXRlbS0+Y2hlY2tlZCgpKTsKIH0KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNp
ZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkKIC8qKgogICogd2Via2l0X2NvbnRleHRfbWVu
dV9pdGVtX25ldzoKICAqIEBhY3Rpb246IGEgI0d0a0FjdGlvbgpAQCAtMjYxLDcgKzI2MSw3IEBA
IFdlYktpdENvbnRleHRNZW51SXRlbSogd2Via2l0X2NvbnRleHRfbWVudV9pdGVtX25ld19zZXBh
cmF0b3Iodm9pZCkKICAgICByZXR1cm4gaXRlbTsKIH0KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNp
ZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkKIC8qKgogICogd2Via2l0X2NvbnRleHRfbWVu
dV9pdGVtX2dldF9hY3Rpb246CiAgKiBAaXRlbTogYSAjV2ViS2l0Q29udGV4dE1lbnVJdGVtCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgKaW5kZXggZjA4
YzE5ZmI5NWVjLi4yNGQ1NGU4YzIxZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRp
dmVXZWJLZXlib2FyZEV2ZW50LmgKQEAgLTQzLDggKzQzLDEyIEBAIHN0cnVjdCBLZXlwcmVzc0Nv
bW1hbmQ7CiAKICNpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8V2ViQ29yZS9HVW5pcXVlUHRy
R3RrLmg+CisjaWYgVVNFKEdUSzQpCit0eXBlZGVmIHN0cnVjdCBfR2RrRXZlbnQgR2RrRXZlbnQ7
CisjZWxzZQogdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7CiAjZW5kaWYKKyNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmgKaW5kZXggMGZhNTU3
ZTlmYWEzLi40YjhkYWM4ZWI5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05h
dGl2ZVdlYk1vdXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJN
b3VzZUV2ZW50LmgKQEAgLTM1LDggKzM1LDEyIEBAIE9CSkNfQ0xBU1MgTlNWaWV3OwogCiAjaWYg
UExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPFdlYkNvcmUvR1VuaXF1ZVB0ckd0ay5oPgorI2lmIFVT
RShHVEs0KQordHlwZWRlZiBzdHJ1Y3QgX0dka0V2ZW50IEdka0V2ZW50OworI2Vsc2UKIHR5cGVk
ZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50OwogI2VuZGlmCisjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCmluZGV4IDM5OTFhNDc5ZjFmMS4uNWU2NTVi
NDgyYzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCkBA
IC0zNSw4ICszNSwxMiBAQCBPQkpDX0NMQVNTIE5TVmlldzsKIAogI2lmIFBMQVRGT1JNKEdUSykK
ICNpbmNsdWRlIDxXZWJDb3JlL0dVbmlxdWVQdHJHdGsuaD4KKyNpZiBVU0UoR1RLNCkKK3R5cGVk
ZWYgc3RydWN0IF9HZGtFdmVudCBHZGtFdmVudDsKKyNlbHNlCiB0eXBlZGVmIHVuaW9uIF9HZGtF
dmVudCBHZGtFdmVudDsKICNlbmRpZgorI2VuZGlmCiAKICNpZiBVU0UoTElCV1BFKQogc3RydWN0
IHdwZV9pbnB1dF9heGlzX2V2ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Z2xpYi9XZWJDb250ZXh0TWVudUl0ZW1HbGliLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2ds
aWIvV2ViQ29udGV4dE1lbnVJdGVtR2xpYi5jcHAKaW5kZXggMjM1NzRlNzQ2Zjg1Li41MmE2Mzgz
MzYwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvV2ViQ29udGV4dE1l
bnVJdGVtR2xpYi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ2xpYi9XZWJDb250ZXh0
TWVudUl0ZW1HbGliLmNwcApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIkFQSU9iamVjdC5o
IgogI2luY2x1ZGUgPGdpby9naW8uaD4KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9S
TShHVEspICYmICFVU0UoR1RLNCkKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjZW5kaWYKIApAQCAt
NTQsNyArNTQsNyBAQCBXZWJDb250ZXh0TWVudUl0ZW1HbGliOjpXZWJDb250ZXh0TWVudUl0ZW1H
bGliKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbUdsaWImIGRhdAogewogICAgIG1fZ0FjdGlvbiA9
IGRhdGEuZ0FjdGlvbigpOwogICAgIG1fc3VibWVudUl0ZW1zID0gV1RGTW92ZShzdWJtZW51KTsK
LSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSAmJiAhVVNFKEdUSzQpCiAgICAg
bV9ndGtBY3Rpb24gPSBkYXRhLmd0a0FjdGlvbigpOwogI2VuZGlmCiB9CkBAIC03Nyw3ICs3Nyw3
IEBAIFdlYkNvbnRleHRNZW51SXRlbUdsaWI6OldlYkNvbnRleHRNZW51SXRlbUdsaWIoR0FjdGlv
biogYWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpCiAgICAgY3JlYXRlQWN0aW9uSWZOZWVkZWQoKTsK
IH0KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkK
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiBXZWJDb250ZXh0TWVudUl0ZW1H
bGliOjpXZWJDb250ZXh0TWVudUl0ZW1HbGliKEd0a0FjdGlvbiogYWN0aW9uKQogICAgIDogV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YShHVEtfSVNfVE9HR0xFX0FDVElPTihhY3Rpb24pID8gQ2hlY2th
YmxlQWN0aW9uVHlwZSA6IEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbUJhc2VBcHBsaWNhdGlv
blRhZywgU3RyaW5nOjpmcm9tVVRGOChndGtfYWN0aW9uX2dldF9sYWJlbChhY3Rpb24pKSwgZ3Rr
X2FjdGlvbl9nZXRfc2Vuc2l0aXZlKGFjdGlvbiksIEdUS19JU19UT0dHTEVfQUNUSU9OKGFjdGlv
bikgPyBndGtfdG9nZ2xlX2FjdGlvbl9nZXRfYWN0aXZlKEdUS19UT0dHTEVfQUNUSU9OKGFjdGlv
bikpIDogZmFsc2UpCkBAIC05NSw3ICs5NSw3IEBAIFdlYkNvbnRleHRNZW51SXRlbUdsaWI6On5X
ZWJDb250ZXh0TWVudUl0ZW1HbGliKCkKIAogR1VuaXF1ZVB0cjxjaGFyPiBXZWJDb250ZXh0TWVu
dUl0ZW1HbGliOjpidWlsZEFjdGlvbk5hbWUoKSBjb25zdAogewotI2lmIFBMQVRGT1JNKEdUSykK
KyNpZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkKIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgaWYgKG1fZ3RrQWN0aW9uKQogICAgICAgICByZXR1cm4gR1VuaXF1
ZVB0cjxjaGFyPihnX3N0cmR1cChndGtfYWN0aW9uX2dldF9uYW1lKG1fZ3RrQWN0aW9uKSkpOwpA
QCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVJdGVtR2xpYjo6Y3JlYXRlQWN0
aW9uSWZOZWVkZWQoKQogICAgICAgICBnX3NpbXBsZV9hY3Rpb25fc2V0X2VuYWJsZWQoR19TSU1Q
TEVfQUNUSU9OKG1fZ0FjdGlvbi5nZXQoKSksIGVuYWJsZWQoKSk7CiAgICAgfQogCi0jaWYgUExB
VEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgJiYgIVVTRShHVEs0KQogQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBDcmVhdGUgdGhlIEd0a0FjdGlvbiBmb3Ig
YmFja3dhcmRzIGNvbXBhdGliaWxpdHkgb25seS4KICAgICBpZiAoIW1fZ3RrQWN0aW9uKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9nbGliL1dlYkNvbnRleHRNZW51SXRlbUds
aWIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvV2ViQ29udGV4dE1lbnVJdGVtR2xpYi5o
CmluZGV4IDVmZmU2YWIzMjQxYy4uYWYxMjFkYzBiZTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9nbGliL1dlYkNvbnRleHRNZW51SXRlbUdsaWIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9nbGliL1dlYkNvbnRleHRNZW51SXRlbUdsaWIuaApAQCAtMjksOCArMjksMTAg
QEAKICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1Vu
aXF1ZVB0ci5oPgogCisjaWYgIVVTRShHVEs0KQogdHlwZWRlZiBzdHJ1Y3QgX0d0a0FjdGlvbiBH
dGtBY3Rpb247CiB0eXBlZGVmIHN0cnVjdCBfR0FjdGlvbiBHQWN0aW9uOworI2VuZGlmCiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCkBAIC00MSw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICBXZWJDb250
ZXh0TWVudUl0ZW1HbGliKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmKTsKICAgICBXZWJD
b250ZXh0TWVudUl0ZW1HbGliKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbUdsaWImLCBWZWN0b3I8
V2ViQ29udGV4dE1lbnVJdGVtR2xpYj4mJiBzdWJtZW51KTsKICAgICBXZWJDb250ZXh0TWVudUl0
ZW1HbGliKEdBY3Rpb24qLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBHVmFyaWFudCogdGFyZ2V0ID0g
bnVsbHB0cik7Ci0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgJiYgIVVTRShH
VEs0KQogICAgIFdlYkNvbnRleHRNZW51SXRlbUdsaWIoR3RrQWN0aW9uKik7CiAjZW5kaWYKICAg
ICB+V2ViQ29udGV4dE1lbnVJdGVtR2xpYigpOwpAQCAtNTIsNyArNTQsNyBAQCBwdWJsaWM6CiAg
ICAgR1ZhcmlhbnQqIGdBY3Rpb25UYXJnZXQoKSBjb25zdCB7IHJldHVybiBtX2dBY3Rpb25UYXJn
ZXQuZ2V0KCk7IH0KICAgICBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtR2xpYj4mIHN1
Ym1lbnVJdGVtcygpIGNvbnN0IHsgcmV0dXJuIG1fc3VibWVudUl0ZW1zOyB9CiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSAmJiAhVVNFKEdUSzQpCiAgICAgR3RrQWN0aW9u
KiBndGtBY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2d0a0FjdGlvbjsgfQogI2VuZGlmCiAKQEAg
LTYzLDcgKzY1LDcgQEAgcHJpdmF0ZToKICAgICBHUmVmUHRyPEdBY3Rpb24+IG1fZ0FjdGlvbjsK
ICAgICBHUmVmUHRyPEdWYXJpYW50PiBtX2dBY3Rpb25UYXJnZXQ7CiAgICAgVmVjdG9yPFdlYkNv
bnRleHRNZW51SXRlbUdsaWI+IG1fc3VibWVudUl0ZW1zOwotI2lmIFBMQVRGT1JNKEdUSykKKyNp
ZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkKICAgICBHdGtBY3Rpb24qIG1fZ3RrQWN0aW9u
IHsgbnVsbHB0ciB9OwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvZ3RrL05hdGl2ZVdlYktleWJvYXJkRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvZ3RrL05hdGl2ZVdlYktleWJvYXJkRXZlbnRHdGsuY3BwCmluZGV4IDIzNTdmM2Q1ODQxNS4u
OGMwZGY0MjgyZmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL05h
dGl2ZVdlYktleWJvYXJkRXZlbnRHdGsuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAi
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgogCiAjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5Lmgi
Ci0jaW5jbHVkZSA8Z2RrL2dkay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3RrVmVyc2lvbmluZy5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvZ3RrL05hdGl2ZVdlYk1vdXNlRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
Z3RrL05hdGl2ZVdlYk1vdXNlRXZlbnRHdGsuY3BwCmluZGV4IDU4ZTM3ZmUzODI3Yy4uYzcwNzA5
OTVmODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvTmF0aXZlV2ViTW91
c2VFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL05hdGl2ZVdlYk1v
dXNlRXZlbnRHdGsuY3BwCkBAIC0zOSw3ICszOSw3IEBAIE5hdGl2ZVdlYk1vdXNlRXZlbnQ6Ok5h
dGl2ZVdlYk1vdXNlRXZlbnQoR2RrRXZlbnQqIGV2ZW50LCBpbnQgZXZlbnRDbGlja0NvdW50LCBP
CiAKIE5hdGl2ZVdlYk1vdXNlRXZlbnQ6Ok5hdGl2ZVdlYk1vdXNlRXZlbnQoY29uc3QgTmF0aXZl
V2ViTW91c2VFdmVudCYgZXZlbnQpCiAgICAgOiBXZWJNb3VzZUV2ZW50KFdlYkV2ZW50RmFjdG9y
eTo6Y3JlYXRlV2ViTW91c2VFdmVudChldmVudC5uYXRpdmVFdmVudCgpLCBldmVudC5jbGlja0Nv
dW50KCksIFdlYkNvcmU6OkludFBvaW50KGV2ZW50LmRlbHRhWCgpLCBldmVudC5kZWx0YVkoKSkp
KQotICAgICwgbV9uYXRpdmVFdmVudChnZGtfZXZlbnRfY29weShldmVudC5uYXRpdmVFdmVudCgp
KSkKKyAgICAsIG1fbmF0aXZlRXZlbnQoZ2RrX2V2ZW50X2NvcHkoY29uc3RfY2FzdDxHZGtFdmVu
dCo+KGV2ZW50Lm5hdGl2ZUV2ZW50KCkpKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvZ3RrL05hdGl2ZVdlYlRvdWNoRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvZ3RrL05hdGl2ZVdlYlRvdWNoRXZlbnRHdGsuY3BwCmluZGV4IDVlYzQ3NmIyZGEx
My4uNmQwZTQ0ZjkyY2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvTmF0
aXZlV2ViVG91Y2hFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL05h
dGl2ZVdlYlRvdWNoRXZlbnRHdGsuY3BwCkBAIC00MSw3ICs0MSw3IEBAIE5hdGl2ZVdlYlRvdWNo
RXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQoR2RrRXZlbnQqIGV2ZW50LCBWZWN0b3I8V2ViUGxh
dGZvcm1Ub3VjCiAKIE5hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQoY29u
c3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgOiBXZWJUb3VjaEV2ZW50KFdlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChldmVudC5uYXRpdmVFdmVudCgpLCBWZWN0
b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PihldmVudC50b3VjaFBvaW50cygpKSkpCi0gICAgLCBt
X25hdGl2ZUV2ZW50KGdka19ldmVudF9jb3B5KGV2ZW50Lm5hdGl2ZUV2ZW50KCkpKQorICAgICwg
bV9uYXRpdmVFdmVudChnZGtfZXZlbnRfY29weShjb25zdF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQu
bmF0aXZlRXZlbnQoKSkpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9ndGsvTmF0aXZlV2ViV2hlZWxFdmVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9n
dGsvTmF0aXZlV2ViV2hlZWxFdmVudEd0ay5jcHAKaW5kZXggNWNhZjNkMjNhYjE2Li5hNjAwNDY3
N2M0MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9OYXRpdmVXZWJXaGVl
bEV2ZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvTmF0aXZlV2ViV2hl
ZWxFdmVudEd0ay5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJOYXRpdmVXZWJXaGVl
bEV2ZW50LmgiCiAKICNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKLSNpbmNsdWRlIDxnZGsv
Z2RrLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HdGtWZXJzaW9uaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRG
YWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3Bw
CmluZGV4IGE1MjBhZjBjN2MwZi4uNmE0NDVmN2Q4OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcApAQCAtMjksMTIgKzI5LDEyIEBACiAjaW5jbHVk
ZSAiV2ViRXZlbnRGYWN0b3J5LmgiCiAKICNpbmNsdWRlIDxXZWJDb3JlL0d0a1V0aWxpdGllcy5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvR3RrVmVyc2lvbmluZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxiYXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd3NLZXlib2FyZENvZGVzLmg+CiAjaW5jbHVkZSA8Z2Rr
L2dkay5oPgogI2luY2x1ZGUgPGdkay9nZGtrZXlzeW1zLmg+Ci0jaW5jbHVkZSA8Z3RrL2d0ay5o
PgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
NzIsNyArNzIsNyBAQCBzdGF0aWMgaW5saW5lIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+
IG1vZGlmaWVyc0ZvckV2ZW50KGNvbnN0IEdka0V2ZW50KiBldgogc3RhdGljIGlubGluZSBXZWJN
b3VzZUV2ZW50OjpCdXR0b24gYnV0dG9uRm9yRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50KQog
ewogICAgIHVuc2lnbmVkIGJ1dHRvbiA9IDA7Ci0gICAgR2RrRXZlbnRUeXBlIHR5cGUgPSBnZGtf
ZXZlbnRfZ2V0X2V2ZW50X3R5cGUoZXZlbnQpOworICAgIEdka0V2ZW50VHlwZSB0eXBlID0gZ2Rr
X2V2ZW50X2dldF9ldmVudF90eXBlKGNvbnN0X2Nhc3Q8R2RrRXZlbnQqPihldmVudCkpOwogICAg
IHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgR0RLX0VOVEVSX05PVElGWToKICAgICBjYXNlIEdE
S19MRUFWRV9OT1RJRlk6CkBAIC04OSw4ICs4OSwxMCBAQCBzdGF0aWMgaW5saW5lIFdlYk1vdXNl
RXZlbnQ6OkJ1dHRvbiBidXR0b25Gb3JFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQpCiAgICAg
ICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEdES19CVVRUT05fUFJFU1M6CisjaWYgIVVTRShH
VEs0KQogICAgIGNhc2UgR0RLXzJCVVRUT05fUFJFU1M6CiAgICAgY2FzZSBHREtfM0JVVFRPTl9Q
UkVTUzoKKyNlbmRpZgogICAgIGNhc2UgR0RLX0JVVFRPTl9SRUxFQVNFOiB7CiAgICAgICAgIGd1
aW50IGV2ZW50QnV0dG9uOwogICAgICAgICBnZGtfZXZlbnRfZ2V0X2J1dHRvbihldmVudCwgJmV2
ZW50QnV0dG9uKTsKQEAgLTE1MCw3ICsxNTIsNyBAQCBXZWJNb3VzZUV2ZW50IFdlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQsIGludCBjdQog
ICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgPSBzdGF0aWNfY2FzdDxXZWJFdmVudDo6VHlwZT4oMCk7
CiAgICAgSW50UG9pbnQgbW92ZW1lbnREZWx0YTsKIAotICAgIEdka0V2ZW50VHlwZSBldmVudFR5
cGUgPSBnZGtfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoZXZlbnQpOworICAgIEdka0V2ZW50VHlwZSBl
dmVudFR5cGUgPSBnZGtfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoY29uc3RfY2FzdDxHZGtFdmVudCo+
KGV2ZW50KSk7CiAgICAgc3dpdGNoIChldmVudFR5cGUpIHsKICAgICBjYXNlIEdES19NT1RJT05f
Tk9USUZZOgogICAgIGNhc2UgR0RLX0VOVEVSX05PVElGWToKQEAgLTE1OSw5ICsxNjEsMTEgQEAg
V2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoY29uc3Qg
R2RrRXZlbnQqIGV2ZW50LCBpbnQgY3UKICAgICAgICAgaWYgKGRlbHRhKQogICAgICAgICAgICAg
bW92ZW1lbnREZWx0YSA9IGRlbHRhLnZhbHVlKCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
R0RLX0JVVFRPTl9QUkVTUzoKKyNpZiAhVVNFKEdUSzQpCiAgICAgY2FzZSBHREtfMkJVVFRPTl9Q
UkVTUzoKLSAgICBjYXNlIEdES18zQlVUVE9OX1BSRVNTOiB7CisgICAgY2FzZSBHREtfM0JVVFRP
Tl9QUkVTUzoKKyNlbmRpZgorICAgIGNhc2UgR0RLX0JVVFRPTl9QUkVTUzogewogICAgICAgICB0
eXBlID0gV2ViRXZlbnQ6Ok1vdXNlRG93bjsKICAgICAgICAgYXV0byBtb2RpZmllciA9IHN0YXRl
TW9kaWZpZXJGb3JHZGtCdXR0b24oZXZlbnRCdXR0b24pOwogICAgICAgICBzdGF0ZSA9IHN0YXRp
Y19jYXN0PEdka01vZGlmaWVyVHlwZT4oc3RhdGUgfCBtb2RpZmllcik7CkBAIC0yNTQsMTEgKzI1
OCwxNiBAQCBXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVu
dChjb25zdCBHZGtFdmVudCogZXZlbnQsIFdlYldoZQogCiBXZWJLZXlib2FyZEV2ZW50IFdlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQs
IGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgT3B0aW9uYWw8
VmVjdG9yPENvbXBvc2l0aW9uVW5kZXJsaW5lPj4mJiBwcmVlZGl0VW5kZXJsaW5lcywgT3B0aW9u
YWw8RWRpdGluZ1JhbmdlPiYmIHByZWVkaXRTZWxlY3Rpb25SYW5nZSwgVmVjdG9yPFN0cmluZz4m
JiBjb21tYW5kcykKIHsKKyNpZiBVU0UoR1RLNCkKKyAgICBndWludCBrZXl2YWwgPSAwOworICAg
IGd1aW50MTYga2V5Y29kZSA9IDA7CisjZWxzZQogICAgIGd1aW50IGtleXZhbDsKICAgICBnZGtf
ZXZlbnRfZ2V0X2tleXZhbChldmVudCwgJmtleXZhbCk7CiAgICAgZ3VpbnQxNiBrZXljb2RlOwog
ICAgIGdka19ldmVudF9nZXRfa2V5Y29kZShldmVudCwgJmtleWNvZGUpOwotICAgIEdka0V2ZW50
VHlwZSB0eXBlID0gZ2RrX2V2ZW50X2dldF9ldmVudF90eXBlKGV2ZW50KTsKKyNlbmRpZgorICAg
IEdka0V2ZW50VHlwZSB0eXBlID0gZ2RrX2V2ZW50X2dldF9ldmVudF90eXBlKGNvbnN0X2Nhc3Q8
R2RrRXZlbnQqPihldmVudCkpOwogCiAgICAgcmV0dXJuIFdlYktleWJvYXJkRXZlbnQoCiAgICAg
ICAgIHR5cGUgPT0gR0RLX0tFWV9SRUxFQVNFID8gV2ViRXZlbnQ6OktleVVwIDogV2ViRXZlbnQ6
OktleURvd24sCkBAIC0yODEsNyArMjkwLDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZh
Y3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LAogV2Vi
VG91Y2hFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQoY29uc3QgR2Rr
RXZlbnQqIGV2ZW50LCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmIHRvdWNoUG9pbnRz
KQogewogICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgPSBXZWJFdmVudDo6Tm9UeXBlOwotICAgIEdk
a0V2ZW50VHlwZSBldmVudFR5cGUgPSBnZGtfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoZXZlbnQpOwor
ICAgIEdka0V2ZW50VHlwZSBldmVudFR5cGUgPSBnZGtfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoY29u
c3RfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSk7CiAgICAgc3dpdGNoIChldmVudFR5cGUpIHsKICAg
ICBjYXNlIEdES19UT1VDSF9CRUdJTjoKICAgICAgICAgdHlwZSA9IFdlYkV2ZW50OjpUb3VjaFN0
YXJ0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9y
eS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5oCmluZGV4IDQy
NzE4ZTI1ODA1YS4uNTRkYTg5ZTYwODkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dl
YkV2ZW50RmFjdG9yeS5oCkBAIC0yOCw3ICsyOCwxMSBAQAogCiAjaW5jbHVkZSAiV2ViRXZlbnQu
aCIKIAorI2lmIFVTRShHVEs0KQordHlwZWRlZiBzdHJ1Y3QgX0dka0V2ZW50IEdka0V2ZW50Owor
I2Vsc2UKIHR5cGVkZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50OworI2VuZGlmCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAppbmRleCBlYmEzNDYxNGZlMGYuLjU2NDhi
N2Y4NTMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CkBAIC0xMDgsNyArMTA4LDYgQEAgU2hhcmVkL3Vu
aXgvQXV4aWxpYXJ5UHJvY2Vzc01haW4uY3BwCiBVSVByb2Nlc3MvQmFja2luZ1N0b3JlLmNwcAog
VUlQcm9jZXNzL0RlZmF1bHRVbmRvQ29udHJvbGxlci5jcHAKIFVJUHJvY2Vzcy9MZWdhY3lTZXNz
aW9uU3RhdGVDb2RpbmdOb25lLmNwcAotVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5j
cHAKIFVJUHJvY2Vzcy9WaWV3U25hcHNob3RTdG9yZS5jcHAKIFVJUHJvY2Vzcy9XZWJHcmFtbWFy
RGV0YWlsLmNwcAogVUlQcm9jZXNzL1dlYk1lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKQEAgLTI1
NSw3ICsyNTQsNiBAQCBVSVByb2Nlc3MvZ3RrL1BvaW50ZXJMb2NrTWFuYWdlci5jcHAgQG5vLXVu
aWZ5CiBVSVByb2Nlc3MvZ3RrL1BvaW50ZXJMb2NrTWFuYWdlcldheWxhbmQuY3BwIEBuby11bmlm
eQogVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9ja01hbmFnZXJYMTEuY3BwIEBuby11bmlmeQogVUlQ
cm9jZXNzL2d0ay9UZXh0Q2hlY2tlckd0ay5jcHAgQG5vLXVuaWZ5Ci1VSVByb2Nlc3MvZ3RrL1Zp
ZXdHZXN0dXJlQ29udHJvbGxlckd0ay5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvZ3RrL1ZpZXdT
bmFwc2hvdFN0b3JlR3RrLmNwcAogVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHAg
QG5vLXVuaWZ5CiBVSVByb2Nlc3MvZ3RrL1dlYkNvbG9yUGlja2VyR3RrLmNwcApAQCAtNDEzLDcg
KzQxMSw2IEBAIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0
ay5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmNwcAogCiBXZWJQcm9jZXNzL1dlYlBhZ2UvQWNjZWxlcmF0ZWRTdXJmYWNlLmNwcAot
V2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IuY3BwCiAKIFdl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0
b3IuY3BwCiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJl
YUNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS05hdGl2ZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS05hdGl2ZUV2ZW50LmgKaW5kZXggOWNhMGFiM2QwZGFkLi40NGQ2ZTc3OWEzNmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS05hdGl2ZUV2ZW50LmgKQEAgLTQ0LDcg
KzQ0LDYgQEAgc3RydWN0IE5TRXZlbnQ7CiAjZW5kaWYKIHR5cGVkZWYgTlNFdmVudCAqV0tOYXRp
dmVFdmVudFB0cjsKICNlbGlmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCi10eXBlZGVmIHVuaW9u
IF9HZGtFdmVudCBHZGtFdmVudDsKIHR5cGVkZWYgY29uc3QgR2RrRXZlbnQqIFdLTmF0aXZlRXZl
bnRQdHI7CiAjZWxpZiBkZWZpbmVkKFdJTjMyKQogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgdGFnTVNH
KiBXS05hdGl2ZUV2ZW50UHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvSW5wdXRNZXRob2RGaWx0ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvSW5wdXRNZXRob2RGaWx0ZXIuY3BwCmluZGV4IGRkYjgyYTI3OWRlOC4uNzY2MGMw
MTVlY2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JbnB1
dE1ldGhvZEZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
SW5wdXRNZXRob2RGaWx0ZXIuY3BwCkBAIC0xMDUsNyArMTA1LDExIEBAIElucHV0TWV0aG9kRmls
dGVyOjpGaWx0ZXJSZXN1bHQgSW5wdXRNZXRob2RGaWx0ZXI6OmZpbHRlcktleUV2ZW50KFBsYXRm
b3JtRXZlbnRLCiAgICAgbV9maWx0ZXJpbmdDb250ZXh0LnByZWVkaXRDaGFuZ2VkID0gZmFsc2U7
CiAgICAgbV9jb21wb3NpdGlvblJlc3VsdCA9IHsgfTsKIAorI2lmIFBMQVRGT1JNKFdQRSkgfHwg
VVNFKEdUSzQpCiAgICAgYm9vbCBoYW5kbGVkID0gd2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0
X2ZpbHRlcl9rZXlfZXZlbnQobV9jb250ZXh0LmdldCgpLCBrZXlFdmVudCk7CisjZWxzZQorICAg
IGJvb2wgaGFuZGxlZCA9IHdlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9maWx0ZXJfa2V5X2V2
ZW50KG1fY29udGV4dC5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHZGtFdmVudEtleSo+KGtleUV2
ZW50KSk7CisjZW5kaWYKICAgICBpZiAoIWhhbmRsZWQpCiAgICAgICAgIHJldHVybiB7IH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0lucHV0TWV0aG9k
RmlsdGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JbnB1dE1ldGhvZEZp
bHRlci5oCmluZGV4IGExMTBkOTU3NTAwMi4uNzdjODRhYjI0ZGNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JbnB1dE1ldGhvZEZpbHRlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0lucHV0TWV0aG9kRmlsdGVyLmgKQEAgLTI5
LDcgKzI5LDExIEBACiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0IFdl
YktpdElucHV0TWV0aG9kQ29udGV4dDsKIAogI2lmIFBMQVRGT1JNKEdUSykKLXR5cGVkZWYgc3Ry
dWN0IF9HZGtFdmVudEtleSBHZGtFdmVudEtleTsKKyNpZiBVU0UoR1RLNCkKK3R5cGVkZWYgc3Ry
dWN0IF9HZGtFdmVudCBHZGtFdmVudDsKKyNlbHNlCit0eXBlZGVmIHVuaW9uIF9HZGtFdmVudCBH
ZGtFdmVudDsKKyNlbmRpZgogI2VsaWYgUExBVEZPUk0oV1BFKQogc3RydWN0IHdwZV9pbnB1dF9r
ZXlib2FyZF9ldmVudDsKICNlbmRpZgpAQCAtNTMsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRTdGF0ZShPcHRpb25hbDxJbnB1dE1ldGhvZFN0YXRlPiYmKTsKIAogI2lmIFBMQVRGT1JN
KEdUSykKLSAgICB1c2luZyBQbGF0Zm9ybUV2ZW50S2V5ID0gR2RrRXZlbnRLZXk7CisgICAgdXNp
bmcgUGxhdGZvcm1FdmVudEtleSA9IEdka0V2ZW50OwogI2VsaWYgUExBVEZPUk0oV1BFKQogICAg
IHVzaW5nIFBsYXRmb3JtRXZlbnRLZXkgPSBzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQ
bHVnaW5zUGVybWlzc2lvblJlcXVlc3QuY3BwCmluZGV4IDUwZTE3ZTNlZTA2Zi4uNjhhMzQwNjUw
NDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJ
bnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1
Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgRU5BQkxF
KFZJREVPKQogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1EaXNwbGF5Lmg+Ci0jaWYgUExBVEZP
Uk0oWDExKQorI2lmIFBMQVRGT1JNKFgxMSkgJiYgIVVTRShHVEs0KQogI2luY2x1ZGUgPGdkay9n
ZGt4Lmg+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2VuZGlmCkBAIC03MCw3ICs3MCw3IEBAIFdF
QktJVF9ERUZJTkVfVFlQRV9XSVRIX0NPREUoCiAjaWYgRU5BQkxFKFZJREVPKQogc3RhdGljIEdV
bmlxdWVQdHI8R3N0SW5zdGFsbFBsdWdpbnNDb250ZXh0PiBjcmVhdGVHc3RJbnN0YWxsUGx1Z2lu
c0NvbnRleHQoV2ViUGFnZVByb3h5JiBwYWdlKQogewotI2lmIFBMQVRGT1JNKFgxMSkKKyNpZiBQ
TEFURk9STShYMTEpICYmICFVU0UoR1RLNCkKICAgICBpZiAoUGxhdGZvcm1EaXNwbGF5OjpzaGFy
ZWREaXNwbGF5KCkudHlwZSgpID09IFBsYXRmb3JtRGlzcGxheTo6VHlwZTo6WDExKSB7CiAgICAg
ICAgIEdVbmlxdWVQdHI8R3N0SW5zdGFsbFBsdWdpbnNDb250ZXh0PiBjb250ZXh0KGdzdF9pbnN0
YWxsX3BsdWdpbnNfY29udGV4dF9uZXcoKSk7CiAgICAgICAgIGdzdF9pbnN0YWxsX3BsdWdpbnNf
Y29udGV4dF9zZXRfeGlkKGNvbnRleHQuZ2V0KCksIEdES19XSU5ET1dfWElEKGd0a193aWRnZXRf
Z2V0X3dpbmRvdyhwYWdlLnZpZXdXaWRnZXQoKSkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFByaXZhdGUuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UHJpdmF0ZS5jcHAKaW5kZXggODVkZDQwZWQ1OTg4Li45
MGE1ZTc4NjZiY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFByaXZhdGUuY3BwCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0RXJy
b3IuaCIKIAogI2lmIFBMQVRGT1JNKEdUSykKLSNpbmNsdWRlIDxnZGsvZ2RrLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9HdGtWZXJzaW9uaW5nLmg+CiAjZWxpZiBQTEFURk9STShXUEUpCiAjaW5jbHVk
ZSA8d3BlL3dwZS5oPgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKaW5kZXggMTNmNzMzY2Y0NzlmLi5mOWExYWRkNWFj
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJ
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRV
SUNsaWVudC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKIAogI2lmIFBMQVRGT1JNKEdUSykKICNpbmNs
dWRlIDxXZWJDb3JlL0d0a1V0aWxpdGllcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3RrVmVyc2lv
bmluZy5oPgogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC0xNjAsMTIgKzE2
MSwxMiBAQCBwcml2YXRlOgogICAgICAgICBSdW5Mb29wOjpjdXJyZW50KCkuc3RvcCgpOwogICAg
ICAgICByZXR1cm4gRkFMU0U7CiAgICAgfQorI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykgJiYgIVVT
RShHVEs0KQogCiAgICAgdm9pZCBzZXRXaW5kb3dGcmFtZVRpbWVyRmlyZWQoKQogICAgIHsKICAg
ICAgICAgUnVuTG9vcDo6Y3VycmVudCgpLnN0b3AoKTsKICAgICB9Ci0jZW5kaWYgLy8gUExBVEZP
Uk0oR1RLKSAmJiAhVVNFKEdUSzQpCiAKICAgICB2b2lkIHNldFdpbmRvd0ZyYW1lKFdlYlBhZ2VQ
cm94eSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZnJhbWUpIGZpbmFsCiAgICAgewpAQCAt
MjE1LDcgKzIxNiw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB0aW1lci0+c3RhcnRPbmVTaG90
KDIwMF9tcyk7CiAgICAgICAgICAgICBSdW5Mb29wOjpydW4oKTsKICAgICAgICAgICAgIHRpbWVy
ID0gbnVsbHB0cjsKKyNpZiAhVVNFKEdUSzQpCiAgICAgICAgICAgICBnX3NpZ25hbF9oYW5kbGVy
X2Rpc2Nvbm5lY3Qod2luZG93LCBzaWduYWxJRCk7CisjZW5kaWYKICAgICAgICAgfSBlbHNlCiAg
ICAgICAgICAgICB3ZWJraXRXaW5kb3dQcm9wZXJ0aWVzU2V0R2VvbWV0cnkod2Via2l0X3dlYl92
aWV3X2dldF93aW5kb3dfcHJvcGVydGllcyhtX3dlYlZpZXcpLCAmZ2VvbWV0cnkpOwogI2VuZGlm
IC8vIFBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXggNGI3ZjIyMWE1NDI2Li43MjIyYTkxY2I5
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdl
YkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYkNvbnRleHQuY3BwCkBAIC0xMjEsOCArMTIxLDEwIEBAIGVudW0gewogICAgIFBST1BfV0VC
U0lURV9EQVRBX01BTkFHRVIsCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIFBST1BfUFNPTl9FTkFC
TEVELAorI2lmICFVU0UoR1RLNCkKICAgICBQUk9QX1VTRV9TWVNZRU1fQVBQRUFSQU5DRV9GT1Jf
U0NST0xMQkFSUwogI2VuZGlmCisjZW5kaWYKIH07CiAKIGVudW0gewpAQCAtMzM3LDkgKzMzOSwx
MSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJDb250ZXh0R2V0UHJvcGVydHkoR09iamVjdCogb2Jq
ZWN0LCBndWludCBwcm9wSUQsIEdWYWx1ZSogdgogICAgIGNhc2UgUFJPUF9QU09OX0VOQUJMRUQ6
CiAgICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIGNvbnRleHQtPnByaXYtPnBzb25F
bmFibGVkKTsKICAgICAgICAgYnJlYWs7CisjaWYgIVVTRShHVEs0KQogICAgIGNhc2UgUFJPUF9V
U0VfU1lTWUVNX0FQUEVBUkFOQ0VfRk9SX1NDUk9MTEJBUlM6CiAgICAgICAgIGdfdmFsdWVfc2V0
X2Jvb2xlYW4odmFsdWUsIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfdXNlX3N5c3RlbV9hcHBlYXJh
bmNlX2Zvcl9zY3JvbGxiYXJzKGNvbnRleHQpKTsKICAgICAgICAgYnJlYWs7CisjZW5kaWYKICNl
bmRpZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJU
WV9JRChvYmplY3QsIHByb3BJRCwgcGFyYW1TcGVjKTsKQEAgLTM2NSw5ICszNjksMTEgQEAgc3Rh
dGljIHZvaWQgd2Via2l0V2ViQ29udGV4dFNldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3Vp
bnQgcHJvcElELCBjb25zdCBHVmEKICAgICBjYXNlIFBST1BfUFNPTl9FTkFCTEVEOgogICAgICAg
ICBjb250ZXh0LT5wcml2LT5wc29uRW5hYmxlZCA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUp
OwogICAgICAgICBicmVhazsKKyNpZiAhVVNFKEdUSzQpCiAgICAgY2FzZSBQUk9QX1VTRV9TWVNZ
RU1fQVBQRUFSQU5DRV9GT1JfU0NST0xMQkFSUzoKICAgICAgICAgd2Via2l0X3dlYl9jb250ZXh0
X3NldF91c2Vfc3lzdGVtX2FwcGVhcmFuY2VfZm9yX3Njcm9sbGJhcnMoY29udGV4dCwgZ192YWx1
ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOwogICAgICAgICBicmVhazsKKyNlbmRpZgogI2VuZGlmCiAg
ICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9i
amVjdCwgcHJvcElELCBwYXJhbVNwZWMpOwpAQCAtNTMzLDYgKzUzOSw3IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfY29udGV4dF9jbGFzc19pbml0KFdlYktpdFdlYkNvbnRleHRDbGFzcyogd2Vi
Q29udGV4dENsYXNzCiAgICAgICAgICAgICBGQUxTRSwKICAgICAgICAgICAgIHN0YXRpY19jYXN0
PEdQYXJhbUZsYWdzPihXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05TVFJVQ1Rf
T05MWSkpKTsKIAorI2lmICFVU0UoR1RLNCkKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJDb250
ZXh0OnVzZS1zeXN0ZW0tYXBwZWFyYW5jZS1mb3Itc2Nyb2xsYmFyczoKICAgICAgKgpAQCAtNTUz
LDYgKzU2MCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9jbGFzc19pbml0KFdl
YktpdFdlYkNvbnRleHRDbGFzcyogd2ViQ29udGV4dENsYXNzCiAgICAgICAgICAgICBfKCJXaGV0
aGVyIHRvIHVzZSBzeXN0ZW0gYXBwZWFyYW5jZSBmb3IgcmVuZGVyaW5nIHNjcm9sbGJhcnMiKSwK
ICAgICAgICAgICAgIFRSVUUsCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4o
V0VCS0lUX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUKSkpOworI2VuZGlmCiAj
ZW5kaWYKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCBiNzQzYTBkMzQwYmUuLmNiOTk1YmFjYmZjOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5j
cHAKQEAgLTIzNTAsNyArMjM1MCw3IEBAIHZvaWQgd2Via2l0V2ViVmlld1J1bkFzTW9kYWwoV2Vi
S2l0V2ViVmlldyogd2ViVmlldykKIAogICAgIHdlYlZpZXctPnByaXYtPm1vZGFsTG9vcCA9IGFk
b3B0R1JlZihnX21haW5fbG9vcF9uZXcoMCwgRkFMU0UpKTsKIAotI2lmIFBMQVRGT1JNKEdUSykK
KyNpZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkKIC8vIFRoaXMgaXMgdG8gc3VwcHJlc3Mg
d2FybmluZ3MgYWJvdXQgZ2RrX3RocmVhZHNfbGVhdmUgYW5kIGdka190aHJlYWRzX2VudGVyLgog
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgZ2RrX3RocmVhZHNf
bGVhdmUoKTsKQEAgLTIzNTgsNyArMjM1OCw3IEBAIHZvaWQgd2Via2l0V2ViVmlld1J1bkFzTW9k
YWwoV2ViS2l0V2ViVmlldyogd2ViVmlldykKIAogICAgIGdfbWFpbl9sb29wX3J1bih3ZWJWaWV3
LT5wcml2LT5tb2RhbExvb3AuZ2V0KCkpOwogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRG
T1JNKEdUSykgJiYgIVVTRShHVEs0KQogICAgIGdka190aHJlYWRzX2VudGVyKCk7CiAgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAjZW5kaWYKQEAgLTI1ODAsMTMgKzI1ODAs
MTYgQEAgdm9pZCB3ZWJraXRXZWJWaWV3UnVuRmlsZUNob29zZXJSZXF1ZXN0KFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcsIFdlYktpdEZpbGVDaG9vc2UKIH0KIAogI2lmIFBMQVRGT1JNKEdUSykKKyNp
ZiAhVVNFKEdUSzQpCiBzdGF0aWMgdm9pZCBjb250ZXh0TWVudURpc21pc3NlZChHdGtNZW51U2hl
bGwqLCBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewogICAgIGdfc2lnbmFsX2VtaXQod2ViVmll
dywgc2lnbmFsc1tDT05URVhUX01FTlVfRElTTUlTU0VEXSwgMCwgTlVMTCk7CiB9CisjZW5kaWYK
IAogdm9pZCB3ZWJraXRXZWJWaWV3UG9wdWxhdGVDb250ZXh0TWVudShXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIHByb3Bvc2VkTWVu
dSwgY29uc3QgV2ViSGl0VGVzdFJlc3VsdERhdGEmIGhpdFRlc3RSZXN1bHREYXRhLCBHVmFyaWFu
dCogdXNlckRhdGEpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIFdlYktpdFdlYlZpZXdCYXNlKiB3
ZWJWaWV3QmFzZSA9IFdFQktJVF9XRUJfVklFV19CQVNFKHdlYlZpZXcpOwogICAgIFdlYkNvbnRl
eHRNZW51UHJveHlHdGsqIGNvbnRleHRNZW51UHJveHkgPSB3ZWJraXRXZWJWaWV3QmFzZUdldEFj
dGl2ZUNvbnRleHRNZW51UHJveHkod2ViVmlld0Jhc2UpOwogICAgIEFTU0VSVChjb250ZXh0TWVu
dVByb3h5KTsKQEAgLTI2MTAsNiArMjYxMyw3IEBAIHZvaWQgd2Via2l0V2ViVmlld1BvcHVsYXRl
Q29udGV4dE1lbnUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgVmVjdG9yPFdlYkNvCiAK
ICAgICAvLyBDbGVhciB0aGUgbWVudSB0byBtYWtlIHN1cmUgaXQncyB1c2VsZXNzIGFmdGVyIHNp
Z25hbCBlbWlzc2lvbi4KICAgICB3ZWJraXRfY29udGV4dF9tZW51X3JlbW92ZV9hbGwoY29udGV4
dE1lbnUuZ2V0KCkpOworI2VuZGlmCiB9CiAjZWxpZiBQTEFURk9STShXUEUpCiB2b2lkIHdlYmtp
dFdlYlZpZXdQb3B1bGF0ZUNvbnRleHRNZW51KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0
IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgcHJvcG9zZWRNZW51LCBjb25zdCBXZWJI
aXRUZXN0UmVzdWx0RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEsIEdWYXJpYW50KiB1c2VyRGF0YSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvSW5wdXRNZXRob2RG
aWx0ZXJHdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9JbnB1dE1ldGhv
ZEZpbHRlckd0ay5jcHAKaW5kZXggOGQ4NWRhN2FkOTkyLi44YTA4ZjZmMDQ0NzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvSW5wdXRNZXRob2RGaWx0ZXJHdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvSW5wdXRNZXRob2RGaWx0
ZXJHdGsuY3BwCkBAIC0zOCw3ICszOCw3IEBAIEludFJlY3QgSW5wdXRNZXRob2RGaWx0ZXI6OnBs
YXRmb3JtVHJhbnNmb3JtQ3Vyc29yUmVjdFRvVmlld0Nvb3JkaW5hdGVzKGNvbnN0IEluCiAKIGJv
b2wgSW5wdXRNZXRob2RGaWx0ZXI6OnBsYXRmb3JtRXZlbnRLZXlJc0tleVByZXNzKFBsYXRmb3Jt
RXZlbnRLZXkqIGV2ZW50KSBjb25zdAogewotICAgIHJldHVybiBldmVudC0+dHlwZSA9PSBHREtf
S0VZX1BSRVNTOworICAgIHJldHVybiBnZGtfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoZXZlbnQpID09
IEdES19LRVlfUFJFU1M7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcAppbmRleCBhNjhh
MzA5ODNmNjAuLjU5YTI4MmNjMzdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTcwLDYgKzcwLDkgQEAgc3RkOjp1bmlx
dWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVEcmF3aW5nQXJl
YVByb3h5KFdlYlByb2MKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxh
eShjb25zdCBXZWJDb3JlOjpSZWdpb24mIHJlZ2lvbikKIHsKKyNpZiBVU0UoR1RLNCkKKyAgICBn
dGtfd2lkZ2V0X3F1ZXVlX2RyYXcobV92aWV3V2lkZ2V0KTsKKyNlbHNlCiAgICAgV2ViUGFnZVBy
b3h5KiBwYWdlUHJveHkgPSB3ZWJraXRXZWJWaWV3QmFzZUdldFBhZ2UoV0VCS0lUX1dFQl9WSUVX
X0JBU0UobV92aWV3V2lkZ2V0KSk7CiAgICAgQVNTRVJUKHBhZ2VQcm94eSk7CiAKQEAgLTgxLDYg
Kzg0LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBX
ZWJDb3JlOjpSZWdpb24mIHJlZ2lvbikKICAgICB9CiAKICAgICBndGtfd2lkZ2V0X3F1ZXVlX2Ry
YXdfcmVnaW9uKG1fdmlld1dpZGdldCwgdG9DYWlyb1JlZ2lvbihyZWdpb24pLmdldCgpKTsKKyNl
bmRpZgogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpCkBAIC0xNDgsMTEgKzE1
MiwxOCBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vy
c29yJiBjdXJzb3IpCiAgICAgLy8gaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYzODgKICAgICAvLyBTZXR0aW5nIHRoZSBjdXJzb3IgbWF5IGJlIGFuIGV4cGVuc2l2ZSBv
cGVyYXRpb24gaW4gc29tZSBiYWNrZW5kcywKICAgICAvLyBzbyBkb24ndCByZS1zZXQgdGhlIGN1
cnNvciBpZiBpdCdzIGFscmVhZHkgc2V0IHRvIHRoZSB0YXJnZXQgdmFsdWUuCisjaWYgVVNFKEdU
SzQpCisgICAgR2RrQ3Vyc29yKiBjdXJyZW50Q3Vyc29yID0gZ3RrX3dpZGdldF9nZXRfY3Vyc29y
KG1fdmlld1dpZGdldCk7CisgICAgR2RrQ3Vyc29yKiBuZXdDdXJzb3IgPSBjdXJzb3IucGxhdGZv
cm1DdXJzb3IoKS5nZXQoKTsKKyAgICBpZiAoY3VycmVudEN1cnNvciAhPSBuZXdDdXJzb3IpCisg
ICAgICAgIGd0a193aWRnZXRfc2V0X2N1cnNvcihtX3ZpZXdXaWRnZXQsIG5ld0N1cnNvcik7Cisj
ZWxzZQogICAgIEdka1dpbmRvdyogd2luZG93ID0gZ3RrX3dpZGdldF9nZXRfd2luZG93KG1fdmll
d1dpZGdldCk7CiAgICAgR2RrQ3Vyc29yKiBjdXJyZW50Q3Vyc29yID0gZ2RrX3dpbmRvd19nZXRf
Y3Vyc29yKHdpbmRvdyk7CiAgICAgR2RrQ3Vyc29yKiBuZXdDdXJzb3IgPSBjdXJzb3IucGxhdGZv
cm1DdXJzb3IoKS5nZXQoKTsKICAgICBpZiAoY3VycmVudEN1cnNvciAhPSBuZXdDdXJzb3IpCiAg
ICAgICAgIGdka193aW5kb3dfc2V0X2N1cnNvcih3aW5kb3csIG5ld0N1cnNvcik7CisjZW5kaWYK
IH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVz
KGJvb2wgaGlkZGVuVW50aWxNb3VzZU1vdmVzKQpAQCAtMjMwLDE3ICsyNDEsMjIgQEAgdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2
ZW50JiBldmVudCwgYm9vbAogewogICAgIGlmICh3YXNFdmVudEhhbmRsZWQpCiAgICAgICAgIHJl
dHVybjsKLQorI2lmICFVU0UoR1RLNCkKICAgICBXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2Vi
Vmlld0Jhc2UgPSBXRUJLSVRfV0VCX1ZJRVdfQkFTRShtX3ZpZXdXaWRnZXQpOwogICAgIHdlYmtp
dFdlYlZpZXdCYXNlRm9yd2FyZE5leHRLZXlFdmVudCh3ZWJraXRXZWJWaWV3QmFzZSk7CiAgICAg
Z3RrX21haW5fZG9fZXZlbnQoZXZlbnQubmF0aXZlRXZlbnQoKSk7CisjZW5kaWYKIH0KIAogUmVm
UHRyPFdlYlBvcHVwTWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBNZW51UHJv
eHkoV2ViUGFnZVByb3h5JiBwYWdlKQogeworI2lmIFVTRShHVEs0KQorICAgIHJldHVybiBudWxs
cHRyOworI2Vsc2UKICAgICBpZiAoV0VCS0lUX0lTX1dFQl9WSUVXKG1fdmlld1dpZGdldCkpCiAg
ICAgICAgIHJldHVybiBXZWJLaXRQb3B1cE1lbnU6OmNyZWF0ZShtX3ZpZXdXaWRnZXQsIHBhZ2Up
OwogICAgIHJldHVybiBXZWJQb3B1cE1lbnVQcm94eUd0azo6Y3JlYXRlKG1fdmlld1dpZGdldCwg
cGFnZSk7CisjZW5kaWYKIH0KIAogUmVmPFdlYkNvbnRleHRNZW51UHJveHk+IFBhZ2VDbGllbnRJ
bXBsOjpjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgQ29udGV4dE1l
bnVDb250ZXh0RGF0YSYmIGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKQEAgLTI1
OCw3ICsyNzQsMTEgQEAgUmVmUHRyPFdlYkNvbG9yUGlja2VyPiBQYWdlQ2xpZW50SW1wbDo6Y3Jl
YXRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5KiBwYWdlLCBjb24KICNpZiBFTkFCTEUoREFUQUxJ
U1RfRUxFTUVOVCkKIFJlZlB0cjxXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24+IFBhZ2VD
bGllbnRJbXBsOjpjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24oV2ViUGFnZVByb3h5
JiBwYWdlKQogeworI2lmIFVTRShHVEs0KQorICAgIHJldHVybiBudWxscHRyOworI2Vsc2UKICAg
ICByZXR1cm4gV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duR3RrOjpjcmVhdGUobV92aWV3
V2lkZ2V0LCBwYWdlKTsKKyNlbmRpZgogfQogI2VuZGlmCiAKQEAgLTMwNywxMiArMzI3LDE0IEBA
IHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENoYW5nZUNvbnRlbnRTaXplKGNvbnN0IEludFNpemUm
IHNpemUpCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIHZvaWQgUGFnZUNsaWVudEltcGw6OnN0
YXJ0RHJhZyhSZWY8U2VsZWN0aW9uRGF0YT4mJiBzZWxlY3Rpb24sIERyYWdPcGVyYXRpb24gZHJh
Z09wZXJhdGlvbiwgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4mJiBkcmFnSW1hZ2UpCiB7CisjaWYg
IVVTRShHVEs0KQogICAgIFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9W
SUVXX0JBU0UobV92aWV3V2lkZ2V0KTsKICAgICB3ZWJraXRXZWJWaWV3QmFzZURyYWdBbmREcm9w
SGFuZGxlcih3ZWJWaWV3KS5zdGFydERyYWcoV1RGTW92ZShzZWxlY3Rpb24pLCBkcmFnT3BlcmF0
aW9uLCBXVEZNb3ZlKGRyYWdJbWFnZSkpOwogCiAgICAgLy8gQSBkcmFnIHN0YXJ0aW5nIHNob3Vs
ZCBwcmV2ZW50IGEgZG91YmxlLWNsaWNrIGZyb20gaGFwcGVuaW5nLiBUaGlzIG1pZ2h0CiAgICAg
Ly8gaGFwcGVuIGlmIGEgZHJhZyBpcyBmb2xsb3dlZCB2ZXJ5IHF1aWNrbHkgYnkgYW5vdGhlciBj
bGljayAobGlrZSBpbiB0aGUgV1RSKS4KICAgICB3ZWJraXRXZWJWaWV3QmFzZVJlc2V0Q2xpY2tD
b3VudGVyKHdlYlZpZXcpOworI2VuZGlmCiB9CiAjZW5kaWYKIApAQCAtMzg2LDYgKzQwOCw3IEBA
IHZvaWQgUGFnZUNsaWVudEltcGw6OmJlZ2FuRXhpdEZ1bGxTY3JlZW4oY29uc3QgSW50UmVjdCYg
LyogaW5pdGlhbEZyYW1lICovLCBjb25zCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIHZvaWQg
UGFnZUNsaWVudEltcGw6OmRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2
ZW50JiBldmVudCwgYm9vbCB3YXNFdmVudEhhbmRsZWQpCiB7CisjaWYgIVVTRShHVEs0KQogICAg
IGNvbnN0IEdka0V2ZW50KiB0b3VjaEV2ZW50ID0gZXZlbnQubmF0aXZlRXZlbnQoKTsKIAogICAg
IEdlc3R1cmVDb250cm9sbGVyJiBnZXN0dXJlQ29udHJvbGxlciA9IHdlYmtpdFdlYlZpZXdCYXNl
R2VzdHVyZUNvbnRyb2xsZXIoV0VCS0lUX1dFQl9WSUVXX0JBU0UobV92aWV3V2lkZ2V0KSk7CkBA
IC00NDEsMTEgKzQ2NCwxMyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZl
bnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQsIGJvb2wgdwogICAgIHBvaW50ZXJF
dmVudC0+YW55LnNlbmRfZXZlbnQgPSBUUlVFOwogCiAgICAgZ3RrX3dpZGdldF9ldmVudChtX3Zp
ZXdXaWRnZXQsIHBvaW50ZXJFdmVudC5nZXQoKSk7CisjZW5kaWYKIH0KICNlbmRpZiAvLyBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjp3aGVlbEV2ZW50V2FzTm90
SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50JiBldmVudCkKIHsKKyNp
ZiAhVVNFKEdUSzQpCiAgICAgVmlld0dlc3R1cmVDb250cm9sbGVyKiBjb250cm9sbGVyID0gd2Vi
a2l0V2ViVmlld0Jhc2VWaWV3R2VzdHVyZUNvbnRyb2xsZXIoV0VCS0lUX1dFQl9WSUVXX0JBU0Uo
bV92aWV3V2lkZ2V0KSk7CiAgICAgaWYgKGNvbnRyb2xsZXIgJiYgY29udHJvbGxlci0+aXNTd2lw
ZUdlc3R1cmVFbmFibGVkKCkpIHsKICAgICAgICAgY29udHJvbGxlci0+d2hlZWxFdmVudFdhc05v
dEhhbmRsZWRCeVdlYkNvcmUoJmV2ZW50Lm5hdGl2ZUV2ZW50KCktPnNjcm9sbCk7CkBAIC00NTQs
NiArNDc5LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6d2hlZWxFdmVudFdhc05vdEhhbmRsZWRC
eVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYKIAogICAgIHdlYmtpdFdlYlZpZXdC
YXNlRm9yd2FyZE5leHRXaGVlbEV2ZW50KFdFQktJVF9XRUJfVklFV19CQVNFKG1fdmlld1dpZGdl
dCkpOwogICAgIGd0a19tYWluX2RvX2V2ZW50KGV2ZW50Lm5hdGl2ZUV2ZW50KCkpOworI2VuZGlm
CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9t
Q29udGVudFByb3ZpZGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dGhl
bnRpY2F0aW9uRGlhbG9nLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0QXV0aGVudGljYXRpb25EaWFsb2cuY3BwCmluZGV4IDE2NzRlZTE0MWZhZi4uYWNmZDMwMzNm
MDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1
dGhlbnRpY2F0aW9uRGlhbG9nLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEF1dGhlbnRpY2F0aW9uRGlhbG9nLmNwcApAQCAtMjAsNiArMjAsOCBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdEF1dGhlbnRpY2F0aW9uRGlhbG9nLmgi
CiAKKyNpZiAhVVNFKEdUSzQpCisKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlz
dGVuZXIuaCIKICNpbmNsdWRlICJXZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3RQcml2YXRlLmgi
CiAjaW5jbHVkZSAiV2ViS2l0Q3JlZGVudGlhbFByaXZhdGUuaCIKQEAgLTIzNSwzICsyMzcsNSBA
QCBHdGtXaWRnZXQqIHdlYmtpdEF1dGhlbnRpY2F0aW9uRGlhbG9nTmV3KFdlYktpdEF1dGhlbnRp
Y2F0aW9uUmVxdWVzdCogcmVxdWVzdCwgQwogICAgIHdlYmtpdEF1dGhlbnRpY2F0aW9uRGlhbG9n
SW5pdGlhbGl6ZShhdXRoRGlhbG9nKTsKICAgICByZXR1cm4gR1RLX1dJREdFVChhdXRoRGlhbG9n
KTsKIH0KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEF1dGhlbnRpY2F0aW9uRGlhbG9nLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdEF1dGhlbnRpY2F0aW9uRGlhbG9nLmgKaW5kZXggN2U2ODlmYTI3ODky
Li40ZDAzZWJjN2MyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0QXV0aGVudGljYXRpb25EaWFsb2cuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdEF1dGhlbnRpY2F0aW9uRGlhbG9nLmgKQEAgLTE5LDYgKzE5LDgg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiAhVVNFKEdUSzQpCisKICNpbmNsdWRlICJXZWJLaXRB
dXRoZW50aWNhdGlvblJlcXVlc3QuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3RGlhbG9nLmgi
CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgpAQCAtNTYsMyArNTgsNCBAQCBHdGtXaWRnZXQqIHdlYmtp
dEF1dGhlbnRpY2F0aW9uRGlhbG9nTmV3KFdlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdCosIENy
ZWRlbnRpYQogCiBHX0VORF9ERUNMUwogCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RW1vamlDaG9vc2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RW1vamlDaG9vc2VyLmNwcAppbmRleCBmMzBkOGVm
Nzk5MDcuLjE3ZTk0MzA5ODQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRFbW9qaUNob29zZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0RW1vamlDaG9vc2VyLmNwcApAQCAtMjUsNyArMjUsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdEVtb2ppQ2hvb3Nlci5oIgogCi0jaWYg
R1RLX0NIRUNLX1ZFUlNJT04oMywgMjQsIDApCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQs
IDApICYmICFVU0UoR1RLNCkKIAogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTYzNyw0ICs2MzcsNCBAQCBHdGtXaWRnZXQqIHdlYmtpdEVt
b2ppQ2hvb3Nlck5ldygpCiAgICAgcmV0dXJuIEdUS19XSURHRVQoYXV0aERpYWxvZyk7CiB9CiAK
LSNlbmRpZiAvLyBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAyNCwgMCkKKyNlbmRpZiAvLyBHVEtfQ0hF
Q0tfVkVSU0lPTigzLCAyNCwgMCkgJiYgIVVTRShHVEs0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFbW9qaUNob29zZXIuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RW1vamlDaG9vc2VyLmgKaW5kZXggMmIzZDBlNTBm
ZDE1Li5lNWU0MDcwZWIyZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0RW1vamlDaG9vc2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRFbW9qaUNob29zZXIuaApAQCAtMjEsNyArMjEsNyBAQAogCiAjaW5jbHVk
ZSA8Z3RrL2d0ay5oPgogCi0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQsIDApCisjaWYgR1RL
X0NIRUNLX1ZFUlNJT04oMywgMjQsIDApICYmICFVU0UoR1RLNCkKIAogR19CRUdJTl9ERUNMUwog
CkBAIC01MSw0ICs1MSw0IEBAIEd0a1dpZGdldCogd2Via2l0RW1vamlDaG9vc2VyTmV3KCk7CiAK
IEdfRU5EX0RFQ0xTCiAKLSNlbmRpZiAvLyBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAyNCwgMCkKKyNl
bmRpZiAvLyBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAyNCwgMCkgJiYgIVVTRShHVEs0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbnB1dE1ldGhvZENv
bnRleHRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbnB1
dE1ldGhvZENvbnRleHRHdGsuY3BwCmluZGV4IGUyNzU2NTAyMTg4Ny4uOGU1ZTVmOWViMjJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdElucHV0TWV0
aG9kQ29udGV4dEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRJbnB1dE1ldGhvZENvbnRleHRHdGsuY3BwCkBAIC02MCw3ICs2MCwxMSBAQCB2b2lkIHdl
YmtpdF9pbnB1dF9tZXRob2RfdW5kZXJsaW5lX3NldF9jb2xvcihXZWJLaXRJbnB1dE1ldGhvZFVu
ZGVybGluZSogdW5kZXJsaQogICoKICAqIFNpbmNlOiAyLjI4CiAgKi8KKyNpZiBVU0UoR1RLNCkK
K2dib29sZWFuIHdlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9maWx0ZXJfa2V5X2V2ZW50KFdl
YktpdElucHV0TWV0aG9kQ29udGV4dCogY29udGV4dCwgR2RrRXZlbnQqIGtleUV2ZW50KQorI2Vs
c2UKIGdib29sZWFuIHdlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9maWx0ZXJfa2V5X2V2ZW50
KFdlYktpdElucHV0TWV0aG9kQ29udGV4dCogY29udGV4dCwgR2RrRXZlbnRLZXkqIGtleUV2ZW50
KQorI2VuZGlmCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0lOUFVUX01F
VEhPRF9DT05URVhUKGNvbnRleHQpLCBGQUxTRSk7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
a2V5RXZlbnQsIEZBTFNFKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0SW1wbEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdElucHV0TWV0aG9kQ29udGV4dEltcGxHdGsuY3BwCmlu
ZGV4IDJlNzA5NzYzNzg4MS4uMTFiMGRlNGI5NTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdElucHV0TWV0aG9kQ29udGV4dEltcGxHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5wdXRNZXRob2RDb250
ZXh0SW1wbEd0ay5jcHAKQEAgLTE2OCw3ICsxNjgsMTEgQEAgc3RhdGljIHZvaWQgd2Via2l0SW5w
dXRNZXRob2RDb250ZXh0SW1wbEd0a0dldFByZWVkaXQoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0
KgogICAgICAgICAqY3Vyc29yT2Zmc2V0ID0gY2xhbXBUbzx1bnNpZ25lZD4ob2Zmc2V0KTsKIH0K
IAorI2lmIFVTRShHVEs0KQorc3RhdGljIGdib29sZWFuIHdlYmtpdElucHV0TWV0aG9kQ29udGV4
dEltcGxHdGtGaWx0ZXJLZXlFdmVudChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQqIGNvbnRleHQs
IEdka0V2ZW50KiBrZXlFdmVudCkKKyNlbHNlCiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0SW5wdXRN
ZXRob2RDb250ZXh0SW1wbEd0a0ZpbHRlcktleUV2ZW50KFdlYktpdElucHV0TWV0aG9kQ29udGV4
dCogY29udGV4dCwgR2RrRXZlbnRLZXkqIGtleUV2ZW50KQorI2VuZGlmCiB7CiAgICAgYXV0byog
cHJpdiA9IFdFQktJVF9JTlBVVF9NRVRIT0RfQ09OVEVYVF9JTVBMX0dUSyhjb250ZXh0KS0+cHJp
djsKICAgICByZXR1cm4gZ3RrX2ltX2NvbnRleHRfZmlsdGVyX2tleXByZXNzKHByaXYtPmNvbnRl
eHQuZ2V0KCksIGtleUV2ZW50KTsKQEAgLTIyOSw1ICsyMzMsNyBAQCBXZWJLaXRJbnB1dE1ldGhv
ZENvbnRleHQqIHdlYmtpdElucHV0TWV0aG9kQ29udGV4dEltcGxHdGtOZXcoKQogCiB2b2lkIHdl
YmtpdElucHV0TWV0aG9kQ29udGV4dEltcGxHdGtTZXRDbGllbnRXaW5kb3coV2ViS2l0SW5wdXRN
ZXRob2RDb250ZXh0SW1wbEd0ayogY29udGV4dCwgR2RrV2luZG93KiB3aW5kb3cpCiB7CisjaWYg
IVVTRShHVEs0KQogICAgIGd0a19pbV9jb250ZXh0X3NldF9jbGllbnRfd2luZG93KGNvbnRleHQt
PnByaXYtPmNvbnRleHQuZ2V0KCksIHdpbmRvdyk7CisjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9wdXBNZW51LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9wdXBNZW51LmNwcAppbmRleCA4YjEx
ZWFjNmRkOGEuLmE0ZmI1OTJkNTYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRQb3B1cE1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0UG9wdXBNZW51LmNwcApAQCAtMjgsMTcgKzI4LDI0IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFdlYktpdFBvcHVwTWVu
dTo6V2ViS2l0UG9wdXBNZW51KEd0a1dpZGdldCogd2ViVmlldywgV2ViUG9wdXBNZW51UHJveHk6
OkNsaWVudCYgY2xpZW50KQorI2lmIFVTRShHVEs0KQorICAgIDogV2ViUG9wdXBNZW51UHJveHko
Y2xpZW50KQorI2Vsc2UKICAgICA6IFdlYlBvcHVwTWVudVByb3h5R3RrKHdlYlZpZXcsIGNsaWVu
dCkKKyNlbmRpZgogewogfQogCisjaWYgIVVTRShHVEs0KQogc3RhdGljIHZvaWQgbWVudUNsb3Nl
Q2FsbGJhY2soV2ViS2l0UG9wdXBNZW51KiBwb3B1cE1lbnUpCiB7CiAgICAgcG9wdXBNZW51LT5h
Y3RpdmF0ZUl0ZW0oV1RGOjpudWxsb3B0KTsKIH0KKyNlbmRpZgogCiB2b2lkIFdlYktpdFBvcHVw
TWVudTo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIGRp
cmVjdGlvbiwgZG91YmxlIHBhZ2VTY2FsZUZhY3RvciwgY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRl
bT4mIGl0ZW1zLCBjb25zdCBQbGF0Zm9ybVBvcHVwTWVudURhdGEmIHBsYXRmb3JtRGF0YSwgaW50
MzJfdCBzZWxlY3RlZEluZGV4KQogeworI2lmICFVU0UoR1RLNCkKICAgICBHUmVmUHRyPFdlYktp
dE9wdGlvbk1lbnU+IG1lbnUgPSBhZG9wdEdSZWYod2Via2l0T3B0aW9uTWVudUNyZWF0ZSgqdGhp
cywgaXRlbXMsIHNlbGVjdGVkSW5kZXgpKTsKICAgICBjb25zdCBHZGtFdmVudCogZXZlbnQgPSBt
X2NsaWVudC0+Y3VycmVudGx5UHJvY2Vzc2VkTW91c2VEb3duRXZlbnQoKSA/IG1fY2xpZW50LT5j
dXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25FdmVudCgpLT5uYXRpdmVFdmVudCgpIDogbnVsbHB0
cjsKICAgICBpZiAod2Via2l0V2ViVmlld1Nob3dPcHRpb25NZW51KFdFQktJVF9XRUJfVklFVyht
X3dlYlZpZXcpLCByZWN0LCBtZW51LmdldCgpLCBldmVudCkpIHsKQEAgLTQ2LDI4ICs1MywzNCBA
QCB2b2lkIFdlYktpdFBvcHVwTWVudTo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0
LCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbgogICAgICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBw
ZWQobV9tZW51LmdldCgpLCAiY2xvc2UiLCBHX0NBTExCQUNLKG1lbnVDbG9zZUNhbGxiYWNrKSwg
dGhpcyk7CiAgICAgfSBlbHNlCiAgICAgICAgIFdlYlBvcHVwTWVudVByb3h5R3RrOjpzaG93UG9w
dXBNZW51KHJlY3QsIGRpcmVjdGlvbiwgcGFnZVNjYWxlRmFjdG9yLCBpdGVtcywgcGxhdGZvcm1E
YXRhLCBzZWxlY3RlZEluZGV4KTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYktpdFBvcHVwTWVudTo6
aGlkZVBvcHVwTWVudSgpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIGlmICghbV9tZW51KSB7CiAg
ICAgICAgIFdlYlBvcHVwTWVudVByb3h5R3RrOjpoaWRlUG9wdXBNZW51KCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9tYXRjaGVkKG1f
bWVudS5nZXQoKSwgR19TSUdOQUxfTUFUQ0hfREFUQSwgMCwgMCwgbnVsbHB0ciwgbnVsbHB0ciwg
dGhpcyk7CiAgICAgd2Via2l0X29wdGlvbl9tZW51X2Nsb3NlKG1fbWVudS5nZXQoKSk7CisjZW5k
aWYKIH0KIAogdm9pZCBXZWJLaXRQb3B1cE1lbnU6OmNhbmNlbFRyYWNraW5nKCkKIHsKKyNpZiAh
VVNFKEdUSzQpCiAgICAgaWYgKCFtX21lbnUpIHsKICAgICAgICAgV2ViUG9wdXBNZW51UHJveHlH
dGs6OmNhbmNlbFRyYWNraW5nKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaGlkZVBv
cHVwTWVudSgpOwogICAgIG1fbWVudSA9IG51bGxwdHI7CisjZW5kaWYKIH0KIAorI2lmICFVU0Uo
R1RLNCkKIHZvaWQgV2ViS2l0UG9wdXBNZW51OjphY3RpdmF0ZUl0ZW0oT3B0aW9uYWw8dW5zaWdu
ZWQ+IGl0ZW1JbmRleCkKIHsKICAgICBXZWJQb3B1cE1lbnVQcm94eUd0azo6YWN0aXZhdGVJdGVt
KGl0ZW1JbmRleCk7CkBAIC03Niw1ICs4OSw2IEBAIHZvaWQgV2ViS2l0UG9wdXBNZW51OjphY3Rp
dmF0ZUl0ZW0oT3B0aW9uYWw8dW5zaWduZWQ+IGl0ZW1JbmRleCkKICAgICAgICAgbV9tZW51ID0g
bnVsbHB0cjsKICAgICB9CiB9CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBvcHVwTWVudS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb3B1cE1lbnUuaAppbmRl
eCA4NGJhNjg4NTdjMzIuLmIzNTI0YTcyZTgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb3B1cE1lbnUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBvcHVwTWVudS5oCkBAIC0yNiw3ICsyNiwxMSBAQCB0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0T3B0aW9uTWVudSBXZWJLaXRPcHRpb25NZW51OwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAorI2lmIFVTRShHVEs0KQorY2xhc3MgV2ViS2l0UG9wdXBNZW51IGZpbmFs
IDogcHVibGljIFdlYlBvcHVwTWVudVByb3h5IHsKKyNlbHNlCiBjbGFzcyBXZWJLaXRQb3B1cE1l
bnUgZmluYWwgOiBwdWJsaWMgV2ViUG9wdXBNZW51UHJveHlHdGsgeworI2VuZGlmCiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxXZWJLaXRQb3B1cE1lbnU+IGNyZWF0ZShHdGtXaWRnZXQqIHdlYlZp
ZXcsIFdlYlBvcHVwTWVudVByb3h5OjpDbGllbnQmIGNsaWVudCkKICAgICB7CkBAIC0zNCw3ICsz
OCwxMiBAQCBwdWJsaWM6CiAgICAgfQogICAgIH5XZWJLaXRQb3B1cE1lbnUoKSA9IGRlZmF1bHQ7
CiAKKyNpZiBVU0UoR1RLNCkKKyAgICB2b2lkIHNlbGVjdEl0ZW0odW5zaWduZWQpIHsgfTsKKyAg
ICB2b2lkIGFjdGl2YXRlSXRlbShPcHRpb25hbDx1bnNpZ25lZD4pIHsgfTsKKyNlbHNlCiAgICAg
dm9pZCBhY3RpdmF0ZUl0ZW0oT3B0aW9uYWw8dW5zaWduZWQ+IGl0ZW1JbmRleCkgb3ZlcnJpZGU7
CisjZW5kaWYKIAogcHJpdmF0ZToKICAgICBXZWJLaXRQb3B1cE1lbnUoR3RrV2lkZ2V0KiwgV2Vi
UG9wdXBNZW51UHJveHk6OkNsaWVudCYpOwpAQCAtNDMsNyArNTIsMTAgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGhpZGVQb3B1cE1lbnUoKSBvdmVycmlkZTsKICAgICB2b2lkIGNhbmNlbFRyYWNraW5n
KCkgb3ZlcnJpZGU7CiAKKyNpZiAhVVNFKEdUSzQpCiAgICAgR1JlZlB0cjxXZWJLaXRPcHRpb25N
ZW51PiBtX21lbnU7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVy
YXRpb24uY3BwCmluZGV4IDQwODM0YThlMGIxMy4uNjdlY2NhZGM1NjBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9u
LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdQcml2YXRlLmgi
CiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtVdGlsaXRp
ZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0d0a1ZlcnNpb25pbmcuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNs
dWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFNjcmlwdERpYWxvZ0d0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNjcmlwdERpYWxvZ0d0ay5jcHAKaW5kZXggMGYyY2MyNzBk
MmE0Li45MzAzZTQxNzVkMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0U2NyaXB0RGlhbG9nR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFNjcmlwdERpYWxvZ0d0ay5jcHAKQEAgLTI1LDIyICsyNSwyOCBA
QAogCiB2b2lkIHdlYmtpdFNjcmlwdERpYWxvZ0FjY2VwdChXZWJLaXRTY3JpcHREaWFsb2cqIHNj
cmlwdERpYWxvZykKIHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgaWYgKCFXRUJLSVRfSVNfU0NSSVBU
X0RJQUxPR19JTVBMKHNjcmlwdERpYWxvZy0+bmF0aXZlRGlhbG9nKSkKICAgICAgICAgcmV0dXJu
OwogICAgIHdlYmtpdFNjcmlwdERpYWxvZ0ltcGxDb25maXJtKFdFQktJVF9TQ1JJUFRfRElBTE9H
X0lNUEwoc2NyaXB0RGlhbG9nLT5uYXRpdmVEaWFsb2cpKTsKKyNlbmRpZgogfQogCiB2b2lkIHdl
YmtpdFNjcmlwdERpYWxvZ0Rpc21pc3MoV2ViS2l0U2NyaXB0RGlhbG9nKiBzY3JpcHREaWFsb2cp
CiB7CisjaWYgIVVTRShHVEs0KQogICAgIGlmICghV0VCS0lUX0lTX1NDUklQVF9ESUFMT0dfSU1Q
TChzY3JpcHREaWFsb2ctPm5hdGl2ZURpYWxvZykpCiAgICAgICAgIHJldHVybjsKICAgICB3ZWJr
aXRTY3JpcHREaWFsb2dJbXBsQ2FuY2VsKFdFQktJVF9TQ1JJUFRfRElBTE9HX0lNUEwoc2NyaXB0
RGlhbG9nLT5uYXRpdmVEaWFsb2cpKTsKKyNlbmRpZgogfQogCiB2b2lkIHdlYmtpdFNjcmlwdERp
YWxvZ1NldFVzZXJJbnB1dChXZWJLaXRTY3JpcHREaWFsb2cqIHNjcmlwdERpYWxvZywgY29uc3Qg
U3RyaW5nJiB1c2VySW5wdXQpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIGlmICghV0VCS0lUX0lT
X1NDUklQVF9ESUFMT0dfSU1QTChzY3JpcHREaWFsb2ctPm5hdGl2ZURpYWxvZykpCiAgICAgICAg
IHJldHVybjsKIAogICAgIHdlYmtpdFNjcmlwdERpYWxvZ0ltcGxTZXRFbnRyeVRleHQoV0VCS0lU
X1NDUklQVF9ESUFMT0dfSU1QTChzY3JpcHREaWFsb2ctPm5hdGl2ZURpYWxvZyksIHVzZXJJbnB1
dCk7CisjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0U2NyaXB0RGlhbG9nSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFNjcmlwdERpYWxvZ0ltcGwuY3BwCmluZGV4IGQ1MDRhMTEzNjQwNS4uYjY3
NTQ4NmNjODMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFNjcmlwdERpYWxvZ0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0U2NyaXB0RGlhbG9nSW1wbC5jcHAKQEAgLTIwLDYgKzIwLDggQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXRTY3JpcHREaWFsb2dJbXBsLmgiCiAKKyNp
ZiAhVVNFKEdUSzQpCisKICNpbmNsdWRlICJXZWJLaXRTY3JpcHREaWFsb2dQcml2YXRlLmgiCiAj
aW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5o
PgpAQCAtMjcyLDMgKzI3NCw1IEBAIHZvaWQgd2Via2l0U2NyaXB0RGlhbG9nSW1wbFNldEVudHJ5
VGV4dChXZWJLaXRTY3JpcHREaWFsb2dJbXBsKiBkaWFsb2csIGNvbnN0IFN0CiAKICAgICBndGtf
ZW50cnlfc2V0X3RleHQoR1RLX0VOVFJZKGRpYWxvZy0+cHJpdi0+ZW50cnkpLCB0ZXh0LnV0Zjgo
KS5kYXRhKCkpOwogfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0U2NyaXB0RGlhbG9nSW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRTY3JpcHREaWFsb2dJbXBsLmgKaW5kZXggN2Y4NjNjNDUwMGZm
Li43YzEyZjAxNmViNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0U2NyaXB0RGlhbG9nSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0U2NyaXB0RGlhbG9nSW1wbC5oCkBAIC0xOSw2ICsxOSw4IEBACiAKICNw
cmFnbWEgb25jZQogCisjaWYgIVVTRShHVEs0KQorCiAjaW5jbHVkZSAiV2ViS2l0U2NyaXB0RGlh
bG9nLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0RpYWxvZy5oIgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgpAQCAtNTMsMyArNTUsNSBAQCB2b2lkIHdlYmtpdFNjcmlwdERpYWxv
Z0ltcGxDb25maXJtKFdlYktpdFNjcmlwdERpYWxvZ0ltcGwqKTsKIHZvaWQgd2Via2l0U2NyaXB0
RGlhbG9nSW1wbFNldEVudHJ5VGV4dChXZWJLaXRTY3JpcHREaWFsb2dJbXBsKiwgY29uc3QgU3Ry
aW5nJik7CiAKIEdfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCBiZTM4N2QxYjQ3
MzIuLjI3OThjM2RjOTBjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL0NhaXJvVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HVW5pcXVlUHRy
R3RrLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0d0a1ZlcnNpb25pbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkSGVscGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9QbGF0Zm9ybURpc3BsYXkuaD4KQEAgLTc3LDEwICs3OCw2IEBACiAjaW5jbHVkZSAiV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eS5oIgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShYMTEpCi0jaW5j
bHVkZSA8Z2RrL2dka3guaD4KLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTk2LDYgKzkzLDcgQEAgcHVibGljOgogCiAgICAg
aW50IGN1cnJlbnRDbGlja0NvdW50Rm9yR2RrQnV0dG9uRXZlbnQoR2RrRXZlbnQqIGV2ZW50KQog
ICAgIHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgICAgIGludCBkb3VibGVDbGlja0Rpc3RhbmNlID0g
MjUwOwogICAgICAgICBpbnQgZG91YmxlQ2xpY2tUaW1lID0gNTsKICAgICAgICAgZ19vYmplY3Rf
Z2V0KGd0a19zZXR0aW5nc19nZXRfZm9yX3NjcmVlbihnZGtfZXZlbnRfZ2V0X3NjcmVlbihldmVu
dCkpLApAQCAtMTMyLDYgKzEzMCw3IEBAIHB1YmxpYzoKICAgICAgICAgcHJldmlvdXNDbGlja1Bv
aW50ID0gSW50UG9pbnQoeCwgeSk7CiAgICAgICAgIHByZXZpb3VzQ2xpY2tCdXR0b24gPSBidXR0
b247CiAgICAgICAgIHByZXZpb3VzQ2xpY2tUaW1lID0gZXZlbnRUaW1lOworI2VuZGlmCiAKICAg
ICAgICAgcmV0dXJuIGN1cnJlbnRDbGlja0NvdW50OwogICAgIH0KQEAgLTE0OSwxMSArMTQ4LDEx
IEBAIHR5cGVkZWYgSGFzaE1hcDx1aW50MzJfdCwgR1VuaXF1ZVB0cjxHZGtFdmVudD4+IFRvdWNo
RXZlbnRzTWFwOwogc3RydWN0IF9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUgewogICAgIF9XZWJL
aXRXZWJWaWV3QmFzZVByaXZhdGUoKQogICAgICAgICA6IHVwZGF0ZUFjdGl2aXR5U3RhdGVUaW1l
cihSdW5Mb29wOjptYWluKCksIHRoaXMsICZfV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlOjp1cGRh
dGVBY3Rpdml0eVN0YXRlVGltZXJGaXJlZCkKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAyNCwg
MCkKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAyNCwgMCkgJiYgIVVTRShHVEs0KQogICAgICAg
ICAsIHJlbGVhc2VFbW9qaUNob29zZXJUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZfV2Vi
S2l0V2ViVmlld0Jhc2VQcml2YXRlOjpyZWxlYXNlRW1vamlDaG9vc2VyVGltZXJGaXJlZCkKICNl
bmRpZgogICAgIHsKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAyNCwgMCkKKyNpZiBHVEtfQ0hF
Q0tfVkVSU0lPTigzLCAyNCwgMCkgJiYgIVVTRShHVEs0KQogICAgICAgICByZWxlYXNlRW1vamlD
aG9vc2VyVGltZXIuc2V0UHJpb3JpdHkoUnVuTG9vcFNvdXJjZVByaW9yaXR5OjpSZWxlYXNlVW51
c2VkUmVzb3VyY2VzVGltZXIpOwogI2VuZGlmCiAgICAgfQpAQCAtMTY2LDcgKzE2NSw3IEBAIHN0
cnVjdCBfV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlIHsKICAgICAgICAgYWN0aXZpdHlTdGF0ZUZs
YWdzVG9VcGRhdGUgPSB7IH07CiAgICAgfQogCi0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQs
IDApCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQsIDApICYmICFVU0UoR1RLNCkKICAgICB2
b2lkIHJlbGVhc2VFbW9qaUNob29zZXJUaW1lckZpcmVkKCkKICAgICB7CiAgICAgICAgIGlmIChl
bW9qaUNob29zZXIpIHsKQEAgLTE5MCw3ICsxODksOSBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdC
YXNlUHJpdmF0ZSB7CiAgICAgQXR0YWNobWVudFNpZGUgaW5zcGVjdG9yQXR0YWNobWVudFNpZGUg
eyBBdHRhY2htZW50U2lkZTo6Qm90dG9tIH07CiAgICAgdW5zaWduZWQgaW5zcGVjdG9yVmlld1Np
emUgeyAwIH07CiAgICAgR1VuaXF1ZVB0cjxHZGtFdmVudD4gY29udGV4dE1lbnVFdmVudDsKKyNp
ZiAhVVNFKEdUSzQpCiAgICAgV2ViQ29udGV4dE1lbnVQcm94eUd0ayogYWN0aXZlQ29udGV4dE1l
bnVQcm94eSB7IG51bGxwdHIgfTsKKyNlbmRpZgogICAgIElucHV0TWV0aG9kRmlsdGVyIGlucHV0
TWV0aG9kRmlsdGVyOwogICAgIEtleUJpbmRpbmdUcmFuc2xhdG9yIGtleUJpbmRpbmdUcmFuc2xh
dG9yOwogICAgIFRvdWNoRXZlbnRzTWFwIHRvdWNoRXZlbnRzOwpAQCAtMjE3LDE1ICsyMTgsMTcg
QEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUgewogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlPiBhY2NlbGVyYXRlZEJhY2tpbmdTdG9yZTsKIAot
I2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgIVVT
RShHVEs0KQogICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmFnQW5kRHJvcEhhbmRsZXI+IGRyYWdBbmRE
cm9wSGFuZGxlcjsKICNlbmRpZgogCisjaWYgIVVTRShHVEs0KQogICAgIHN0ZDo6dW5pcXVlX3B0
cjxHZXN0dXJlQ29udHJvbGxlcj4gZ2VzdHVyZUNvbnRyb2xsZXI7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFZpZXdHZXN0dXJlQ29udHJvbGxlcj4gdmlld0dlc3R1cmVDb250cm9sbGVyOwogICAgIGJv
b2wgaXNCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlRW5hYmxlZCB7IGZhbHNlIH07CisjZW5k
aWYKIAotI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDI0LCAwKQorI2lmIEdUS19DSEVDS19WRVJT
SU9OKDMsIDI0LCAwKSAmJiAhVVNFKEdUSzQpCiAgICAgR3RrV2lkZ2V0KiBlbW9qaUNob29zZXI7
CiAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiBlbW9qaUNob29zZXJDb21wbGV0
aW9uSGFuZGxlcjsKICAgICBSdW5Mb29wOjpUaW1lcjxXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGU+
IHJlbGVhc2VFbW9qaUNob29zZXJUaW1lcjsKQEAgLTI3NCw2ICsyNzcsNyBAQCBzdGF0aWMgZ2Jv
b2xlYW4gdG9wbGV2ZWxXaW5kb3dGb2N1c091dEV2ZW50KEd0a1dpZGdldCosIEdka0V2ZW50Rm9j
dXMqLCBXZWJLaXRXZQogICAgIHJldHVybiBGQUxTRTsKIH0KIAorI2lmICFVU0UoR1RLNCkKIHN0
YXRpYyBnYm9vbGVhbiB0b3BsZXZlbFdpbmRvd1N0YXRlRXZlbnQoR3RrV2lkZ2V0KiwgR2RrRXZl
bnRXaW5kb3dTdGF0ZSogZXZlbnQsIFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSkKIHsK
ICAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3QmFzZS0+cHJpdjsK
QEAgLTI5Miw2ICsyOTYsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gdG9wbGV2ZWxXaW5kb3dTdGF0ZUV2
ZW50KEd0a1dpZGdldCosIEdka0V2ZW50V2luZG93U3RhdGUqIGV2ZW50LAogCiAgICAgcmV0dXJu
IEZBTFNFOwogfQorI2VuZGlmCiAKIHN0YXRpYyB2b2lkIHRoZW1lQ2hhbmdlZChXZWJLaXRXZWJW
aWV3QmFzZSogd2ViVmlld0Jhc2UpCiB7CkBAIC0zNzIsOCArMzc3LDEwIEBAIHN0YXRpYyB2b2lk
IHdlYmtpdFdlYlZpZXdCYXNlU2V0VG9wbGV2ZWxPblNjcmVlbldpbmRvdyhXZWJLaXRXZWJWaWV3
QmFzZSogd2ViVmllCiAgICAgcHJpdi0+dG9wbGV2ZWxGb2N1c091dEV2ZW50SUQgPQogICAgICAg
ICBnX3NpZ25hbF9jb25uZWN0KHByaXYtPnRvcGxldmVsT25TY3JlZW5XaW5kb3csICJmb2N1cy1v
dXQtZXZlbnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sodG9wbGV2ZWxX
aW5kb3dGb2N1c091dEV2ZW50KSwgd2ViVmlld0Jhc2UpOworI2lmICFVU0UoR1RLNCkKICAgICBw
cml2LT50b3BsZXZlbFdpbmRvd1N0YXRlRXZlbnRJRCA9CiAgICAgICAgIGdfc2lnbmFsX2Nvbm5l
Y3QocHJpdi0+dG9wbGV2ZWxPblNjcmVlbldpbmRvdywgIndpbmRvdy1zdGF0ZS1ldmVudCIsIEdf
Q0FMTEJBQ0sodG9wbGV2ZWxXaW5kb3dTdGF0ZUV2ZW50KSwgd2ViVmlld0Jhc2UpOworI2VuZGlm
CiAKICAgICBhdXRvKiBzZXR0aW5ncyA9IGd0a193aWRnZXRfZ2V0X3NldHRpbmdzKEdUS19XSURH
RVQocHJpdi0+dG9wbGV2ZWxPblNjcmVlbldpbmRvdykpOwogICAgIHByaXYtPnRoZW1lQ2hhbmdl
ZElEID0KQEAgLTM5Miw2ICszOTksOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVJl
YWxpemUoR3RrV2lkZ2V0KiB3aWRnZXQpCiAgICAgV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXcg
PSBXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3aWRnZXQpOwogICAgIFdlYktpdFdlYlZpZXdCYXNlUHJp
dmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7CiAKKyNpZiBVU0UoR1RLNCkKKyAgICBHVEtfV0lE
R0VUX0NMQVNTKHdlYmtpdF93ZWJfdmlld19iYXNlX3BhcmVudF9jbGFzcyktPnJlYWxpemUod2lk
Z2V0KTsKKyNlbHNlCiAgICAgZ3RrX3dpZGdldF9zZXRfcmVhbGl6ZWQod2lkZ2V0LCBUUlVFKTsK
IAogICAgIEd0a0FsbG9jYXRpb24gYWxsb2NhdGlvbjsKQEAgLTQzMiw2ICs0NDIsNyBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVJlYWxpemUoR3RrV2lkZ2V0KiB3aWRnZXQpCiAgICAg
YXV0byogaW1Db250ZXh0ID0gcHJpdi0+aW5wdXRNZXRob2RGaWx0ZXIuY29udGV4dCgpOwogICAg
IGlmIChXRUJLSVRfSVNfSU5QVVRfTUVUSE9EX0NPTlRFWFRfSU1QTF9HVEsoaW1Db250ZXh0KSkK
ICAgICAgICAgd2Via2l0SW5wdXRNZXRob2RDb250ZXh0SW1wbEd0a1NldENsaWVudFdpbmRvdyhX
RUJLSVRfSU5QVVRfTUVUSE9EX0NPTlRFWFRfSU1QTF9HVEsoaW1Db250ZXh0KSwgd2luZG93KTsK
KyNlbmRpZgogCiAgICAgaWYgKHByaXYtPmFjY2VsZXJhdGVkQmFja2luZ1N0b3JlKQogICAgICAg
ICBwcml2LT5hY2NlbGVyYXRlZEJhY2tpbmdTdG9yZS0+cmVhbGl6ZSgpOwpAQCAtNTI0LDggKzUz
NSwxNSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUNvbnRhaW5lclJlbW92ZShHdGtD
b250YWluZXIqIGNvbnRhaW5lciwgR3RrV2lkZ2V0KgogICAgICAgICBndGtfd2lkZ2V0X3F1ZXVl
X3Jlc2l6ZSh3aWRnZXRDb250YWluZXIpOwogfQogCisjaWYgVVNFKEdUSzQpCitzdGF0aWMgdm9p
ZCB3ZWJraXRXZWJWaWV3QmFzZUNvbnRhaW5lckZvcmFsbChHdGtDb250YWluZXIqIGNvbnRhaW5l
ciwgR3RrQ2FsbGJhY2sgY2FsbGJhY2ssIGdwb2ludGVyIGNhbGxiYWNrRGF0YSkKKyNlbHNlCiBz
dGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUNvbnRhaW5lckZvcmFsbChHdGtDb250YWluZXIq
IGNvbnRhaW5lciwgZ2Jvb2xlYW4gaW5jbHVkZUludGVybmFscywgR3RrQ2FsbGJhY2sgY2FsbGJh
Y2ssIGdwb2ludGVyIGNhbGxiYWNrRGF0YSkKKyNlbmRpZgogeworI2lmIFVTRShHVEs0KQorICAg
IGJvb2wgaW5jbHVkZUludGVybmFscyA9IHRydWU7CisjZW5kaWYKICAgICBXZWJLaXRXZWJWaWV3
QmFzZSogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFV19CQVNFKGNvbnRhaW5lcik7CiAgICAgV2Vi
S2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKIApAQCAtNTUxLDcg
KzU2OSw3IEBAIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VDaGlsZE1vdmVSZXNpemUoV2ViS2l0V2Vi
Vmlld0Jhc2UqIHdlYlZpZXcsIEd0a1dpZGdldCogY2hpCiAgICAgZ3RrX3dpZGdldF9xdWV1ZV9y
ZXNpemVfbm9fcmVkcmF3KEdUS19XSURHRVQod2ViVmlldykpOwogfQogCi0jaWYgR1RLX0NIRUNL
X1ZFUlNJT04oMywgMjQsIDApCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQsIDApICYmICFV
U0UoR1RLNCkKIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ29tcGxldGVFbW9qaUNob29z
ZXJSZXF1ZXN0KFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3LCBjb25zdCBTdHJpbmcmIHRleHQp
CiB7CiAgICAgaWYgKGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKHdlYlZp
ZXctPnByaXYtPmVtb2ppQ2hvb3NlckNvbXBsZXRpb25IYW5kbGVyLCBudWxscHRyKSkKQEAgLTU2
NSw3ICs1ODMsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURpc3Bvc2UoR09iamVj
dCogZ29iamVjdCkKICAgICB3ZWJraXRXZWJWaWV3QmFzZVNldFRvcGxldmVsT25TY3JlZW5XaW5k
b3cod2ViVmlldywgbnVsbHB0cik7CiAgICAgaWYgKHdlYlZpZXctPnByaXYtPmFjY2Vzc2libGUp
CiAgICAgICAgIHdlYmtpdFdlYlZpZXdBY2Nlc3NpYmxlU2V0V2ViVmlldyhXRUJLSVRfV0VCX1ZJ
RVdfQUNDRVNTSUJMRSh3ZWJWaWV3LT5wcml2LT5hY2Nlc3NpYmxlLmdldCgpKSwgbnVsbHB0cik7
Ci0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQsIDApCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04o
MywgMjQsIDApICYmICFVU0UoR1RLNCkKICAgICB3ZWJraXRXZWJWaWV3QmFzZUNvbXBsZXRlRW1v
amlDaG9vc2VyUmVxdWVzdCh3ZWJWaWV3LCBlbXB0eVN0cmluZygpKTsKICNlbmRpZgogICAgIGlm
ICh3ZWJWaWV3LT5wcml2LT5wb2ludGVyTG9ja01hbmFnZXIpIHsKQEAgLTU4NSwxNSArNjAzLDE4
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ29uc3RydWN0ZWQoR09iamVjdCogb2Jq
ZWN0KQogCiAgICAgR3RrV2lkZ2V0KiB2aWV3V2lkZ2V0ID0gR1RLX1dJREdFVChvYmplY3QpOwog
ICAgIGd0a193aWRnZXRfc2V0X2Nhbl9mb2N1cyh2aWV3V2lkZ2V0LCBUUlVFKTsKKyNpZiAhVVNF
KEdUSzQpCiAgICAgZ3RrX2RyYWdfZGVzdF9zZXQodmlld1dpZGdldCwgc3RhdGljX2Nhc3Q8R3Rr
RGVzdERlZmF1bHRzPigwKSwgbnVsbHB0ciwgMCwKICAgICAgICAgc3RhdGljX2Nhc3Q8R2RrRHJh
Z0FjdGlvbj4oR0RLX0FDVElPTl9DT1BZIHwgR0RLX0FDVElPTl9NT1ZFIHwgR0RLX0FDVElPTl9M
SU5LIHwgR0RLX0FDVElPTl9QUklWQVRFKSk7CiAgICAgZ3RrX2RyYWdfZGVzdF9zZXRfdGFyZ2V0
X2xpc3Qodmlld1dpZGdldCwgUGFzdGVib2FyZEhlbHBlcjo6c2luZ2xldG9uKCkudGFyZ2V0TGlz
dCgpKTsKKyNlbmRpZgogCiAgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gV0VC
S0lUX1dFQl9WSUVXX0JBU0Uob2JqZWN0KS0+cHJpdjsKICAgICBwcml2LT5wYWdlQ2xpZW50ID0g
bWFrZVVuaXF1ZTxQYWdlQ2xpZW50SW1wbD4odmlld1dpZGdldCk7CiAgICAgcHJpdi0+ZGlhbG9n
ID0gbnVsbHB0cjsKIH0KIAorI2lmICFVU0UoR1RLNCkKIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRX
ZWJWaWV3QmFzZURyYXcoR3RrV2lkZ2V0KiB3aWRnZXQsIGNhaXJvX3QqIGNyKQogewogICAgIFdl
YktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSA9IFdFQktJVF9XRUJfVklFV19CQVNFKHdpZGdl
dCk7CkBAIC02MjcsNiArNjQ4LDcgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdFdlYlZpZXdCYXNl
RHJhdyhHdGtXaWRnZXQqIHdpZGdldCwgY2Fpcm9fdCogY3IpCiAKICAgICByZXR1cm4gRkFMU0U7
CiB9CisjZW5kaWYKIAogc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VDaGlsZEFsbG9jYXRl
KEd0a1dpZGdldCogY2hpbGQsIGdwb2ludGVyIHVzZXJEYXRhKQogewpAQCAtNjQ0LDkgKzY2Niwx
OSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUNoaWxkQWxsb2NhdGUoR3RrV2lkZ2V0
KiBjaGlsZCwgZ3BvaW50ZXIgdXNlckRhdGEpCiAgICAgcHJpdi0+Y2hpbGRyZW4uc2V0KGNoaWxk
LCBJbnRSZWN0KCkpOwogfQogCisjaWYgVVNFKEdUSzQpCitzdGF0aWMgdm9pZCB3ZWJraXRXZWJW
aWV3QmFzZVNpemVBbGxvY2F0ZShHdGtXaWRnZXQqIHdpZGdldCwgaW50IHdpZHRoLCBpbnQgaGVp
Z2h0LCBpbnQgYmFzZWxpbmUpCisjZWxzZQogc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VT
aXplQWxsb2NhdGUoR3RrV2lkZ2V0KiB3aWRnZXQsIEd0a0FsbG9jYXRpb24qIGFsbG9jYXRpb24p
CisjZW5kaWYKIHsKKyNpZiBVU0UoR1RLNCkKKyAgICBHVEtfV0lER0VUX0NMQVNTKHdlYmtpdF93
ZWJfdmlld19iYXNlX3BhcmVudF9jbGFzcyktPnNpemVfYWxsb2NhdGUod2lkZ2V0LCB3aWR0aCwg
aGVpZ2h0LCBiYXNlbGluZSk7CisgICAgR3RrQWxsb2NhdGlvbiBhbGxvY2F0aW9uU3RhY2sgPSB7
IDAsIDAsIHdpZHRoLCBoZWlnaHQgfTsKKyAgICBHdGtBbGxvY2F0aW9uKiBhbGxvY2F0aW9uID0g
JmFsbG9jYXRpb25TdGFjazsKKyNlbHNlCiAgICAgR1RLX1dJREdFVF9DTEFTUyh3ZWJraXRfd2Vi
X3ZpZXdfYmFzZV9wYXJlbnRfY2xhc3MpLT5zaXplX2FsbG9jYXRlKHdpZGdldCwgYWxsb2NhdGlv
bik7CisjZW5kaWYKIAogICAgIFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSA9IFdFQktJ
VF9XRUJfVklFV19CQVNFKHdpZGdldCk7CiAgICAgZ3RrX2NvbnRhaW5lcl9mb3JlYWNoKEdUS19D
T05UQUlORVIod2ViVmlld0Jhc2UpLCB3ZWJraXRXZWJWaWV3QmFzZUNoaWxkQWxsb2NhdGUsIHdl
YlZpZXdCYXNlKTsKQEAgLTY4OCw2ICs3MjAsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3
QmFzZVNpemVBbGxvY2F0ZShHdGtXaWRnZXQqIHdpZGdldCwgR3RrQWxsb2NhdGlvbiogYWxsbwog
ICAgICAgICBkcmF3aW5nQXJlYS0+c2V0U2l6ZSh2aWV3UmVjdC5zaXplKCkpOwogfQogCisjaWYg
IVVTRShHVEs0KQogc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VHZXRQcmVmZXJyZWRXaWR0
aChHdGtXaWRnZXQqIHdpZGdldCwgZ2ludCogbWluaW11bVNpemUsIGdpbnQqIG5hdHVyYWxTaXpl
KQogewogICAgIFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZSogcHJpdiA9IFdFQktJVF9XRUJfVklF
V19CQVNFKHdpZGdldCktPnByaXY7CkBAIC03MDEsNiArNzM0LDcgQEAgc3RhdGljIHZvaWQgd2Vi
a2l0V2ViVmlld0Jhc2VHZXRQcmVmZXJyZWRIZWlnaHQoR3RrV2lkZ2V0KiB3aWRnZXQsIGdpbnQq
IG1pbmltdW0KICAgICAqbWluaW11bVNpemUgPSAwOwogICAgICpuYXR1cmFsU2l6ZSA9IHByaXYt
PmNvbnRlbnRzU2l6ZS5oZWlnaHQoKTsKIH0KKyNlbmRpZgogCiBzdGF0aWMgdm9pZCB3ZWJraXRX
ZWJWaWV3QmFzZU1hcChHdGtXaWRnZXQqIHdpZGdldCkKIHsKQEAgLTczNyw2ICs3NzEsNyBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVVubWFwKEd0a1dpZGdldCogd2lkZ2V0KQogICAg
IHdlYmtpdFdlYlZpZXdCYXNlU2NoZWR1bGVVcGRhdGVBY3Rpdml0eVN0YXRlKHdlYlZpZXdCYXNl
LCBBY3Rpdml0eVN0YXRlOjpJc1Zpc2libGUpOwogfQogCisjaWYgIVVTRShHVEs0KQogc3RhdGlj
IGdib29sZWFuIHdlYmtpdFdlYlZpZXdCYXNlRm9jdXNJbkV2ZW50KEd0a1dpZGdldCogd2lkZ2V0
LCBHZGtFdmVudEZvY3VzKiBldmVudCkKIHsKICAgICBXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmll
d0Jhc2UgPSBXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3aWRnZXQpOwpAQCAtNzk5LDcgKzgzNCw3IEBA
IHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRXZWJWaWV3QmFzZUtleVByZXNzRXZlbnQoR3RrV2lkZ2V0
KiB3aWRnZXQsIEdka0V2ZW50S2V5KiBrCiAgICAgICAgIHByaXYtPnNob3VsZEZvcndhcmROZXh0
S2V5RXZlbnQgPSBGQUxTRTsKICAgICAgICAgcmV0dXJuIEdUS19XSURHRVRfQ0xBU1Mod2Via2l0
X3dlYl92aWV3X2Jhc2VfcGFyZW50X2NsYXNzKS0+a2V5X3ByZXNzX2V2ZW50KHdpZGdldCwga2V5
RXZlbnQpOwogICAgIH0KLSAgICBhdXRvIGZpbHRlclJlc3VsdCA9IHByaXYtPmlucHV0TWV0aG9k
RmlsdGVyLmZpbHRlcktleUV2ZW50KGtleUV2ZW50KTsKKyAgICBhdXRvIGZpbHRlclJlc3VsdCA9
IHByaXYtPmlucHV0TWV0aG9kRmlsdGVyLmZpbHRlcktleUV2ZW50KHJlaW50ZXJwcmV0X2Nhc3Q8
R2RrRXZlbnQqPihrZXlFdmVudCkpOwogICAgIGlmICghZmlsdGVyUmVzdWx0LmhhbmRsZWQpIHsK
ICAgICAgICAgcHJpdi0+cGFnZVByb3h5LT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktl
eWJvYXJkRXZlbnQocmVpbnRlcnByZXRfY2FzdDxHZGtFdmVudCo+KGtleUV2ZW50KSwgZmlsdGVy
UmVzdWx0LmtleVRleHQsCiAgICAgICAgICAgICBOYXRpdmVXZWJLZXlib2FyZEV2ZW50OjpIYW5k
bGVkQnlJbnB1dE1ldGhvZDo6Tm8sIFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0LCBwcml2LT5r
ZXlCaW5kaW5nVHJhbnNsYXRvci5jb21tYW5kc0ZvcktleUV2ZW50KGtleUV2ZW50KSkpOwpAQCAt
ODE4LDcgKzg1Myw3IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRXZWJWaWV3QmFzZUtleVJlbGVh
c2VFdmVudChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRXZlbnRLZXkqCiAgICAgICAgIHJldHVybiBH
VEtfV0lER0VUX0NMQVNTKHdlYmtpdF93ZWJfdmlld19iYXNlX3BhcmVudF9jbGFzcyktPmtleV9y
ZWxlYXNlX2V2ZW50KHdpZGdldCwga2V5RXZlbnQpOwogICAgIH0KIAotICAgIGlmICghcHJpdi0+
aW5wdXRNZXRob2RGaWx0ZXIuZmlsdGVyS2V5RXZlbnQoa2V5RXZlbnQpLmhhbmRsZWQpIHsKKyAg
ICBpZiAoIXByaXYtPmlucHV0TWV0aG9kRmlsdGVyLmZpbHRlcktleUV2ZW50KHJlaW50ZXJwcmV0
X2Nhc3Q8R2RrRXZlbnQqPihrZXlFdmVudCkpLmhhbmRsZWQpIHsKICAgICAgICAgcHJpdi0+cGFn
ZVByb3h5LT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQocmVpbnRl
cnByZXRfY2FzdDxHZGtFdmVudCo+KGtleUV2ZW50KSwgeyB9LAogICAgICAgICAgICAgTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudDo6SGFuZGxlZEJ5SW5wdXRNZXRob2Q6Ok5vLCBXVEY6Om51bGxvcHQs
IFdURjo6bnVsbG9wdCwgeyB9KSk7CiAgICAgfQpAQCAtMTA0Myw4ICsxMDc4LDkgQEAgc3RhdGlj
IGdib29sZWFuIHdlYmtpdFdlYlZpZXdCYXNlQ3Jvc3NpbmdOb3RpZnlFdmVudChHdGtXaWRnZXQq
IHdpZGdldCwgR2RrRXZlbnQKIAogICAgIHJldHVybiBHREtfRVZFTlRfUFJPUEFHQVRFOwogfQor
I2VuZGlmCiAKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpICYmICFVU0UoR1RLNCkKIHN0YXRpYyB2b2lkIGFwcGVuZFRvdWNoRXZlbnQoVmVjdG9yPFdl
YlBsYXRmb3JtVG91Y2hQb2ludD4mIHRvdWNoUG9pbnRzLCBjb25zdCBHZGtFdmVudCogZXZlbnQs
IFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQb2ludFN0YXRlIHN0YXRlKQogewogICAgIGdk
b3VibGUgeCwgeTsKQEAgLTExMzQsNiArMTE3MCw3IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRX
ZWJWaWV3QmFzZVRvdWNoRXZlbnQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2ZW50VG91Y2gqIGV2
CiB9CiAjZW5kaWYgLy8gRU5BQkxFKFRPVUNIX0VWRU5UUykKIAorI2lmICFVU0UoR1RLNCkKIGNs
YXNzIFRvdWNoR2VzdHVyZUNvbnRyb2xsZXIgZmluYWwgOiBwdWJsaWMgR2VzdHVyZUNvbnRyb2xs
ZXJDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogCkBAIC0xMjYwLDM2ICsx
Mjk3LDQ0IEBAIEdlc3R1cmVDb250cm9sbGVyJiB3ZWJraXRXZWJWaWV3QmFzZUdlc3R1cmVDb250
cm9sbGVyKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3CiAgICAgICAgIHByaXYtPmdlc3R1cmVD
b250cm9sbGVyID0gbWFrZVVuaXF1ZTxHZXN0dXJlQ29udHJvbGxlcj4oR1RLX1dJREdFVCh3ZWJW
aWV3QmFzZSksIG1ha2VVbmlxdWU8VG91Y2hHZXN0dXJlQ29udHJvbGxlcj4od2ViVmlld0Jhc2Up
KTsKICAgICByZXR1cm4gKnByaXYtPmdlc3R1cmVDb250cm9sbGVyOwogfQorI2VuZGlmCiAKIHZv
aWQgd2Via2l0V2ViVmlld0Jhc2VTZXRFbmFibGVCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJl
KFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSwgYm9vbCBlbmFibGVkKQogewogICAgIFdl
YktpdFdlYlZpZXdCYXNlUHJpdmF0ZSogcHJpdiA9IHdlYlZpZXdCYXNlLT5wcml2OwotCisjaWYg
IVVTRShHVEs0KQogICAgIHByaXYtPmlzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZUVuYWJs
ZWQgPSBlbmFibGVkOwogCiAgICAgaWYgKGF1dG8qIGNvbnRyb2xsZXIgPSB3ZWJraXRXZWJWaWV3
QmFzZVZpZXdHZXN0dXJlQ29udHJvbGxlcih3ZWJWaWV3QmFzZSkpCiAgICAgICAgIGNvbnRyb2xs
ZXItPnNldFN3aXBlR2VzdHVyZUVuYWJsZWQoZW5hYmxlZCk7CiAKICAgICBwcml2LT5wYWdlUHJv
eHktPnNldFNob3VsZFJlY29yZE5hdmlnYXRpb25TbmFwc2hvdHMoZW5hYmxlZCk7CisjZW5kaWYK
IH0KIAorI2lmICFVU0UoR1RLNCkKIFZpZXdHZXN0dXJlQ29udHJvbGxlciogd2Via2l0V2ViVmll
d0Jhc2VWaWV3R2VzdHVyZUNvbnRyb2xsZXIoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNl
KQogewogICAgIHJldHVybiB3ZWJWaWV3QmFzZS0+cHJpdi0+dmlld0dlc3R1cmVDb250cm9sbGVy
LmdldCgpOwogfQorI2VuZGlmCiAKIGJvb2wgd2Via2l0V2ViVmlld0Jhc2VCZWdpbkJhY2tTd2lw
ZUZvclRlc3RpbmcoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlKQogeworI2lmICFVU0Uo
R1RLNCkKICAgICBpZiAoYXV0byogZ2VzdHVyZUNvbnRyb2xsZXIgPSB3ZWJraXRXZWJWaWV3QmFz
ZVZpZXdHZXN0dXJlQ29udHJvbGxlcih3ZWJWaWV3QmFzZSkpCiAgICAgICAgIHJldHVybiBnZXN0
dXJlQ29udHJvbGxlci0+YmVnaW5TaW11bGF0ZWRTd2lwZUluRGlyZWN0aW9uRm9yVGVzdGluZyhW
aWV3R2VzdHVyZUNvbnRyb2xsZXI6OlN3aXBlRGlyZWN0aW9uOjpCYWNrKTsKKyNlbmRpZgogCiAg
ICAgcmV0dXJuIEZBTFNFOwogfQogCiBib29sIHdlYmtpdFdlYlZpZXdCYXNlQ29tcGxldGVCYWNr
U3dpcGVGb3JUZXN0aW5nKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSkKIHsKKyNpZiAh
VVNFKEdUSzQpCiAgICAgaWYgKGF1dG8qIGdlc3R1cmVDb250cm9sbGVyID0gd2Via2l0V2ViVmll
d0Jhc2VWaWV3R2VzdHVyZUNvbnRyb2xsZXIod2ViVmlld0Jhc2UpKQogICAgICAgICByZXR1cm4g
Z2VzdHVyZUNvbnRyb2xsZXItPmNvbXBsZXRlU2ltdWxhdGVkU3dpcGVJbkRpcmVjdGlvbkZvclRl
c3RpbmcoVmlld0dlc3R1cmVDb250cm9sbGVyOjpTd2lwZURpcmVjdGlvbjo6QmFjayk7CisjZW5k
aWYKIAogICAgIHJldHVybiBGQUxTRTsKIH0KQEAgLTEzMTcsNyArMTM2Miw3IEBAIHN0YXRpYyBn
Ym9vbGVhbiB3ZWJraXRXZWJWaWV3QmFzZVF1ZXJ5VG9vbHRpcChHdGtXaWRnZXQqIHdpZGdldCwg
Z2ludCAvKiB4ICovLCBnCiAgICAgcmV0dXJuIFRSVUU7CiB9CiAKLSNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpICYmICFVU0UoR1RLNCkKIHN0YXRpYyB2
b2lkIHdlYmtpdFdlYlZpZXdCYXNlRHJhZ0RhdGFHZXQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0Ry
YWdDb250ZXh0KiBjb250ZXh0LCBHdGtTZWxlY3Rpb25EYXRhKiBzZWxlY3Rpb25EYXRhLCBndWlu
dCBpbmZvLCBndWludCAvKiB0aW1lICovKQogewogICAgIFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0
ZSogcHJpdiA9IFdFQktJVF9XRUJfVklFV19CQVNFKHdpZGdldCktPnByaXY7CkBAIC0xMzM4LDEy
ICsxMzgzLDE0IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRHJhZ0RhdGFSZWNlaXZl
ZChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRHJhZ0NvbnRleHQqCiB9CiAjZW5kaWYgLy8gRU5BQkxF
KERSQUdfU1VQUE9SVCkKIAorI2lmICFVU0UoR1RLNCkKIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRX
ZWJWaWV3QmFzZUV2ZW50KEd0a1dpZGdldCogd2lkZ2V0LCBHZGtFdmVudCogZXZlbnQpCiB7CiAg
ICAgaWYgKGdka19ldmVudF9nZXRfZXZlbnRfdHlwZShldmVudCkgPT0gR0RLX1RPVUNIUEFEX1BJ
TkNIKQogICAgICAgICB3ZWJraXRXZWJWaWV3QmFzZUdlc3R1cmVDb250cm9sbGVyKFdFQktJVF9X
RUJfVklFV19CQVNFKHdpZGdldCkpLmhhbmRsZUV2ZW50KGV2ZW50KTsKICAgICByZXR1cm4gR0RL
X0VWRU5UX1BST1BBR0FURTsKIH0KKyNlbmRpZgogCiBzdGF0aWMgQXRrT2JqZWN0KiB3ZWJraXRX
ZWJWaWV3QmFzZUdldEFjY2Vzc2libGUoR3RrV2lkZ2V0KiB3aWRnZXQpCiB7CkBAIC0xMzYyLDcg
KzE0MDksNyBAQCBzdGF0aWMgQXRrT2JqZWN0KiB3ZWJraXRXZWJWaWV3QmFzZUdldEFjY2Vzc2li
bGUoR3RrV2lkZ2V0KiB3aWRnZXQpCiAgICAgcmV0dXJuIHByaXYtPmFjY2Vzc2libGUuZ2V0KCk7
CiB9CiAKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQp
ICYmICFVU0UoR1RLNCkKIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRXZWJWaWV3QmFzZURyYWdNb3Rp
b24oR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0RyYWdDb250ZXh0KiBjb250ZXh0LCBnaW50IHgsIGdp
bnQgeSwgZ3VpbnQgdGltZSkKIHsKICAgICB3ZWJraXRXZWJWaWV3QmFzZURyYWdBbmREcm9wSGFu
ZGxlcihXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3aWRnZXQpKS5kcmFnTW90aW9uKGNvbnRleHQsIElu
dFBvaW50KHgsIHkpLCB0aW1lKTsKQEAgLTEzODQsNiArMTQzMSw3IEBAIHN0YXRpYyBnYm9vbGVh
biB3ZWJraXRXZWJWaWV3QmFzZURyYWdEcm9wKEd0a1dpZGdldCogd2lkZ2V0LCBHZGtEcmFnQ29u
dGV4dCogY29uCiB9CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKIAorI2lmICFVU0Uo
R1RLNCkKIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlSGllcmFyY2h5Q2hhbmdlZChHdGtX
aWRnZXQqIHdpZGdldCwgR3RrV2lkZ2V0KiBvbGRUb3BsZXZlbCkKIHsKICAgICBXZWJLaXRXZWJW
aWV3QmFzZVByaXZhdGUqIHByaXYgPSBXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3aWRnZXQpLT5wcml2
OwpAQCAtMTM5OCw2ICsxNDQ2LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VIaWVy
YXJjaHlDaGFuZ2VkKEd0a1dpZGdldCogd2lkZ2V0LCBHdGtXaWRnZXQqIG9sZFQKICAgICAgICAg
ICAgIHdlYmtpdFdlYlZpZXdCYXNlU2V0VG9wbGV2ZWxPblNjcmVlbldpbmRvdyhXRUJLSVRfV0VC
X1ZJRVdfQkFTRSh3aWRnZXQpLCBHVEtfV0lORE9XKHRvcGxldmVsKSk7CiAgICAgfQogfQorI2Vu
ZGlmCiAKIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRXZWJWaWV3QmFzZUZvY3VzKEd0a1dpZGdldCog
d2lkZ2V0LCBHdGtEaXJlY3Rpb25UeXBlIGRpcmVjdGlvbikKIHsKQEAgLTE0MjcsMTIgKzE0NzYs
MTcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2Jhc2VfY2xhc3NfaW5pdChXZWJLaXRX
ZWJWaWV3QmFzZUNsYXNzKiB3ZWJraXRXZWJWaWUKICAgICBHdGtXaWRnZXRDbGFzcyogd2lkZ2V0
Q2xhc3MgPSBHVEtfV0lER0VUX0NMQVNTKHdlYmtpdFdlYlZpZXdCYXNlQ2xhc3MpOwogICAgIHdp
ZGdldENsYXNzLT5yZWFsaXplID0gd2Via2l0V2ViVmlld0Jhc2VSZWFsaXplOwogICAgIHdpZGdl
dENsYXNzLT51bnJlYWxpemUgPSB3ZWJraXRXZWJWaWV3QmFzZVVucmVhbGl6ZTsKKyNpZiAhVVNF
KEdUSzQpCiAgICAgd2lkZ2V0Q2xhc3MtPmRyYXcgPSB3ZWJraXRXZWJWaWV3QmFzZURyYXc7Cisj
ZW5kaWYKICAgICB3aWRnZXRDbGFzcy0+c2l6ZV9hbGxvY2F0ZSA9IHdlYmtpdFdlYlZpZXdCYXNl
U2l6ZUFsbG9jYXRlOworI2lmICFVU0UoR1RLNCkKICAgICB3aWRnZXRDbGFzcy0+Z2V0X3ByZWZl
cnJlZF93aWR0aCA9IHdlYmtpdFdlYlZpZXdCYXNlR2V0UHJlZmVycmVkV2lkdGg7CiAgICAgd2lk
Z2V0Q2xhc3MtPmdldF9wcmVmZXJyZWRfaGVpZ2h0ID0gd2Via2l0V2ViVmlld0Jhc2VHZXRQcmVm
ZXJyZWRIZWlnaHQ7CisjZW5kaWYKICAgICB3aWRnZXRDbGFzcy0+bWFwID0gd2Via2l0V2ViVmll
d0Jhc2VNYXA7CiAgICAgd2lkZ2V0Q2xhc3MtPnVubWFwID0gd2Via2l0V2ViVmlld0Jhc2VVbm1h
cDsKKyNpZiAhVVNFKEdUSzQpCiAgICAgd2lkZ2V0Q2xhc3MtPmZvY3VzID0gd2Via2l0V2ViVmll
d0Jhc2VGb2N1czsKICAgICB3aWRnZXRDbGFzcy0+Zm9jdXNfaW5fZXZlbnQgPSB3ZWJraXRXZWJW
aWV3QmFzZUZvY3VzSW5FdmVudDsKICAgICB3aWRnZXRDbGFzcy0+Zm9jdXNfb3V0X2V2ZW50ID0g
d2Via2l0V2ViVmlld0Jhc2VGb2N1c091dEV2ZW50OwpAQCAtMTQ0NSwxMSArMTQ5OSwxMiBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfYmFzZV9jbGFzc19pbml0KFdlYktpdFdlYlZpZXdC
YXNlQ2xhc3MqIHdlYmtpdFdlYlZpZQogICAgIHdpZGdldENsYXNzLT5tb3Rpb25fbm90aWZ5X2V2
ZW50ID0gd2Via2l0V2ViVmlld0Jhc2VNb3Rpb25Ob3RpZnlFdmVudDsKICAgICB3aWRnZXRDbGFz
cy0+ZW50ZXJfbm90aWZ5X2V2ZW50ID0gd2Via2l0V2ViVmlld0Jhc2VDcm9zc2luZ05vdGlmeUV2
ZW50OwogICAgIHdpZGdldENsYXNzLT5sZWF2ZV9ub3RpZnlfZXZlbnQgPSB3ZWJraXRXZWJWaWV3
QmFzZUNyb3NzaW5nTm90aWZ5RXZlbnQ7Ci0jaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyNlbmRp
ZgorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpICYmICFVU0UoR1RLNCkKICAgICB3aWRnZXRDbGFz
cy0+dG91Y2hfZXZlbnQgPSB3ZWJraXRXZWJWaWV3QmFzZVRvdWNoRXZlbnQ7CiAjZW5kaWYKICAg
ICB3aWRnZXRDbGFzcy0+cXVlcnlfdG9vbHRpcCA9IHdlYmtpdFdlYlZpZXdCYXNlUXVlcnlUb29s
dGlwOwotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkg
JiYgIVVTRShHVEs0KQogICAgIHdpZGdldENsYXNzLT5kcmFnX2VuZCA9IHdlYmtpdFdlYlZpZXdC
YXNlRHJhZ0VuZDsKICAgICB3aWRnZXRDbGFzcy0+ZHJhZ19kYXRhX2dldCA9IHdlYmtpdFdlYlZp
ZXdCYXNlRHJhZ0RhdGFHZXQ7CiAgICAgd2lkZ2V0Q2xhc3MtPmRyYWdfbW90aW9uID0gd2Via2l0
V2ViVmlld0Jhc2VEcmFnTW90aW9uOwpAQCAtMTQ1Nyw5ICsxNTEyLDEzIEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfdmlld19iYXNlX2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0Jhc2VDbGFzcyog
d2Via2l0V2ViVmllCiAgICAgd2lkZ2V0Q2xhc3MtPmRyYWdfZHJvcCA9IHdlYmtpdFdlYlZpZXdC
YXNlRHJhZ0Ryb3A7CiAgICAgd2lkZ2V0Q2xhc3MtPmRyYWdfZGF0YV9yZWNlaXZlZCA9IHdlYmtp
dFdlYlZpZXdCYXNlRHJhZ0RhdGFSZWNlaXZlZDsKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQ
T1JUKQorI2lmICFVU0UoR1RLNCkKICAgICB3aWRnZXRDbGFzcy0+ZXZlbnQgPSB3ZWJraXRXZWJW
aWV3QmFzZUV2ZW50OworI2VuZGlmCiAgICAgd2lkZ2V0Q2xhc3MtPmdldF9hY2Nlc3NpYmxlID0g
d2Via2l0V2ViVmlld0Jhc2VHZXRBY2Nlc3NpYmxlOworI2lmICFVU0UoR1RLNCkKICAgICB3aWRn
ZXRDbGFzcy0+aGllcmFyY2h5X2NoYW5nZWQgPSB3ZWJraXRXZWJWaWV3QmFzZUhpZXJhcmNoeUNo
YW5nZWQ7CisjZW5kaWYKICAgICB3aWRnZXRDbGFzcy0+ZGVzdHJveSA9IHdlYmtpdFdlYlZpZXdC
YXNlRGVzdHJveTsKIAogICAgIEdPYmplY3RDbGFzcyogZ29iamVjdENsYXNzID0gR19PQkpFQ1Rf
Q0xBU1Mod2Via2l0V2ViVmlld0Jhc2VDbGFzcyk7CkBAIC0xNTI4LDcgKzE1ODcsNyBAQCB2b2lk
IHdlYmtpdFdlYlZpZXdCYXNlU2V0VG9vbHRpcEFyZWEoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZp
ZXdCYXNlLCBjb25zdCBJbnRSZQogICAgIHdlYlZpZXdCYXNlLT5wcml2LT50b29sdGlwQXJlYSA9
IHRvb2x0aXBBcmVhOwogfQogCi0jaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKyNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKSAmJiAhVVNFKEdUSzQpCiBEcmFnQW5kRHJvcEhhbmRsZXImIHdlYmtpdFdl
YlZpZXdCYXNlRHJhZ0FuZERyb3BIYW5kbGVyKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFz
ZSkKIHsKICAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3QmFzZS0+
cHJpdjsKQEAgLTE2MDIsNiArMTY2MSw3IEBAIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VTZXRJbnNw
ZWN0b3JWaWV3U2l6ZShXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UsCiAgICAg
ICAgIGd0a193aWRnZXRfcXVldWVfcmVzaXplX25vX3JlZHJhdyhHVEtfV0lER0VUKHdlYmtpdFdl
YlZpZXdCYXNlKSk7CiB9CiAKKyNpZiAhVVNFKEdUSzQpCiBzdGF0aWMgdm9pZCBhY3RpdmVDb250
ZXh0TWVudVVubWFwcGVkKEd0a01lbnUqIG1lbnUsIFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3
QmFzZSkKIHsKICAgICBpZiAod2ViVmlld0Jhc2UtPnByaXYtPmFjdGl2ZUNvbnRleHRNZW51UHJv
eHkgJiYgd2ViVmlld0Jhc2UtPnByaXYtPmFjdGl2ZUNvbnRleHRNZW51UHJveHktPmd0a01lbnUo
KSA9PSBtZW51KQpAQCAtMTYxOCw2ICsxNjc4LDcgQEAgV2ViQ29udGV4dE1lbnVQcm94eUd0ayog
d2Via2l0V2ViVmlld0Jhc2VHZXRBY3RpdmVDb250ZXh0TWVudVByb3h5KFdlYktpdFdlYlZpZXcK
IHsKICAgICByZXR1cm4gd2Via2l0V2ViVmlld0Jhc2UtPnByaXYtPmFjdGl2ZUNvbnRleHRNZW51
UHJveHk7CiB9CisjZW5kaWYKIAogR2RrRXZlbnQqIHdlYmtpdFdlYlZpZXdCYXNlVGFrZUNvbnRl
eHRNZW51RXZlbnQoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlKQogewpAQCAt
MTcyNCwxNCArMTc4NSwxNyBAQCBib29sIHdlYmtpdFdlYlZpZXdCYXNlTWFrZUdMQ29udGV4dEN1
cnJlbnQoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlKQogdm9pZCB3ZWJraXRX
ZWJWaWV3QmFzZVdpbGxTd2FwV2ViUHJvY2VzcyhXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2Vi
Vmlld0Jhc2UpCiB7CiAgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gd2Via2l0
V2ViVmlld0Jhc2UtPnByaXY7Ci0KKyNpZiAhVVNFKEdUSzQpCiAgICAgaWYgKHByaXYtPnZpZXdH
ZXN0dXJlQ29udHJvbGxlcikKICAgICAgICAgcHJpdi0+dmlld0dlc3R1cmVDb250cm9sbGVyLT5k
aXNjb25uZWN0RnJvbVByb2Nlc3MoKTsKKyNlbmRpZgogfQogCiB2b2lkIHdlYmtpdFdlYlZpZXdC
YXNlRGlkRXhpdFdlYlByb2Nlc3MoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNl
KQogeworI2lmICFVU0UoR1RLNCkKICAgICB3ZWJraXRXZWJWaWV3QmFzZS0+cHJpdi0+dmlld0dl
c3R1cmVDb250cm9sbGVyID0gbnVsbHB0cjsKKyNlbmRpZgogfQogCiB2b2lkIHdlYmtpdFdlYlZp
ZXdCYXNlRGlkUmVsYXVuY2hXZWJQcm9jZXNzKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJW
aWV3QmFzZSkKQEAgLTE3NDQsMTMgKzE4MDgsMTQgQEAgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURp
ZFJlbGF1bmNoV2ViUHJvY2VzcyhXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UK
ICAgICAgICAgYXV0byogZHJhd2luZ0FyZWEgPSBzdGF0aWNfY2FzdDxEcmF3aW5nQXJlYVByb3h5
Q29vcmRpbmF0ZWRHcmFwaGljcyo+KHByaXYtPnBhZ2VQcm94eS0+ZHJhd2luZ0FyZWEoKSk7CiAg
ICAgICAgIHByaXYtPmFjY2VsZXJhdGVkQmFja2luZ1N0b3JlLT51cGRhdGUoZHJhd2luZ0FyZWEt
PmxheWVyVHJlZUNvbnRleHQoKSk7CiAgICAgfQotCisjaWYgIVVTRShHVEs0KQogICAgIGlmIChw
cml2LT52aWV3R2VzdHVyZUNvbnRyb2xsZXIpCiAgICAgICAgIHByaXYtPnZpZXdHZXN0dXJlQ29u
dHJvbGxlci0+Y29ubmVjdFRvUHJvY2VzcygpOwogICAgIGVsc2UgewogICAgICAgICBwcml2LT52
aWV3R2VzdHVyZUNvbnRyb2xsZXIgPSBtYWtlVW5pcXVlPFdlYktpdDo6Vmlld0dlc3R1cmVDb250
cm9sbGVyPigqcHJpdi0+cGFnZVByb3h5KTsKICAgICAgICAgcHJpdi0+dmlld0dlc3R1cmVDb250
cm9sbGVyLT5zZXRTd2lwZUdlc3R1cmVFbmFibGVkKHByaXYtPmlzQmFja0ZvcndhcmROYXZpZ2F0
aW9uR2VzdHVyZUVuYWJsZWQpOwogICAgIH0KKyNlbmRpZgogfQogCiB2b2lkIHdlYmtpdFdlYlZp
ZXdCYXNlUGFnZUNsb3NlZChXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UpCkBA
IC0xNzc2LDU0ICsxODQxLDY4IEBAIFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4gd2Via2l0
V2ViVmlld0Jhc2VUYWtlVmlld1NuYXBzaG90KFdlYktpdFdlYlZpZXdCYXNlCiAgICAgICAgIGNh
aXJvX3JlY3RhbmdsZShjci5nZXQoKSwgY2xpcFJlY3QtPngoKSwgY2xpcFJlY3QtPnkoKSwgY2xp
cFJlY3QtPndpZHRoKCksIGNsaXBSZWN0LT5oZWlnaHQoKSk7CiAgICAgICAgIGNhaXJvX2NsaXAo
Y3IuZ2V0KCkpOwogICAgIH0KKyNpZiAhVVNFKEdUSzQpCiAgICAgd2Via2l0V2ViVmlld0Jhc2VE
cmF3KEdUS19XSURHRVQod2Via2l0V2ViVmlld0Jhc2UpLCBjci5nZXQoKSk7CisjZW5kaWYKIAog
ICAgIHJldHVybiBWaWV3U25hcHNob3Q6OmNyZWF0ZShXVEZNb3ZlKHN1cmZhY2UpKTsKIH0KIAog
dm9pZCB3ZWJraXRXZWJWaWV3QmFzZURpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1l
KFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSkKIHsKKyNpZiAhVVNFKEdUSzQp
CiAgICAgVmlld0dlc3R1cmVDb250cm9sbGVyKiBjb250cm9sbGVyID0gd2Via2l0V2ViVmlld0Jh
c2VWaWV3R2VzdHVyZUNvbnRyb2xsZXIod2Via2l0V2ViVmlld0Jhc2UpOwogICAgIGlmIChjb250
cm9sbGVyICYmIGNvbnRyb2xsZXItPmlzU3dpcGVHZXN0dXJlRW5hYmxlZCgpKQogICAgICAgICBj
b250cm9sbGVyLT5kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZSgpOworI2VuZGlm
CiB9CiAKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGb3JNYWluRnJhbWUoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlKQogewor
I2lmICFVU0UoR1RLNCkKICAgICBWaWV3R2VzdHVyZUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSB3
ZWJraXRXZWJWaWV3QmFzZVZpZXdHZXN0dXJlQ29udHJvbGxlcih3ZWJraXRXZWJWaWV3QmFzZSk7
CiAgICAgaWYgKGNvbnRyb2xsZXIgJiYgY29udHJvbGxlci0+aXNTd2lwZUdlc3R1cmVFbmFibGVk
KCkpCiAgICAgICAgIGNvbnRyb2xsZXItPmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZv
ck1haW5GcmFtZSgpOworI2VuZGlmCiB9CiAKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRGaW5p
c2hMb2FkRm9yTWFpbkZyYW1lKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSkK
IHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgVmlld0dlc3R1cmVDb250cm9sbGVyKiBjb250cm9sbGVy
ID0gd2Via2l0V2ViVmlld0Jhc2VWaWV3R2VzdHVyZUNvbnRyb2xsZXIod2Via2l0V2ViVmlld0Jh
c2UpOwogICAgIGlmIChjb250cm9sbGVyICYmIGNvbnRyb2xsZXItPmlzU3dpcGVHZXN0dXJlRW5h
YmxlZCgpKQogICAgICAgICBjb250cm9sbGVyLT5kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCk7
CisjZW5kaWYKIH0KIAogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURpZEZhaWxMb2FkRm9yTWFpbkZy
YW1lKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSkKIHsKKyNpZiAhVVNFKEdU
SzQpCiAgICAgVmlld0dlc3R1cmVDb250cm9sbGVyKiBjb250cm9sbGVyID0gd2Via2l0V2ViVmll
d0Jhc2VWaWV3R2VzdHVyZUNvbnRyb2xsZXIod2Via2l0V2ViVmlld0Jhc2UpOwogICAgIGlmIChj
b250cm9sbGVyICYmIGNvbnRyb2xsZXItPmlzU3dpcGVHZXN0dXJlRW5hYmxlZCgpKQogICAgICAg
ICBjb250cm9sbGVyLT5kaWRGYWlsTG9hZEZvck1haW5GcmFtZSgpOworI2VuZGlmCiB9CiAKIHZv
aWQgd2Via2l0V2ViVmlld0Jhc2VEaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1l
KFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSwgU2FtZURvY3VtZW50TmF2aWdh
dGlvblR5cGUgdHlwZSkKIHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgVmlld0dlc3R1cmVDb250cm9s
bGVyKiBjb250cm9sbGVyID0gd2Via2l0V2ViVmlld0Jhc2VWaWV3R2VzdHVyZUNvbnRyb2xsZXIo
d2Via2l0V2ViVmlld0Jhc2UpOwogICAgIGlmIChjb250cm9sbGVyICYmIGNvbnRyb2xsZXItPmlz
U3dpcGVHZXN0dXJlRW5hYmxlZCgpKQogICAgICAgICBjb250cm9sbGVyLT5kaWRTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKHR5cGUpOworI2VuZGlmCiB9CiAKIHZvaWQgd2Via2l0
V2ViVmlld0Jhc2VEaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oV2ViS2l0V2ViVmlld0Jhc2UqIHdl
YmtpdFdlYlZpZXdCYXNlKQogeworI2lmICFVU0UoR1RLNCkKICAgICBWaWV3R2VzdHVyZUNvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSB3ZWJraXRXZWJWaWV3QmFzZVZpZXdHZXN0dXJlQ29udHJvbGxl
cih3ZWJraXRXZWJWaWV3QmFzZSk7CiAgICAgaWYgKGNvbnRyb2xsZXIgJiYgY29udHJvbGxlci0+
aXNTd2lwZUdlc3R1cmVFbmFibGVkKCkpCiAgICAgICAgIHdlYmtpdFdlYlZpZXdCYXNlLT5wcml2
LT52aWV3R2VzdHVyZUNvbnRyb2xsZXItPmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOworI2Vu
ZGlmCiB9CiAKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAyNCwgMCkKKyNpZiBHVEtfQ0hFQ0tf
VkVSU0lPTigzLCAyNCwgMCkgJiYgIVVTRShHVEs0KQogc3RhdGljIHZvaWQgZW1vamlDaG9vc2Vy
RW1vamlQaWNrZWQoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlLCBjb25zdCBj
aGFyKiB0ZXh0KQogewogICAgIHdlYmtpdFdlYlZpZXdCYXNlQ29tcGxldGVFbW9qaUNob29zZXJS
ZXF1ZXN0KHdlYmtpdFdlYlZpZXdCYXNlLCBTdHJpbmc6OmZyb21VVEY4KHRleHQpKTsKQEAgLTE4
MzgsNyArMTkxNyw3IEBAIHN0YXRpYyB2b2lkIGVtb2ppQ2hvb3NlckNsb3NlZChXZWJLaXRXZWJW
aWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UpCiAKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VTaG93
RW1vamlDaG9vc2VyKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSwgY29uc3Qg
SW50UmVjdCYgY2FyZXRSZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQsIDApCisjaWYg
R1RLX0NIRUNLX1ZFUlNJT04oMywgMjQsIDApICYmICFVU0UoR1RLNCkKICAgICBXZWJLaXRXZWJW
aWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJraXRXZWJWaWV3QmFzZS0+cHJpdjsKICAgICBwcml2
LT5yZWxlYXNlRW1vamlDaG9vc2VyVGltZXIuc3RvcCgpOwogCkBAIC0xODcyLDYgKzE5NTEsNyBA
QCBpbnQgd2Via2l0V2ViVmlld0Jhc2VSZW5kZXJIb3N0RmlsZURlc2NyaXB0b3IoV2ViS2l0V2Vi
Vmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYQogCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlUmVxdWVz
dFBvaW50ZXJMb2NrKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSkKIHsKKyNpZiAhVVNF
KEdUSzQpCiAgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gd2ViVmlld0Jhc2Ut
PnByaXY7CiAgICAgUkVMRUFTRV9BU1NFUlQoIXByaXYtPnBvaW50ZXJMb2NrTWFuYWdlcik7CiAg
ICAgaWYgKCFwcml2LT5sYXN0TW90aW9uRXZlbnQpIHsKQEAgLTE4OTcsMTYgKzE5NzcsMTkgQEAg
dm9pZCB3ZWJraXRXZWJWaWV3QmFzZVJlcXVlc3RQb2ludGVyTG9jayhXZWJLaXRXZWJWaWV3QmFz
ZSogd2ViVmlld0Jhc2UpCiAKICAgICBwcml2LT5wb2ludGVyTG9ja01hbmFnZXIgPSBudWxscHRy
OwogICAgIHByaXYtPnBhZ2VQcm94eS0+ZGlkRGVueVBvaW50ZXJMb2NrKCk7CisjZW5kaWYKIH0K
IAogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURpZExvc2VQb2ludGVyTG9jayhXZWJLaXRXZWJWaWV3
QmFzZSogd2ViVmlld0Jhc2UpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIFdlYktpdFdlYlZpZXdC
YXNlUHJpdmF0ZSogcHJpdiA9IHdlYlZpZXdCYXNlLT5wcml2OwogICAgIGlmICghcHJpdi0+cG9p
bnRlckxvY2tNYW5hZ2VyKQogICAgICAgICByZXR1cm47CiAKICAgICBwcml2LT5wb2ludGVyTG9j
a01hbmFnZXItPnVubG9jaygpOwogICAgIHByaXYtPnBvaW50ZXJMb2NrTWFuYWdlciA9IG51bGxw
dHI7CisjZW5kaWYKIH0KIAogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVNldElucHV0TWV0aG9kQ29u
dGV4dChXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIFdlYktpdElucHV0TWV0aG9kQ29u
dGV4dCogY29udGV4dCkKQEAgLTE5MjEsNiArMjAwNCw3IEBAIFdlYktpdElucHV0TWV0aG9kQ29u
dGV4dCogd2Via2l0V2ViVmlld0Jhc2VHZXRJbnB1dE1ldGhvZENvbnRleHQoV2ViS2l0V2ViVmll
d0JhCiAKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplQ29tcG9zaXRpb25LZXlQcmVz
cyhXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgT3B0
aW9uYWw8VmVjdG9yPENvbXBvc2l0aW9uVW5kZXJsaW5lPj4mJiB1bmRlcmxpbmVzLCBPcHRpb25h
bDxFZGl0aW5nUmFuZ2U+JiYgc2VsZWN0aW9uUmFuZ2UpCiB7CisjaWYgIVVTRShHVEs0KQogICAg
IHN0YXRpYyBHZGtFdmVudCogZXZlbnQgPSBudWxscHRyOwogICAgIGlmICghZXZlbnQpIHsKICAg
ICAgICAgZXZlbnQgPSBnZGtfZXZlbnRfbmV3KEdES19LRVlfUFJFU1MpOwpAQCAtMTkzNSw0ICsy
MDE5LDUgQEAgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVDb21wb3NpdGlvbktleVBy
ZXNzKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmEKIAogICAgIFdlYktpdFdlYlZpZXdCYXNl
UHJpdmF0ZSogcHJpdiA9IHdlYlZpZXdCYXNlLT5wcml2OwogICAgIHByaXYtPnBhZ2VQcm94eS0+
aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCB0ZXh0LCBO
YXRpdmVXZWJLZXlib2FyZEV2ZW50OjpIYW5kbGVkQnlJbnB1dE1ldGhvZDo6WWVzLCBXVEZNb3Zl
KHVuZGVybGluZXMpLCBXVEZNb3ZlKHNlbGVjdGlvblJhbmdlKSwgeyB9KSk7CisjZW5kaWYKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
d0Jhc2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXdCYXNlUHJpdmF0ZS5oCmluZGV4IGRmYzAyZGE4NDQwMS4uYzU1MzA4MGJmYzU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNl
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlld0Jhc2VQcml2YXRlLmgKQEAgLTUzLDggKzUzLDEwIEBAIHZvaWQgd2Via2l0V2ViVmlld0Jh
c2VFbnRlckZ1bGxTY3JlZW4oV2ViS2l0V2ViVmlld0Jhc2UqKTsKIHZvaWQgd2Via2l0V2ViVmll
d0Jhc2VFeGl0RnVsbFNjcmVlbihXZWJLaXRXZWJWaWV3QmFzZSopOwogYm9vbCB3ZWJraXRXZWJW
aWV3QmFzZUlzRnVsbFNjcmVlbihXZWJLaXRXZWJWaWV3QmFzZSopOwogdm9pZCB3ZWJraXRXZWJW
aWV3QmFzZVNldEluc3BlY3RvclZpZXdTaXplKFdlYktpdFdlYlZpZXdCYXNlKiwgdW5zaWduZWQg
c2l6ZSk7CisjaWYgIVVTRShHVEs0KQogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVNldEFjdGl2ZUNv
bnRleHRNZW51UHJveHkoV2ViS2l0V2ViVmlld0Jhc2UqLCBXZWJLaXQ6OldlYkNvbnRleHRNZW51
UHJveHlHdGsqKTsKIFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eUd0ayogd2Via2l0V2ViVmll
d0Jhc2VHZXRBY3RpdmVDb250ZXh0TWVudVByb3h5KFdlYktpdFdlYlZpZXdCYXNlKik7CisjZW5k
aWYKIEdka0V2ZW50KiB3ZWJraXRXZWJWaWV3QmFzZVRha2VDb250ZXh0TWVudUV2ZW50KFdlYktp
dFdlYlZpZXdCYXNlKik7CiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0SW5wdXRNZXRob2RTdGF0
ZShXZWJLaXRXZWJWaWV3QmFzZSosIE9wdGlvbmFsPFdlYktpdDo6SW5wdXRNZXRob2RTdGF0ZT4m
Jik7CiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlVXBkYXRlVGV4dElucHV0U3RhdGUoV2ViS2l0V2Vi
Vmlld0Jhc2UqKTsKQEAgLTc4LDE2ICs4MCwxOSBAQCB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlk
RXhpdFdlYlByb2Nlc3MoV2ViS2l0V2ViVmlld0Jhc2UqKTsKIHZvaWQgd2Via2l0V2ViVmlld0Jh
c2VEaWRSZWxhdW5jaFdlYlByb2Nlc3MoV2ViS2l0V2ViVmlld0Jhc2UqKTsKIHZvaWQgd2Via2l0
V2ViVmlld0Jhc2VQYWdlQ2xvc2VkKFdlYktpdFdlYlZpZXdCYXNlKik7CiAKLSNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpICYmICFVU0UoR1RLNCkKIFdl
YktpdDo6RHJhZ0FuZERyb3BIYW5kbGVyJiB3ZWJraXRXZWJWaWV3QmFzZURyYWdBbmREcm9wSGFu
ZGxlcihXZWJLaXRXZWJWaWV3QmFzZSopOwogI2VuZGlmCiAKKyNpZiAhVVNFKEdUSzQpCiBXZWJL
aXQ6Okdlc3R1cmVDb250cm9sbGVyJiB3ZWJraXRXZWJWaWV3QmFzZUdlc3R1cmVDb250cm9sbGVy
KFdlYktpdFdlYlZpZXdCYXNlKik7CisjZW5kaWYKIAogUmVmUHRyPFdlYktpdDo6Vmlld1NuYXBz
aG90PiB3ZWJraXRXZWJWaWV3QmFzZVRha2VWaWV3U25hcHNob3QoV2ViS2l0V2ViVmlld0Jhc2Uq
LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRSZWN0PiYmKTsKLQogdm9pZCB3ZWJraXRXZWJWaWV3QmFz
ZVNldEVuYWJsZUJhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmUoV2ViS2l0V2ViVmlld0Jhc2Uq
LCBib29sIGVuYWJsZWQpOworI2lmICFVU0UoR1RLNCkKIFdlYktpdDo6Vmlld0dlc3R1cmVDb250
cm9sbGVyKiB3ZWJraXRXZWJWaWV3QmFzZVZpZXdHZXN0dXJlQ29udHJvbGxlcihXZWJLaXRXZWJW
aWV3QmFzZSopOworI2VuZGlmCiAKIGJvb2wgd2Via2l0V2ViVmlld0Jhc2VCZWdpbkJhY2tTd2lw
ZUZvclRlc3RpbmcoV2ViS2l0V2ViVmlld0Jhc2UqKTsKIGJvb2wgd2Via2l0V2ViVmlld0Jhc2VD
b21wbGV0ZUJhY2tTd2lwZUZvclRlc3RpbmcoV2ViS2l0V2ViVmlld0Jhc2UqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0RpYWxvZy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdEaWFsb2cu
Y3BwCmluZGV4IDcwZTZkMzk0YjJhMS4uZTY1M2JlYzYxZGM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdEaWFsb2cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0RpYWxvZy5jcHAKQEAg
LTIwLDYgKzIwLDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJW
aWV3RGlhbG9nLmgiCiAKKyNpZiAhVVNFKEdUSzQpCisKICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvV1RGR1R5cGUuaD4KIApAQCAtODksMyArOTEsNSBA
QCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfZGlhbG9nX2NsYXNzX2luaXQoV2ViS2l0V2Vi
Vmlld0RpYWxvZ0NsYXNzKiBrbGFzcykKIAogICAgIGd0a193aWRnZXRfY2xhc3Nfc2V0X2Nzc19u
YW1lKHdpZGdldENsYXNzLCAibWVzc2FnZWRpYWxvZyIpOwogfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0RpYWxvZy5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3RGlhbG9nLmgK
aW5kZXggNjUyMWM3NzdhNTdmLi42YTdlMDY0NTg5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0RpYWxvZy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0RpYWxvZy5oCkBAIC0xOSw2ICsx
OSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgIVVTRShHVEs0KQorCiAjaW5jbHVkZSA8Z3Rr
L2d0ay5oPgogCiBHX0JFR0lOX0RFQ0xTCkBAIC00NywzICs0OSw1IEBAIHN0cnVjdCBfV2ViS2l0
V2ViVmlld0RpYWxvZ0NsYXNzIHsKIEdUeXBlIHdlYmtpdF93ZWJfdmlld19kaWFsb2dfZ2V0X3R5
cGUoKTsKIAogR19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdHdGsuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3R3RrLmNwcAppbmRleCBhZjcxZTNiNGQ5ZTMu
LmMyOTU0MThjMTlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdHdGsuY3BwCkBAIC0zMywyMiArMzMsMjcgQEAKIAogZ2Jvb2xlYW4g
d2Via2l0V2ViVmlld0F1dGhlbnRpY2F0ZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRB
dXRoZW50aWNhdGlvblJlcXVlc3QqIHJlcXVlc3QpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIENy
ZWRlbnRpYWxTdG9yYWdlTW9kZSBjcmVkZW50aWFsU3RvcmFnZU1vZGUgPSB3ZWJraXRfYXV0aGVu
dGljYXRpb25fcmVxdWVzdF9jYW5fc2F2ZV9jcmVkZW50aWFscyhyZXF1ZXN0KSA/IEFsbG93UGVy
c2lzdGVudFN0b3JhZ2UgOiBEaXNhbGxvd1BlcnNpc3RlbnRTdG9yYWdlOwogICAgIHdlYmtpdFdl
YlZpZXdCYXNlQWRkRGlhbG9nKFdFQktJVF9XRUJfVklFV19CQVNFKHdlYlZpZXcpLCB3ZWJraXRB
dXRoZW50aWNhdGlvbkRpYWxvZ05ldyhyZXF1ZXN0LCBjcmVkZW50aWFsU3RvcmFnZU1vZGUpKTsK
KyNlbmRpZgogCiAgICAgcmV0dXJuIFRSVUU7CiB9CiAKIGdib29sZWFuIHdlYmtpdFdlYlZpZXdT
Y3JpcHREaWFsb2coV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0U2NyaXB0RGlhbG9nKiBz
Y3JpcHREaWFsb2cpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIEdVbmlxdWVQdHI8Y2hhcj4gdGl0
bGUoZ19zdHJkdXBfcHJpbnRmKCJKYXZhU2NyaXB0IC0gJXMiLCB3ZWJraXRXZWJWaWV3R2V0UGFn
ZSh3ZWJWaWV3KS5wYWdlTG9hZFN0YXRlKCkudXJsKCkudXRmOCgpLmRhdGEoKSkpOwogICAgIC8v
IExpbWl0IHNjcmlwdCBkaWFsb2cgc2l6ZSB0byA4MCUgb2YgdGhlIHdlYiB2aWV3IHNpemUuCiAg
ICAgR3RrUmVxdWlzaXRpb24gbWF4U2l6ZSA9IHsgc3RhdGljX2Nhc3Q8aW50PihndGtfd2lkZ2V0
X2dldF9hbGxvY2F0ZWRfd2lkdGgoR1RLX1dJREdFVCh3ZWJWaWV3KSkgKiAwLjgwKSwgc3RhdGlj
X2Nhc3Q8aW50PihndGtfd2lkZ2V0X2dldF9hbGxvY2F0ZWRfaGVpZ2h0KEdUS19XSURHRVQod2Vi
VmlldykpICogMC44MCkgfTsKICAgICB3ZWJraXRXZWJWaWV3QmFzZUFkZERpYWxvZyhXRUJLSVRf
V0VCX1ZJRVdfQkFTRSh3ZWJWaWV3KSwgd2Via2l0U2NyaXB0RGlhbG9nSW1wbE5ldyhzY3JpcHRE
aWFsb2csIHRpdGxlLmdldCgpLCAmbWF4U2l6ZSkpOworI2VuZGlmCiAKICAgICByZXR1cm4gVFJV
RTsKIH0KIAorI2lmICFVU0UoR1RLNCkKIHN0YXRpYyB2b2lkIGZpbGVDaG9vc2VyRGlhbG9nUmVz
cG9uc2VDYWxsYmFjayhHdGtGaWxlQ2hvb3NlciogZGlhbG9nLCBnaW50IHJlc3BvbnNlSUQsIFdl
YktpdEZpbGVDaG9vc2VyUmVxdWVzdCogcmVxdWVzdCkKIHsKICAgICBHUmVmUHRyPFdlYktpdEZp
bGVDaG9vc2VyUmVxdWVzdD4gYWRvcHRlZFJlcXVlc3QgPSBhZG9wdEdSZWYocmVxdWVzdCk7CkBA
IC02NCw5ICs2OSwxMSBAQCBzdGF0aWMgdm9pZCBmaWxlQ2hvb3NlckRpYWxvZ1Jlc3BvbnNlQ2Fs
bGJhY2soR3RrRmlsZUNob29zZXIqIGRpYWxvZywgZ2ludCByZXNwbwogCiAgICAgZ19vYmplY3Rf
dW5yZWYoZGlhbG9nKTsKIH0KKyNlbmRpZgogCiBnYm9vbGVhbiB3ZWJraXRXZWJWaWV3UnVuRmls
ZUNob29zZXIoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0
KiByZXF1ZXN0KQogeworI2lmICFVU0UoR1RLNCkKICAgICBHdGtXaWRnZXQqIHRvcGxldmVsID0g
Z3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVCh3ZWJWaWV3KSk7CiAgICAgaWYgKCFX
ZWJDb3JlOjp3aWRnZXRJc09uc2NyZWVuVG9wbGV2ZWxXaW5kb3codG9wbGV2ZWwpKQogICAgICAg
ICB0b3BsZXZlbCA9IDA7CkBAIC04OCwxMCArOTUsMTIgQEAgZ2Jvb2xlYW4gd2Via2l0V2ViVmll
d1J1bkZpbGVDaG9vc2VyKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdEZpbGVDaG9vc2Vy
UmUKICAgICBnX3NpZ25hbF9jb25uZWN0KGRpYWxvZywgInJlc3BvbnNlIiwgR19DQUxMQkFDSyhm
aWxlQ2hvb3NlckRpYWxvZ1Jlc3BvbnNlQ2FsbGJhY2spLCBnX29iamVjdF9yZWYocmVxdWVzdCkp
OwogCiAgICAgZ3RrX25hdGl2ZV9kaWFsb2dfc2hvdyhHVEtfTkFUSVZFX0RJQUxPRyhkaWFsb2cp
KTsKKyNlbmRpZgogCiAgICAgcmV0dXJuIFRSVUU7CiB9CiAKKyNpZiAhVVNFKEdUSzQpCiBzdHJ1
Y3QgV2luZG93U3RhdGVFdmVudCB7CiAgICAgZW51bSBjbGFzcyBUeXBlIHsgTWF4aW1pemUsIE1p
bmltaXplLCBSZXN0b3JlIH07CiAKQEAgLTE1Myw5ICsxNjIsMTEgQEAgc3RhdGljIGdib29sZWFu
IHdpbmRvd1N0YXRlRXZlbnRDYWxsYmFjayhHdGtXaWRnZXQqIHdpbmRvdywgR2RrRXZlbnRXaW5k
b3dTdGF0ZSoKIAogICAgIHJldHVybiBGQUxTRTsKIH0KKyNlbmRpZgogCiB2b2lkIHdlYmtpdFdl
YlZpZXdNYXhpbWl6ZVdpbmRvdyhXZWJLaXRXZWJWaWV3KiB2aWV3LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIGF1
dG8qIHRvcExldmVsID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVCh2aWV3KSk7
CiAgICAgaWYgKCFndGtfd2lkZ2V0X2lzX3RvcGxldmVsKHRvcExldmVsKSkgewogICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOwpAQCAtMTg1LDEwICsxOTYsMTIgQEAgdm9pZCB3ZWJraXRXZWJW
aWV3TWF4aW1pemVXaW5kb3coV2ViS2l0V2ViVmlldyogdmlldywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYKICAgICB9CiAjZW5kaWYKICAgICBndGtfd2lkZ2V0X3Nob3codG9wTGV2ZWwpOwor
I2VuZGlmCiB9CiAKIHZvaWQgd2Via2l0V2ViVmlld01pbmltaXplV2luZG93KFdlYktpdFdlYlZp
ZXcqIHZpZXcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgYXV0byogdG9wTGV2ZWwgPSBndGtfd2lkZ2V0X2dldF90
b3BsZXZlbChHVEtfV0lER0VUKHZpZXcpKTsKICAgICBpZiAoIWd0a193aWRnZXRfaXNfdG9wbGV2
ZWwodG9wTGV2ZWwpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC0yMDIsMTAg
KzIxNSwxMiBAQCB2b2lkIHdlYmtpdFdlYlZpZXdNaW5pbWl6ZVdpbmRvdyhXZWJLaXRXZWJWaWV3
KiB2aWV3LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JgogICAgIGdfc2lnbmFsX2Nvbm5lY3Rf
b2JqZWN0KHdpbmRvdywgIndpbmRvdy1zdGF0ZS1ldmVudCIsIEdfQ0FMTEJBQ0sod2luZG93U3Rh
dGVFdmVudENhbGxiYWNrKSwgdmlldywgR19DT05ORUNUX0FGVEVSKTsKICAgICBndGtfd2luZG93
X2ljb25pZnkod2luZG93KTsKICAgICBndGtfd2lkZ2V0X2hpZGUodG9wTGV2ZWwpOworI2VuZGlm
CiB9CiAKIHZvaWQgd2Via2l0V2ViVmlld1Jlc3RvcmVXaW5kb3coV2ViS2l0V2ViVmlldyogdmll
dywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogeworI2lm
ICFVU0UoR1RLNCkKICAgICBhdXRvKiB0b3BMZXZlbCA9IGd0a193aWRnZXRfZ2V0X3RvcGxldmVs
KEdUS19XSURHRVQodmlldykpOwogICAgIGlmICghZ3RrX3dpZGdldF9pc190b3BsZXZlbCh0b3BM
ZXZlbCkpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTIzOCw2ICsyNTMsNyBA
QCB2b2lkIHdlYmtpdFdlYlZpZXdSZXN0b3JlV2luZG93KFdlYktpdFdlYlZpZXcqIHZpZXcsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJgogICAgIH0KICNlbmRpZgogICAgIGd0a193aWRnZXRf
c2hvdyh0b3BMZXZlbCk7CisjZW5kaWYKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0azMvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmgKc2ltaWxhcml0
eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0Q29udGV4dE1lbnVJdGVtLmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGszL1dlYktpdENvbnRleHRNZW51SXRlbS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0azMvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmgKc2lt
aWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGszL1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrNC9XZWJLaXRDb250ZXh0TWVudUl0ZW0u
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGs0L1dlYktpdENvbnRleHRNZW51SXRl
bS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmUzNDM2OTFmNjBh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0azQvV2Vi
S2l0Q29udGV4dE1lbnVJdGVtLmgKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAm
JiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKSAmJiAhZGVmaW5lZChfX1dFQktJVF9XRUJf
RVhURU5TSU9OX0hfSU5TSURFX18pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBj
YW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0Q29udGV4
dE1lbnVJdGVtX2gKKyNkZWZpbmUgV2ViS2l0Q29udGV4dE1lbnVJdGVtX2gKKworI2luY2x1ZGUg
PGd0ay9ndGsuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRl
IDx3ZWJraXQyL1dlYktpdENvbnRleHRNZW51Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRD
b250ZXh0TWVudUFjdGlvbnMuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEZvcndhcmREZWNs
YXJhdGlvbnMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX0NPTlRF
WFRfTUVOVV9JVEVNICAgICAgICAgICAgKHdlYmtpdF9jb250ZXh0X21lbnVfaXRlbV9nZXRfdHlw
ZSgpKQorI2RlZmluZSBXRUJLSVRfQ09OVEVYVF9NRU5VX0lURU0ob2JqKSAgICAgICAgICAgIChH
X1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfQ09OVEVYVF9NRU5V
X0lURU0sIFdlYktpdENvbnRleHRNZW51SXRlbSkpCisjZGVmaW5lIFdFQktJVF9JU19DT05URVhU
X01FTlVfSVRFTShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmop
LCBXRUJLSVRfVFlQRV9DT05URVhUX01FTlVfSVRFTSkpCisjZGVmaW5lIFdFQktJVF9DT05URVhU
X01FTlVfSVRFTV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFz
cyksICBXRUJLSVRfVFlQRV9DT05URVhUX01FTlVfSVRFTSwgV2ViS2l0Q29udGV4dE1lbnVJdGVt
Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfQ09OVEVYVF9NRU5VX0lURU1fQ0xBU1Moa2xhc3Mp
IChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfQ09OVEVYVF9N
RU5VX0lURU0pKQorI2RlZmluZSBXRUJLSVRfQ09OVEVYVF9NRU5VX0lURU1fR0VUX0NMQVNTKG9i
aikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfQ09OVEVY
VF9NRU5VX0lURU0sIFdlYktpdENvbnRleHRNZW51SXRlbUNsYXNzKSkKKwordHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdENvbnRleHRNZW51SXRlbUNsYXNzICAgV2ViS2l0Q29udGV4dE1lbnVJdGVtQ2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0Q29udGV4dE1lbnVJdGVtUHJpdmF0ZSBXZWJLaXRD
b250ZXh0TWVudUl0ZW1Qcml2YXRlOworCitzdHJ1Y3QgX1dlYktpdENvbnRleHRNZW51SXRlbSB7
CisgICAgR0luaXRpYWxseVVub3duZWQgcGFyZW50OworCisgICAgV2ViS2l0Q29udGV4dE1lbnVJ
dGVtUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0Q29udGV4dE1lbnVJdGVtQ2xh
c3MgeworICAgIEdJbml0aWFsbHlVbm93bmVkQ2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgdm9p
ZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2
ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAg
dm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBl
Cit3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1fZ2V0X3R5cGUgICAgICAgICAgICAgICAgICAgICAg
ICAgKHZvaWQpOworCitXRUJLSVRfQVBJIFdlYktpdENvbnRleHRNZW51SXRlbSAqCit3ZWJraXRf
Y29udGV4dF9tZW51X2l0ZW1fbmV3X2Zyb21fZ2FjdGlvbiAgICAgICAgICAgICAgICAgKEdBY3Rp
b24gICAgICAgICAgICAgICAgKmFjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAqbGFi
ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdWYXJpYW50ICAgICAgICAgICAgICAgKnRhcmdldCk7CisKK1dFQktJVF9BUEkgV2Vi
S2l0Q29udGV4dE1lbnVJdGVtICoKK3dlYmtpdF9jb250ZXh0X21lbnVfaXRlbV9uZXdfZnJvbV9z
dG9ja19hY3Rpb24gICAgICAgICAgICAoV2ViS2l0Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKTsK
KworV0VCS0lUX0FQSSBXZWJLaXRDb250ZXh0TWVudUl0ZW0gKgord2Via2l0X2NvbnRleHRfbWVu
dV9pdGVtX25ld19mcm9tX3N0b2NrX2FjdGlvbl93aXRoX2xhYmVsIChXZWJLaXRDb250ZXh0TWVu
dUFjdGlvbiBhY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgKmxhYmVsKTsKKworV0VC
S0lUX0FQSSBXZWJLaXRDb250ZXh0TWVudUl0ZW0gKgord2Via2l0X2NvbnRleHRfbWVudV9pdGVt
X25ld193aXRoX3N1Ym1lbnUgICAgICAgICAgICAgICAgIChjb25zdCBnY2hhciAgICAgICAgICAg
ICpsYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV2ViS2l0Q29udGV4dE1lbnUgICAgICAqc3VibWVudSk7CisKK1dFQktJVF9B
UEkgV2ViS2l0Q29udGV4dE1lbnVJdGVtICoKK3dlYmtpdF9jb250ZXh0X21lbnVfaXRlbV9uZXdf
c2VwYXJhdG9yICAgICAgICAgICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgR0FjdGlv
biAqCit3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1fZ2V0X2dhY3Rpb24gICAgICAgICAgICAgICAg
ICAgICAgKFdlYktpdENvbnRleHRNZW51SXRlbSAgKml0ZW0pOworCitXRUJLSVRfQVBJIFdlYktp
dENvbnRleHRNZW51QWN0aW9uCit3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1fZ2V0X3N0b2NrX2Fj
dGlvbiAgICAgICAgICAgICAgICAgKFdlYktpdENvbnRleHRNZW51SXRlbSAgKml0ZW0pOworCitX
RUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1faXNfc2VwYXJhdG9y
ICAgICAgICAgICAgICAgICAgICAgKFdlYktpdENvbnRleHRNZW51SXRlbSAgKml0ZW0pOworCitX
RUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9jb250ZXh0X21lbnVfaXRlbV9zZXRfc3VibWVudSAgICAg
ICAgICAgICAgICAgICAgICAoV2ViS2l0Q29udGV4dE1lbnVJdGVtICAqaXRlbSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0
Q29udGV4dE1lbnUgICAgICAqc3VibWVudSk7CisKK1dFQktJVF9BUEkgV2ViS2l0Q29udGV4dE1l
bnUgKgord2Via2l0X2NvbnRleHRfbWVudV9pdGVtX2dldF9zdWJtZW51ICAgICAgICAgICAgICAg
ICAgICAgIChXZWJLaXRDb250ZXh0TWVudUl0ZW0gICppdGVtKTsKKworR19FTkRfREVDTFMKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrNC9XZWJL
aXRJbnB1dE1ldGhvZENvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGs0
L1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMC4uY2FmZWRhMDY1ZGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0azQvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmgKQEAgLTAsMCAr
MSwyMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZp
bmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9O
KQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVj
dGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdElucHV0TWV0aG9kQ29udGV4dF9oCisjZGVm
aW5lIFdlYktpdElucHV0TWV0aG9kQ29udGV4dF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5o
PgorI2luY2x1ZGUgPGdkay9nZGsuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMu
aD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX0lOUFVUX01FVEhPRF9D
T05URVhUICAgICAgICAgICAgKHdlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9nZXRfdHlwZSgp
KQorI2RlZmluZSBXRUJLSVRfSU5QVVRfTUVUSE9EX0NPTlRFWFQob2JqKSAgICAgICAgICAgIChH
X1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfSU5QVVRfTUVUSE9E
X0NPTlRFWFQsIFdlYktpdElucHV0TWV0aG9kQ29udGV4dCkpCisjZGVmaW5lIFdFQktJVF9JTlBV
VF9NRVRIT0RfQ09OVEVYVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNU
KChrbGFzcyksICBXRUJLSVRfVFlQRV9JTlBVVF9NRVRIT0RfQ09OVEVYVCwgV2ViS2l0SW5wdXRN
ZXRob2RDb250ZXh0Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfSU5QVVRfTUVUSE9EX0NPTlRF
WFQob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lU
X1RZUEVfSU5QVVRfTUVUSE9EX0NPTlRFWFQpKQorI2RlZmluZSBXRUJLSVRfSVNfSU5QVVRfTUVU
SE9EX0NPTlRFWFRfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3Mp
LCAgV0VCS0lUX1RZUEVfSU5QVVRfTUVUSE9EX0NPTlRFWFQpKQorI2RlZmluZSBXRUJLSVRfSU5Q
VVRfTUVUSE9EX0NPTlRFWFRfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NM
QVNTKChvYmopLCAgV0VCS0lUX1RZUEVfSU5QVVRfTUVUSE9EX0NPTlRFWFQsIFdlYktpdElucHV0
TWV0aG9kQ29udGV4dENsYXNzKSkKKworI2RlZmluZSBXRUJLSVRfVFlQRV9JTlBVVF9NRVRIT0Rf
VU5ERVJMSU5FICAgICAgICAgICh3ZWJraXRfaW5wdXRfbWV0aG9kX3VuZGVybGluZV9nZXRfdHlw
ZSgpKQorCisvKioKKyAqIFdlYktpdElucHV0UHVycG9zZToKKyAqIEBXRUJLSVRfSU5QVVRfUFVS
UE9TRV9GUkVFX0ZPUk06IEVkaXRhYmxlIGVsZW1lbnQgZXhwZWN0cyBhbnkgY2hhcmFjdGVycwor
ICogQFdFQktJVF9JTlBVVF9QVVJQT1NFX0RJR0lUUzogRWRpdGFibGUgZWxlbWVudCBleHBlY3Rz
IGRpZ2l0cworICogQFdFQktJVF9JTlBVVF9QVVJQT1NFX05VTUJFUjogRWRpdGFibGUgZWxlbWVu
dCBleHBlY3RzIGEgbnVtYmVyCisgKiBAV0VCS0lUX0lOUFVUX1BVUlBPU0VfUEhPTkU6IEVkaXRh
YmxlIGVsZW1lbnQgZXhwZWN0cyBhIHRlbGVwaG9uZQorICogQFdFQktJVF9JTlBVVF9QVVJQT1NF
X1VSTDogRWRpdGFibGUgZWxlbWVudCBleHBlY3RzIGEgVVJMCisgKiBAV0VCS0lUX0lOUFVUX1BV
UlBPU0VfRU1BSUw6IEVkaXRhYmxlIGVsZW1lbnQgZXhwZWN0cyBhbiBlbWFpbAorICogQFdFQktJ
VF9JTlBVVF9QVVJQT1NFX1BBU1NXT1JEOiBFZGl0YWJsZSBlbGVtZW50IGV4cGVjdHMgYSBwYXNz
d29yZAorICoKKyAqIEVudW0gdmFsdWVzIHVzZWQgdG8gZGVzY3JpYmUgdGhlIHByaW1hcnkgcHVy
cG9zZSBvZiB0aGUgYWN0aXZlIGVkaXRhYmxlIGVsZW1lbnQuCisgKgorICogU2luY2U6IDIuMjgK
KyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBXRUJLSVRfSU5QVVRfUFVSUE9TRV9GUkVFX0ZPUk0s
CisgICAgV0VCS0lUX0lOUFVUX1BVUlBPU0VfRElHSVRTLAorICAgIFdFQktJVF9JTlBVVF9QVVJQ
T1NFX05VTUJFUiwKKyAgICBXRUJLSVRfSU5QVVRfUFVSUE9TRV9QSE9ORSwKKyAgICBXRUJLSVRf
SU5QVVRfUFVSUE9TRV9VUkwsCisgICAgV0VCS0lUX0lOUFVUX1BVUlBPU0VfRU1BSUwsCisgICAg
V0VCS0lUX0lOUFVUX1BVUlBPU0VfUEFTU1dPUkQKK30gV2ViS2l0SW5wdXRQdXJwb3NlOworCisv
KioKKyAqIFdlYktpdElucHV0SGludHM6CisgKiBAV0VCS0lUX0lOUFVUX0hJTlRfTk9ORTogTm8g
c3BlY2lhbCBiZWhhdmlvciBzdWdnZXN0ZWQKKyAqIEBXRUJLSVRfSU5QVVRfSElOVF9TUEVMTENI
RUNLOiBTdWdnZXN0IHNwZWxsIGNoZWNraW5nCisgKiBAV0VCS0lUX0lOUFVUX0hJTlRfTE9XRVJD
QVNFOiBTdWdnZXN0IHRvIG5vdCBhdXRvY2FwaXRsaXplCisgKiBAV0VCS0lUX0lOUFVUX0hJTlRf
VVBQRVJDQVNFX0NIQVJTOiBTdWdnZXN0IHRvIGNhcGl0YWxpemUgYWxsIHRleHQKKyAqIEBXRUJL
SVRfSU5QVVRfSElOVF9VUFBFUkNBU0VfV09SRFM6IFN1Z2dlc3QgdG8gY2FwaXRhbGl6ZSB0aGUg
Zmlyc3QgY2hhcmFjdGVyIG9mIGVhY2ggd29yZAorICogQFdFQktJVF9JTlBVVF9ISU5UX1VQUEVS
Q0FTRV9TRU5URU5DRVM6IFN1Z2dlc3QgdG8gY2FwaXRhbGl6ZSB0aGUgZmlyc3Qgd29yZCBvZiBl
YWNoIHNlbnRlbmNlCisgKiBAV0VCS0lUX0lOUFVUX0hJTlRfSU5ISUJJVF9PU0s6IFN1Z2dlc3Qg
dG8gbm90IHNob3cgYW4gb25zY3JlZW4ga2V5Ym9hcmQKKyAqCisgKiBFbnVtIHZhbHVlcyB1c2Vk
IHRvIGRlc2NyaWJlIGhpbnRzIHRoYXQgbWlnaHQgYmUgdGFrZW4gaW50byBhY2NvdW50IGJ5IGlu
cHV0IG1ldGhvZHMuCisgKgorICogU2luY2U6IDIuMjgKKyAqLwordHlwZWRlZiBlbnVtIHsKKyAg
ICBXRUJLSVRfSU5QVVRfSElOVF9OT05FICAgICAgICAgICAgICAgID0gMCwKKyAgICBXRUJLSVRf
SU5QVVRfSElOVF9TUEVMTENIRUNLICAgICAgICAgID0gMSA8PCAwLAorICAgIFdFQktJVF9JTlBV
VF9ISU5UX0xPV0VSQ0FTRSAgICAgICAgICAgPSAxIDw8IDEsCisgICAgV0VCS0lUX0lOUFVUX0hJ
TlRfVVBQRVJDQVNFX0NIQVJTICAgICA9IDEgPDwgMiwKKyAgICBXRUJLSVRfSU5QVVRfSElOVF9V
UFBFUkNBU0VfV09SRFMgICAgID0gMSA8PCAzLAorICAgIFdFQktJVF9JTlBVVF9ISU5UX1VQUEVS
Q0FTRV9TRU5URU5DRVMgPSAxIDw8IDQsCisgICAgV0VCS0lUX0lOUFVUX0hJTlRfSU5ISUJJVF9P
U0sgICAgICAgICA9IDEgPDwgNQorfSBXZWJLaXRJbnB1dEhpbnRzOworCit0eXBlZGVmIHN0cnVj
dCBfV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICAgICAgICBXZWJLaXRJbnB1dE1ldGhvZENvbnRl
eHQ7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0Q2xhc3MgICBXZWJL
aXRJbnB1dE1ldGhvZENvbnRleHRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRJbnB1dE1l
dGhvZENvbnRleHRQcml2YXRlIFdlYktpdElucHV0TWV0aG9kQ29udGV4dFByaXZhdGU7Cit0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0SW5wdXRNZXRob2RVbmRlcmxpbmUgICAgICBXZWJLaXRJbnB1dE1l
dGhvZFVuZGVybGluZTsKKworc3RydWN0IF9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgeworICAg
IEdPYmplY3QgcGFyZW50OworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgV2ViS2l0SW5wdXRN
ZXRob2RDb250ZXh0UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0SW5wdXRNZXRo
b2RDb250ZXh0Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICAv
KiBTaWduYWxzICovCisgICAgdm9pZCAgICAgKCogcHJlZWRpdF9zdGFydGVkKSAgICAoV2ViS2l0
SW5wdXRNZXRob2RDb250ZXh0ICpjb250ZXh0KTsKKyAgICB2b2lkICAgICAoKiBwcmVlZGl0X2No
YW5nZWQpICAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgKmNvbnRleHQpOworICAgIHZvaWQg
ICAgICgqIHByZWVkaXRfZmluaXNoZWQpICAgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAqY29u
dGV4dCk7CisgICAgdm9pZCAgICAgKCogY29tbWl0dGVkKSAgICAgICAgICAoV2ViS2l0SW5wdXRN
ZXRob2RDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGNoYXIgICAgICAgICAgICAgICAqdGV4dCk7CisgICAgdm9pZCAgICAgKCogZGVs
ZXRlX3N1cnJvdW5kaW5nKSAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICpjb250ZXh0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAg
ICAgb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAg
ICAgICAgICAgICAgICAgICAgbl9jaGFycyk7CisKKyAgICAvKiBWaXJ0dWFsIGZ1bmN0aW9ucyAq
LworICAgIHZvaWQgICAgICgqIHNldF9lbmFibGVfcHJlZWRpdCkgKFdlYktpdElucHV0TWV0aG9k
Q29udGV4dCAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
Ym9vbGVhbiAgICAgICAgICAgICAgICAgIGVuYWJsZWQpOworICAgIHZvaWQgICAgICgqIGdldF9w
cmVlZGl0KSAgICAgICAgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAqY29udGV4dCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY2hhciAgICAgICAgICAgICAgICAgICAq
KnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpc3QgICAgICAg
ICAgICAgICAgICAgKip1bmRlcmxpbmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGd1aW50ICAgICAgICAgICAgICAgICAgICAqY3Vyc29yX29mZnNldCk7CisgICAgZ2Jv
b2xlYW4gKCogZmlsdGVyX2tleV9ldmVudCkgICAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICpj
b250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdka0V2ZW50ICAg
ICAgICAgICAgICAgICAqa2V5X2V2ZW50KTsKKyAgICB2b2lkICAgICAoKiBub3RpZnlfZm9jdXNf
aW4pICAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgKmNvbnRleHQpOworICAgIHZvaWQgICAg
ICgqIG5vdGlmeV9mb2N1c19vdXQpICAgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAqY29udGV4
dCk7CisgICAgdm9pZCAgICAgKCogbm90aWZ5X2N1cnNvcl9hcmVhKSAoV2ViS2l0SW5wdXRNZXRo
b2RDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGludCAgICAgICAgICAgICAgICAgICAgICAgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgIHksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAg
ICAgIGhlaWdodCk7CisgICAgdm9pZCAgICAgKCogbm90aWZ5X3N1cnJvdW5kaW5nKSAoV2ViS2l0
SW5wdXRNZXRob2RDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAqdGV4dCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAg
ICAgICAgIGN1cnNvcl9pbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBndWludCAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbl9pbmRleCk7CisgICAgdm9pZCAg
ICAgKCogcmVzZXQpICAgICAgICAgICAgICAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICpjb250
ZXh0KTsKKworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOworICAgIHZvaWQg
KCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVk
MikgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOworICAgIHZv
aWQgKCpfd2Via2l0X3Jlc2VydmVkNCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2Vy
dmVkNSkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkNikgKHZvaWQpOworICAg
IHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkNykgKHZvaWQpOworfTsKKworV0VCS0lUX0FQSSBHVHlw
ZQord2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0X2dldF90eXBlICAgICAgICAgICAodm9pZCk7
CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0X3NldF9lbmFi
bGVfcHJlZWRpdCAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICAgKmNvbnRleHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAg
ICAgICAgICAgICAgZW5hYmxlZCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2lucHV0X21l
dGhvZF9jb250ZXh0X2dldF9wcmVlZGl0ICAgICAgICAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0
ICAgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFyICAgICAgICAgICAgICAgICAgICAgICoqdGV4dCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaXN0ICAgICAgICAgICAgICAgICAgICAg
Kip1bmRlcmxpbmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgICAgICAgKmN1cnNvcl9vZmZzZXQpOworCitXRUJL
SVRfQVBJIGdib29sZWFuCit3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfZmlsdGVyX2tleV9l
dmVudCAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAqY29udGV4dCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdka0V2ZW50ICAgICAgICAgICAg
ICAgICAgICprZXlfZXZlbnQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9pbnB1dF9tZXRo
b2RfY29udGV4dF9ub3RpZnlfZm9jdXNfaW4gICAgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAg
ICpjb250ZXh0KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRl
eHRfbm90aWZ5X2ZvY3VzX291dCAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAqY29udGV4
dCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0X25vdGlm
eV9jdXJzb3JfYXJlYSAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICAgKmNvbnRleHQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAg
ICAgICAgICAgICAgICAgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICB5LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCk7CisKK1dFQktJVF9BUEkgdm9p
ZAord2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0X25vdGlmeV9zdXJyb3VuZGluZyAoV2ViS2l0
SW5wdXRNZXRob2RDb250ZXh0ICAgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAgICAqdGV4dCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAg
ICAgICAgICAgICAgICAgICAgICBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yX2lu
ZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vp
bnQgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbl9pbmRleCk7CisKK1dFQktJVF9BUEkg
dm9pZAord2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0X3Jlc2V0ICAgICAgICAgICAgICAoV2Vi
S2l0SW5wdXRNZXRob2RDb250ZXh0ICAgKmNvbnRleHQpOworCisKK1dFQktJVF9BUEkgR1R5cGUK
K3dlYmtpdF9pbnB1dF9tZXRob2RfdW5kZXJsaW5lX2dldF90eXBlICAgICAgICAgKHZvaWQpOwor
CitXRUJLSVRfQVBJIFdlYktpdElucHV0TWV0aG9kVW5kZXJsaW5lICoKK3dlYmtpdF9pbnB1dF9t
ZXRob2RfdW5kZXJsaW5lX25ldyAgICAgICAgICAgICAgKGd1aW50ICAgICAgICAgICAgICAgICAg
ICAgICBzdGFydF9vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAgICAgZW5kX29mZnNldCk7CisKK1dF
QktJVF9BUEkgV2ViS2l0SW5wdXRNZXRob2RVbmRlcmxpbmUgKgord2Via2l0X2lucHV0X21ldGhv
ZF91bmRlcmxpbmVfY29weSAgICAgICAgICAgICAoV2ViS2l0SW5wdXRNZXRob2RVbmRlcmxpbmUg
KnVuZGVybGluZSk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2lucHV0X21ldGhvZF91bmRl
cmxpbmVfZnJlZSAgICAgICAgICAgICAoV2ViS2l0SW5wdXRNZXRob2RVbmRlcmxpbmUgKnVuZGVy
bGluZSk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2lucHV0X21ldGhvZF91bmRlcmxpbmVf
c2V0X2NvbG9yICAgICAgICAoV2ViS2l0SW5wdXRNZXRob2RVbmRlcmxpbmUgKnVuZGVybGluZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdk
a1JHQkEgICAgICAgICAgICAgICpyZ2JhKTsKKworV0VCS0lUX0FQSSBXZWJLaXRJbnB1dFB1cnBv
c2UKK3dlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9nZXRfaW5wdXRfcHVycG9zZSAgKFdlYktp
dElucHV0TWV0aG9kQ29udGV4dCAgICpjb250ZXh0KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJr
aXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfc2V0X2lucHV0X3B1cnBvc2UgIChXZWJLaXRJbnB1dE1l
dGhvZENvbnRleHQgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdlYktpdElucHV0UHVycG9zZSAgICAgICAgICBwdXJwb3NlKTsKKwor
V0VCS0lUX0FQSSBXZWJLaXRJbnB1dEhpbnRzCit3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRf
Z2V0X2lucHV0X2hpbnRzICAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAqY29udGV4dCk7
CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0X3NldF9pbnB1
dF9oaW50cyAgICAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICAgKmNvbnRleHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRJbnB1dEhpbnRz
ICAgICAgICAgICAgaGludHMpOworCisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9ndGsvV2ViQXV0b21hdGlvblNl
c3Npb25HdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9ndGsvV2Vi
QXV0b21hdGlvblNlc3Npb25HdGsuY3BwCmluZGV4IGQ2MDMxZDlmZjIzZS4uNDI4MDIyZWVhODZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2d0ay9XZWJB
dXRvbWF0aW9uU2Vzc2lvbkd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
b21hdGlvbi9ndGsvV2ViQXV0b21hdGlvblNlc3Npb25HdGsuY3BwCkBAIC0zMCwxMiArMzAsMTIg
QEAKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0d0a1V0aWxp
dGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3RrVmVyc2lvbmluZy5oPgotI2luY2x1ZGUgPGd0
ay9ndGsuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogI2lmIEVOQUJMRShXRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJT05TKQorI2lmICFVU0UoR1RL
NCkKIHN0YXRpYyB1bnNpZ25lZCBtb2RpZmllcnNUb0V2ZW50U3RhdGUoT3B0aW9uU2V0PFdlYkV2
ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzKQogewogICAgIHVuc2lnbmVkIHN0YXRlID0gMDsKQEAg
LTEwMiw5ICsxMDIsMTEgQEAgc3RhdGljIHZvaWQgZG9Nb3Rpb25FdmVudChHdGtXaWRnZXQqIHdp
ZGdldCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGxvY2F0aW9uLAogICAgIGV2ZW50LT5tb3Rp
b24ueV9yb290ID0geVJvb3Q7CiAgICAgZ3RrX21haW5fZG9fZXZlbnQoZXZlbnQuZ2V0KCkpOwog
fQorI2VuZGlmCiAKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVN
b3VzZUludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgTW91c2VJbnRlcmFjdGlvbiBpbnRl
cmFjdGlvbiwgTW91c2VCdXR0b24gYnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbG9j
YXRpb25JblZpZXcsIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IGtleU1vZGlmaWVycykK
IHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgdW5zaWduZWQgZ2RrQnV0dG9uID0gbW91c2VCdXR0b25U
b0dka0J1dHRvbihidXR0b24pOwogICAgIGF1dG8gbW9kaWZpZXIgPSBzdGF0ZU1vZGlmaWVyRm9y
R2RrQnV0dG9uKGdka0J1dHRvbik7CiAgICAgdW5zaWduZWQgc3RhdGUgPSBtb2RpZmllcnNUb0V2
ZW50U3RhdGUoa2V5TW9kaWZpZXJzKSB8IG1fY3VycmVudE1vZGlmaWVyczsKQEAgLTEzMiwxMCAr
MTM0LDEyIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVNb3Vz
ZUludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwKICAgICAgICAgZG9Nb3VzZUV2ZW50KEdE
S19CVVRUT05fUkVMRUFTRSwgcGFnZS52aWV3V2lkZ2V0KCksIGxvY2F0aW9uSW5WaWV3LCBnZGtC
dXR0b24sIHN0YXRlIHwgbW9kaWZpZXIpOwogICAgICAgICBicmVhazsKICAgICB9CisjZW5kaWYK
IH0KICNlbmRpZiAvLyBFTkFCTEUoV0VCRFJJVkVSX01PVVNFX0lOVEVSQUNUSU9OUykKIAogI2lm
IEVOQUJMRShXRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQorI2lmICFVU0UoR1RLNCkK
IHN0YXRpYyB2b2lkIGRvS2V5U3Ryb2tlRXZlbnQoR2RrRXZlbnRUeXBlIHR5cGUsIEd0a1dpZGdl
dCogd2lkZ2V0LCB1bnNpZ25lZCBrZXlWYWwsIHVuc2lnbmVkIHN0YXRlLCBib29sIGRvUmVsZWFz
ZUFmdGVyUHJlc3MgPSBmYWxzZSkKIHsKICAgICBBU1NFUlQodHlwZSA9PSBHREtfS0VZX1BSRVNT
IHx8IHR5cGUgPT0gR0RLX0tFWV9SRUxFQVNFKTsKQEAgLTMwNCw5ICszMDgsMTEgQEAgc3RhdGlj
IHVuc2lnbmVkIG1vZGlmaWVyc0ZvcktleUNvZGUodW5zaWduZWQga2V5Q29kZSkKICAgICB9CiAg
ICAgcmV0dXJuIDA7CiB9CisjZW5kaWYKIAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxh
dGZvcm1TaW11bGF0ZUtleWJvYXJkSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiBwYWdlLCBLZXli
b2FyZEludGVyYWN0aW9uIGludGVyYWN0aW9uLCBXVEY6OlZhcmlhbnQ8VmlydHVhbEtleSwgQ2hh
cktleT4mJiBrZXkpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIHVuc2lnbmVkIGtleUNvZGU7CiAg
ICAgV1RGOjpzd2l0Y2hPbihrZXksCiAgICAgICAgIFsmXSAoVmlydHVhbEtleSB2aXJ0dWFsS2V5
KSB7CkBAIC0zMzEsMTYgKzMzNywxOSBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0
Zm9ybVNpbXVsYXRlS2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmIHBhZwogICAgICAg
ICBkb0tleVN0cm9rZUV2ZW50KEdES19LRVlfUFJFU1MsIHBhZ2Uudmlld1dpZGdldCgpLCBrZXlD
b2RlLCBtX2N1cnJlbnRNb2RpZmllcnMsIHRydWUpOwogICAgICAgICBicmVhazsKICAgICB9Cisj
ZW5kaWYKIH0KIAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtl
eVNlcXVlbmNlKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgU3RyaW5nJiBrZXlTZXF1ZW5jZSkK
IHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgQ1N0cmluZyBrZXlTZXF1ZW5jZVVURjggPSBrZXlTZXF1
ZW5jZS51dGY4KCk7CiAgICAgY29uc3QgY2hhciogcCA9IGtleVNlcXVlbmNlVVRGOC5kYXRhKCk7
CiAgICAgZG8gewogICAgICAgICBkb0tleVN0cm9rZUV2ZW50KEdES19LRVlfUFJFU1MsIHBhZ2Uu
dmlld1dpZGdldCgpLCBnZGtfdW5pY29kZV90b19rZXl2YWwoZ191dGY4X2dldF9jaGFyKHApKSwg
bV9jdXJyZW50TW9kaWZpZXJzLCB0cnVlKTsKICAgICAgICAgcCA9IGdfdXRmOF9uZXh0X2NoYXIo
cCk7CiAgICAgfSB3aGlsZSAoKnApOworI2VuZGlmCiB9CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkRS
SVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9SZW1vdGVXZWJJbnNwZWN0b3JQ
cm94eUd0ay5jcHAKaW5kZXggNzhmNjFmMGYwYjY5Li5kY2I4OTZlNmU5YTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvUmVtb3RlV2ViSW5zcGVjdG9y
UHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9ndGsv
UmVtb3RlV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCkBAIC0xMjAsNyArMTIwLDkgQEAgdm9pZCBS
ZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TYXZlKGNvbnN0IFN0cmluZyYgc3VnZ2Vz
dGVkVVJMLCBjb25zdCBTdHIKICAgICAgICAgR1RLX1dJTkRPVyhtX3dpbmRvdyksIEdUS19GSUxF
X0NIT09TRVJfQUNUSU9OX1NBVkUsICJTYXZlIiwgIkNhbmNlbCIpKTsKIAogICAgIEd0a0ZpbGVD
aG9vc2VyKiBjaG9vc2VyID0gR1RLX0ZJTEVfQ0hPT1NFUihkaWFsb2cuZ2V0KCkpOworI2lmICFV
U0UoR1RLNCkKICAgICBndGtfZmlsZV9jaG9vc2VyX3NldF9kb19vdmVyd3JpdGVfY29uZmlybWF0
aW9uKGNob29zZXIsIFRSVUUpOworI2VuZGlmCiAKICAgICAvLyBTb21lIGluc3BlY3RvciB2aWV3
cyAoQXVkaXRzIGZvciBpbnN0YW5jZSkgdXNlIGEgY3VzdG9tIFVSSSBzY2hlbWUsIHN1Y2gKICAg
ICAvLyBhcyB3ZWItaW5zcGVjdG9yLiBTbyB3ZSBjYW4ndCByZWx5IG9uIHRoZSBVUkwgYmVpbmcg
YSB2YWxpZCBmaWxlOi8vLyBVUkwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKaW5kZXggNzhm
Y2E3NDk0ODkxLi44OWY4ZGQ3MGI2ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCkBA
IC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9DZXJ0aWZpY2F0ZUluZm8uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0d0a1V0aWxpdGll
cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3RrVmVyc2lvbmluZy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvSW5zcGVjdG9yRGVidWdnYWJsZVR5cGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CiAjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KQEAgLTQ5NCw3ICs0OTUsOSBA
QCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNhdmUoY29uc3QgU3RyaW5nJiBzdWdn
ZXN0ZWRVUkwsIGNvbnN0IFN0cmluZyYgYwogICAgICAgICBHVEtfV0lORE9XKHBhcmVudCksIEdU
S19GSUxFX0NIT09TRVJfQUNUSU9OX1NBVkUsICJTYXZlIiwgIkNhbmNlbCIpKTsKIAogICAgIEd0
a0ZpbGVDaG9vc2VyKiBjaG9vc2VyID0gR1RLX0ZJTEVfQ0hPT1NFUihkaWFsb2cuZ2V0KCkpOwor
I2lmICFVU0UoR1RLNCkKICAgICBndGtfZmlsZV9jaG9vc2VyX3NldF9kb19vdmVyd3JpdGVfY29u
ZmlybWF0aW9uKGNob29zZXIsIFRSVUUpOworI2VuZGlmCiAKICAgICAvLyBTb21lIGluc3BlY3Rv
ciB2aWV3cyAoQXVkaXRzIGZvciBpbnN0YW5jZSkgdXNlIGEgY3VzdG9tIFVSSSBzY2hlbWUsIHN1
Y2gKICAgICAvLyBhcyB3ZWItaW5zcGVjdG9yLiBTbyB3ZSBjYW4ndCByZWx5IG9uIHRoZSBVUkwg
YmVpbmcgYSB2YWxpZCBmaWxlOi8vLyBVUkwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9ndGsvV2ViS2l0SW5zcGVjdG9yV2luZG93LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvV2ViS2l0SW5zcGVjdG9yV2luZG93LmNwcApp
bmRleCA1NTBkMDAzZjYxNjQuLmQ4YjY5MzZjYWFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9XZWJLaXRJbnNwZWN0b3JXaW5kb3cuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvV2ViS2l0SW5zcGVjdG9yV2lu
ZG93LmNwcApAQCAtNTIsMTQgKzUyLDE5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9pbnNwZWN0b3Jf
d2luZG93X2luaXQoV2ViS2l0SW5zcGVjdG9yV2luZG93KiB3aW5kb3cpCiB7CiAgICAgd2luZG93
LT5oZWFkZXJCYXIgPSBndGtfaGVhZGVyX2Jhcl9uZXcoKTsKICAgICBndGtfaGVhZGVyX2Jhcl9z
ZXRfdGl0bGUoR1RLX0hFQURFUl9CQVIod2luZG93LT5oZWFkZXJCYXIpLCBfKCJXZWIgSW5zcGVj
dG9yIikpOworI2lmICFVU0UoR1RLNCkKICAgICBndGtfaGVhZGVyX2Jhcl9zZXRfc2hvd19jbG9z
ZV9idXR0b24oR1RLX0hFQURFUl9CQVIod2luZG93LT5oZWFkZXJCYXIpLCBUUlVFKTsKKyNlbmRp
ZgogICAgIGd0a193aW5kb3dfc2V0X3RpdGxlYmFyKEdUS19XSU5ET1cod2luZG93KSwgd2luZG93
LT5oZWFkZXJCYXIpOwogICAgIGd0a193aWRnZXRfc2hvdyh3aW5kb3ctPmhlYWRlckJhcik7CiB9
CiAKIEd0a1dpZGdldCogd2Via2l0SW5zcGVjdG9yV2luZG93TmV3KCkKIHsKLSAgICByZXR1cm4g
R1RLX1dJREdFVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfSU5TUEVDVE9SX1dJTkRPVywgInR5
cGUiLCBHVEtfV0lORE9XX1RPUExFVkVMLAorICAgIHJldHVybiBHVEtfV0lER0VUKGdfb2JqZWN0
X25ldyhXRUJLSVRfVFlQRV9JTlNQRUNUT1JfV0lORE9XLAorI2lmICFVU0UoR1RLNCkKKyAgICAg
ICAgInR5cGUiLCBHVEtfV0lORE9XX1RPUExFVkVMLAorI2VuZGlmCiAgICAgICAgICJkZWZhdWx0
LXdpZHRoIiwgV2ViSW5zcGVjdG9yUHJveHk6OmluaXRpYWxXaW5kb3dXaWR0aCwgImRlZmF1bHQt
aGVpZ2h0IiwgV2ViSW5zcGVjdG9yUHJveHk6OmluaXRpYWxXaW5kb3dIZWlnaHQsIG51bGxwdHIp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA1YmZmMzQx
ZjVkN2YuLjZjYTEwMGFmMGUxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKQEAgLTIxNzEsNyArMjE3MSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldFJlbmRlclRy
ZWVTaXplKHVpbnQ2NF90IHRyZWVTaXplKSB7IG1fcmVuZGVyVHJlZVNpemUgPSB0cmVlU2l6ZTsg
fQogCi0jaWYgUExBVEZPUk0oWDExKQorI2lmIFBMQVRGT1JNKFgxMSkgJiYgRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCiAgICAgdm9pZCBjcmVhdGVQbHVnaW5Db250YWluZXIoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOwogICAgIHZvaWQgd2luZG93ZWRQbHVnaW5HZW9t
ZXRyeURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBmcmFtZVJlY3QsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIGNsaXBSZWN0LCB1aW50NjRfdCB3aW5kb3dJRCk7CiAgICAgdm9pZCB3
aW5kb3dlZFBsdWdpblZpc2liaWxpdHlEaWRDaGFuZ2UoYm9vbCBpc1Zpc2libGUsIHVpbnQ2NF90
IHdpbmRvd0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCA4M2ZkM2RkNWJlYzAuLmE5ODE1M2UyNWJmYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzk1LDcg
KzM5NSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGljdGF0aW9uQWx0ZXJu
YXRpdmVzKHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpIC0+IChWZWN0b3I8U3RyaW5nPiBhbHRl
cm5hdGl2ZXMpIFN5bmNocm9ub3VzCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKFgxMSkKKyNpZiBQ
TEFURk9STShYMTEpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICMgWDExIHdp
bmRvd2VkIHBsdWdpbiBtZXNzYWdlcwogICAgIENyZWF0ZVBsdWdpbkNvbnRhaW5lcigpIC0+ICh1
aW50NjRfdCB3aW5kb3dJRCkgU3luY2hyb25vdXMKICAgICBXaW5kb3dlZFBsdWdpbkdlb21ldHJ5
RGlkQ2hhbmdlKFdlYkNvcmU6OkludFJlY3QgZnJhbWVSZWN0LCBXZWJDb3JlOjpJbnRSZWN0IGNs
aXBSZWN0LCB1aW50NjRfdCB3aW5kb3dJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2NhaXJvL0JhY2tpbmdTdG9yZUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2NhaXJvL0JhY2tpbmdTdG9yZUNhaXJvLmNwcAppbmRleCAzMDM1ZjZmM2VlNjguLmRjMGE3
MGI4ODI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvY2Fpcm8vQmFja2lu
Z1N0b3JlQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2NhaXJvL0JhY2tp
bmdTdG9yZUNhaXJvLmNwcApAQCAtMzcsNyArMzcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVm
UHRyQ2Fpcm8uaD4KICNpbmNsdWRlIDxjYWlyby5oPgogCi0jaWYgUExBVEZPUk0oR1RLKSAmJiBQ
TEFURk9STShYMTEpICYmIGRlZmluZWQoR0RLX1dJTkRPV0lOR19YMTEpCisjaWYgUExBVEZPUk0o
R1RLKSAmJiBQTEFURk9STShYMTEpICYmIGRlZmluZWQoR0RLX1dJTkRPV0lOR19YMTEpICYmICFV
U0UoR1RLNCkKICNpbmNsdWRlIDxXZWJDb3JlL0JhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1EaXNwbGF5WDExLmg+CiAjaW5jbHVkZSA8Z2Rr
L2dka3guaD4KQEAgLTQ4LDcgKzQ4LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0
ZDo6dW5pcXVlX3B0cjxCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm8+IEJhY2tpbmdTdG9yZTo6Y3Jl
YXRlQmFja2VuZCgpCiB7Ci0jaWYgUExBVEZPUk0oR1RLKSAmJiBQTEFURk9STShYMTEpICYmIGRl
ZmluZWQoR0RLX1dJTkRPV0lOR19YMTEpCisjaWYgUExBVEZPUk0oR1RLKSAmJiBQTEFURk9STShY
MTEpICYmIGRlZmluZWQoR0RLX1dJTkRPV0lOR19YMTEpICYmICFVU0UoR1RLNCkKICAgICBjb25z
dCBhdXRvJiBzaGFyZWREaXNwbGF5ID0gUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCk7
CiAgICAgaWYgKGlzPFBsYXRmb3JtRGlzcGxheVgxMT4oc2hhcmVkRGlzcGxheSkpIHsKICAgICAg
ICAgR2RrVmlzdWFsKiB2aXN1YWwgPSBndGtfd2lkZ2V0X2dldF92aXN1YWwobV93ZWJQYWdlUHJv
eHkudmlld1dpZGdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2ds
aWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIv
V2ViUHJvY2Vzc1Bvb2xHTGliLmNwcAppbmRleCA4YzQyNTliZTFjNTguLmFiN2Q3ZDA5NWU0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdM
aWIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xH
TGliLmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAgICAg
cGFyYW1ldGVycy5nc3RyZWFtZXJPcHRpb25zID0gV2ViQ29yZTo6ZXh0cmFjdEdTdHJlYW1lck9w
dGlvbnNGcm9tQ29tbWFuZExpbmUoKTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lm
IFBMQVRGT1JNKEdUSykgJiYgIVVTRShHVEs0KQogICAgIHBhcmFtZXRlcnMudXNlU3lzdGVtQXBw
ZWFyYW5jZUZvclNjcm9sbGJhcnMgPSBtX2NvbmZpZ3VyYXRpb24tPnVzZVN5c3RlbUFwcGVhcmFu
Y2VGb3JTY3JvbGxiYXJzKCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZC5jcHAK
aW5kZXggNTg5YTVhY2Q3ZjdlLi5lYTIyYjRkNjIwZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxh
bmQuY3BwCkBAIC0zMiw3ICszMiwxMSBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogLy8g
VGhlc2UgaW5jbHVkZXMgbmVlZCB0byBiZSBpbiB0aGlzIG9yZGVyIGJlY2F1c2Ugd2F5bGFuZC1l
Z2wuaCBkZWZpbmVzIFdMX0VHTF9QTEFURk9STQogLy8gYW5kIGVnbHBsYXRmb3JtLmgsIGluY2x1
ZGVkIGJ5IGVnbC5oLCBjaGVja3MgdGhhdCB0byBkZWNpZGUgd2hldGhlciBpdCdzIFdheWxhbmQg
cGxhdGZvcm0uCisjaWYgVVNFKEdUSzQpCisjaW5jbHVkZSA8Z2RrL3dheWxhbmQvZ2Rrd2F5bGFu
ZC5oPgorI2Vsc2UKICNpbmNsdWRlIDxnZGsvZ2Rrd2F5bGFuZC5oPgorI2VuZGlmCiAjaW5jbHVk
ZSA8RUdML2VnbC5oPgogI2luY2x1ZGUgPEVHTC9lZ2xleHQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0NhaXJvVXRpbGl0aWVzLmg+CkBAIC0yMTEsNiArMjE1LDcgQEAgdm9pZCBBY2NlbGVyYXRlZEJh
Y2tpbmdTdG9yZVdheWxhbmQ6OnRyeUVuc3VyZUdMQ29udGV4dCgpCiAKICAgICBtX2dsQ29udGV4
dEluaXRpYWxpemVkID0gdHJ1ZTsKIAorI2lmICFVU0UoR1RLNCkKICAgICBHVW5pcXVlT3V0UHRy
PEdFcnJvcj4gZXJyb3I7CiAgICAgbV9nZGtHTENvbnRleHQgPSBhZG9wdEdSZWYoZ2RrX3dpbmRv
d19jcmVhdGVfZ2xfY29udGV4dChndGtfd2lkZ2V0X2dldF93aW5kb3cobV93ZWJQYWdlLnZpZXdX
aWRnZXQoKSksICZlcnJvci5vdXRQdHIoKSkpOwogICAgIGlmIChtX2dka0dMQ29udGV4dCkgewpA
QCAtMjIxLDYgKzIyNiw3IEBAIHZvaWQgQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjp0
cnlFbnN1cmVHTENvbnRleHQoKQogICAgIH0KIAogICAgIGdfd2FybmluZygiR0RLIGlzIG5vdCBh
YmxlIHRvIGNyZWF0ZSBhIEdMIGNvbnRleHQsIGZhbGxpbmcgYmFjayB0byBnbFJlYWRQaXhlbHMg
KHNsb3chKTogJXMiLCBlcnJvci0+bWVzc2FnZSk7CisjZW5kaWYKIAogICAgIG1fZ2xDb250ZXh0
ID0gR0xDb250ZXh0OjpjcmVhdGVPZmZzY3JlZW5Db250ZXh0KCk7CiB9CkBAIC0zMTMsMTEgKzMx
OSwxMyBAQCBib29sIEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZDo6cGFpbnQoY2Fpcm9f
dCogY3IsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KQogCiAgICAgY2Fpcm9fc2F2ZShjcik7CiAK
KyNpZiAhVVNFKEdUSzQpCiAgICAgaWYgKG1fZ2RrR0xDb250ZXh0KSB7CiAgICAgICAgIGdka19j
YWlyb19kcmF3X2Zyb21fZ2woY3IsIGd0a193aWRnZXRfZ2V0X3dpbmRvdyhtX3dlYlBhZ2Uudmll
d1dpZGdldCgpKSwgdGV4dHVyZSwgR0xfVEVYVFVSRSwgbV93ZWJQYWdlLmRldmljZVNjYWxlRmFj
dG9yKCksIDAsIDAsIHRleHR1cmVTaXplLndpZHRoKCksIHRleHR1cmVTaXplLmhlaWdodCgpKTsK
ICAgICAgICAgY2Fpcm9fcmVzdG9yZShjcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
KyNlbmRpZgogCiAgICAgQVNTRVJUKG1fZ2xDb250ZXh0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlWDExLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVgxMS5jcHAK
aW5kZXggOGI4NmY5ODg5YmE3Li40OTFkMzBjN2VjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVgxMS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlWDExLmNwcApA
QCAtMzcsNyArMzcsMTEgQEAKICNpbmNsdWRlIDxYMTEvWGxpYi5oPgogI2luY2x1ZGUgPFgxMS9l
eHRlbnNpb25zL1hkYW1hZ2UuaD4KICNpbmNsdWRlIDxjYWlyby14bGliLmg+CisjaWYgVVNFKEdU
SzQpCisjaW5jbHVkZSA8Z2RrL3gxMS9nZGt4Lmg+CisjZWxzZQogI2luY2x1ZGUgPGdkay9nZGt4
Lmg+CisjZW5kaWYKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTQ4LDYgKzUyLDcgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBzdGF0aWMgT3B0aW9uYWw8aW50PiBzX2RhbWFnZUV2ZW50
QmFzZTsKIHN0YXRpYyBPcHRpb25hbDxpbnQ+IHNfZGFtYWdlRXJyb3JCYXNlOwogCisjaWYgIVVT
RShHVEs0KQogY2xhc3MgWERhbWFnZU5vdGlmaWVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShYRGFtYWdlTm90aWZpZXIpOwogICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxYRGFtYWdlTm90
aWZpZXI+OwpAQCAtMTAyLDYgKzEwNyw3IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPERhbWFn
ZSwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+PiBtX25vdGlmeUZ1bmN0aW9uczsKIH07CisjZW5kaWYK
IAogYm9vbCBBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVgxMTo6Y2hlY2tSZXF1aXJlbWVudHMoKQog
ewpAQCAtMTMxLDYgKzEzNyw3IEBAIEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlWDExOjp+QWNjZWxl
cmF0ZWRCYWNraW5nU3RvcmVYMTEoKQogICAgIGlmICghbV9zdXJmYWNlICYmICFtX2RhbWFnZSkK
ICAgICAgICAgcmV0dXJuOwogCisjaWYgIVVTRShHVEs0KQogICAgIERpc3BsYXkqIGRpc3BsYXkg
PSBkb3duY2FzdDxQbGF0Zm9ybURpc3BsYXlYMTE+KFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlz
cGxheSgpKS5uYXRpdmUoKTsKICAgICBYRXJyb3JUcmFwcGVyIHRyYXBwZXIoZGlzcGxheSwgWEVy
cm9yVHJhcHBlcjo6UG9saWN5OjpDcmFzaCwgeyBCYWREcmF3YWJsZSwgeERhbWFnZUVycm9yQ29k
ZShCYWREYW1hZ2UpIH0pOwogICAgIGlmIChtX2RhbWFnZSkgewpAQCAtMTM4LDYgKzE0NSw3IEBA
IEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlWDExOjp+QWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVYMTEo
KQogICAgICAgICBtX2RhbWFnZS5yZXNldCgpOwogICAgICAgICBYU3luYyhkaXNwbGF5LCBGYWxz
ZSk7CiAgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVYMTE6
OnVwZGF0ZShjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0KQpAQCAtMTQ5
LDEyICsxNTcsMTQgQEAgdm9pZCBBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVgxMTo6dXBkYXRlKGNv
bnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQKICAgICBEaXNwbGF5KiBkaXNw
bGF5ID0gZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5WDExPihQbGF0Zm9ybURpc3BsYXk6OnNoYXJl
ZERpc3BsYXkoKSkubmF0aXZlKCk7CiAKICAgICBpZiAobV9zdXJmYWNlKSB7CisjaWYgIVVTRShH
VEs0KQogICAgICAgICBYRXJyb3JUcmFwcGVyIHRyYXBwZXIoZGlzcGxheSwgWEVycm9yVHJhcHBl
cjo6UG9saWN5OjpDcmFzaCwgeyBCYWREcmF3YWJsZSwgeERhbWFnZUVycm9yQ29kZShCYWREYW1h
Z2UpIH0pOwogICAgICAgICBpZiAobV9kYW1hZ2UpIHsKICAgICAgICAgICAgIFhEYW1hZ2VOb3Rp
Zmllcjo6c2luZ2xldG9uKCkucmVtb3ZlKG1fZGFtYWdlLmdldCgpKTsKICAgICAgICAgICAgIG1f
ZGFtYWdlLnJlc2V0KCk7CiAgICAgICAgICAgICBYU3luYyhkaXNwbGF5LCBGYWxzZSk7CiAgICAg
ICAgIH0KKyNlbmRpZgogICAgICAgICBtX3N1cmZhY2UgPSBudWxscHRyOwogICAgIH0KIApAQCAt
MTY4LDcgKzE3OCw3IEBAIHZvaWQgQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVYMTE6OnVwZGF0ZShj
b25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0CiAgICAgSW50U2l6ZSBzaXpl
ID0gZHJhd2luZ0FyZWEtPnNpemUoKTsKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IG1f
d2ViUGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpOwogICAgIHNpemUuc2NhbGUoZGV2aWNlU2NhbGVG
YWN0b3IpOwotCisjaWYgIVVTRShHVEs0KQogICAgIFhFcnJvclRyYXBwZXIgdHJhcHBlcihkaXNw
bGF5LCBYRXJyb3JUcmFwcGVyOjpQb2xpY3k6OkNyYXNoLCB7IEJhZERyYXdhYmxlLCB4RGFtYWdl
RXJyb3JDb2RlKEJhZERhbWFnZSkgfSk7CiAgICAgQVNTRVJUKGRvd25jYXN0PFBsYXRmb3JtRGlz
cGxheVgxMT4oUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkpLm5hdGl2ZSgpID09IEdE
S19ESVNQTEFZX1hESVNQTEFZKGdka19kaXNwbGF5X2dldF9kZWZhdWx0KCkpKTsKICAgICBHZGtW
aXN1YWwqIHZpc3VhbCA9IGdka19zY3JlZW5fZ2V0X3JnYmFfdmlzdWFsKGdka19zY3JlZW5fZ2V0
X2RlZmF1bHQoKSk7CkBAIC0xODIsNiArMTkyLDcgQEAgdm9pZCBBY2NlbGVyYXRlZEJhY2tpbmdT
dG9yZVgxMTo6dXBkYXRlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQK
ICAgICAgICAgICAgIGd0a193aWRnZXRfcXVldWVfZHJhdyhtX3dlYlBhZ2Uudmlld1dpZGdldCgp
KTsKICAgICB9KTsKICAgICBYU3luYyhkaXNwbGF5LCBGYWxzZSk7CisjZW5kaWYKIH0KIAogYm9v
bCBBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVgxMTo6cGFpbnQoY2Fpcm9fdCogY3IsIGNvbnN0IElu
dFJlY3QmIGNsaXBSZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3Rr
L0RyYWdBbmREcm9wSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvRHJh
Z0FuZERyb3BIYW5kbGVyLmNwcAppbmRleCA2Y2Q4NzIzZWZlMGMuLjUyYjg1ZmI0MzYwYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0RyYWdBbmREcm9wSGFuZGxlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0RyYWdBbmREcm9wSGFuZGxlci5j
cHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEcmFn
QW5kRHJvcEhhbmRsZXIuaCIKIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjaWYgRU5BQkxF
KERSQUdfU1VQUE9SVCkgJiYgIVVTRShHVEs0KQogCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5Lmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0YS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvZ3RrL0RyYWdBbmREcm9wSGFuZGxlci5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvZ3RrL0RyYWdBbmREcm9wSGFuZGxlci5oCmluZGV4IDU5MTRiN2UwZGY1NC4uMmIzMDVh
YTg1YzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvRHJhZ0FuZERy
b3BIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0RyYWdBbmREcm9w
SGFuZGxlci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxF
KERSQUdfU1VQUE9SVCkKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKSAmJiAhVVNFKEdUSzQpCiAK
ICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdBY3Rpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQ
b2ludC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0dlc3R1cmVD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9HZXN0dXJlQ29udHJv
bGxlci5jcHAKaW5kZXggNzY0OThiODAxNTg0Li5mMmM0NTFjZjVjNDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9HZXN0dXJlQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0dlc3R1cmVDb250cm9sbGVyLmNwcApAQCAtMjYsNiAr
MjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdlc3R1cmVDb250cm9sbGVy
LmgiCiAKKyNpZiAhVVNFKEdUSzQpCisKICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGJhci5oPgog
I2luY2x1ZGUgPGd0ay9ndGsuaD4KIApAQCAtMjcwLDMgKzI3Miw1IEBAIEdlc3R1cmVDb250cm9s
bGVyOjpMb25nUHJlc3NHZXN0dXJlOjpMb25nUHJlc3NHZXN0dXJlKEd0a1dpZGdldCogd2lkZ2V0
LCBHZXN0dXJlCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9HZXN0dXJlQ29udHJvbGxlci5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0dlc3R1cmVDb250cm9sbGVyLmgKaW5kZXggMmFkZGJj
ZDU5YzAxLi41MTQ2ZDQ1ODRlNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2d0ay9HZXN0dXJlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0
ay9HZXN0dXJlQ29udHJvbGxlci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQog
CisjaWYgIVVTRShHVEs0KQorCiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50Lmg+CiAjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KQEAgLTM1
LDYgKzM3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0dka0V2ZW50VG91Y2ggR2RrRXZlbnRUb3VjaDsK
IHR5cGVkZWYgc3RydWN0IF9HZGtFdmVudFNlcXVlbmNlIEdka0V2ZW50U2VxdWVuY2U7CiB0eXBl
ZGVmIHN0cnVjdCBfR3RrR2VzdHVyZSBHdGtHZXN0dXJlOwogCisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBjbGFzcyBHZXN0dXJlQ29udHJvbGxlckNsaWVudCB7CkBAIC0xNTgsMyArMTYxLDUgQEAg
cHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuY3BwCmlu
ZGV4IDNhOWVlOGM3MTZkZC4uN2U2NTIyNTJjNWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9ndGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5jcHAKQEAgLTE5LDggKzE5LDgg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJLZXlCaW5kaW5nVHJhbnNsYXRvci5o
IgogCisjaW5jbHVkZSA8V2ViQ29yZS9HdGtWZXJzaW9uaW5nLmg+CiAjaW5jbHVkZSA8Z2RrL2dk
a2tleXN5bXMuaD4KLSNpbmNsdWRlIDxndGsvZ3RrLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CkBAIC02OCw2ICs2OCw3IEBAIHN0YXRpYyB2b2lkIGluc2VydEVtb2ppQ2FsbGJhY2soR3RrV2lk
Z2V0KiB3aWRnZXQsIEtleUJpbmRpbmdUcmFuc2xhdG9yKiB0cmFuc2xhCiB9CiAjZW5kaWYKIAor
I2lmICFVU0UoR1RLNCkKIC8vIEdUSysgd2lsbCBzdGlsbCBzZW5kIHRoZXNlIHNpZ25hbHMgdG8g
dGhlIHdlYiB2aWV3LiBTbyB3ZSBjYW4gc2FmZWx5IHN0b3Agc2lnbmFsCiAvLyBlbWlzc2lvbiB3
aXRob3V0IGJyZWFraW5nIGFjY2Vzc2liaWxpdHkuCiBzdGF0aWMgdm9pZCBwb3B1cE1lbnVDYWxs
YmFjayhHdGtXaWRnZXQqIHdpZGdldCwgS2V5QmluZGluZ1RyYW5zbGF0b3IqKQpAQCAtNzksNiAr
ODAsNyBAQCBzdGF0aWMgdm9pZCBzaG93SGVscENhbGxiYWNrKEd0a1dpZGdldCogd2lkZ2V0LCBL
ZXlCaW5kaW5nVHJhbnNsYXRvciopCiB7CiAgICAgZ19zaWduYWxfc3RvcF9lbWlzc2lvbl9ieV9u
YW1lKHdpZGdldCwgInNob3ctaGVscCIpOwogfQorI2VuZGlmCiAKIHN0YXRpYyBjb25zdCBjaGFy
KiBjb25zdCBndGtEZWxldGVDb21tYW5kc1tdWzJdID0gewogICAgIHsgIkRlbGV0ZUJhY2t3YXJk
IiwgICAgICAgICAgICAgICAiRGVsZXRlRm9yd2FyZCIgICAgICAgICAgICAgICAgICAgICAgICB9
LCAvLyBDaGFyYWN0ZXJzCkBAIC0xNzksOCArMTgxLDEwIEBAIEtleUJpbmRpbmdUcmFuc2xhdG9y
OjpLZXlCaW5kaW5nVHJhbnNsYXRvcigpCiAgICAgZ19zaWduYWxfY29ubmVjdChtX25hdGl2ZVdp
ZGdldC5nZXQoKSwgIm1vdmUtY3Vyc29yIiwgR19DQUxMQkFDSyhtb3ZlQ3Vyc29yQ2FsbGJhY2sp
LCB0aGlzKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KG1fbmF0aXZlV2lkZ2V0LmdldCgpLCAiZGVs
ZXRlLWZyb20tY3Vyc29yIiwgR19DQUxMQkFDSyhkZWxldGVGcm9tQ3Vyc29yQ2FsbGJhY2spLCB0
aGlzKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KG1fbmF0aXZlV2lkZ2V0LmdldCgpLCAidG9nZ2xl
LW92ZXJ3cml0ZSIsIEdfQ0FMTEJBQ0sodG9nZ2xlT3ZlcndyaXRlQ2FsbGJhY2spLCB0aGlzKTsK
KyNpZiAhVVNFKEdUSzQpCiAgICAgZ19zaWduYWxfY29ubmVjdChtX25hdGl2ZVdpZGdldC5nZXQo
KSwgInBvcHVwLW1lbnUiLCBHX0NBTExCQUNLKHBvcHVwTWVudUNhbGxiYWNrKSwgdGhpcyk7CiAg
ICAgZ19zaWduYWxfY29ubmVjdChtX25hdGl2ZVdpZGdldC5nZXQoKSwgInNob3ctaGVscCIsIEdf
Q0FMTEJBQ0soc2hvd0hlbHBDYWxsYmFjayksIHRoaXMpOworI2VuZGlmCiAjaWYgR1RLX0NIRUNL
X1ZFUlNJT04oMywgMjQsIDApCiAgICAgZ19zaWduYWxfY29ubmVjdChtX25hdGl2ZVdpZGdldC5n
ZXQoKSwgImluc2VydC1lbW9qaSIsIEdfQ0FMTEJBQ0soaW5zZXJ0RW1vamlDYWxsYmFjayksIHRo
aXMpOwogI2VuZGlmCkBAIC0yMTMsMTAgKzIxNywxNSBAQCBWZWN0b3I8U3RyaW5nPiBLZXlCaW5k
aW5nVHJhbnNsYXRvcjo6Y29tbWFuZHNGb3JLZXlFdmVudChHZGtFdmVudEtleSogZXZlbnQpCiAK
ICAgICBndWludCBrZXl2YWw7CiAgICAgR2RrTW9kaWZpZXJUeXBlIHN0YXRlOworI2lmIFVTRShH
VEs0KQorICAgIGtleXZhbCA9IDA7CisgICAgc3RhdGUgPSBzdGF0aWNfY2FzdDxHZGtNb2RpZmll
clR5cGU+KDApOworI2Vsc2UKICAgICBnZGtfZXZlbnRfZ2V0X2tleXZhbChyZWludGVycHJldF9j
YXN0PEdka0V2ZW50Kj4oZXZlbnQpLCAma2V5dmFsKTsKICAgICBnZGtfZXZlbnRfZ2V0X3N0YXRl
KHJlaW50ZXJwcmV0X2Nhc3Q8R2RrRXZlbnQqPihldmVudCksICZzdGF0ZSk7CiAKICAgICBndGtf
YmluZGluZ3NfYWN0aXZhdGVfZXZlbnQoR19PQkpFQ1QobV9uYXRpdmVXaWRnZXQuZ2V0KCkpLCBl
dmVudCk7CisjZW5kaWYKICAgICBpZiAoIW1fcGVuZGluZ0VkaXRvckNvbW1hbmRzLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuIFdURk1vdmUobV9wZW5kaW5nRWRpdG9yQ29tbWFuZHMpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvS2V5QmluZGluZ1RyYW5zbGF0
b3IuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5o
CmluZGV4IGIyZGVkNWRlNmMwYS4uOGViYjE0NDBlZTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9ndGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9ndGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuaApAQCAtMjMsNyArMjMsMTIg
QEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKKyNpZiBVU0UoR1RLNCkKK3R5cGVkZWYgc3RydWN0IF9HZGtLZXlFdmVudCBHZGtLZXlF
dmVudDsKK3R5cGVkZWYgR2RrS2V5RXZlbnQgR2RrRXZlbnRLZXk7CisjZWxzZQogdHlwZWRlZiBz
dHJ1Y3QgX0dka0V2ZW50S2V5IEdka0V2ZW50S2V5OworI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvUG9pbnRlckxv
Y2tNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9ja01h
bmFnZXIuY3BwCmluZGV4IDZkMjNjMzk5YzNjYS4uZDE3ZTY0NzhkODkyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvUG9pbnRlckxvY2tNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvUG9pbnRlckxvY2tNYW5hZ2VyLmNwcApAQCAtNzEs
NiArNzEsNyBAQCBib29sIFBvaW50ZXJMb2NrTWFuYWdlcjo6bG9jaygpCiB7CiAgICAgUkVMRUFT
RV9BU1NFUlQoIW1fZGV2aWNlKTsKIAorI2lmICFVU0UoR1RLNCkKICAgICBhdXRvKiB2aWV3V2lk
Z2V0ID0gbV93ZWJQYWdlLnZpZXdXaWRnZXQoKTsKICAgICBtX2RldmljZSA9IGdka19zZWF0X2dl
dF9wb2ludGVyKGdka19kaXNwbGF5X2dldF9kZWZhdWx0X3NlYXQoZ3RrX3dpZGdldF9nZXRfZGlz
cGxheSh2aWV3V2lkZ2V0KSkpOwogICAgIEdSZWZQdHI8R2RrQ3Vyc29yPiBjdXJzb3IgPSBhZG9w
dEdSZWYoZ2RrX2N1cnNvcl9uZXdfZnJvbV9uYW1lKGd0a193aWRnZXRfZ2V0X2Rpc3BsYXkodmll
d1dpZGdldCksICJub25lIikpOwpAQCAtODAsNiArODEsNyBAQCBib29sIFBvaW50ZXJMb2NrTWFu
YWdlcjo6bG9jaygpCiAgICAgICAgIG1fZGV2aWNlID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KKyNlbmRpZgogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC04OSw4ICs5
MSwxMCBAQCBib29sIFBvaW50ZXJMb2NrTWFuYWdlcjo6dW5sb2NrKCkKICAgICBpZiAoIW1fZGV2
aWNlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyNpZiAhVVNFKEdUSzQpCiAgICAgZ2RrX3Nl
YXRfdW5ncmFiKGdka19kZXZpY2VfZ2V0X3NlYXQobV9kZXZpY2UpKTsKICAgICBtX2RldmljZSA9
IG51bGxwdHI7CisjZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1BvaW50ZXJMb2NrTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvZ3RrL1BvaW50ZXJMb2NrTWFuYWdlci5oCmluZGV4IGM3MGNmN2UyYTk3
Zi4uMTU3ZWFiZTZmOWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsv
UG9pbnRlckxvY2tNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1Bv
aW50ZXJMb2NrTWFuYWdlci5oCkBAIC0yOCw3ICsyOCwxMSBAQAogI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgogCiB0eXBlZGVmIHN0cnVjdCBfR2RrRGV2aWNlIEdka0RldmljZTsKKyNpZiBV
U0UoR1RLNCkKK3R5cGVkZWYgc3RydWN0IF9HZGtFdmVudCBHZGtFdmVudDsKKyNlbHNlCiB0eXBl
ZGVmIHVuaW9uIF9HZGtFdmVudCBHZGtFdmVudDsKKyNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBJbnRQb2ludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2d0ay9Qb2ludGVyTG9ja01hbmFnZXJXYXlsYW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2d0ay9Qb2ludGVyTG9ja01hbmFnZXJXYXlsYW5kLmNwcAppbmRleCA2MWJhZTU3OThkN2Uu
LjFmYWFiNjI5YjQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1Bv
aW50ZXJMb2NrTWFuYWdlcldheWxhbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2d0ay9Qb2ludGVyTG9ja01hbmFnZXJXYXlsYW5kLmNwcApAQCAtMzEsNyArMzEsMTEgQEAKICNp
bmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJwb2ludGVyLWNvbnN0cmFpbnRzLXVu
c3RhYmxlLXYxLWNsaWVudC1wcm90b2NvbC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvV2xVbmlxdWVQ
dHIuaD4KKyNpZiBVU0UoR1RLNCkKKyNpbmNsdWRlIDxnZGsvd2F5bGFuZC9nZGt3YXlsYW5kLmg+
CisjZWxzZQogI2luY2x1ZGUgPGdkay9nZGt3YXlsYW5kLmg+CisjZW5kaWYKICNpbmNsdWRlIDxn
dGsvZ3RrLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtOTEsOSArOTUsMTEgQEAgYm9vbCBQ
b2ludGVyTG9ja01hbmFnZXJXYXlsYW5kOjpsb2NrKCkKICAgICBtX3JlbGF0aXZlUG9pbnRlciA9
IHp3cF9yZWxhdGl2ZV9wb2ludGVyX21hbmFnZXJfdjFfZ2V0X3JlbGF0aXZlX3BvaW50ZXIobV9y
ZWxhdGl2ZVBvaW50ZXJNYW5hZ2VyLCBwb2ludGVyKTsKICAgICB6d3BfcmVsYXRpdmVfcG9pbnRl
cl92MV9hZGRfbGlzdGVuZXIobV9yZWxhdGl2ZVBvaW50ZXIsICZzX3JlbGF0aXZlUG9pbnRlckxp
c3RlbmVyLCB0aGlzKTsKIAorI2lmICFVU0UoR1RLNCkKICAgICBSRUxFQVNFX0FTU0VSVCghbV9s
b2NrZWRQb2ludGVyKTsKICAgICBhdXRvKiBzdXJmYWNlID0gZ2RrX3dheWxhbmRfd2luZG93X2dl
dF93bF9zdXJmYWNlKGd0a193aWRnZXRfZ2V0X3dpbmRvdyhtX3dlYlBhZ2Uudmlld1dpZGdldCgp
KSk7CiAgICAgbV9sb2NrZWRQb2ludGVyID0gendwX3BvaW50ZXJfY29uc3RyYWludHNfdjFfbG9j
a19wb2ludGVyKG1fcG9pbnRlckNvbnN0cmFpbnRzLCBzdXJmYWNlLCBwb2ludGVyLCBudWxscHRy
LCBaV1BfUE9JTlRFUl9DT05TVFJBSU5UU19WMV9MSUZFVElNRV9QRVJTSVNURU5UKTsKKyNlbmRp
ZgogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9ndGsvUG9pbnRlckxvY2tNYW5hZ2VyWDExLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2d0ay9Qb2ludGVyTG9ja01hbmFnZXJYMTEuY3BwCmluZGV4IDAzZDg0MTY5N2M0MS4uZmVm
MjEyYmYyNWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvUG9pbnRl
ckxvY2tNYW5hZ2VyWDExLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvUG9p
bnRlckxvY2tNYW5hZ2VyWDExLmNwcApAQCAtMjksNyArMjksOSBAQAogI2lmIFBMQVRGT1JNKFgx
MSkKIAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2lmICFVU0UoR1RLNCkKICNpbmNsdWRl
IDxnZGsvZ2RreC5oPgorI2VuZGlmCiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKQEAgLTQyLDYgKzQ0LDcgQEAgUG9pbnRlckxvY2tNYW5hZ2VyWDExOjpQb2ludGVy
TG9ja01hbmFnZXJYMTEoV2ViUGFnZVByb3h5JiB3ZWJQYWdlLCBjb25zdCBHZGtFdmUKIAogdm9p
ZCBQb2ludGVyTG9ja01hbmFnZXJYMTE6OmRpZFJlY2VpdmVNb3Rpb25FdmVudChjb25zdCBHZGtF
dmVudCogZXZlbnQpCiB7CisjaWYgIVVTRShHVEs0KQogICAgIGRvdWJsZSBjdXJyZW50WCwgY3Vy
cmVudFk7CiAgICAgZ2RrX2V2ZW50X2dldF9yb290X2Nvb3JkcyhldmVudCwgJmN1cnJlbnRYLCAm
Y3VycmVudFkpOwogICAgIGRvdWJsZSBpbml0aWFsWCwgaW5pdGlhbFk7CkBAIC01MSw2ICs1NCw3
IEBAIHZvaWQgUG9pbnRlckxvY2tNYW5hZ2VyWDExOjpkaWRSZWNlaXZlTW90aW9uRXZlbnQoY29u
c3QgR2RrRXZlbnQqIGV2ZW50KQogCiAgICAgaGFuZGxlTW90aW9uKEludFBvaW50KGN1cnJlbnRY
IC0gaW5pdGlhbFgsIGN1cnJlbnRZIC0gaW5pdGlhbFkpKTsKICAgICBnZGtfZGV2aWNlX3dhcnAo
bV9kZXZpY2UsIGd0a193aWRnZXRfZ2V0X3NjcmVlbihtX3dlYlBhZ2Uudmlld1dpZGdldCgpKSwg
aW5pdGlhbFgsIGluaXRpYWxZKTsKKyNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0
ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJHdGsuY3Bw
CmluZGV4IDE0Y2YyMTFlN2Q0Mi4uZjYyZGNiYjYxNzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5jcHAKQEAgLTMwLDggKzMwLDggQEAK
IAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3RrVXRpbGl0
aWVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HdGtWZXJzaW9uaW5nLmg+CiAjaW5jbHVkZSA8Z2xp
Yi9naTE4bi1saWIuaD4KLSNpbmNsdWRlIDxndGsvZ3RrLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9ndGsvV2ViQ29udGV4dE1lbnVQcm94eUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9ndGsvV2ViQ29udGV4dE1lbnVQcm94eUd0ay5jcHAKaW5kZXggNWZhZDJmZjdmMzQx
Li40MTAzMmI4NmI0YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9X
ZWJDb250ZXh0TWVudVByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
dGsvV2ViQ29udGV4dE1lbnVQcm94eUd0ay5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAgc3RhdGljIGNv
bnN0IGNoYXIqIGdDb250ZXh0TWVudUl0ZW1Hcm91cCA9ICJ3ZWJraXRDb250ZXh0TWVudSI7CiBu
YW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCisjaWYgIVVTRShH
VEs0KQogc3RhdGljIHZvaWQgY29udGV4dE1lbnVJdGVtQWN0aXZhdGVkQ2FsbGJhY2soR0FjdGlv
biogYWN0aW9uLCBHVmFyaWFudCosIFdlYlBhZ2VQcm94eSogcGFnZSkKIHsKICAgICBhdXRvKiBz
dGF0ZVR5cGUgPSBnX2FjdGlvbl9nZXRfc3RhdGVfdHlwZShhY3Rpb24pOwpAQCAtMTU4LDkgKzE1
OSwxMSBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlHdGs6OnBvcHVsYXRlKGNvbnN0IFZlY3Rv
cjxSZWY8V2ViQ29udGV4dE1lbnVJdGVtPj4mIGl0ZQogICAgIH0KICAgICBndGtfbWVudV9zaGVs
bF9iaW5kX21vZGVsKEdUS19NRU5VX1NIRUxMKG1fbWVudSksIEdfTUVOVV9NT0RFTChtZW51Lmdl
dCgpKSwgbnVsbHB0ciwgVFJVRSk7CiB9CisjZW5kaWYKIAogdm9pZCBXZWJDb250ZXh0TWVudVBy
b3h5R3RrOjpzaG93KCkKIHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgVmVjdG9yPFJlZjxXZWJDb250
ZXh0TWVudUl0ZW0+PiBwcm9wb3NlZEFQSUl0ZW1zOwogICAgIGZvciAoYXV0byYgaXRlbSA6IG1f
Y29udGV4dC5tZW51SXRlbXMoKSkgewogICAgICAgICBpZiAoaXRlbS5hY3Rpb24oKSAhPSBDb250
ZXh0TWVudUl0ZW1UYWdTaGFyZU1lbnUpCkBAIC0xNjgsMTAgKzE3MSwxMiBAQCB2b2lkIFdlYkNv
bnRleHRNZW51UHJveHlHdGs6OnNob3coKQogICAgIH0KIAogICAgIG1fcGFnZS0+Y29udGV4dE1l
bnVDbGllbnQoKS5nZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnUoKm1fcGFnZSwgV1RGTW92
ZShwcm9wb3NlZEFQSUl0ZW1zKSwgV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5OjpjcmVhdGUo
dGhpcykuZ2V0KCksIG1fY29udGV4dC53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpLCBtX3BhZ2UtPnBy
b2Nlc3MoKS50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKG1fdXNlckRhdGEub2JqZWN0KCkpLmdl
dCgpKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlHdGs6OnNob3dDb250
ZXh0TWVudVdpdGhJdGVtcyhWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiYgaXRlbXMp
CiB7CisjaWYgIVVTRShHVEs0KQogICAgIGlmICghaXRlbXMuaXNFbXB0eSgpKQogICAgICAgICBw
b3B1bGF0ZShpdGVtcyk7CiAKQEAgLTE4NywyMSArMTkyLDI3IEBAIHZvaWQgV2ViQ29udGV4dE1l
bnVQcm94eUd0azo6c2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zKFZlY3RvcjxSZWY8V2ViQ29udGV4
dE1lbnVJCiAgICAgY29uc3QgR2RrRXZlbnQqIGV2ZW50ID0gbW91c2VFdmVudCA/IG1vdXNlRXZl
bnQtPm5hdGl2ZUV2ZW50KCkgOiAwOwogICAgIGd0a19tZW51X2F0dGFjaF90b193aWRnZXQobV9t
ZW51LCBHVEtfV0lER0VUKG1fd2ViVmlldyksIG51bGxwdHIpOwogICAgIGd0a19tZW51X3BvcHVw
KG1fbWVudSwgbnVsbHB0ciwgbnVsbHB0ciwgcmVpbnRlcnByZXRfY2FzdDxHdGtNZW51UG9zaXRp
b25GdW5jPihtZW51UG9zaXRpb25GdW5jdGlvbiksIHRoaXMsIGV2ZW50ID8gZXZlbnQtPmJ1dHRv
bi5idXR0b24gOiAzLCBldmVudCA/IGV2ZW50LT5idXR0b24udGltZSA6IEdES19DVVJSRU5UX1RJ
TUUpOworI2VuZGlmCiB9CiAKIFdlYkNvbnRleHRNZW51UHJveHlHdGs6OldlYkNvbnRleHRNZW51
UHJveHlHdGsoR3RrV2lkZ2V0KiB3ZWJWaWV3LCBXZWJQYWdlUHJveHkmIHBhZ2UsIENvbnRleHRN
ZW51Q29udGV4dERhdGEmJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiAgICAg
OiBXZWJDb250ZXh0TWVudVByb3h5KFdURk1vdmUoY29udGV4dCksIHVzZXJEYXRhKQorI2lmICFV
U0UoR1RLNCkKICAgICAsIG1fd2ViVmlldyh3ZWJWaWV3KQogICAgICwgbV9wYWdlKCZwYWdlKQog
ICAgICwgbV9tZW51KEdUS19NRU5VKGd0a19tZW51X25ldygpKSkKKyNlbmRpZgogeworI2lmICFV
U0UoR1RLNCkKICAgICBHUmVmUHRyPEdTaW1wbGVBY3Rpb25Hcm91cD4gZ3JvdXAgPSBhZG9wdEdS
ZWYoZ19zaW1wbGVfYWN0aW9uX2dyb3VwX25ldygpKTsKICAgICBndGtfd2lkZ2V0X2luc2VydF9h
Y3Rpb25fZ3JvdXAoR1RLX1dJREdFVChtX21lbnUpLCBnQ29udGV4dE1lbnVJdGVtR3JvdXAsIEdf
QUNUSU9OX0dST1VQKGdyb3VwLmdldCgpKSk7CiAgICAgd2Via2l0V2ViVmlld0Jhc2VTZXRBY3Rp
dmVDb250ZXh0TWVudVByb3h5KFdFQktJVF9XRUJfVklFV19CQVNFKG1fd2ViVmlldyksIHRoaXMp
OworI2VuZGlmCiB9CiAKIFdlYkNvbnRleHRNZW51UHJveHlHdGs6On5XZWJDb250ZXh0TWVudVBy
b3h5R3RrKCkKIHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgZ3RrX21lbnVfcG9wZG93bihtX21lbnUp
OwogCiAgICAgZm9yIChhdXRvJiBoYW5kbGVyIDogbV9zaWduYWxIYW5kbGVycykKQEAgLTIxMCw4
ICsyMjEsMTAgQEAgV2ViQ29udGV4dE1lbnVQcm94eUd0azo6fldlYkNvbnRleHRNZW51UHJveHlH
dGsoKQogCiAgICAgZ3RrX3dpZGdldF9pbnNlcnRfYWN0aW9uX2dyb3VwKEdUS19XSURHRVQobV9t
ZW51KSwgZ0NvbnRleHRNZW51SXRlbUdyb3VwLCBudWxscHRyKTsKICAgICBndGtfd2lkZ2V0X2Rl
c3Ryb3koR1RLX1dJREdFVChtX21lbnUpKTsKKyNlbmRpZgogfQogCisjaWYgIVVTRShHVEs0KQog
dm9pZCBXZWJDb250ZXh0TWVudVByb3h5R3RrOjptZW51UG9zaXRpb25GdW5jdGlvbihHdGtNZW51
KiBtZW51LCBnaW50KiB4LCBnaW50KiB5LCBnYm9vbGVhbiogcHVzaEluLCBXZWJDb250ZXh0TWVu
dVByb3h5R3RrKiBwb3B1cE1lbnUpCiB7CiAgICAgR3RrUmVxdWlzaXRpb24gbWVudVNpemU7CkBA
IC0yMjgsNiArMjQxLDcgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5R3RrOjptZW51UG9zaXRp
b25GdW5jdGlvbihHdGtNZW51KiBtZW51LCBnaW50KiB4LCBnaW50KgogCiAgICAgKnB1c2hJbiA9
IEZBTFNFOwogfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogI2VuZGlmIC8vIEVO
QUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0
ay9XZWJDb250ZXh0TWVudVByb3h5R3RrLmgKaW5kZXggZTVjNWVhMGIzZGIwLi5hYTMzNTg5YTE5
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0TWVu
dVByb3h5R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRN
ZW51UHJveHlHdGsuaApAQCAtNDksMTMgKzQ5LDE2IEBAIHB1YmxpYzoKICAgICB9CiAgICAgfldl
YkNvbnRleHRNZW51UHJveHlHdGsoKTsKIAorI2lmICFVU0UoR1RLNCkKICAgICB2b2lkIHBvcHVs
YXRlKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1HbGliPiYpOwogICAgIEd0a01lbnUq
IGd0a01lbnUoKSBjb25zdCB7IHJldHVybiBtX21lbnU7IH0KKyNlbmRpZgogCiBwcml2YXRlOgog
ICAgIFdlYkNvbnRleHRNZW51UHJveHlHdGsoR3RrV2lkZ2V0KiwgV2ViUGFnZVByb3h5JiwgQ29u
dGV4dE1lbnVDb250ZXh0RGF0YSYmLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgc2hvdygp
IG92ZXJyaWRlOwogICAgIHZvaWQgc2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zKFZlY3RvcjxSZWY8
V2ViQ29udGV4dE1lbnVJdGVtPj4mJikgb3ZlcnJpZGU7CisjaWYgIVVTRShHVEs0KQogICAgIHZv
aWQgYXBwZW5kKEdNZW51KiwgY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtR2xpYiYpOwogICAgIEdS
ZWZQdHI8R01lbnU+IGJ1aWxkTWVudShjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtR2xp
Yj4mKTsKICAgICB2b2lkIHBvcHVsYXRlKGNvbnN0IFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJ
dGVtPj4mKTsKQEAgLTY3LDYgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBHdGtNZW51KiBtX21lbnU7
CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9wb3B1cFBvc2l0aW9uOwogICAgIEhhc2hNYXA8dW5z
aWduZWQgbG9uZywgdm9pZCo+IG1fc2lnbmFsSGFuZGxlcnM7CisjZW5kaWYKIH07CiAKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYkRhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93bkd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViRGF0YUxp
c3RTdWdnZXN0aW9uc0Ryb3Bkb3duR3RrLmNwcAppbmRleCA2YTM2Nzg5MDQwMmIuLjRkNjdkNWY4
MmM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYkRhdGFMaXN0
U3VnZ2VzdGlvbnNEcm9wZG93bkd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bkd0ay5jcHAKQEAgLTI2LDcgKzI2LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJEYXRhTGlzdFN1Z2dlc3Rpb25z
RHJvcGRvd25HdGsuaCIKIAotI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQorI2lmIEVOQUJM
RShEQVRBTElTVF9FTEVNRU5UKSAmJiAhVVNFKEdUSzQpCiAKICNpbmNsdWRlICJXZWJQYWdlUHJv
eHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViRGF0YUxpc3RTdWdn
ZXN0aW9uc0Ryb3Bkb3duR3RrLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViRGF0
YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duR3RrLmgKaW5kZXggNjQwN2Q2MjY3MjM3Li4wZmRjYjE3
MDAyN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJEYXRhTGlz
dFN1Z2dlc3Rpb25zRHJvcGRvd25HdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
dGsvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duR3RrLmgKQEAgLTI1LDcgKzI1LDcgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyNpZiBFTkFC
TEUoREFUQUxJU1RfRUxFTUVOVCkgJiYgIVVTRShHVEs0KQogCiAjaW5jbHVkZSAiV2ViRGF0YUxp
c3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2d0ay9XZWJQYWdlUHJveHlHdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL1dlYlBhZ2VQcm94eUd0ay5jcHAKaW5kZXggZTk4YjA1MjM2MTcwLi5hYWJmNjI2ZjMyNmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQYWdlUHJveHlHdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQYWdlUHJveHlHdGsuY3Bw
CkBAIC0zOSw5ICszOSwxMiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtRGlzcGxheS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
VXNlckFnZW50Lmg+Ci0jaW5jbHVkZSA8Z3RrL2d0a3guaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KIAorI2lmIFBMQVRGT1JNKFgxMSkgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJ
Tl9BUEkpCisjaW5jbHVkZSA8Z3RrL2d0a3guaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogdm9pZCBXZWJQYWdlUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCkBAIC05Myw3ICs5
Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVFZGl0b3JTdGF0ZShjb25zdCBFZGl0b3JT
dGF0ZSYgZWRpdG9yU3RhdGUpCiAgICAgcGFnZUNsaWVudCgpLnNlbGVjdGlvbkRpZENoYW5nZSgp
OwogfQogCi0jaWYgUExBVEZPUk0oWDExKQorI2lmIFBMQVRGT1JNKFgxMSkgJiYgRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCiB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIEd0a1dpZGdldCog
PiBQbHVnaW5XaW5kb3dNYXA7CiBzdGF0aWMgUGx1Z2luV2luZG93TWFwJiBwbHVnaW5XaW5kb3dN
YXAoKQogewpAQCAtMTQ3LDcgKzE1MCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aW5kb3dlZFBs
dWdpblZpc2liaWxpdHlEaWRDaGFuZ2UoYm9vbCBpc1Zpc2libGUsIHVpbnQ2NF90IHdpCiAgICAg
ZWxzZQogICAgICAgICBndGtfd2lkZ2V0X2hpZGUocGx1Z2luKTsKIH0KLSNlbmRpZiAvLyBQTEFU
Rk9STShYMTEpCisjZW5kaWYgLy8gUExBVEZPUk0oWDExKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExV
R0lOX0FQSSkKIAogdm9pZCBXZWJQYWdlUHJveHk6OnNldElucHV0TWV0aG9kU3RhdGUoT3B0aW9u
YWw8SW5wdXRNZXRob2RTdGF0ZT4mJiBzdGF0ZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuY3BwCmluZGV4IGYyYjk3NDU0N2Mz
NS4uNDY0ZGU2Y2NiOWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsv
V2ViUG9wdXBNZW51UHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0
ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5jcHAKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVQcm94eUd0ay5oIgogCisjaWYgIVVTRShH
VEs0KQorCiAjaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIldlYlBv
cHVwSXRlbS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3RrVXRpbGl0aWVzLmg+CkBAIC00NDEsMyAr
NDQzLDUgQEAgYm9vbCBXZWJQb3B1cE1lbnVQcm94eUd0azo6dHlwZUFoZWFkRmluZChHZGtFdmVu
dEtleSogZXZlbnQpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmgKaW5k
ZXggODdkMGI2ZjZkYzAxLi41NTc1Yzc4ODNiOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5oCkBAIC0yMCw2ICsyMCw3IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5LmgiCisjaWYgIVVTRShH
VEs0KQogI2luY2x1ZGUgPFdlYkNvcmUvR1VuaXF1ZVB0ckd0ay5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CkBAIC04NywzICs4OCw1IEBA
IHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgKaW5k
ZXggYjU3MmFhM2E1MzZkLi42MzEzNmJmMWFhMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgKQEAgLTE0NCw3ICsxNDQsNyBA
QCBwdWJsaWM6CiAgICAgLy8gRGVjcmVtZW50cyBhIGNvdW50ZXIgdGhhdCwgd2hlbiBpdCByZWFj
aGVzIDAsIHN0b3BzIHByZXZlbnRpbmcgdGhlIHBsdWctaW4gZnJvbSBiZWluZyBkZXN0cm95ZWQu
CiAgICAgdmlydHVhbCB2b2lkIHVucHJvdGVjdFBsdWdpbkZyb21EZXN0cnVjdGlvbigpID0gMDsK
IAotI2lmIFBMQVRGT1JNKFgxMSkKKyNpZiBQTEFURk9STShYMTEpICYmIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKQogICAgIC8vIENyZWF0ZSBhIHBsdWdpbiBjb250YWluZXIgZm9yIHdpbmRv
d2VkIHBsdWdpbnMKICAgICB2aXJ0dWFsIHVpbnQ2NF90IGNyZWF0ZVBsdWdpbkNvbnRhaW5lcigp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgd2luZG93ZWRQbHVnaW5HZW9tZXRyeURpZENoYW5nZShj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiBmcmFtZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IGNsaXBSZWN0LCB1aW50NjRfdCB3aW5kb3dJRCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBlYjkxZTkwOTQyZTQuLmY3ZjIy
MGFlMzViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
Vmlldy5jcHAKQEAgLTczLDcgKzczLDcgQEAKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRs
ZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKLSNpZiBQTEFURk9S
TShYMTEpCisjaWYgUExBVEZPUk0oWDExKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkK
ICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtRGlzcGxheS5oPgogI2VuZGlmCiAKQEAgLTE2ODIs
NyArMTY4Miw3IEBAIHZvaWQgUGx1Z2luVmlldzo6ZGlkRmFpbExvYWQoV2ViRnJhbWUqIHdlYkZy
YW1lLCBib29sIHdhc0NhbmNlbGxlZCkKICAgICBtX3BsdWdpbi0+ZnJhbWVEaWRGYWlsKHJlcXVl
c3QtPnJlcXVlc3RJRCgpLCB3YXNDYW5jZWxsZWQpOwogfQogCi0jaWYgUExBVEZPUk0oWDExKQor
I2lmIFBMQVRGT1JNKFgxMSkgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiB1aW50NjRf
dCBQbHVnaW5WaWV3OjpjcmVhdGVQbHVnaW5Db250YWluZXIoKQogewogICAgIHVpbnQ2NF90IHdp
bmRvd0lEID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZp
ZXcuaAppbmRleCAwM2E5MWJjYjlhODAuLmFjOTQ4MDRkZmNhNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtMjI2LDcgKzIyNiw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBhcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJs
ZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHByb3RlY3RQbHVnaW5Gcm9tRGVzdHJ1Y3Rp
b24oKSBvdmVycmlkZTsKICAgICB2b2lkIHVucHJvdGVjdFBsdWdpbkZyb21EZXN0cnVjdGlvbigp
IG92ZXJyaWRlOwotI2lmIFBMQVRGT1JNKFgxMSkKKyNpZiBQTEFURk9STShYMTEpICYmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIHVpbnQ2NF90IGNyZWF0ZVBsdWdpbkNvbnRhaW5l
cigpIG92ZXJyaWRlOwogICAgIHZvaWQgd2luZG93ZWRQbHVnaW5HZW9tZXRyeURpZENoYW5nZShj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiBmcmFtZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IGNsaXBSZWN0LCB1aW50NjRfdCB3aW5kb3dJRCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB3aW5kb3dl
ZFBsdWdpblZpc2liaWxpdHlEaWRDaGFuZ2UoYm9vbCBpc1Zpc2libGUsIHVpbnQ2NF90IHdpbmRv
d0lEKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggZTFkOGIwYjBiN2YwLi5hNGJmZTVlNDUyOTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00MDgsNyArNDA4LDcgQEAgV2Vi
UGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMmJiBwYXJhbWV0ZXJzKQogI2lmIEVOQUJMRShQTEFURk9STV9EUklWRU5fVEVYVF9DSEVD
S0lORykKICAgICAsIG1fdGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5KG1ha2VVbmlxdWVSZWY8
VGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5PigqdGhpcykpCiAjZW5kaWYKLSNpZiBQTEFURk9S
TShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCAoUExBVEZP
Uk0oR1RLKSAmJiAhVVNFKEdUSzQpKQogICAgICwgbV92aWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVj
dG9yKG1ha2VVbmlxdWU8Vmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvcj4oKnRoaXMpKQogI2Vs
aWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKEdUSykKICAgICAsIG1fYWNjZXNz
aWJpbGl0eU9iamVjdChudWxscHRyKQpAQCAtMTQ0Miw3ICsxNDQyLDcgQEAgdm9pZCBXZWJQYWdl
OjpjbG9zZSgpCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIHdlYlByb2Nlc3MucmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIpOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oQ09D
T0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgKFBMQVRGT1JNKEdU
SykgJiYgIVVTRShHVEs0KSkKICAgICBtX3ZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IgPSBu
dWxscHRyOwogI2VuZGlmCiAKQEAgLTQ0NDMsNyArNDQ0Myw3IEBAIHZvaWQgV2ViUGFnZTo6bWFp
bkZyYW1lRGlkTGF5b3V0KCkKICAgICAgICAgbV9jYWNoZWRQYWdlQ291bnQgPSBwYWdlQ291bnQ7
CiAgICAgfQogCi0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFU
Rk9STShDT0NPQSkgfHwgKFBMQVRGT1JNKEdUSykgJiYgIVVTRShHVEs0KSkKICAgICBpZiAobV92
aWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yKQogICAgICAgICBtX3ZpZXdHZXN0dXJlR2VvbWV0
cnlDb2xsZWN0b3ItPm1haW5GcmFtZURpZExheW91dCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMzBmMDIzNWU3OTBiLi5jZDRmMmYy
NzgwMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAg
LTE4MTIsNyArMTgxMiw3IEBAIHByaXZhdGU6CiAgICAgVW5pcXVlUmVmPFRleHRDaGVja2luZ0Nv
bnRyb2xsZXJQcm94eT4gbV90ZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHk7CiAjZW5kaWYKIAot
I2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0Ep
IHx8IChQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFZp
ZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3I+IG1fdmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rv
cjsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlWDExLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VYMTEuY3BwCmluZGV4IGUzZWE4NDQ3Nzk5
MC4uNmYxZDc0N2VlMTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlWDExLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlWDExLmNwcApAQCAtMzQsNyAr
MzQsMTEgQEAKICNpbmNsdWRlIDxYMTEvWGxpYi5oPgogI2luY2x1ZGUgPFgxMS9leHRlbnNpb25z
L1hjb21wb3NpdGUuaD4KICNpbmNsdWRlIDxjYWlyby14bGliLmg+CisjaWYgVVNFKEdUSzQpCisj
aW5jbHVkZSA8Z2RrL3gxMS9nZGt4Lmg+CisjZWxzZQogI2luY2x1ZGUgPGdkay9nZGt4Lmg+Cisj
ZW5kaWYKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAg
LTQ3LDE3ICs1MSwyMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8QWNjZWxlcmF0ZWRTdXJmYWNlWDExPiBB
Y2NlbGVyYXRlZFN1cmZhY2VYMTE6OmNyZWF0ZShXZWJQYWdlJiB3ZQogICAgIHJldHVybiBzdGQ6
OnVuaXF1ZV9wdHI8QWNjZWxlcmF0ZWRTdXJmYWNlWDExPihuZXcgQWNjZWxlcmF0ZWRTdXJmYWNl
WDExKHdlYlBhZ2UsIGNsaWVudCkpOwogfQogCisjaWYgIVVTRShHVEs0KQogc3RhdGljIEdka1Zp
c3VhbCogZGVmYXVsdFZpc3VhbCgpCiB7CiAgICAgaWYgKEdka1Zpc3VhbCogdmlzdWFsID0gZ2Rr
X3NjcmVlbl9nZXRfcmdiYV92aXN1YWwoZ2RrX3NjcmVlbl9nZXRfZGVmYXVsdCgpKSkKICAgICAg
ICAgcmV0dXJuIHZpc3VhbDsKICAgICByZXR1cm4gZ2RrX3NjcmVlbl9nZXRfc3lzdGVtX3Zpc3Vh
bChnZGtfc2NyZWVuX2dldF9kZWZhdWx0KCkpOwogfQorI2VuZGlmCiAKIEFjY2VsZXJhdGVkU3Vy
ZmFjZVgxMTo6QWNjZWxlcmF0ZWRTdXJmYWNlWDExKFdlYlBhZ2UmIHdlYlBhZ2UsIENsaWVudCYg
Y2xpZW50KQogICAgIDogQWNjZWxlcmF0ZWRTdXJmYWNlKHdlYlBhZ2UsIGNsaWVudCkKICAgICAs
IG1fZGlzcGxheShkb3duY2FzdDxQbGF0Zm9ybURpc3BsYXlYMTE+KFBsYXRmb3JtRGlzcGxheTo6
c2hhcmVkRGlzcGxheSgpKS5uYXRpdmUoKSkKIHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgU2NyZWVu
KiBzY3JlZW4gPSBEZWZhdWx0U2NyZWVuT2ZEaXNwbGF5KG1fZGlzcGxheSk7CiAKICAgICBBU1NF
UlQoZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5WDExPihQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERp
c3BsYXkoKSkubmF0aXZlKCkgPT0gbV9kaXNwbGF5KTsKQEAgLTExMCw2ICsxMTcsNyBAQCBBY2Nl
bGVyYXRlZFN1cmZhY2VYMTE6OkFjY2VsZXJhdGVkU3VyZmFjZVgxMShXZWJQYWdlJiB3ZWJQYWdl
LCBDbGllbnQmIGNsaWVudCkKICAgICBYU2VsZWN0SW5wdXQobV9kaXNwbGF5LCBtX3dpbmRvdy5n
ZXQoKSwgTm9FdmVudE1hc2spOwogICAgIFhDb21wb3NpdGVSZWRpcmVjdFdpbmRvdyhtX2Rpc3Bs
YXksIG1fd2luZG93LmdldCgpLCBDb21wb3NpdGVSZWRpcmVjdE1hbnVhbCk7CiAgICAgY3JlYXRl
UGl4bWFwKCk7CisjZW5kaWYKIH0KIAogQWNjZWxlcmF0ZWRTdXJmYWNlWDExOjp+QWNjZWxlcmF0
ZWRTdXJmYWNlWDExKCkKQEAgLTEyNSwxMiArMTMzLDE0IEBAIEFjY2VsZXJhdGVkU3VyZmFjZVgx
MTo6fkFjY2VsZXJhdGVkU3VyZmFjZVgxMSgpCiAKIHZvaWQgQWNjZWxlcmF0ZWRTdXJmYWNlWDEx
OjpjcmVhdGVQaXhtYXAoKQogeworI2lmICFVU0UoR1RLNCkKICAgICBtX3BpeG1hcCA9IFhDb21w
b3NpdGVOYW1lV2luZG93UGl4bWFwKG1fZGlzcGxheSwgbV93aW5kb3cuZ2V0KCkpOwogICAgIFJl
ZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb194bGliX3N1cmZh
Y2VfY3JlYXRlKG1fZGlzcGxheSwgbV9waXhtYXAuZ2V0KCksIEdES19WSVNVQUxfWFZJU1VBTChk
ZWZhdWx0VmlzdWFsKCkpLCBtX3NpemUud2lkdGgoKSwgbV9zaXplLmhlaWdodCgpKSk7CiAgICAg
UmVmUHRyPGNhaXJvX3Q+IGNyID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKHN1cmZhY2UuZ2V0KCkp
KTsKICAgICBjYWlyb19zZXRfb3BlcmF0b3IoY3IuZ2V0KCksIENBSVJPX09QRVJBVE9SX0NMRUFS
KTsKICAgICBjYWlyb19wYWludChjci5nZXQoKSk7CiAgICAgWFN5bmMobV9kaXNwbGF5LCBGYWxz
ZSk7CisjZW5kaWYKIH0KIAogYm9vbCBBY2NlbGVyYXRlZFN1cmZhY2VYMTE6Omhvc3RSZXNpemUo
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRpb25HdGsuY3BwCmluZGV4IDMxZWZm
MTFmN2FlMC4uZTkxMTNjOTZhZTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRpb25HdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5jcHAKQEAgLTcz
Nyw3ICs3MzcsNyBAQCB2b2lkIFdlYlByaW50T3BlcmF0aW9uR3RrOjpwcmludChjYWlyb19zdXJm
YWNlX3QqIHN1cmZhY2UsIGRvdWJsZSB4RFBJLCBkb3VibGUgeQogICAgIG1feERQSSA9IHhEUEk7
CiAgICAgbV95RFBJID0geURQSTsKICAgICBtX2NhaXJvQ29udGV4dCA9IGFkb3B0UmVmKGNhaXJv
X2NyZWF0ZShzdXJmYWNlKSk7Ci0KKyNpZiAhVVNFKEdUSzQpCiAgICAgLy8gTWFrZSBzdXJlIHRo
ZSBwcmludCBwYWdlcyBpZGxlIGhhcyBtb3JlIHByaW9yaXR5IHRoYW4gSVBDIG1lc3NhZ2VzIGNv
bW1pbmcgZnJvbQogICAgIC8vIHRoZSBJTyB0aHJlYWQsIHNvIHRoYXQgdGhlIEVuZFByaW50aW5n
IG1lc3NhZ2UgaXMgYWx3YXlzIGhhbmRsZWQgb25jZSB0aGUgcHJpbnQKICAgICAvLyBvcGVyYXRp
b24gaGFzIGZpbmlzaGVkLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyMjgwMS4KQEAgLTc0OCw2ICs3NDgsNyBAQCB2b2lkIFdlYlByaW50T3BlcmF0aW9uR3Rr
OjpwcmludChjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UsIGRvdWJsZSB4RFBJLCBkb3VibGUgeQog
ICAgICAgICBBU1NFUlQobWFpbkxvb3ApOwogICAgICAgICBnX21haW5fbG9vcF9ydW4obWFpbkxv
b3ApOwogICAgIH0KKyNlbmRpZgogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0
aW9uc0dUSy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCmluZGV4IDk1ZmM2
MDYwNTBkMi4uYjE3MDBiMjNjZjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dU
Sy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQpAQCAtMTIwLDcgKzEy
MCwxMSBAQCBXRUJLSVRfT1BUSU9OX0RFUEVORChVU0VfV1BFX1JFTkRFUkVSIEVOQUJMRV9XQVlM
QU5EX1RBUkdFVCkKIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKEVOQUJMRV9ERVZFTE9QRVJfTU9E
RSAke0RFVkVMT1BFUl9NT0RFfSkKIGlmIChERVZFTE9QRVJfTU9ERSkKICAgICBXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTUlOSUJST1dTRVIgUFVCTElDIE9OKQotICAg
IFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9BUElfVEVTVFMgUFJJVkFU
RSBPTikKKyAgICBpZiAoVVNFX0dUSzQpCisgICAgICAgIFdFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9BUElfVEVTVFMgUFJJVkFURSBPRkYpCisgICAgZWxzZSAoKQorICAg
ICAgICBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQVBJX1RFU1RTIFBS
SVZBVEUgT04pCisgICAgZW5kaWYgKCkKIGVsc2UgKCkKICAgICBXRUJLSVRfT1BUSU9OX0RFRkFV
TFRfUE9SVF9WQUxVRShFTkFCTEVfTUlOSUJST1dTRVIgUFVCTElDIE9GRikKICAgICBXRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQVBJX1RFU1RTIFBSSVZBVEUgT0ZGKQpA
QCAtMjYyLDYgKzI2NiwxMCBAQCBpZiAoVVNFX0xJQlNFQ1JFVCkKICAgICBlbmRpZiAoKQogZW5k
aWYgKCkKIAoraWYgKFVTRV9HVEs0KQorICAgIHNldChFTkFCTEVfSU5UUk9TUEVDVElPTiBPRkYp
CitlbmRpZiAoKQorCiBpZiAoRU5BQkxFX0lOVFJPU1BFQ1RJT04pCiAgICAgZmluZF9wYWNrYWdl
KEdPYmplY3RJbnRyb3NwZWN0aW9uKQogICAgIGlmIChOT1QgSU5UUk9TUEVDVElPTl9GT1VORCkK
QEAgLTQzMiw2ICs0NDAsNyBAQCBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtfQVBJX0RJ
UiAke0RFUklWRURfU09VUkNFU19XRUJLSVQyR1RLX0RJUn0vd2Via2l0Mgogc2V0KERFUklWRURf
U09VUkNFU19KQVZBU0NSSVBDT1JFR1RLX0RJUiAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBU
Q09SRV9ESVJ9L2phdmFzY3JpcHRjb3JlZ3RrKQogc2V0KERFUklWRURfU09VUkNFU19KQVZBU0NS
SVBDT1JFX0dMSUJfQVBJX0RJUiAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9
L2phdmFzY3JpcHRjb3JlZ3RrL2pzYykKIHNldChGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lUMkdU
S19ESVIgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfS93ZWJraXQyZ3RrKQorc2V0KEZPUldBUkRJ
TkdfSEVBREVSU19XRUJLSVQyR1RLX1ZFUlNJT05FRF9ESVIgJHtGT1JXQVJESU5HX0hFQURFUlNf
RElSfS93ZWJraXQyZ3RrLSR7V0VCS0lUR1RLX0FQSV9WRVJTSU9OfSkKIHNldChGT1JXQVJESU5H
X0hFQURFUlNfV0VCS0lUMkdUS19FWFRFTlNJT05fRElSICR7Rk9SV0FSRElOR19IRUFERVJTX0RJ
Un0vd2Via2l0Mmd0ay13ZWJleHRlbnNpb24pCiAKIHNldChKYXZhU2NyaXB0Q29yZV9QS0dDT05G
SUdfRklMRSAke0NNQUtFX0JJTkFSWV9ESVJ9L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qYXZhc2Ny
aXB0Y29yZWd0ay0ke1dFQktJVEdUS19BUElfVkVSU0lPTn0ucGMpCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDc3YWY4NjI0YTQ0Li4wZmRlZDQ2
MGYwNzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw1NiBAQAorMjAyMC0wNC0yNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUSzRdIE1ha2UgaXQgcG9zc2libGUgdG8gYnVp
bGQgd2l0aCBHVEs0IHdpdGhvdXQgZXJyb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA5NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyQ2VsbFJlbmRlcmVy
VmFyaWFudC5jOgorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyQ2VsbFJlbmRlcmVy
VmFyaWFudC5oOgorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyRG93bmxvYWRzQmFy
LmM6CisgICAgICAgICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJEb3dubG9hZHNCYXIuaDoKKyAg
ICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvQnJvd3Nlck1haW4uYzogQWRkZWQuCisgICAgICAgIChi
cm93c2VyX21haW4pOgorICAgICAgICAoYnJvd3Nlcl9tYWluX3F1aXQpOgorICAgICAgICAqIE1p
bmlCcm93c2VyL2d0ay9Ccm93c2VyTWFpbi5oOiBBZGRlZC4KKyAgICAgICAgKiBNaW5pQnJvd3Nl
ci9ndGsvQnJvd3NlclNlYXJjaEJhci5jOgorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93
c2VyU2VhcmNoQmFyLmg6CisgICAgICAgICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZXR0aW5n
c0RpYWxvZy5jOgorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyU2V0dGluZ3NEaWFs
b2cuaDoKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jOgorICAgICAgICAo
YnJvd3NlclRhYkNvbnN0cnVjdGVkKToKKyAgICAgICAgKGJyb3dzZXJfdGFiX3N0YXJ0X3NlYXJj
aCk6CisgICAgICAgIChicm93c2VyX3RhYl9zdG9wX3NlYXJjaCk6CisgICAgICAgIChicm93c2Vy
X3RhYl9lbnRlcl9mdWxsc2NyZWVuKToKKyAgICAgICAgKGJyb3dzZXJfdGFiX2xlYXZlX2Z1bGxz
Y3JlZW4pOgorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmg6CisgICAgICAg
ICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYzoKKyAgICAgICAgKHdlYlZpZXdVUklD
aGFuZ2VkKToKKyAgICAgICAgKHJlc2V0RW50cnlQcm9ncmVzcyk6CisgICAgICAgICh3ZWJWaWV3
TG9hZFByb2dyZXNzQ2hhbmdlZCk6CisgICAgICAgIChkb3dubG9hZFN0YXJ0ZWQpOgorICAgICAg
ICAoYnJvd3NlcldpbmRvd1VwZGF0ZU5hdmlnYXRpb25BY3Rpb25zKToKKyAgICAgICAgKHdlYlZp
ZXdSZWFkeVRvU2hvdyk6CisgICAgICAgIChicm93c2VyV2luZG93VXBkYXRlWm9vbUFjdGlvbnMp
OgorICAgICAgICAod2ViVmlld1pvb21MZXZlbENoYW5nZWQpOgorICAgICAgICAodXBkYXRlVXJp
RW50cnlJY29uKToKKyAgICAgICAgKHdlYlZpZXdJc0xvYWRpbmdDaGFuZ2VkKToKKyAgICAgICAg
KGJyb3dzZXJXaW5kb3dGaW5hbGl6ZSk6CisgICAgICAgIChicm93c2VyV2luZG93U2V0dXBFZGl0
b3JUb29sYmFyKToKKyAgICAgICAgKGJyb3dzZXJXaW5kb3dTd2l0Y2hUYWIpOgorICAgICAgICAo
YnJvd3Nlcl93aW5kb3dfaW5pdCk6CisgICAgICAgIChicm93c2VyX3dpbmRvd19jbGFzc19pbml0
KToKKyAgICAgICAgKGJyb3dzZXJfd2luZG93X25ldyk6CisgICAgICAgIChicm93c2VyX3dpbmRv
d19hcHBlbmRfdmlldyk6CisgICAgICAgIChicm93c2VyX3dpbmRvd19zZXRfYmFja2dyb3VuZF9j
b2xvcik6CisgICAgICAgIChicm93c2VyX3dpbmRvd19nZXRfb3JfY3JlYXRlX3dlYl92aWV3X2Zv
cl9hdXRvbWF0aW9uKToKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogTWluaUJyb3dzZXIvZ3RrL21haW4uYzoKKyAgICAgICAgKG1haW4pOgorICAg
ICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlci5weToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2dsaWIvUGxhdGZvcm1HVEsu
Y21ha2U6CisKIDIwMjAtMDQtMjMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4K
IAogICAgICAgICBzdHJlc3MvZW5zdXJlLWNyYXNoLmpzIHNob3VsZG4ndCBzcGV3IHN0dWZmIG9u
dG8gbXkgc2NyZWVuCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlckNl
bGxSZW5kZXJlclZhcmlhbnQuYyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyQ2VsbFJl
bmRlcmVyVmFyaWFudC5jCmluZGV4IGNiMmNhYTM1YjMxMS4uNmY4YTIzY2Y3NjU2IDEwMDY0NAot
LS0gYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlckNlbGxSZW5kZXJlclZhcmlhbnQuYwor
KysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlckNlbGxSZW5kZXJlclZhcmlhbnQuYwpA
QCAtMjcsNiArMjcsOCBAQAogI2luY2x1ZGUgIkJyb3dzZXJNYXJzaGFsLmgiCiAjaW5jbHVkZSA8
ZXJybm8uaD4KIAorI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKKwogZW51bSB7CiAg
ICAgUFJPUF8wLAogCkBAIC0zNDQsMyArMzQ2LDQgQEAgR3RrQ2VsbFJlbmRlcmVyICpicm93c2Vy
X2NlbGxfcmVuZGVyZXJfdmFyaWFudF9uZXcodm9pZCkKICAgICByZXR1cm4gR1RLX0NFTExfUkVO
REVSRVIoZ19vYmplY3RfbmV3KEJST1dTRVJfVFlQRV9DRUxMX1JFTkRFUkVSX1ZBUklBTlQsIE5V
TEwpKTsKIH0KIAorI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJv
d3NlckNlbGxSZW5kZXJlclZhcmlhbnQuaCBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2Vy
Q2VsbFJlbmRlcmVyVmFyaWFudC5oCmluZGV4IDRmY2UzYmI2MDZhNy4uYTc5M2ExYTc2MDBkIDEw
MDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlckNlbGxSZW5kZXJlclZhcmlh
bnQuaAorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlckNlbGxSZW5kZXJlclZhcmlh
bnQuaApAQCAtMjgsNiArMjgsOCBAQAogCiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogCisjaWYgIUdU
S19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQorCiBHX0JFR0lOX0RFQ0xTCiAKICNkZWZpbmUgQlJP
V1NFUl9UWVBFX0NFTExfUkVOREVSRVJfVkFSSUFOVCAgICAgICAgICAgIChicm93c2VyX2NlbGxf
cmVuZGVyZXJfdmFyaWFudF9nZXRfdHlwZSgpKQpAQCAtNDcsMyArNDksNSBAQCBHdGtDZWxsUmVu
ZGVyZXIqIGJyb3dzZXJfY2VsbF9yZW5kZXJlcl92YXJpYW50X25ldyh2b2lkKTsKIEdfRU5EX0RF
Q0xTCiAKICNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0
ay9Ccm93c2VyRG93bmxvYWRzQmFyLmMgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlckRv
d25sb2Fkc0Jhci5jCmluZGV4IGIwZWMzY2UxNDcwZi4uZTc4ODRmNWY1NmM4IDEwMDY0NAotLS0g
YS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlckRvd25sb2Fkc0Jhci5jCisrKyBiL1Rvb2xz
L01pbmlCcm93c2VyL2d0ay9Ccm93c2VyRG93bmxvYWRzQmFyLmMKQEAgLTI2LDYgKzI2LDggQEAK
ICNpbmNsdWRlICJjbWFrZWNvbmZpZy5oIgogI2luY2x1ZGUgIkJyb3dzZXJEb3dubG9hZHNCYXIu
aCIKIAorI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKKwogI2luY2x1ZGUgPGdsaWIv
Z2kxOG4uaD4KIAogI2RlZmluZSBCUk9XU0VSX1RZUEVfRE9XTkxPQUQgKGJyb3dzZXJfZG93bmxv
YWRfZ2V0X3R5cGUoKSkKQEAgLTI3NSwzICsyNzcsNSBAQCB2b2lkIGJyb3dzZXJfZG93bmxvYWRz
X2Jhcl9hZGRfZG93bmxvYWQoQnJvd3NlckRvd25sb2Fkc0JhciAqZG93bmxvYWRzQmFyLCBXZWJL
aQogICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9YKGNvbnRlbnRCb3gpLCBicm93c2VyRG93
bmxvYWQsIEZBTFNFLCBUUlVFLCAwKTsKICAgICBndGtfd2lkZ2V0X3Nob3coYnJvd3NlckRvd25s
b2FkKTsKIH0KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJv
d3NlckRvd25sb2Fkc0Jhci5oIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJEb3dubG9h
ZHNCYXIuaAppbmRleCAxNzA0YTVkMDE0NDYuLmIzZDNiNjk5OTA3MSAxMDA2NDQKLS0tIGEvVG9v
bHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJEb3dubG9hZHNCYXIuaAorKysgYi9Ub29scy9NaW5p
QnJvd3Nlci9ndGsvQnJvd3NlckRvd25sb2Fkc0Jhci5oCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5j
bHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0Mi5oPgogCisjaWYgIUdU
S19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQorCiBHX0JFR0lOX0RFQ0xTCiAKICNkZWZpbmUgQlJP
V1NFUl9UWVBFX0RPV05MT0FEU19CQVIgICAgICAgICAgICAoYnJvd3Nlcl9kb3dubG9hZHNfYmFy
X2dldF90eXBlKCkpCkBAIC00OSwzICs1MSw1IEBAIHZvaWQgYnJvd3Nlcl9kb3dubG9hZHNfYmFy
X2FkZF9kb3dubG9hZChCcm93c2VyRG93bmxvYWRzQmFyICosIFdlYktpdERvd25sb2FkICopCiBH
X0VORF9ERUNMUwogCiAjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJv
d3Nlci9ndGsvQnJvd3Nlck1haW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyTWFp
bi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjU4ZjEzMDRlZDcy
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJNYWluLmMK
QEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiQnJvd3Nlck1haW4uaCIKKworI2lmIEdUS19DSEVDS19WRVJT
SU9OKDMsIDk4LCAwKQorc3RhdGljIEdNYWluTG9vcCAqbWFpbkxvb3A7CisjZW5kaWYKKwordm9p
ZCBicm93c2VyX21haW4oKQoreworI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQorICAg
IG1haW5Mb29wID0gZ19tYWluX2xvb3BfbmV3KE5VTEwsIFRSVUUpOworICAgIGdfbWFpbl9sb29w
X3J1bihtYWluTG9vcCk7CisjZWxzZQorICAgIGd0a19tYWluKCk7CisjZW5kaWYKK30KKwordm9p
ZCBicm93c2VyX21haW5fcXVpdCgpCit7CisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDAp
CisgICAgZ19tYWluX2xvb3BfcXVpdChtYWluTG9vcCk7CisgICAgZ19tYWluX2xvb3BfdW5yZWYo
bWFpbkxvb3ApOworI2Vsc2UKKyAgICBndGtfbWFpbl9xdWl0KCk7CisjZW5kaWYKK30KZGlmZiAt
LWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyTWFpbi5oIGIvVG9vbHMvTWluaUJy
b3dzZXIvZ3RrL0Jyb3dzZXJNYWluLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi4yMmNkODAzN2EwZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9NaW5pQnJvd3Nl
ci9ndGsvQnJvd3Nlck1haW4uaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQnJvd3Nlck1haW5faAorI2Rl
ZmluZSBCcm93c2VyTWFpbl9oCisKKyNpbmNsdWRlIDxndGsvZ3RrLmg+CisKK0dfQkVHSU5fREVD
TFMKKwordm9pZCBicm93c2VyX21haW4odm9pZCk7Cit2b2lkIGJyb3dzZXJfbWFpbl9xdWl0KHZv
aWQpOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogQnJvd3Nlck1haW5faCAqLwpkaWZmIC0t
Z2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZWFyY2hCYXIuYyBiL1Rvb2xzL01p
bmlCcm93c2VyL2d0ay9Ccm93c2VyU2VhcmNoQmFyLmMKaW5kZXggMjI5MzBjNGM1ZWZiLi4zNTEy
NDNjYmQ1YTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyU2VhcmNo
QmFyLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZWFyY2hCYXIuYwpAQCAt
MjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNtYWtlY29uZmlnLmgiCiAjaW5jbHVkZSAiQnJvd3Nl
clNlYXJjaEJhci5oIgogCisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQorCiBzdGF0
aWMgY29uc3QgY2hhciAqc2VhcmNoRW50cnlGYWlsZWRTdHlsZSA9ICJHdGtFbnRyeSNzZWFyY2hF
bnRyeSB7YmFja2dyb3VuZC1jb2xvcjogI2ZmNjY2Njt9IjsKIAogc3RydWN0IF9Ccm93c2VyU2Vh
cmNoQmFyIHsKQEAgLTI5MSwzICsyOTMsNSBAQCB2b2lkIGJyb3dzZXJfc2VhcmNoX2Jhcl9jbG9z
ZShCcm93c2VyU2VhcmNoQmFyICpzZWFyY2hCYXIpCiAgICAgV2ViS2l0RmluZENvbnRyb2xsZXIg
KmNvbnRyb2xsZXIgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2ZpbmRfY29udHJvbGxlcihzZWFyY2hC
YXItPndlYlZpZXcpOwogICAgIHdlYmtpdF9maW5kX2NvbnRyb2xsZXJfc2VhcmNoX2ZpbmlzaChj
b250cm9sbGVyKTsKIH0KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9n
dGsvQnJvd3NlclNlYXJjaEJhci5oIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZWFy
Y2hCYXIuaAppbmRleCAxZGU4ZDhhYmEyYTEuLjliYWEyMmU3ODgxMSAxMDA2NDQKLS0tIGEvVG9v
bHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZWFyY2hCYXIuaAorKysgYi9Ub29scy9NaW5pQnJv
d3Nlci9ndGsvQnJvd3NlclNlYXJjaEJhci5oCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSA8
Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0Mi5oPgogCisjaWYgIUdUS19DSEVD
S19WRVJTSU9OKDMsIDk4LCAwKQorCiBHX0JFR0lOX0RFQ0xTCiAKICNkZWZpbmUgQlJPV1NFUl9U
WVBFX1NFQVJDSF9CQVIgICAgICAgICAgICAoYnJvd3Nlcl9zZWFyY2hfYmFyX2dldF90eXBlKCkp
CkBAIC01NSwzICs1Nyw1IEBAIHZvaWQgYnJvd3Nlcl9zZWFyY2hfYmFyX2Nsb3NlKEJyb3dzZXJT
ZWFyY2hCYXIgKik7CiBHX0VORF9ERUNMUwogCiAjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclNldHRpbmdzRGlhbG9nLmMgYi9Ub29scy9N
aW5pQnJvd3Nlci9ndGsvQnJvd3NlclNldHRpbmdzRGlhbG9nLmMKaW5kZXggZjkzNTBmOGVjNjIy
Li4xNzhmMDUzOWQxYjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2Vy
U2V0dGluZ3NEaWFsb2cuYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclNldHRp
bmdzRGlhbG9nLmMKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJCcm93c2VyU2V0dGluZ3NE
aWFsb2cuaCIKICNpbmNsdWRlICJCcm93c2VyQ2VsbFJlbmRlcmVyVmFyaWFudC5oIgogCisjaWYg
IUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQorCiBlbnVtIHsKICAgICBQUk9QXzAsCiAKQEAg
LTIzNiwzICsyMzgsNCBAQCBHdGtXaWRnZXQgKmJyb3dzZXJfc2V0dGluZ3NfZGlhbG9nX25ldyhX
ZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MpCiAgICAgcmV0dXJuIEdUS19XSURHRVQoZ19vYmplY3Rf
bmV3KEJST1dTRVJfVFlQRV9TRVRUSU5HU19ESUFMT0csICJzZXR0aW5ncyIsIHNldHRpbmdzLCBO
VUxMKSk7CiB9CiAKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jy
b3dzZXJTZXR0aW5nc0RpYWxvZy5oIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZXR0
aW5nc0RpYWxvZy5oCmluZGV4IGYzZGJjZDA0MmMwNC4uMmMzMzk3N2MwZjNkIDEwMDY0NAotLS0g
YS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclNldHRpbmdzRGlhbG9nLmgKKysrIGIvVG9v
bHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZXR0aW5nc0RpYWxvZy5oCkBAIC0yOSw2ICsyOSw4
IEBACiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0Mi5oPgog
CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQorCiBHX0JFR0lOX0RFQ0xTCiAKICNk
ZWZpbmUgQlJPV1NFUl9UWVBFX1NFVFRJTkdTX0RJQUxPRyAgICAgICAgICAgIChicm93c2VyX3Nl
dHRpbmdzX2RpYWxvZ19nZXRfdHlwZSgpKQpAQCAtNDgsMyArNTAsNSBAQCBHdGtXaWRnZXQqIGJy
b3dzZXJfc2V0dGluZ3NfZGlhbG9nX25ldyhXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MpOwogR19F
TkRfREVDTFMKIAogI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dz
ZXIvZ3RrL0Jyb3dzZXJUYWIuYyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmMK
aW5kZXggOWU5OTc4ZWZkM2Q4Li42YzE3OWM0YzhmYTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlC
cm93c2VyL2d0ay9Ccm93c2VyVGFiLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dz
ZXJUYWIuYwpAQCAtNDIsNyArNDIsOSBAQCBzdHJ1Y3QgX0Jyb3dzZXJUYWIgewogICAgIEd0a0Jv
eCBwYXJlbnQ7CiAKICAgICBXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3OworI2lmICFHVEtfQ0hFQ0tf
VkVSU0lPTigzLCA5OCwgMCkKICAgICBCcm93c2VyU2VhcmNoQmFyICpzZWFyY2hCYXI7CisjZW5k
aWYKICAgICBHdGtXaWRnZXQgKnN0YXR1c0xhYmVsOwogICAgIGdib29sZWFuIHdhc1NlYXJjaGlu
Z1doZW5FbnRlcmVkRnVsbHNjcmVlbjsKICAgICBnYm9vbGVhbiBpbnNwZWN0b3JJc1Zpc2libGU7
CkBAIC05NSw3ICs5Nyw3IEBAIHN0YXRpYyBnY2hhciAqZ2V0V2ViVmlld09yaWdpbihXZWJLaXRX
ZWJWaWV3ICp3ZWJWaWV3KQogCiAgICAgcmV0dXJuIG9yaWdpblN0cjsKIH0KLQorI2lmICFHVEtf
Q0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKIHN0YXRpYyB2b2lkIHRpdGxlQ2hhbmdlZChXZWJLaXRX
ZWJWaWV3ICp3ZWJWaWV3LCBHUGFyYW1TcGVjICpwc3BlYywgQnJvd3NlclRhYiAqdGFiKQogewog
ICAgIGNvbnN0IGNoYXIgKnRpdGxlID0gd2Via2l0X3dlYl92aWV3X2dldF90aXRsZSh3ZWJWaWV3
KTsKQEAgLTM0Myw2ICszNDUsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gcnVuQ29sb3JDaG9vc2VyQ2Fs
bGJhY2soV2ViS2l0V2ViVmlldyAqd2ViVmlldywgV2ViS2l0Q29sb3JDaG9vcwogCiAgICAgcmV0
dXJuIFRSVUU7CiB9CisjZW5kaWYKIAogc3RhdGljIGdib29sZWFuIGluc3BlY3Rvck9wZW5lZElu
V2luZG93KFdlYktpdFdlYkluc3BlY3RvciAqaW5zcGVjdG9yLCBCcm93c2VyVGFiICp0YWIpCiB7
CkBAIC0zOTIsNiArMzk1LDcgQEAgc3RhdGljIHZvaWQgYnJvd3NlclRhYkNvbnN0cnVjdGVkKEdP
YmplY3QgKmdPYmplY3QpCiAKICAgICBHX09CSkVDVF9DTEFTUyhicm93c2VyX3RhYl9wYXJlbnRf
Y2xhc3MpLT5jb25zdHJ1Y3RlZChnT2JqZWN0KTsKIAorI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigz
LCA5OCwgMCkKICAgICB0YWItPnNlYXJjaEJhciA9IEJST1dTRVJfU0VBUkNIX0JBUihicm93c2Vy
X3NlYXJjaF9iYXJfbmV3KHRhYi0+d2ViVmlldykpOwogICAgIGd0a19ib3hfcGFja19zdGFydChH
VEtfQk9YKHRhYiksIEdUS19XSURHRVQodGFiLT5zZWFyY2hCYXIpLCBGQUxTRSwgRkFMU0UsIDAp
OwogCkBAIC00MjIsNyArNDI2LDExIEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJUYWJDb25zdHJ1Y3Rl
ZChHT2JqZWN0ICpnT2JqZWN0KQogCiAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5F
UihvdmVybGF5KSwgR1RLX1dJREdFVCh0YWItPndlYlZpZXcpKTsKICAgICBndGtfd2lkZ2V0X3No
b3coR1RLX1dJREdFVCh0YWItPndlYlZpZXcpKTsKKyNlbHNlCisgICAgZ3RrX2NvbnRhaW5lcl9h
ZGQoR1RLX0NPTlRBSU5FUih0YWIpLCBHVEtfV0lER0VUKHRhYi0+d2ViVmlldykpOworI2VuZGlm
CiAKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAgdGFiLT50aXRsZUJveCA9
IGd0a19ib3hfbmV3KEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMLCA0KTsKIAogICAgIEd0a1dp
ZGdldCAqaGJveCA9IGd0a19ib3hfbmV3KEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMLCA2KTsK
QEAgLTQ2MCw2ICs0NjgsNyBAQCBzdGF0aWMgdm9pZCBicm93c2VyVGFiQ29uc3RydWN0ZWQoR09i
amVjdCAqZ09iamVjdCkKICAgICBnX3NpZ25hbF9jb25uZWN0KHRhYi0+d2ViVmlldywgImxvYWQt
ZmFpbGVkLXdpdGgtdGxzLWVycm9ycyIsIEdfQ0FMTEJBQ0sobG9hZEZhaWxlZFdpdGhUTFNlcnJv
cnMpLCB0YWIpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QodGFiLT53ZWJWaWV3LCAicGVybWlzc2lv
bi1yZXF1ZXN0IiwgR19DQUxMQkFDSyhkZWNpZGVQZXJtaXNzaW9uUmVxdWVzdCksIHRhYik7CiAg
ICAgZ19zaWduYWxfY29ubmVjdCh0YWItPndlYlZpZXcsICJydW4tY29sb3ItY2hvb3NlciIsIEdf
Q0FMTEJBQ0socnVuQ29sb3JDaG9vc2VyQ2FsbGJhY2spLCB0YWIpOworI2VuZGlmCiAKICAgICBX
ZWJLaXRXZWJJbnNwZWN0b3IgKmluc3BlY3RvciA9IHdlYmtpdF93ZWJfdmlld19nZXRfaW5zcGVj
dG9yKHRhYi0+d2ViVmlldyk7CiAgICAgZ19zaWduYWxfY29ubmVjdChpbnNwZWN0b3IsICJvcGVu
LXdpbmRvdyIsIEdfQ0FMTEJBQ0soaW5zcGVjdG9yT3BlbmVkSW5XaW5kb3cpLCB0YWIpOwpAQCAt
NTYyLDE5ICs1NzEsMjIgQEAgdm9pZCBicm93c2VyX3RhYl90b2dnbGVfaW5zcGVjdG9yKEJyb3dz
ZXJUYWIgKnRhYikKIHZvaWQgYnJvd3Nlcl90YWJfc3RhcnRfc2VhcmNoKEJyb3dzZXJUYWIgKnRh
YikKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKEJST1dTRVJfSVNfVEFCKHRhYikpOwotCisjaWYg
IUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAgIGlmICghZ3RrX3dpZGdldF9nZXRfdmlz
aWJsZShHVEtfV0lER0VUKHRhYi0+c2VhcmNoQmFyKSkpCiAgICAgICAgIGJyb3dzZXJfc2VhcmNo
X2Jhcl9vcGVuKHRhYi0+c2VhcmNoQmFyKTsKKyNlbmRpZgogfQogCiB2b2lkIGJyb3dzZXJfdGFi
X3N0b3Bfc2VhcmNoKEJyb3dzZXJUYWIgKnRhYikKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKEJS
T1dTRVJfSVNfVEFCKHRhYikpOwotCisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQog
ICAgIGlmIChndGtfd2lkZ2V0X2dldF92aXNpYmxlKEdUS19XSURHRVQodGFiLT5zZWFyY2hCYXIp
KSkKICAgICAgICAgYnJvd3Nlcl9zZWFyY2hfYmFyX2Nsb3NlKHRhYi0+c2VhcmNoQmFyKTsKKyNl
bmRpZgogfQogCisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogdm9pZCBicm93c2Vy
X3RhYl9hZGRfYWNjZWxlcmF0b3JzKEJyb3dzZXJUYWIgKnRhYiwgR3RrQWNjZWxHcm91cCAqYWNj
ZWxHcm91cCkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKEJST1dTRVJfSVNfVEFCKHRhYikpOwpA
QCAtNTgyLDYgKzU5NCw3IEBAIHZvaWQgYnJvd3Nlcl90YWJfYWRkX2FjY2VsZXJhdG9ycyhCcm93
c2VyVGFiICp0YWIsIEd0a0FjY2VsR3JvdXAgKmFjY2VsR3JvdXApCiAKICAgICBicm93c2VyX3Nl
YXJjaF9iYXJfYWRkX2FjY2VsZXJhdG9ycyh0YWItPnNlYXJjaEJhciwgYWNjZWxHcm91cCk7CiB9
CisjZW5kaWYKIAogc3RhdGljIGdib29sZWFuIGZ1bGxTY3JlZW5NZXNzYWdlVGltZW91dENhbGxi
YWNrKEJyb3dzZXJUYWIgKnRhYikKIHsKQEAgLTYwNyw4ICs2MjAsMTAgQEAgdm9pZCBicm93c2Vy
X3RhYl9lbnRlcl9mdWxsc2NyZWVuKEJyb3dzZXJUYWIgKnRhYikKICAgICB0YWItPmZ1bGxTY3Jl
ZW5NZXNzYWdlTGFiZWxJZCA9IGdfdGltZW91dF9hZGRfc2Vjb25kcygyLCAoR1NvdXJjZUZ1bmMp
ZnVsbFNjcmVlbk1lc3NhZ2VUaW1lb3V0Q2FsbGJhY2ssIHRhYik7CiAgICAgZ19zb3VyY2Vfc2V0
X25hbWVfYnlfaWQodGFiLT5mdWxsU2NyZWVuTWVzc2FnZUxhYmVsSWQsICJbV2ViS2l0XSBmdWxs
U2NyZWVuTWVzc2FnZVRpbWVvdXRDYWxsYmFjayIpOwogCisjaWYgIUdUS19DSEVDS19WRVJTSU9O
KDMsIDk4LCAwKQogICAgIHRhYi0+d2FzU2VhcmNoaW5nV2hlbkVudGVyZWRGdWxsc2NyZWVuID0g
Z3RrX3dpZGdldF9nZXRfdmlzaWJsZShHVEtfV0lER0VUKHRhYi0+c2VhcmNoQmFyKSk7CiAgICAg
YnJvd3Nlcl90YWJfc3RvcF9zZWFyY2godGFiKTsKKyNlbmRpZgogfQogCiB2b2lkIGJyb3dzZXJf
dGFiX2xlYXZlX2Z1bGxzY3JlZW4oQnJvd3NlclRhYiAqdGFiKQpAQCAtNjIyLDYgKzYzNyw3IEBA
IHZvaWQgYnJvd3Nlcl90YWJfbGVhdmVfZnVsbHNjcmVlbihCcm93c2VyVGFiICp0YWIpCiAKICAg
ICBndGtfd2lkZ2V0X2hpZGUodGFiLT5mdWxsU2NyZWVuTWVzc2FnZUxhYmVsKTsKIAorI2lmICFH
VEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKICAgICBpZiAodGFiLT53YXNTZWFyY2hpbmdXaGVu
RW50ZXJlZEZ1bGxzY3JlZW4pIHsKICAgICAgICAgLyogT3BlbmluZyB0aGUgc2VhcmNoIGJhciBz
dGVhbHMgdGhlIGZvY3VzLiBVc3VhbGx5LCB3ZSB3YW50CiAgICAgICAgICAqIHRoaXMgYnV0IG5v
dCB3aGVuIGNvbWluZyBiYWNrIGZyb20gZnVsbHNjcmVlbi4KQEAgLTYzMSw2ICs2NDcsNyBAQCB2
b2lkIGJyb3dzZXJfdGFiX2xlYXZlX2Z1bGxzY3JlZW4oQnJvd3NlclRhYiAqdGFiKQogICAgICAg
ICBicm93c2VyX3RhYl9zdGFydF9zZWFyY2godGFiKTsKICAgICAgICAgZ3RrX3dpbmRvd19zZXRf
Zm9jdXMod2luZG93LCBmb2N1c1dpZGdldCk7CiAgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgYnJv
d3Nlcl90YWJfc2V0X2JhY2tncm91bmRfY29sb3IoQnJvd3NlclRhYiAqdGFiLCBHZGtSR0JBICpy
Z2JhKQpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuaCBiL1Rv
b2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmgKaW5kZXggZDQ1NTczNzQxNWM1Li5jNTBh
ODA5N2UwMjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmgK
KysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuaApAQCAtNTEsNyArNTEsOSBA
QCB2b2lkIGJyb3dzZXJfdGFiX3NldF9zdGF0dXNfdGV4dChCcm93c2VyVGFiKiwgY29uc3QgY2hh
ciogdGV4dCk7CiB2b2lkIGJyb3dzZXJfdGFiX3RvZ2dsZV9pbnNwZWN0b3IoQnJvd3NlclRhYiop
Owogdm9pZCBicm93c2VyX3RhYl9zdGFydF9zZWFyY2goQnJvd3NlclRhYiopOwogdm9pZCBicm93
c2VyX3RhYl9zdG9wX3NlYXJjaChCcm93c2VyVGFiKik7CisjaWYgIUdUS19DSEVDS19WRVJTSU9O
KDMsIDk4LCAwKQogdm9pZCBicm93c2VyX3RhYl9hZGRfYWNjZWxlcmF0b3JzKEJyb3dzZXJUYWIq
LCBHdGtBY2NlbEdyb3VwKik7CisjZW5kaWYKIHZvaWQgYnJvd3Nlcl90YWJfZW50ZXJfZnVsbHNj
cmVlbihCcm93c2VyVGFiKik7CiB2b2lkIGJyb3dzZXJfdGFiX2xlYXZlX2Z1bGxzY3JlZW4oQnJv
d3NlclRhYiopOwogdm9pZCBicm93c2VyX3RhYl9zZXRfYmFja2dyb3VuZF9jb2xvcihCcm93c2Vy
VGFiKiwgR2RrUkdCQSopOwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dz
ZXJXaW5kb3cuYyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMKaW5kZXgg
MjFjM2MzZDM2YjhiLi41M2M1NjRmNDU0M2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2Vy
L2d0ay9Ccm93c2VyV2luZG93LmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJX
aW5kb3cuYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkJyb3dzZXJXaW5kb3cuaCIKIAog
I2luY2x1ZGUgIkJyb3dzZXJEb3dubG9hZHNCYXIuaCIKKyNpbmNsdWRlICJCcm93c2VyTWFpbi5o
IgogI2luY2x1ZGUgIkJyb3dzZXJTZWFyY2hCYXIuaCIKICNpbmNsdWRlICJCcm93c2VyU2V0dGlu
Z3NEaWFsb2cuaCIKICNpbmNsdWRlICJCcm93c2VyVGFiLmgiCkBAIC00Miw3ICs0Myw5IEBAIHN0
cnVjdCBfQnJvd3NlcldpbmRvdyB7CiAKICAgICBXZWJLaXRXZWJDb250ZXh0ICp3ZWJDb250ZXh0
OwogCisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAgIEd0a0FjY2VsR3JvdXAg
KmFjY2VsR3JvdXA7CisjZW5kaWYKICAgICBHdGtXaWRnZXQgKm1haW5Cb3g7CiAgICAgR3RrV2lk
Z2V0ICp0b29sYmFyOwogICAgIEd0a1dpZGdldCAqdXJpRW50cnk7CkBAIC0xMDAsNiArMTAzLDcg
QEAgc3RhdGljIHZvaWQgcmVzZXRTdGF0dXNUZXh0KEd0a1dpZGdldCAqd2lkZ2V0LCBCcm93c2Vy
V2luZG93ICp3aW5kb3cpCiAgICAgYnJvd3NlcldpbmRvd1NldFN0YXR1c1RleHQod2luZG93LCBO
VUxMKTsKIH0KIAorI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKIHN0YXRpYyB2b2lk
IGFjdGl2YXRlVXJpRW50cnlDYWxsYmFjayhCcm93c2VyV2luZG93ICp3aW5kb3cpCiB7CiAgICAg
YnJvd3Nlcl93aW5kb3dfbG9hZF91cmkod2luZG93LCBndGtfZW50cnlfZ2V0X3RleHQoR1RLX0VO
VFJZKHdpbmRvdy0+dXJpRW50cnkpKSk7CkBAIC0xMzksMTUgKzE0MywxOCBAQCBzdGF0aWMgdm9p
ZCBzZXR0aW5nc0NhbGxiYWNrKEJyb3dzZXJXaW5kb3cgKndpbmRvdykKICAgICBnX29iamVjdF9h
ZGRfd2Vha19wb2ludGVyKEdfT0JKRUNUKHdpbmRvdy0+c2V0dGluZ3NEaWFsb2cpLCAoZ3BvaW50
ZXIgKikmd2luZG93LT5zZXR0aW5nc0RpYWxvZyk7CiAgICAgZ3RrX3dpZGdldF9zaG93KHdpbmRv
dy0+c2V0dGluZ3NEaWFsb2cpOwogfQorI2VuZGlmCiAKIHN0YXRpYyB2b2lkIHdlYlZpZXdVUklD
aGFuZ2VkKFdlYktpdFdlYlZpZXcgKndlYlZpZXcsIEdQYXJhbVNwZWMgKnBzcGVjLCBCcm93c2Vy
V2luZG93ICp3aW5kb3cpCiB7CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAg
IGNoYXIgKmV4dGVybmFsVVJJID0gZ2V0RXh0ZXJuYWxVUkkod2Via2l0X3dlYl92aWV3X2dldF91
cmkod2ViVmlldykpOwogICAgIGlmIChleHRlcm5hbFVSSSkgewogICAgICAgICBndGtfZW50cnlf
c2V0X3RleHQoR1RLX0VOVFJZKHdpbmRvdy0+dXJpRW50cnkpLCBleHRlcm5hbFVSSSk7CiAgICAg
ICAgIGdfZnJlZShleHRlcm5hbFVSSSk7CiAgICAgfSBlbHNlCiAgICAgICAgIGd0a19lbnRyeV9z
ZXRfdGV4dChHVEtfRU5UUlkod2luZG93LT51cmlFbnRyeSksICIiKTsKKyNlbmRpZgogfQogCiBz
dGF0aWMgdm9pZCB3ZWJWaWV3VGl0bGVDaGFuZ2VkKFdlYktpdFdlYlZpZXcgKndlYlZpZXcsIEdQ
YXJhbVNwZWMgKnBzcGVjLCBCcm93c2VyV2luZG93ICp3aW5kb3cpCkBAIC0xNjYsNyArMTczLDkg
QEAgc3RhdGljIHZvaWQgd2ViVmlld1RpdGxlQ2hhbmdlZChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3
LCBHUGFyYW1TcGVjICpwc3BlYywgQnJvd3MKIAogc3RhdGljIGdib29sZWFuIHJlc2V0RW50cnlQ
cm9ncmVzcyhCcm93c2VyV2luZG93ICp3aW5kb3cpCiB7CisjaWYgIUdUS19DSEVDS19WRVJTSU9O
KDMsIDk4LCAwKQogICAgIGd0a19lbnRyeV9zZXRfcHJvZ3Jlc3NfZnJhY3Rpb24oR1RLX0VOVFJZ
KHdpbmRvdy0+dXJpRW50cnkpLCAwKTsKKyNlbmRpZgogICAgIHdpbmRvdy0+cmVzZXRFbnRyeVBy
b2dyZXNzVGltZW91dElkID0gMDsKICAgICByZXR1cm4gRkFMU0U7CiB9CkBAIC0xNzQsNyArMTgz
LDkgQEAgc3RhdGljIGdib29sZWFuIHJlc2V0RW50cnlQcm9ncmVzcyhCcm93c2VyV2luZG93ICp3
aW5kb3cpCiBzdGF0aWMgdm9pZCB3ZWJWaWV3TG9hZFByb2dyZXNzQ2hhbmdlZChXZWJLaXRXZWJW
aWV3ICp3ZWJWaWV3LCBHUGFyYW1TcGVjICpwc3BlYywgQnJvd3NlcldpbmRvdyAqd2luZG93KQog
ewogICAgIGdkb3VibGUgcHJvZ3Jlc3MgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2VzdGltYXRlZF9s
b2FkX3Byb2dyZXNzKHdlYlZpZXcpOworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkK
ICAgICBndGtfZW50cnlfc2V0X3Byb2dyZXNzX2ZyYWN0aW9uKEdUS19FTlRSWSh3aW5kb3ctPnVy
aUVudHJ5KSwgcHJvZ3Jlc3MpOworI2VuZGlmCiAgICAgaWYgKHByb2dyZXNzID09IDEuMCkgewog
ICAgICAgICB3aW5kb3ctPnJlc2V0RW50cnlQcm9ncmVzc1RpbWVvdXRJZCA9IGdfdGltZW91dF9h
ZGQoNTAwLCAoR1NvdXJjZUZ1bmMpcmVzZXRFbnRyeVByb2dyZXNzLCB3aW5kb3cpOwogICAgICAg
ICBnX3NvdXJjZV9zZXRfbmFtZV9ieV9pZCh3aW5kb3ctPnJlc2V0RW50cnlQcm9ncmVzc1RpbWVv
dXRJZCwgIltXZWJLaXRdIHJlc2V0RW50cnlQcm9ncmVzcyIpOwpAQCAtMTg2LDYgKzE5Nyw3IEBA
IHN0YXRpYyB2b2lkIHdlYlZpZXdMb2FkUHJvZ3Jlc3NDaGFuZ2VkKFdlYktpdFdlYlZpZXcgKndl
YlZpZXcsIEdQYXJhbVNwZWMgKnBzcGVjCiAKIHN0YXRpYyB2b2lkIGRvd25sb2FkU3RhcnRlZChX
ZWJLaXRXZWJDb250ZXh0ICp3ZWJDb250ZXh0LCBXZWJLaXREb3dubG9hZCAqZG93bmxvYWQsIEJy
b3dzZXJXaW5kb3cgKndpbmRvdykKIHsKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDAp
CiAgICAgaWYgKCF3aW5kb3ctPmRvd25sb2Fkc0JhcikgewogICAgICAgICB3aW5kb3ctPmRvd25s
b2Fkc0JhciA9IGJyb3dzZXJfZG93bmxvYWRzX2Jhcl9uZXcoKTsKICAgICAgICAgZ3RrX2JveF9w
YWNrX3N0YXJ0KEdUS19CT1god2luZG93LT5tYWluQm94KSwgd2luZG93LT5kb3dubG9hZHNCYXIs
IEZBTFNFLCBGQUxTRSwgMCk7CkBAIC0xOTQsOCArMjA2LDEwIEBAIHN0YXRpYyB2b2lkIGRvd25s
b2FkU3RhcnRlZChXZWJLaXRXZWJDb250ZXh0ICp3ZWJDb250ZXh0LCBXZWJLaXREb3dubG9hZCAq
ZG93bmxvCiAgICAgICAgIGd0a193aWRnZXRfc2hvdyh3aW5kb3ctPmRvd25sb2Fkc0Jhcik7CiAg
ICAgfQogICAgIGJyb3dzZXJfZG93bmxvYWRzX2Jhcl9hZGRfZG93bmxvYWQoQlJPV1NFUl9ET1dO
TE9BRFNfQkFSKHdpbmRvdy0+ZG93bmxvYWRzQmFyKSwgZG93bmxvYWQpOworI2VuZGlmCiB9CiAK
KyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiBzdGF0aWMgdm9pZCBicm93c2VyV2lu
ZG93SGlzdG9yeUl0ZW1TZWxlY3RlZChCcm93c2VyV2luZG93ICp3aW5kb3csIEd0a01lbnVJdGVt
ICppdGVtKQogewogICAgIEd0a0FjdGlvbiAqYWN0aW9uID0gZ3RrX2FjdGl2YXRhYmxlX2dldF9y
ZWxhdGVkX2FjdGlvbihHVEtfQUNUSVZBVEFCTEUoaXRlbSkpOwpAQCAtMjQwLDkgKzI1NCwxMSBA
QCBzdGF0aWMgR3RrV2lkZ2V0ICpicm93c2VyV2luZG93Q3JlYXRlQmFja0ZvcndhcmRNZW51KEJy
b3dzZXJXaW5kb3cgKndpbmRvdywgR0xpcwogCiAgICAgcmV0dXJuIG1lbnU7CiB9CisjZW5kaWYK
IAogc3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd1VwZGF0ZU5hdmlnYXRpb25BY3Rpb25zKEJyb3dz
ZXJXaW5kb3cgKndpbmRvdywgV2ViS2l0QmFja0ZvcndhcmRMaXN0ICpiYWNrRm9yd2FyZGxpc3Qp
CiB7CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAgIFdlYktpdFdlYlZpZXcg
KndlYlZpZXcgPSBicm93c2VyX3RhYl9nZXRfd2ViX3ZpZXcod2luZG93LT5hY3RpdmVUYWIpOwog
ICAgIGd0a193aWRnZXRfc2V0X3NlbnNpdGl2ZSh3aW5kb3ctPmJhY2tJdGVtLCB3ZWJraXRfd2Vi
X3ZpZXdfY2FuX2dvX2JhY2sod2ViVmlldykpOwogICAgIGd0a193aWRnZXRfc2V0X3NlbnNpdGl2
ZSh3aW5kb3ctPmZvcndhcmRJdGVtLCB3ZWJraXRfd2ViX3ZpZXdfY2FuX2dvX2ZvcndhcmQod2Vi
VmlldykpOwpAQCAtMjU2LDYgKzI3Miw3IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dVcGRh
dGVOYXZpZ2F0aW9uQWN0aW9ucyhCcm93c2VyV2luZG93ICp3aW5kb3csIFdlYktpdEJhCiAgICAg
Z3RrX21lbnVfdG9vbF9idXR0b25fc2V0X21lbnUoR1RLX01FTlVfVE9PTF9CVVRUT04od2luZG93
LT5mb3J3YXJkSXRlbSksCiAgICAgICAgIGJyb3dzZXJXaW5kb3dDcmVhdGVCYWNrRm9yd2FyZE1l
bnUod2luZG93LCBsaXN0KSk7CiAgICAgZ19saXN0X2ZyZWUobGlzdCk7CisjZW5kaWYKIH0KIAog
c3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd1RyeUNsb3NlQ3VycmVudFdlYlZpZXcoQnJvd3Nlcldp
bmRvdyAqd2luZG93KQpAQCAtMzE2LDggKzMzMywxMCBAQCBzdGF0aWMgdm9pZCB3ZWJWaWV3UmVh
ZHlUb1Nob3coV2ViS2l0V2ViVmlldyAqd2ViVmlldywgQnJvd3NlcldpbmRvdyAqd2luZG93KQog
CiAgICAgR2RrUmVjdGFuZ2xlIGdlb21ldHJ5OwogICAgIHdlYmtpdF93aW5kb3dfcHJvcGVydGll
c19nZXRfZ2VvbWV0cnkod2luZG93UHJvcGVydGllcywgJmdlb21ldHJ5KTsKKyNpZiAhR1RLX0NI
RUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAgaWYgKGdlb21ldHJ5LnggPj0gMCAmJiBnZW9tZXRy
eS55ID49IDApCiAgICAgICAgIGd0a193aW5kb3dfbW92ZShHVEtfV0lORE9XKHdpbmRvdyksIGdl
b21ldHJ5LngsIGdlb21ldHJ5LnkpOworI2VuZGlmCiAgICAgaWYgKGdlb21ldHJ5LndpZHRoID4g
MCAmJiBnZW9tZXRyeS5oZWlnaHQgPiAwKQogICAgICAgICBndGtfd2luZG93X3Jlc2l6ZShHVEtf
V0lORE9XKHdpbmRvdyksIGdlb21ldHJ5LndpZHRoLCBnZW9tZXRyeS5oZWlnaHQpOwogCkBAIC00
MzksNiArNDU4LDcgQEAgc3RhdGljIGdib29sZWFuIGJyb3dzZXJXaW5kb3dab29tT3V0KEJyb3dz
ZXJXaW5kb3cgKndpbmRvdykKICAgICByZXR1cm4gRkFMU0U7CiB9CiAKKyNpZiAhR1RLX0NIRUNL
X1ZFUlNJT04oMywgOTgsIDApCiBzdGF0aWMgZ2Jvb2xlYW4gc2Nyb2xsRXZlbnRDYWxsYmFjayhX
ZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LCBjb25zdCBHZGtFdmVudFNjcm9sbCAqZXZlbnQsIEJyb3dz
ZXJXaW5kb3cgKndpbmRvdykKIHsKICAgICBHZGtNb2RpZmllclR5cGUgbW9kID0gZ3RrX2FjY2Vs
ZXJhdG9yX2dldF9kZWZhdWx0X21vZF9tYXNrKCk7CkBAIC00NTEsMjUgKzQ3MSwzMiBAQCBzdGF0
aWMgZ2Jvb2xlYW4gc2Nyb2xsRXZlbnRDYWxsYmFjayhXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LCBj
b25zdCBHZGtFdmVudFNjcm9sbAogCiAgICAgcmV0dXJuIGJyb3dzZXJXaW5kb3dab29tT3V0KHdp
bmRvdyk7CiB9CisjZW5kaWYKIAogc3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd1VwZGF0ZVpvb21B
Y3Rpb25zKEJyb3dzZXJXaW5kb3cgKndpbmRvdykKIHsKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04o
MywgOTgsIDApCiAgICAgZ3RrX3dpZGdldF9zZXRfc2Vuc2l0aXZlKHdpbmRvdy0+em9vbUluSXRl
bSwgYnJvd3NlcldpbmRvd0Nhblpvb21Jbih3aW5kb3cpKTsKICAgICBndGtfd2lkZ2V0X3NldF9z
ZW5zaXRpdmUod2luZG93LT56b29tT3V0SXRlbSwgYnJvd3NlcldpbmRvd0Nhblpvb21PdXQod2lu
ZG93KSk7CisjZW5kaWYKIH0KIAogc3RhdGljIHZvaWQgd2ViVmlld1pvb21MZXZlbENoYW5nZWQo
R09iamVjdCAqb2JqZWN0LCBHUGFyYW1TcGVjICpwYXJhbVNwZWMsIEJyb3dzZXJXaW5kb3cgKndp
bmRvdykKIHsKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAgYnJvd3Nlcldp
bmRvd1VwZGF0ZVpvb21BY3Rpb25zKHdpbmRvdyk7CisjZW5kaWYKIH0KIAogc3RhdGljIHZvaWQg
dXBkYXRlVXJpRW50cnlJY29uKEJyb3dzZXJXaW5kb3cgKndpbmRvdykKIHsKKyNpZiAhR1RLX0NI
RUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAgR3RrRW50cnkgKmVudHJ5ID0gR1RLX0VOVFJZKHdp
bmRvdy0+dXJpRW50cnkpOwogICAgIGlmICh3aW5kb3ctPmZhdmljb24pCiAgICAgICAgIGd0a19l
bnRyeV9zZXRfaWNvbl9mcm9tX3BpeGJ1ZihlbnRyeSwgR1RLX0VOVFJZX0lDT05fUFJJTUFSWSwg
d2luZG93LT5mYXZpY29uKTsKICAgICBlbHNlCiAgICAgICAgIGd0a19lbnRyeV9zZXRfaWNvbl9m
cm9tX3N0b2NrKGVudHJ5LCBHVEtfRU5UUllfSUNPTl9QUklNQVJZLCBHVEtfU1RPQ0tfTkVXKTsK
KyNlbmRpZgogfQogCiBzdGF0aWMgdm9pZCBmYXZpY29uQ2hhbmdlZChXZWJLaXRXZWJWaWV3ICp3
ZWJWaWV3LCBHUGFyYW1TcGVjICpwYXJhbVNwZWMsIEJyb3dzZXJXaW5kb3cgKndpbmRvdykKQEAg
LTQ5MiwxMSArNTE5LDE0IEBAIHN0YXRpYyB2b2lkIGZhdmljb25DaGFuZ2VkKFdlYktpdFdlYlZp
ZXcgKndlYlZpZXcsIEdQYXJhbVNwZWMgKnBhcmFtU3BlYywgQnJvd3NlCiAKIHN0YXRpYyB2b2lk
IHdlYlZpZXdJc0xvYWRpbmdDaGFuZ2VkKFdlYktpdFdlYlZpZXcgKndlYlZpZXcsIEdQYXJhbVNw
ZWMgKnBhcmFtU3BlYywgQnJvd3NlcldpbmRvdyAqd2luZG93KQogeworI2lmICFHVEtfQ0hFQ0tf
VkVSU0lPTigzLCA5OCwgMCkKICAgICBnYm9vbGVhbiBpc0xvYWRpbmcgPSB3ZWJraXRfd2ViX3Zp
ZXdfaXNfbG9hZGluZyh3ZWJWaWV3KTsKICAgICBndGtfdG9vbF9idXR0b25fc2V0X2xhYmVsKEdU
S19UT09MX0JVVFRPTih3aW5kb3ctPnJlbG9hZE9yU3RvcEJ1dHRvbiksIGlzTG9hZGluZyA/ICJT
dG9wIiA6ICJSZWxvYWQiKTsKICAgICBndGtfdG9vbF9idXR0b25fc2V0X3N0b2NrX2lkKEdUS19U
T09MX0JVVFRPTih3aW5kb3ctPnJlbG9hZE9yU3RvcEJ1dHRvbiksIGlzTG9hZGluZyA/IEdUS19T
VE9DS19TVE9QIDogR1RLX1NUT0NLX1JFRlJFU0gpOworI2VuZGlmCiB9CiAKKyNpZiAhR1RLX0NI
RUNLX1ZFUlNJT04oMywgOTgsIDApCiBzdGF0aWMgdm9pZCB6b29tSW5DYWxsYmFjayhCcm93c2Vy
V2luZG93ICp3aW5kb3cpCiB7CiAgICAgYnJvd3NlcldpbmRvd1pvb21Jbih3aW5kb3cpOwpAQCAt
NTE3LDYgKzU0Nyw3IEBAIHN0YXRpYyB2b2lkIHNlYXJjaENhbGxiYWNrKEJyb3dzZXJXaW5kb3cg
KndpbmRvdykKIHsKICAgICBicm93c2VyX3RhYl9zdGFydF9zZWFyY2god2luZG93LT5hY3RpdmVU
YWIpOwogfQorI2VuZGlmCiAKIHN0YXRpYyB2b2lkIG5ld1RhYkNhbGxiYWNrKEJyb3dzZXJXaW5k
b3cgKndpbmRvdykKIHsKQEAgLTYxNyw2ICs2NDgsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gcHJpbnRQ
YWdlKEJyb3dzZXJXaW5kb3cgKndpbmRvdywgZ3BvaW50ZXIgdXNlcl9kYXRhKQogICAgIHJldHVy
biBUUlVFOwogfQogCisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogc3RhdGljIHZv
aWQgZWRpdGluZ0NvbW1hbmRDYWxsYmFjayhHdGtXaWRnZXQgKndpZGdldCwgQnJvd3NlcldpbmRv
dyAqd2luZG93KQogewogICAgIFdlYktpdFdlYlZpZXcgKndlYlZpZXcgPSBicm93c2VyX3RhYl9n
ZXRfd2ViX3ZpZXcod2luZG93LT5hY3RpdmVUYWIpOwpAQCAtNjgxLDYgKzcxMyw3IEBAIHN0YXRp
YyB2b2lkIHR5cGluZ0F0dHJpYnV0ZXNDaGFuZ2VkKFdlYktpdEVkaXRvclN0YXRlICplZGl0b3JT
dGF0ZSwgR1BhcmFtU3BlYyAqCiAgICAgYnJvd3NlcldpbmRvd0VkaXRpbmdDb21tYW5kVG9nZ2xl
QnV0dG9uU2V0QWN0aXZlKHdpbmRvdywgd2luZG93LT51bmRlcmxpbmVJdGVtLCB0eXBpbmdBdHRy
aWJ1dGVzICYgV0VCS0lUX0VESVRPUl9UWVBJTkdfQVRUUklCVVRFX1VOREVSTElORSk7CiAgICAg
YnJvd3NlcldpbmRvd0VkaXRpbmdDb21tYW5kVG9nZ2xlQnV0dG9uU2V0QWN0aXZlKHdpbmRvdywg
d2luZG93LT5zdHJpa2V0aHJvdWdoSXRlbSwgdHlwaW5nQXR0cmlidXRlcyAmIFdFQktJVF9FRElU
T1JfVFlQSU5HX0FUVFJJQlVURV9TVFJJS0VUSFJPVUdIKTsKIH0KKyNlbmRpZgogCiBzdGF0aWMg
dm9pZCBicm93c2VyV2luZG93RmluYWxpemUoR09iamVjdCAqZ09iamVjdCkKIHsKQEAgLTY5Mywx
MCArNzI2LDEyIEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dGaW5hbGl6ZShHT2JqZWN0ICpn
T2JqZWN0KQogICAgICAgICB3aW5kb3ctPmZhdmljb24gPSBOVUxMOwogICAgIH0KIAorI2lmICFH
VEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKICAgICBpZiAod2luZG93LT5hY2NlbEdyb3VwKSB7
CiAgICAgICAgIGdfb2JqZWN0X3VucmVmKHdpbmRvdy0+YWNjZWxHcm91cCk7CiAgICAgICAgIHdp
bmRvdy0+YWNjZWxHcm91cCA9IE5VTEw7CiAgICAgfQorI2VuZGlmCiAKICAgICBpZiAod2luZG93
LT5yZXNldEVudHJ5UHJvZ3Jlc3NUaW1lb3V0SWQpCiAgICAgICAgIGdfc291cmNlX3JlbW92ZSh3
aW5kb3ctPnJlc2V0RW50cnlQcm9ncmVzc1RpbWVvdXRJZCk7CkBAIC03MDgsNyArNzQzLDcgQEAg
c3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd0ZpbmFsaXplKEdPYmplY3QgKmdPYmplY3QpCiAgICAg
R19PQkpFQ1RfQ0xBU1MoYnJvd3Nlcl93aW5kb3dfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUoZ09i
amVjdCk7CiAKICAgICBpZiAoIXdpbmRvd0xpc3QpCi0gICAgICAgIGd0a19tYWluX3F1aXQoKTsK
KyAgICAgICAgYnJvd3Nlcl9tYWluX3F1aXQoKTsKIH0KIAogc3RhdGljIHZvaWQgYnJvd3Nlcldp
bmRvd0Rpc3Bvc2UoR09iamVjdCAqZ09iamVjdCkKQEAgLTcyNSw2ICs3NjAsNyBAQCBzdGF0aWMg
dm9pZCBicm93c2VyV2luZG93RGlzcG9zZShHT2JqZWN0ICpnT2JqZWN0KQogCiBzdGF0aWMgdm9p
ZCBicm93c2VyV2luZG93U2V0dXBFZGl0b3JUb29sYmFyKEJyb3dzZXJXaW5kb3cgKndpbmRvdykK
IHsKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAgR3RrV2lkZ2V0ICp0b29s
YmFyID0gZ3RrX3Rvb2xiYXJfbmV3KCk7CiAgICAgZ3RrX29yaWVudGFibGVfc2V0X29yaWVudGF0
aW9uKEdUS19PUklFTlRBQkxFKHRvb2xiYXIpLCBHVEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCk7
CiAgICAgZ3RrX3Rvb2xiYXJfc2V0X3N0eWxlKEdUS19UT09MQkFSKHRvb2xiYXIpLCBHVEtfVE9P
TEJBUl9CT1RIX0hPUklaKTsKQEAgLTg3MCw2ICs5MDYsNyBAQCBzdGF0aWMgdm9pZCBicm93c2Vy
V2luZG93U2V0dXBFZGl0b3JUb29sYmFyKEJyb3dzZXJXaW5kb3cgKndpbmRvdykKICAgICBndGtf
Ym94X3BhY2tfc3RhcnQoR1RLX0JPWCh3aW5kb3ctPm1haW5Cb3gpLCB0b29sYmFyLCBGQUxTRSwg
RkFMU0UsIDApOwogICAgIGd0a19ib3hfcmVvcmRlcl9jaGlsZChHVEtfQk9YKHdpbmRvdy0+bWFp
bkJveCksIHRvb2xiYXIsIDEpOwogICAgIGd0a193aWRnZXRfc2hvdyh0b29sYmFyKTsKKyNlbmRp
ZgogfQogCiBzdGF0aWMgdm9pZCBicm93c2VyV2luZG93U3dpdGNoVGFiKEd0a05vdGVib29rICpu
b3RlYm9vaywgQnJvd3NlclRhYiAqdGFiLCBndWludCB0YWJJbmRleCwgQnJvd3NlcldpbmRvdyAq
d2luZG93KQpAQCAtODk2LDcgKzkzMyw5IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dTd2l0
Y2hUYWIoR3RrTm90ZWJvb2sgKm5vdGVib29rLCBCcm93c2VyVGFiICp0YWIsIGd1aW50CiAgICAg
V2ViS2l0V2ViVmlldyAqd2ViVmlldyA9IGJyb3dzZXJfdGFiX2dldF93ZWJfdmlldyh3aW5kb3ct
PmFjdGl2ZVRhYik7CiAgICAgaWYgKHdlYmtpdF93ZWJfdmlld19pc19lZGl0YWJsZSh3ZWJWaWV3
KSkgewogICAgICAgICBicm93c2VyV2luZG93U2V0dXBFZGl0b3JUb29sYmFyKHdpbmRvdyk7Cisj
aWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAgICAgICBnX3NpZ25hbF9jb25uZWN0
KHdlYmtpdF93ZWJfdmlld19nZXRfZWRpdG9yX3N0YXRlKHdlYlZpZXcpLCAibm90aWZ5Ojp0eXBp
bmctYXR0cmlidXRlcyIsIEdfQ0FMTEJBQ0sodHlwaW5nQXR0cmlidXRlc0NoYW5nZWQpLCB3aW5k
b3cpOworI2VuZGlmCiAgICAgfQogICAgIHdlYlZpZXdVUklDaGFuZ2VkKHdlYlZpZXcsIE5VTEws
IHdpbmRvdyk7CiAgICAgd2ViVmlld1RpdGxlQ2hhbmdlZCh3ZWJWaWV3LCBOVUxMLCB3aW5kb3cp
OwpAQCAtOTE5LDcgKzk1OCw5IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dTd2l0Y2hUYWIo
R3RrTm90ZWJvb2sgKm5vdGVib29rLCBCcm93c2VyVGFiICp0YWIsIGd1aW50CiAgICAgZ19zaWdu
YWxfY29ubmVjdCh3ZWJWaWV3LCAibm90aWZ5OjpmYXZpY29uIiwgR19DQUxMQkFDSyhmYXZpY29u
Q2hhbmdlZCksIHdpbmRvdyk7CiAgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJWaWV3LCAiZW50ZXIt
ZnVsbHNjcmVlbiIsIEdfQ0FMTEJBQ0sod2ViVmlld0VudGVyRnVsbFNjcmVlbiksIHdpbmRvdyk7
CiAgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJWaWV3LCAibGVhdmUtZnVsbHNjcmVlbiIsIEdfQ0FM
TEJBQ0sod2ViVmlld0xlYXZlRnVsbFNjcmVlbiksIHdpbmRvdyk7CisjaWYgIUdUS19DSEVDS19W
RVJTSU9OKDMsIDk4LCAwKQogICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViVmlldywgInNjcm9sbC1l
dmVudCIsIEdfQ0FMTEJBQ0soc2Nyb2xsRXZlbnRDYWxsYmFjayksIHdpbmRvdyk7CisjZW5kaWYK
IAogICAgIFdlYktpdEJhY2tGb3J3YXJkTGlzdCAqYmFja0ZvcndhcmRsaXN0ID0gd2Via2l0X3dl
Yl92aWV3X2dldF9iYWNrX2ZvcndhcmRfbGlzdCh3ZWJWaWV3KTsKICAgICBicm93c2VyV2luZG93
VXBkYXRlTmF2aWdhdGlvbkFjdGlvbnMod2luZG93LCBiYWNrRm9yd2FyZGxpc3QpOwpAQCAtOTQx
LDYgKzk4Miw3IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJfd2luZG93X2luaXQoQnJvd3NlcldpbmRv
dyAqd2luZG93KQogICAgIGd0a193aW5kb3dfc2V0X3RpdGxlKEdUS19XSU5ET1cod2luZG93KSwg
ZGVmYXVsdFdpbmRvd1RpdGxlKTsKICAgICBndGtfd2luZG93X3NldF9kZWZhdWx0X3NpemUoR1RL
X1dJTkRPVyh3aW5kb3cpLCA4MDAsIDYwMCk7CiAKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywg
OTgsIDApCiAgICAgd2luZG93LT51cmlFbnRyeSA9IGd0a19lbnRyeV9uZXcoKTsKICAgICBnX3Np
Z25hbF9jb25uZWN0X3N3YXBwZWQod2luZG93LT51cmlFbnRyeSwgImFjdGl2YXRlIiwgR19DQUxM
QkFDSyhhY3RpdmF0ZVVyaUVudHJ5Q2FsbGJhY2spLCAoZ3BvaW50ZXIpd2luZG93KTsKICAgICBn
dGtfZW50cnlfc2V0X2ljb25fYWN0aXZhdGFibGUoR1RLX0VOVFJZKHdpbmRvdy0+dXJpRW50cnkp
LCBHVEtfRU5UUllfSUNPTl9QUklNQVJZLCBGQUxTRSk7CkBAIC0xMDg4LDExICsxMTMwLDEzIEBA
IHN0YXRpYyB2b2lkIGJyb3dzZXJfd2luZG93X2luaXQoQnJvd3NlcldpbmRvdyAqd2luZG93KQog
ICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0b29sYmFyKSwgaXRlbSwgLTEpOwog
ICAgIGd0a193aWRnZXRfYWRkX2FjY2VsZXJhdG9yKHdpbmRvdy0+cmVsb2FkT3JTdG9wQnV0dG9u
LCAiY2xpY2tlZCIsIHdpbmRvdy0+YWNjZWxHcm91cCwgR0RLX0tFWV9GNSwgMCwgR1RLX0FDQ0VM
X1ZJU0lCTEUpOwogICAgIGd0a193aWRnZXRfc2hvdyh3aW5kb3ctPnJlbG9hZE9yU3RvcEJ1dHRv
bik7Ci0KKyNlbmRpZgogICAgIEd0a1dpZGdldCAqdmJveCA9IGd0a19ib3hfbmV3KEdUS19PUklF
TlRBVElPTl9WRVJUSUNBTCwgMCk7CiAgICAgd2luZG93LT5tYWluQm94ID0gdmJveDsKKyNpZiAh
R1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19C
T1godmJveCksIHRvb2xiYXIsIEZBTFNFLCBGQUxTRSwgMCk7CiAgICAgZ3RrX3dpZGdldF9zaG93
KHRvb2xiYXIpOworI2VuZGlmCiAKICAgICB3aW5kb3ctPm5vdGVib29rID0gZ3RrX25vdGVib29r
X25ldygpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2luZG93LT5ub3RlYm9vaywgInN3aXRjaC1w
YWdlIiwgR19DQUxMQkFDSyhicm93c2VyV2luZG93U3dpdGNoVGFiKSwgd2luZG93KTsKQEAgLTEx
MDAsOCArMTE0NCwxMiBAQCBzdGF0aWMgdm9pZCBicm93c2VyX3dpbmRvd19pbml0KEJyb3dzZXJX
aW5kb3cgKndpbmRvdykKICAgICBnX3NpZ25hbF9jb25uZWN0KHdpbmRvdy0+bm90ZWJvb2ssICJw
YWdlLXJlbW92ZWQiLCBHX0NBTExCQUNLKGJyb3dzZXJXaW5kb3dUYWJBZGRlZE9yUmVtb3ZlZCks
IHdpbmRvdyk7CiAgICAgZ3RrX25vdGVib29rX3NldF9zaG93X3RhYnMoR1RLX05PVEVCT09LKHdp
bmRvdy0+bm90ZWJvb2spLCBGQUxTRSk7CiAgICAgZ3RrX25vdGVib29rX3NldF9zaG93X2JvcmRl
cihHVEtfTk9URUJPT0sod2luZG93LT5ub3RlYm9vayksIEZBTFNFKTsKKyNpZiAhR1RLX0NIRUNL
X1ZFUlNJT04oMywgOTgsIDApCiAgICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1god2luZG93
LT5tYWluQm94KSwgd2luZG93LT5ub3RlYm9vaywgVFJVRSwgVFJVRSwgMCk7CiAgICAgZ3RrX3dp
ZGdldF9zaG93KHdpbmRvdy0+bm90ZWJvb2spOworI2Vsc2UKKyAgICBndGtfY29udGFpbmVyX2Fk
ZChHVEtfQ09OVEFJTkVSKHdpbmRvdy0+bWFpbkJveCksIHdpbmRvdy0+bm90ZWJvb2spOworI2Vu
ZGlmCiAKICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKHdpbmRvdyksIHZib3gp
OwogICAgIGd0a193aWRnZXRfc2hvdyh2Ym94KTsKQEAgLTExMjUsNiArMTE3Myw3IEBAIHN0YXRp
YyB2b2lkIGJyb3dzZXJXaW5kb3dTYXZlU2Vzc2lvbihCcm93c2VyV2luZG93ICp3aW5kb3cpCiAg
ICAgZ19ieXRlc191bnJlZihieXRlcyk7CiB9CiAKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywg
OTgsIDApCiBzdGF0aWMgZ2Jvb2xlYW4gYnJvd3NlcldpbmRvd0RlbGV0ZUV2ZW50KEd0a1dpZGdl
dCAqd2lkZ2V0LCBHZGtFdmVudEFueSogZXZlbnQpCiB7CiAgICAgQnJvd3NlcldpbmRvdyAqd2lu
ZG93ID0gQlJPV1NFUl9XSU5ET1cod2lkZ2V0KTsKQEAgLTExMzIsNiArMTE4MSw3IEBAIHN0YXRp
YyBnYm9vbGVhbiBicm93c2VyV2luZG93RGVsZXRlRXZlbnQoR3RrV2lkZ2V0ICp3aWRnZXQsIEdk
a0V2ZW50QW55KiBldmVudCkKICAgICBicm93c2VyV2luZG93VHJ5Q2xvc2Uod2luZG93KTsKICAg
ICByZXR1cm4gVFJVRTsKIH0KKyNlbmRpZgogCiBzdGF0aWMgdm9pZCBicm93c2VyX3dpbmRvd19j
bGFzc19pbml0KEJyb3dzZXJXaW5kb3dDbGFzcyAqa2xhc3MpCiB7CkBAIC0xMTQxLDggKzExOTEs
MTAgQEAgc3RhdGljIHZvaWQgYnJvd3Nlcl93aW5kb3dfY2xhc3NfaW5pdChCcm93c2VyV2luZG93
Q2xhc3MgKmtsYXNzKQogICAgIGdvYmplY3RDbGFzcy0+ZGlzcG9zZSA9IGJyb3dzZXJXaW5kb3dE
aXNwb3NlOwogICAgIGdvYmplY3RDbGFzcy0+ZmluYWxpemUgPSBicm93c2VyV2luZG93RmluYWxp
emU7CiAKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAgR3RrV2lkZ2V0Q2xh
c3MgKndpZGdldENsYXNzID0gR1RLX1dJREdFVF9DTEFTUyhrbGFzcyk7CiAgICAgd2lkZ2V0Q2xh
c3MtPmRlbGV0ZV9ldmVudCA9IGJyb3dzZXJXaW5kb3dEZWxldGVFdmVudDsKKyNlbmRpZgogfQog
CiAvKiBQdWJsaWMgQVBJLiAqLwpAQCAtMTE1MSw3ICsxMjAzLDEwIEBAIEd0a1dpZGdldCAqYnJv
d3Nlcl93aW5kb3dfbmV3KEd0a1dpbmRvdyAqcGFyZW50LCBXZWJLaXRXZWJDb250ZXh0ICp3ZWJD
b250ZXh0KQogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVCh3
ZWJDb250ZXh0KSwgTlVMTCk7CiAKICAgICBCcm93c2VyV2luZG93ICp3aW5kb3cgPSBCUk9XU0VS
X1dJTkRPVyhnX29iamVjdF9uZXcoQlJPV1NFUl9UWVBFX1dJTkRPVywKLSAgICAgICAgInR5cGUi
LCBHVEtfV0lORE9XX1RPUExFVkVMLCBOVUxMKSk7CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMs
IDk4LCAwKQorICAgICAgICAidHlwZSIsIEdUS19XSU5ET1dfVE9QTEVWRUwsCisjZW5kaWYKKyAg
ICAgICAgTlVMTCkpOwogCiAgICAgd2luZG93LT53ZWJDb250ZXh0ID0gd2ViQ29udGV4dDsKICAg
ICBnX3NpZ25hbF9jb25uZWN0KHdpbmRvdy0+d2ViQ29udGV4dCwgImRvd25sb2FkLXN0YXJ0ZWQi
LCBHX0NBTExCQUNLKGRvd25sb2FkU3RhcnRlZCksIHdpbmRvdyk7CkBAIC0xMTgxLDExICsxMjM2
LDE1IEBAIHZvaWQgYnJvd3Nlcl93aW5kb3dfYXBwZW5kX3ZpZXcoQnJvd3NlcldpbmRvdyAqd2lu
ZG93LCBXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3KQogICAgIH0KIAogICAgIEd0a1dpZGdldCAqdGFi
ID0gYnJvd3Nlcl90YWJfbmV3KHdlYlZpZXcpOworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5
OCwgMCkKICAgICBpZiAoZ3RrX3dpZGdldF9nZXRfYXBwX3BhaW50YWJsZShHVEtfV0lER0VUKHdp
bmRvdykpKQogICAgICAgICBicm93c2VyX3RhYl9zZXRfYmFja2dyb3VuZF9jb2xvcihCUk9XU0VS
X1RBQih0YWIpLCAmd2luZG93LT5iYWNrZ3JvdW5kQ29sb3IpOwogICAgIGJyb3dzZXJfdGFiX2Fk
ZF9hY2NlbGVyYXRvcnMoQlJPV1NFUl9UQUIodGFiKSwgd2luZG93LT5hY2NlbEdyb3VwKTsKKyNl
bmRpZgogICAgIGd0a19ub3RlYm9va19hcHBlbmRfcGFnZShHVEtfTk9URUJPT0sod2luZG93LT5u
b3RlYm9vayksIHRhYiwgYnJvd3Nlcl90YWJfZ2V0X3RpdGxlX3dpZGdldChCUk9XU0VSX1RBQih0
YWIpKSk7CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAgIGd0a19jb250YWlu
ZXJfY2hpbGRfc2V0KEdUS19DT05UQUlORVIod2luZG93LT5ub3RlYm9vayksIHRhYiwgInRhYi1l
eHBhbmQiLCBUUlVFLCBOVUxMKTsKKyNlbmRpZgogICAgIGd0a193aWRnZXRfc2hvdyh0YWIpOwog
fQogCkBAIC0xMjM4LDEyICsxMjk3LDE0IEBAIHZvaWQgYnJvd3Nlcl93aW5kb3dfc2V0X2JhY2tn
cm91bmRfY29sb3IoQnJvd3NlcldpbmRvdyAqd2luZG93LCBHZGtSR0JBICpyZ2JhKQogCiAgICAg
d2luZG93LT5iYWNrZ3JvdW5kQ29sb3IgPSAqcmdiYTsKIAorI2lmICFHVEtfQ0hFQ0tfVkVSU0lP
TigzLCA5OCwgMCkKICAgICBHZGtWaXN1YWwgKnJnYmFWaXN1YWwgPSBnZGtfc2NyZWVuX2dldF9y
Z2JhX3Zpc3VhbChndGtfd2luZG93X2dldF9zY3JlZW4oR1RLX1dJTkRPVyh3aW5kb3cpKSk7CiAg
ICAgaWYgKCFyZ2JhVmlzdWFsKQogICAgICAgICByZXR1cm47CiAKICAgICBndGtfd2lkZ2V0X3Nl
dF92aXN1YWwoR1RLX1dJREdFVCh3aW5kb3cpLCByZ2JhVmlzdWFsKTsKICAgICBndGtfd2lkZ2V0
X3NldF9hcHBfcGFpbnRhYmxlKEdUS19XSURHRVQod2luZG93KSwgVFJVRSk7CisjZW5kaWYKIH0K
IAogc3RhdGljIEJyb3dzZXJXaW5kb3cgKmZpbmRBY3RpdmVXaW5kb3codm9pZCkKQEAgLTEyNzgs
NyArMTMzOSw5IEBAIFdlYktpdFdlYlZpZXcgKmJyb3dzZXJfd2luZG93X2dldF9vcl9jcmVhdGVf
d2ViX3ZpZXdfZm9yX2F1dG9tYXRpb24odm9pZCkKICAgICAgICAgImlzLWNvbnRyb2xsZWQtYnkt
YXV0b21hdGlvbiIsIFRSVUUsCiAgICAgICAgIE5VTEwpKTsKICAgICBHdGtXaWRnZXQgKm5ld1dp
bmRvdyA9IGJyb3dzZXJfd2luZG93X25ldyhHVEtfV0lORE9XKHdpbmRvdyksIHdpbmRvdy0+d2Vi
Q29udGV4dCk7CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAgIGd0a193aW5k
b3dfc2V0X2ZvY3VzX29uX21hcChHVEtfV0lORE9XKG5ld1dpbmRvdyksIEZBTFNFKTsKKyNlbmRp
ZgogICAgIGJyb3dzZXJfd2luZG93X2FwcGVuZF92aWV3KEJST1dTRVJfV0lORE9XKG5ld1dpbmRv
dyksIG5ld1dlYlZpZXcpOwogICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3VyaShuZXdXZWJWaWV3
LCAiYWJvdXQ6YmxhbmsiKTsKICAgICBndGtfd2lkZ2V0X3Nob3cobmV3V2luZG93KTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL01pbmlC
cm93c2VyL2d0ay9DTWFrZUxpc3RzLnR4dAppbmRleCBmMGFhNjViMjg4ZWQuLmRmYzg0MTM1ZmRi
NyAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0NNYWtlTGlzdHMudHh0CisrKyBi
L1Rvb2xzL01pbmlCcm93c2VyL2d0ay9DTWFrZUxpc3RzLnR4dApAQCAtOCw2ICs4LDggQEAgc2V0
KE1pbmlCcm93c2VyX1NPVVJDRVMKICAgICBCcm93c2VyQ2VsbFJlbmRlcmVyVmFyaWFudC5oCiAg
ICAgQnJvd3NlckRvd25sb2Fkc0Jhci5jCiAgICAgQnJvd3NlckRvd25sb2Fkc0Jhci5oCisgICAg
QnJvd3Nlck1haW4uYworICAgIEJyb3dzZXJNYWluLmgKICAgICBCcm93c2VyU2VhcmNoQmFyLmMK
ICAgICBCcm93c2VyU2VhcmNoQmFyLmgKICAgICBCcm93c2VyU2V0dGluZ3NEaWFsb2cuYwpAQCAt
MjQsNiArMjYsNyBAQCBzZXQoTWluaUJyb3dzZXJfUFJJVkFURV9JTkNMVURFX0RJUkVDVE9SSUVT
CiAgICAgJHtNaW5pQnJvd3Nlcl9ERVJJVkVEX1NPVVJDRVNfRElSfQogICAgICR7REVSSVZFRF9T
T1VSQ0VTX1dFQktJVDJHVEtfRElSfQogICAgICR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJVDJH
VEtfRElSfQorICAgICR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJVDJHVEtfVkVSU0lPTkVEX0RJ
Un0KICAgICAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9CiAgICAgJHtDTUFLRV9TT1VSQ0VfRElS
fS9Tb3VyY2UKICkKQEAgLTU2LDcgKzU5LDEyIEBAIGFkZF9jdXN0b21fY29tbWFuZCgKICAgICBD
T01NQU5EIGdsaWItZ2VubWFyc2hhbCAtLXByZWZpeD1icm93c2VyX21hcnNoYWwgJHtNaW5pQnJv
d3Nlcl9ESVJ9L2Jyb3dzZXItbWFyc2hhbC5saXN0IC0taGVhZGVyID4gJHtNaW5pQnJvd3Nlcl9E
RVJJVkVEX1NPVVJDRVNfRElSfS9Ccm93c2VyTWFyc2hhbC5oCiAgICAgVkVSQkFUSU0pCiAKLXNl
dChNaW5pQnJvd3Nlcl9QUklWQVRFX0RFRklOSVRJT05TIEdES19WRVJTSU9OX01JTl9SRVFVSVJF
RD1HREtfVkVSU0lPTl8zXzYpCitpZiAoVVNFX0dUSzQpCisgICAgc2V0KE1pbmlCcm93c2VyX1BS
SVZBVEVfREVGSU5JVElPTlMgR0RLX1ZFUlNJT05fTUlOX1JFUVVJUkVEPUdES19WRVJTSU9OXzNf
OTIpCitlbHNlICgpCisgICAgc2V0KE1pbmlCcm93c2VyX1BSSVZBVEVfREVGSU5JVElPTlMgR0RL
X1ZFUlNJT05fTUlOX1JFUVVJUkVEPUdES19WRVJTSU9OXzNfMjIpCitlbmRpZiAoKQorCiBpZiAo
REVWRUxPUEVSX01PREUpCiAgICAgbGlzdChBUFBFTkQgTWluaUJyb3dzZXJfUFJJVkFURV9ERUZJ
TklUSU9OUyAtRFdFQktJVF9JTkpFQ1RFRF9CVU5ETEVfUEFUSD0iJHtDTUFLRV9MSUJSQVJZX09V
VFBVVF9ESVJFQ1RPUll9IikKIGVuZGlmICgpCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nl
ci9ndGsvbWFpbi5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL21haW4uYwppbmRleCA5MmM5YTQz
M2M2NGUuLmU3ZTdlZDY0NTNkMCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL21h
aW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvbWFpbi5jCkBAIC0yNyw2ICsyNyw3IEBA
CiAKICNpbmNsdWRlICJjbWFrZWNvbmZpZy5oIgogCisjaW5jbHVkZSAiQnJvd3Nlck1haW4uaCIK
ICNpbmNsdWRlICJCcm93c2VyV2luZG93LmgiCiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpZiBFTkFC
TEVfV0VCX0FVRElPIHx8IEVOQUJMRV9WSURFTwpAQCAtNTA0LDExICs1MDUsMTcgQEAgaW50IG1h
aW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICBnX3NldGVudigiV0VCS0lUX0lOSkVDVEVE
X0JVTkRMRV9QQVRIIiwgV0VCS0lUX0lOSkVDVEVEX0JVTkRMRV9QQVRILCBGQUxTRSk7CiAjZW5k
aWYKIAorI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQorICAgIGd0a19pbml0KCk7Cisj
ZWxzZQogICAgIGd0a19pbml0KCZhcmdjLCAmYXJndik7CisjZW5kaWYKIAogICAgIEdPcHRpb25D
b250ZXh0ICpjb250ZXh0ID0gZ19vcHRpb25fY29udGV4dF9uZXcoTlVMTCk7CiAgICAgZ19vcHRp
b25fY29udGV4dF9hZGRfbWFpbl9lbnRyaWVzKGNvbnRleHQsIGNvbW1hbmRMaW5lT3B0aW9ucywg
MCk7CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAgIGdfb3B0aW9uX2NvbnRl
eHRfYWRkX2dyb3VwKGNvbnRleHQsIGd0a19nZXRfb3B0aW9uX2dyb3VwKFRSVUUpKTsKKyNlbmRp
ZgogI2lmIEVOQUJMRV9XRUJfQVVESU8gfHwgRU5BQkxFX1ZJREVPCiAgICAgZ19vcHRpb25fY29u
dGV4dF9hZGRfZ3JvdXAoY29udGV4dCwgZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCgpKTsKICNl
bmRpZgpAQCAtNTQzLDcgKzU1MCwxMCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltd
KQogCiAgICAgV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyICptYW5hZ2VyID0gKHByaXZhdGVNb2Rl
IHx8IGF1dG9tYXRpb25Nb2RlKSA/IHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9uZXdfZXBo
ZW1lcmFsKCkgOiB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfbmV3KE5VTEwpOwogICAgIFdl
YktpdFdlYkNvbnRleHQgKndlYkNvbnRleHQgPSBnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VC
X0NPTlRFWFQsICJ3ZWJzaXRlLWRhdGEtbWFuYWdlciIsIG1hbmFnZXIsICJwcm9jZXNzLXN3YXAt
b24tY3Jvc3Mtc2l0ZS1uYXZpZ2F0aW9uLWVuYWJsZWQiLCBUUlVFLAotICAgICAgICAidXNlLXN5
c3RlbS1hcHBlYXJhbmNlLWZvci1zY3JvbGxiYXJzIiwgRkFMU0UsIE5VTEwpOworI2lmICFHVEtf
Q0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKKyAgICAgICAgInVzZS1zeXN0ZW0tYXBwZWFyYW5jZS1m
b3Itc2Nyb2xsYmFycyIsIEZBTFNFLAorI2VuZGlmCisgICAgICAgIE5VTEwpOwogICAgIGdfb2Jq
ZWN0X3VucmVmKG1hbmFnZXIpOwogCiAgICAgaWYgKGNvb2tpZXNQb2xpY3kpIHsKQEAgLTYxMSw4
ICs2MjEsMTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgICAgZ19v
YmplY3Rfc2V0KGd0a193aWRnZXRfZ2V0X3NldHRpbmdzKEdUS19XSURHRVQobWFpbldpbmRvdykp
LCAiZ3RrLWFwcGxpY2F0aW9uLXByZWZlci1kYXJrLXRoZW1lIiwgVFJVRSwgTlVMTCk7CiAgICAg
aWYgKGZ1bGxTY3JlZW4pCiAgICAgICAgIGd0a193aW5kb3dfZnVsbHNjcmVlbihHVEtfV0lORE9X
KG1haW5XaW5kb3cpKTsKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAgZWxz
ZSBpZiAoZ2VvbWV0cnkpCiAgICAgICAgIGd0a193aW5kb3dfcGFyc2VfZ2VvbWV0cnkoR1RLX1dJ
TkRPVyhtYWluV2luZG93KSwgZ2VvbWV0cnkpOworI2VuZGlmCiAKICAgICBpZiAoYmFja2dyb3Vu
ZENvbG9yKQogICAgICAgICBicm93c2VyX3dpbmRvd19zZXRfYmFja2dyb3VuZF9jb2xvcihtYWlu
V2luZG93LCBiYWNrZ3JvdW5kQ29sb3IpOwpAQCAtNjQ3LDcgKzY1OSw3IEBAIGludCBtYWluKGlu
dCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgZ19jbGVhcl9vYmplY3QoJndlYmtpdFNldHRpbmdz
KTsKICAgICBnX2NsZWFyX29iamVjdCgmdXNlckNvbnRlbnRNYW5hZ2VyKTsKIAotICAgIGd0a19t
YWluKCk7CisgICAgYnJvd3Nlcl9tYWluKCk7CiAKICAgICBpZiAocHJpdmF0ZU1vZGUpCiAgICAg
ICAgIGdfb2JqZWN0X3VucmVmKHdlYkNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvUGxhdGZv
cm1HVEsuY21ha2UgYi9Ub29scy9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBlOWFkZTdhNjk5YTYu
LmIzNTY0MWQ3OWUxZSAxMDA2NDQKLS0tIGEvVG9vbHMvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIv
VG9vbHMvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTEsNSArMSw4IEBACiBpZiAoREVWRUxPUEVSX01P
REUpCi0gICAgYWRkX3N1YmRpcmVjdG9yeShXZWJLaXRUZXN0UnVubmVyKQorICAgIGlmIChOT1Qg
VVNFX0dUSzQpCisgICAgICAgIGFkZF9zdWJkaXJlY3RvcnkoV2ViS2l0VGVzdFJ1bm5lcikKKyAg
ICBlbmRpZiAoKQorCiAgICAgYWRkX3N1YmRpcmVjdG9yeShJbWFnZURpZmYpCiAKICAgICBpZiAo
RU5BQkxFX0FQSV9URVNUUykKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQpp
bmRleCAxM2QxZDQ4ZTJlNjQuLjhmY2VmN2EyNjFlNyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlci5weQpAQCAtMzc0LDYgKzM3NCw4IEBAIF9TS0lQUEVEX0ZJTEVTX1dJVEhf
V0FSTklORyA9IFsKIAogICAgICMgV2ViS2l0Ki5oIGFuZCBKU0MqLmggZmlsZXMgaW4sIGV4Y2Vw
dCB0aG9zZSBlbmRpbmcgaW4gUHJpdmF0ZS5oIGFyZSBBUEkgaGVhZGVycywgd2hpY2ggZG8gbm90
IGZvbGxvdyBXZWJLaXQgY29kaW5nIHN0eWxlLgogICAgIHJlLmNvbXBpbGUocmUuZXNjYXBlKG9z
LnBhdGguam9pbignU291cmNlJywgJ0phdmFTY3JpcHRDb3JlJywgJ0FQSScsICdnbGliJykgKyBv
cy5wYXRoLnNlcCkgKyByJ0pTQyg/IS4qUHJpdmF0ZVwuaCkuKlwuaCQnKSwKKyAgICByZS5jb21w
aWxlKHJlLmVzY2FwZShvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJLaXQnLCAnVUlQcm9jZXNz
JywgJ0FQSScsICdndGszJykgKyBvcy5wYXRoLnNlcCkgKyByJ1dlYktpdCg/IS4qUHJpdmF0ZVwu
aCkuKlwuaCQnKSwKKyAgICByZS5jb21waWxlKHJlLmVzY2FwZShvcy5wYXRoLmpvaW4oJ1NvdXJj
ZScsICdXZWJLaXQnLCAnVUlQcm9jZXNzJywgJ0FQSScsICdndGs0JykgKyBvcy5wYXRoLnNlcCkg
KyByJ1dlYktpdCg/IS4qUHJpdmF0ZVwuaCkuKlwuaCQnKSwKICAgICByZS5jb21waWxlKHJlLmVz
Y2FwZShvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJLaXQnLCAnVUlQcm9jZXNzJywgJ0FQSScs
ICdndGsnKSArIG9zLnBhdGguc2VwKSArIHInV2ViS2l0KD8hLipQcml2YXRlXC5oKS4qXC5oJCcp
LAogICAgIHJlLmNvbXBpbGUocmUuZXNjYXBlKG9zLnBhdGguam9pbignU291cmNlJywgJ1dlYktp
dCcsICdVSVByb2Nlc3MnLCAnQVBJJywgJ3dwZScpICsgb3MucGF0aC5zZXApICsgcidXZWJLaXQo
PyEuKlByaXZhdGVcLmgpLipcLmgkJyksCiAgICAgcmUuY29tcGlsZShyZS5lc2NhcGUob3MucGF0
aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0JywgJ1dlYlByb2Nlc3MnLCAnSW5qZWN0ZWRCdW5kbGUn
LCAnQVBJJywgJ2d0aycpICsgb3MucGF0aC5zZXApICsgcidXZWJLaXQoPyEuKlByaXZhdGVcLmgp
LipcLmgkJyksCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvUGxhdGZvcm1H
VEsuY21ha2UgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvUGxhdGZvcm1HVEsuY21ha2UKaW5k
ZXggNjBkZDlkZjgzN2YwLi5jNTM5YzA2NTQzNjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvZ2xpYi9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2ds
aWIvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTksNiArOSw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdEdM
aWJBUElUZXN0c19JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfSkFW
QVNDUklQQ09SRUdUS19ESVJ9CiAgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMkdUS19ESVJ9
CiAgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfV0VCS0lUMkdUS19ESVJ9CisgICAgJHtGT1JXQVJE
SU5HX0hFQURFUlNfV0VCS0lUMkdUS19WRVJTSU9ORURfRElSfQogICAgICR7Rk9SV0FSRElOR19I
RUFERVJTX1dFQktJVDJHVEtfRVhURU5TSU9OX0RJUn0KICkKIAo=
</data>
<flag name="review"
          id="412951"
          type_id="1"
          status="+"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>