<?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>222459</bug_id>
          
          <creation_ts>2021-02-25 22:03:44 -0800</creation_ts>
          <short_desc>Remove ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING which is always true for macOS</short_desc>
          <delta_ts>2021-03-01 11:16:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pvollan</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1733665</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-02-25 22:03:44 -0800</bug_when>
    <thetext>Remove ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING whicih is always true for macOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733666</commentid>
    <comment_count>1</comment_count>
      <attachid>421610</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-02-25 22:07:05 -0800</bug_when>
    <thetext>Created attachment 421610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733667</commentid>
    <comment_count>2</comment_count>
      <attachid>421611</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-02-25 22:14:20 -0800</bug_when>
    <thetext>Created attachment 421611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733886</commentid>
    <comment_count>3</comment_count>
      <attachid>421681</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-02-26 11:24:55 -0800</bug_when>
    <thetext>Created attachment 421681
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733967</commentid>
    <comment_count>4</comment_count>
      <attachid>421704</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-02-26 13:45:32 -0800</bug_when>
    <thetext>Created attachment 421704
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734067</commentid>
    <comment_count>5</comment_count>
      <attachid>421704</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-26 16:34:58 -0800</bug_when>
    <thetext>Comment on attachment 421704
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=421704&amp;action=review

&gt; Source/WTF/ChangeLog:8
&gt; +        ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING is always defined for PLATFORM(MAC), so remove it,
&gt; +        replacing with PLATFORM(MAC) in a few places. In order to reduce the number PLATFORM(MAC), define
&gt; +        HAVE(CVDISPLAYLINK) and use it in WK2 code that relates to DisplayLinks.

I kinda feel like this is the opposite direction we should be going in. In general, I would like to discourage the use of PLATFORM(MAC), as it is not very self documenting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734386</commentid>
    <comment_count>6</comment_count>
      <attachid>421704</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-03-01 05:50:45 -0800</bug_when>
    <thetext>Comment on attachment 421704
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=421704&amp;action=review

&gt; Source/WebKit/WebProcess/WebProcess.cpp:159
&gt; +#if PLATFORM(MAC)
&gt; +#include &lt;WebCore/DisplayRefreshMonitorManager.h&gt;
&gt; +#endif

Should this be HAVE(CVDISPLAYLINK)?

&gt; Source/WebKit/WebProcess/WebProcess.cpp:1879
&gt; -#if ENABLE(WEBPROCESS_WINDOWSERVER_BLOCKING)
&gt; +#if PLATFORM(MAC)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734505</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-01 11:15:24 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/273657/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734506</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-01 11:16:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/74880016&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421610</attachid>
            <date>2021-02-25 22:07:05 -0800</date>
            <delta_ts>2021-02-25 22:16:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222459-20210225220704.patch</filename>
            <type>text/plain</type>
            <size>42861</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRlNTc0MjQ2MDAyMzhhNTBkMzgxMjJl
MTgxYWQxMzRiY2NkMTljNzQuLjdkYWQ4ZDVmMjkyZTYzMjU2MDM0YzdiOWY0MjJkYmM2ODAyODM3
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDItMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIEVOQUJMRV9XRUJQUk9DRVNTX1dJ
TkRPV1NFUlZFUl9CTE9DS0lORyB3aGljaWggaXMgYWx3YXlzIHRydWUgZm9yIG1hY09TCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI0NTkKKworICAg
ICAgICBFTkFCTEVfV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcgaXMgYWx3YXlzIGRl
ZmluZWQgZm9yIFBMQVRGT1JNKE1BQyksIHNvIHJlbW92ZSBpdCwKKyAgICAgICAgcmVwbGFjaW5n
IHdpdGggUExBVEZPUk0oTUFDKSBpbiBhIGZldyBwbGFjZXMuIEluIG9yZGVyIHRvIHJlZHVjZSB0
aGUgbnVtYmVyIFBMQVRGT1JNKE1BQyksIGRlZmluZQorICAgICAgICBIQVZFKENWRElTUExBWUxJ
TkspIGFuZCB1c2UgaXQgaW4gV0syIGNvZGUgdGhhdCByZWxhdGVzIHRvIERpc3BsYXlMaW5rcy4K
KworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oOgorICAgICAgICAqIHd0Zi9QbGF0Zm9y
bUVuYWJsZUNvY29hLmg6CisgICAgICAgICogd3RmL1BsYXRmb3JtSGF2ZS5oOgorCiAyMDIxLTAy
LTIzICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgW0NN
YWtlXSBGaXggSlNDT25seSBidWlsZCBvbiBXaW5kb3dzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTM1Zjc2MjE4
ZDNmYmEwMWY4OWM1M2FkOGE0YmMyNGMzY2U0ZTYyOC4uNzNhNGI3NmNiYWMzOGJmZjVmN2Y1NDc2
NDQwOTAwMTZiZTcwMmI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTAyLTI1
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92
ZSBFTkFCTEVfV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcgd2hpY2loIGlzIGFsd2F5
cyB0cnVlIGZvciBtYWNPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjIyNDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRU5BQkxFX1dFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HIGlzIGFsd2F5
cyBkZWZpbmVkIGZvciBQTEFURk9STShNQUMpLCBzbyByZW1vdmUgaXQsCisgICAgICAgIHJlcGxh
Y2luZyB3aXRoIFBMQVRGT1JNKE1BQykgaW4gYSBmZXcgcGxhY2VzLiBJbiBvcmRlciB0byByZWR1
Y2UgdGhlIG51bWJlciBQTEFURk9STShNQUMpLCBkZWZpbmUKKyAgICAgICAgSEFWRShDVkRJU1BM
QVlMSU5LKSBhbmQgdXNlIGl0IGluIFdLMiBjb2RlIHRoYXQgcmVsYXRlcyB0byBEaXNwbGF5TGlu
a3MuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OmVuc3VyZVBsYXRmb3JtQ29udGV4dCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFn
ZXI6OmFkZENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xNYW5hZ2VyOjpyZW1vdmVDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvS2V5RXZl
bnRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJl
bnRTdGF0ZU9mTW9kaWZpZXJLZXlzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1T
Y3JlZW5NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpncHVJREZvckRpc3BsYXkpOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToKKyAgICAgICAgKC1bV2ViU2Ny
b2xsYmFyUGFydEFuaW1hdGlvbiBpbml0V2l0aFNjcm9sbGJhcjpmZWF0dXJlVG9BbmltYXRlOmFu
aW1hdGVGcm9tOmFuaW1hdGVUbzpkdXJhdGlvbjpdKToKKyAgICAgICAgKC1bV2ViU2Nyb2xsYmFy
UGFydEFuaW1hdGlvbiBzdGFydEFuaW1hdGlvbl0pOgorICAgICAgICAoLVtXZWJTY3JvbGxiYXJQ
YXJ0QW5pbWF0aW9uIHNldEN1cnJlbnRQcm9ncmVzczpdKToKKyAgICAgICAgKC1bV2ViU2Nyb2xs
YmFyUGFydEFuaW1hdGlvbiBzdG9wQW5pbWF0aW9uXSk6CisgICAgICAgICgtW1dlYlNjcm9sbGJh
clBhcnRBbmltYXRpb24gc2V0Q3VycmVudFByb2dyZXNzOnNldEN1cnJlbnRQcm9ncmVzczpdKTog
RGVsZXRlZC4KKwogMjAyMS0wMi0yNCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtMZWdhY3lMaW5lTGF5b3V0XSBJbmxpbmUgbGV2ZWwgYm94IHNob3VsZCBub3Qg
c3RpY2sgb3V0IGF0IHRoZSBib3R0b20gb2YgaXRzIGNvbnRhaW5pbmcgYmxvY2sKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggMjE3YjgxZjAxMjA3MjE3YWExODcyMGE4ZWM4ZDUxYmRkNzYyMzIxMC4uMWFiM2YxZWEyNzYz
YWRmNTk5OGU0OWVkODdhNjcyNDg1MzFjYjc1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAor
MjAyMS0wMi0yNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZW1vdmUgRU5BQkxFX1dFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HIHdoaWNp
aCBpcyBhbHdheXMgdHJ1ZSBmb3IgbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMjQ1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lO
RyBpcyBhbHdheXMgZGVmaW5lZCBmb3IgUExBVEZPUk0oTUFDKSwgc28gcmVtb3ZlIGl0LAorICAg
ICAgICByZXBsYWNpbmcgd2l0aCBQTEFURk9STShNQUMpIGluIGEgZmV3IHBsYWNlcy4gSW4gb3Jk
ZXIgdG8gcmVkdWNlIHRoZSBudW1iZXIgUExBVEZPUk0oTUFDKSwgZGVmaW5lCisgICAgICAgIEhB
VkUoQ1ZESVNQTEFZTElOSykgYW5kIHVzZSBpdCBpbiBXSzIgY29kZSB0aGF0IHJlbGF0ZXMgdG8g
RGlzcGxheUxpbmtzLgorCisgICAgICAgICogUGxhdGZvcm0vY29jb2EvTGF5ZXJIb3N0aW5nQ29u
dGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9y
RXh0ZXJuYWxIb3N0aW5nUHJvY2Vzcyk6CisgICAgICAgICogU2hhcmVkL21hYy9IYW5nRGV0ZWN0
aW9uRGlzYWJsZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OnNldENsaWVudHNNYXlJZ25vcmVF
dmVudHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRpb25P
YnNlcnZlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5v
dGlmaWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ09ic2VydmVyOjpzaW5nbGV0b24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlbmRXaGVlbEV2ZW50KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGlzcGxh
eVJlY29uZmlndXJhdGlvbkNhbGxCYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OnNlbmREaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWRNZXNzYWdlRm9yVGVzdGluZyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6
fldlYlByb2Nlc3NQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cHJv
Y2Vzc1dpbGxTaHV0RG93bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L21hYy9EaXNwbGF5TGluay5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1By
b3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnN0b3BEaXNwbGF5
TGluayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRC
dW5kbGVNYWMubW06CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjppbml0aWFsaXpl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERkxheWVyQ29udHJvbGxlclNQ
SS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgorICAg
ICAgICAoV2ViS2l0OjpQREZQbHVnaW46OlBERlBsdWdpbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
RXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0RyYXdpbmdB
cmVhTWFjLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OmNyZWF0ZURpc3BsYXlS
ZWZyZXNoTW9uaXRvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemVQcm9jZXNzKToKKwogMjAyMS0wMi0yNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjY3NzYzKTogW0dUS11b
V1BFXSB1c2VyIHByZWZlcnJlZCBsYW5ndWFnZXMgYXJlIHNlbnQgdG8gdGhlIHdyb25nIG5ldHdv
cmsgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaCBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKaW5kZXggMTlhOGU0NzYzYzJhNDBiZjJm
YjNjODM0YWFhMzcwMTI5ODUxNTJmZS4uNGIwN2M3YWM4NGRjNTcwMTljY2EzMjUxMGNkOTkxMWI0
MTJmMTUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCkBAIC0xMDgsMTAgKzEwOCw2IEBACiAj
ZGVmaW5lIEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUCAwCiAjZW5kaWYKIAotI2lmICFkZWZp
bmVkKEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLSNkZWZpbmUgRU5B
QkxFX1dFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HIDAKLSNlbmRpZgotCiAjaWYgIWRl
ZmluZWQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykKICNkZWZpbmUgRU5BQkxFX01BQ19HRVNU
VVJFX0VWRU5UUyAwCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
RW5hYmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRl
eCBhNmNiMTFmYmJlYjJmYjMwNjljNmZmMDgyMDk4YjRiYTYzNmUyYTQxLi4zYzkzNmEyZTc4YmJi
MzYwOWYxZTFkYTRmMzYwZWZhMGNmMTFmOWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVD
b2NvYS5oCkBAIC01ODIsMTAgKzU4Miw2IEBACiAjZGVmaW5lIEVOQUJMRV9XRUJQUk9DRVNTX05T
UlVOTE9PUCAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRP
V1NFUlZFUl9CTE9DS0lORykgJiYgUExBVEZPUk0oTUFDKQotI2RlZmluZSBFTkFCTEVfV0VCUFJP
Q0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcgMQotI2VuZGlmCi0KICNpZiAhZGVmaW5lZChFTkFC
TEVfV0VCWFIpICYmIChIQVZFKFdFQlhSX0lOVEVSTkFMUykgfHwgKFVTRShBUFBMRV9JTlRFUk5B
TF9TREspICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMTAwMDApKQogI2RlZmluZSBFTkFCTEVfV0VCWFIgMQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
SGF2ZS5oCmluZGV4IDliNTQ0ZDhhMGZkMTI5NDU2OWNiNTU4NTczYWU0ZGUyM2VkNTg3MWYuLjFm
Nzc5NGZiYmNiZjVmZjZiYjI0YTkyNTFjYTk0ZWY2NTZmYzY0YzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2
ZS5oCkBAIC0yODYsNiArMjg2LDEwIEBACiAjZGVmaW5lIEhBVkVfSU9TVVJGQUNFIDEKICNlbmRp
ZgogCisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBIQVZFX0NWRElTUExBWUxJTksgMQorI2Vu
ZGlmCisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9T
SU1VTEFUT1IpCiAjZGVmaW5lIEhBVkVfSU9TVVJGQUNFX0NPUkVJTUFHRV9TVVBQT1JUIDEKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
SU9TdXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9T
dXJmYWNlLm1tCmluZGV4IGNmN2NiNmU1M2NkNDk4MzZjYjQ5M2FhY2JlMTZiYjA1ZTQzNzRiNjgu
LmNhNGZmOTU4NjUxOTA0MjVmMGMwMmI0MTQzMDE4OGQzYmM2MzdiYWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KQEAgLTMy
MSw3ICszMjEsNyBAQCBDR0NvbnRleHRSZWYgSU9TdXJmYWNlOjplbnN1cmVQbGF0Zm9ybUNvbnRl
eHQoY29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKICAgICAKICAgICBtX2NnQ29udGV4dCA9
IGFkb3B0Q0YoQ0dJT1N1cmZhY2VDb250ZXh0Q3JlYXRlKG1fc3VyZmFjZS5nZXQoKSwgbV9jb250
ZXh0U2l6ZS53aWR0aCgpLCBtX2NvbnRleHRTaXplLmhlaWdodCgpLCBiaXRzUGVyQ29tcG9uZW50
LCBiaXRzUGVyUGl4ZWwsIG1fY29sb3JTcGFjZS5nZXQoKSwgYml0bWFwSW5mbykpOwogCi0jaWYg
UExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcp
CisjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmIChhdXRvIGRpc3BsYXlNYXNrID0gcHJpbWFyeU9w
ZW5HTERpc3BsYXlNYXNrKCkpIHsKICAgICAgICAgaWYgKGhvc3RXaW5kb3cgJiYgaG9zdFdpbmRv
dy0+ZGlzcGxheUlEKCkpCiAgICAgICAgICAgICBkaXNwbGF5TWFzayA9IGRpc3BsYXlNYXNrRm9y
RGlzcGxheShob3N0V2luZG93LT5kaXNwbGF5SUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCmluZGV4IDA3ZWJhMDQyNmI2Y2NjNGEyZDE0Yjg3
ZTA4Yjc3NjNmNzUzMGIyZTkuLmU2NmUwMGFkYjI4NzVhZGY2OWExOTdmY2M2OTIzMTZkYTZmOTZl
NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3Bw
CkBAIC02MiwxMSArNjIsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6
YWRkQ29udGV4dChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dAogICAgIGlmICghY29u
dGV4dCkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhRU5BQkxFKFdF
QlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQotICAgIGlmICghbV9jb250ZXh0cy5zaXpl
KCkpCi0gICAgICAgIENHRGlzcGxheVJlZ2lzdGVyUmVjb25maWd1cmF0aW9uQ2FsbGJhY2soZGlz
cGxheVdhc1JlY29uZmlndXJlZCwgbnVsbHB0cik7Ci0jZW5kaWYKLQogICAgIEFTU0VSVCghbV9j
b250ZXh0cy5jb250YWlucyhjb250ZXh0KSk7CiAgICAgbV9jb250ZXh0cy5hcHBlbmQoY29udGV4
dCk7CiB9CkBAIC03NiwxMCArNzEsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFu
YWdlcjo6cmVtb3ZlQ29udGV4dChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udAogICAgIGlm
ICghbV9jb250ZXh0cy5jb250YWlucyhjb250ZXh0KSkKICAgICAgICAgcmV0dXJuOwogICAgIG1f
Y29udGV4dHMucmVtb3ZlRmlyc3QoY29udGV4dCk7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAhRU5B
QkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQotICAgIGlmICghbV9jb250ZXh0
cy5zaXplKCkpCi0gICAgICAgIENHRGlzcGxheVJlbW92ZVJlY29uZmlndXJhdGlvbkNhbGxiYWNr
KGRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQsIG51bGxwdHIpOwotI2VuZGlmCiB9CiAKIHZvaWQgR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpyZWN5Y2xlQ29udGV4dElmTmVjZXNzYXJ5KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbQppbmRleCBjMTljOTc0
MzMwNjZjMGQ2MjYxZjVkMmFkZGUyOTBjMzkzNjUyNTg4Li4wNmZkZDUyODI2ZTdjZDJmN2EwYzlk
NTBjODllNmI5ZTFjYTlmMDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvS2V5RXZlbnRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tleUV2
ZW50TWFjLm1tCkBAIC0yNTksMTMgKzI1OSwxMiBAQCB2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dDo6ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFR5cGUgdHlwZSwgYm9vbCBiYWNrd2FyZENvbQog
CiBPcHRpb25TZXQ8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dDo6Y3VycmVudFN0YXRlT2ZNb2RpZmllcktleXMoKQogewotI2lmIEVOQUJMRShXRUJQUk9DRVNT
X1dJTkRPV1NFUlZFUl9CTE9DS0lORykKICAgICAvLyBzX2N1cnJlbnRNb2RpZmllcnMgaXMgb25s
eSBzZXQgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcywgbm90IGluIHRoZSBVSSBwcm9jZXNzLgog
ICAgIGlmIChzX2N1cnJlbnRNb2RpZmllcnMpIHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKICAgICAgICAgcmV0dXJuICpzX2N1cnJlbnRNb2RpZmllcnM7CiAgICAgfQotI2VuZGlm
CisKICAgICBVSW50MzIgY3VycmVudE1vZGlmaWVycyA9IEdldEN1cnJlbnRLZXlNb2RpZmllcnMo
KTsKIAogICAgIE9wdGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCmlu
ZGV4IDI1M2UzZjI0NGRhOWRhODQ3OTNlZDViNWI4NjQ0MGEyNWIwOTNjY2QuLmQ3ZDllZjA1ZTNm
NTNhMDU1MGQxZTZjN2FiMTE5N2E3ZDVkNWQzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KQEAgLTIwMiwxMyArMjAyLDEwIEBAIElP
UmVnaXN0cnlHUFVJRCBwcmltYXJ5R1BVSUQoKQogCiBJT1JlZ2lzdHJ5R1BVSUQgZ3B1SURGb3JE
aXNwbGF5KFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKIHsKLSNpZiBFTkFCTEUoV0VCUFJP
Q0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAgICAgaWYgKGF1dG8gZGF0YSA9IHNjcmVlbkRh
dGEoZGlzcGxheUlEKSkKICAgICAgICAgcmV0dXJuIGRhdGEtPmdwdUlEOworCiAgICAgcmV0dXJu
IDA7Ci0jZWxzZQotICAgIHJldHVybiBncHVJREZvckRpc3BsYXlNYXNrKENHRGlzcGxheUlEVG9P
cGVuR0xEaXNwbGF5TWFzayhkaXNwbGF5SUQpKTsKLSNlbmRpZgogfQogCiBJT1JlZ2lzdHJ5R1BV
SUQgZ3B1SURGb3JEaXNwbGF5TWFzayhHTHVpbnQgZGlzcGxheU1hc2spCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggMDcxOTdlMDM4
YTNhMjg0ODMxYTY5MDdhODc0MGM5MWUxY2Q2NTlhZC4uOGUwMGJkNzE4YmY1MGI2MzRkOGIyOTY2
NjhjY2RlYjViYzg0MjllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxBbmltYXRvck1hYy5tbQpAQCAtMzAyLDQxICszMDIsMjggQEAgc3RhdGljIFRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEZlYXR1cmVUb0FuaW1hdGUgZmVhdHVyZSkK
IH0KICNlbmRpZgogCi0jaWYgIUVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lO
RykKLUBpbnRlcmZhY2UgV2ViU2Nyb2xsYmFyUGFydEFuaW1hdGlvbiA6IE5TQW5pbWF0aW9uCi0j
ZWxzZQogQGludGVyZmFjZSBXZWJTY3JvbGxiYXJQYXJ0QW5pbWF0aW9uIDogTlNPYmplY3QKLSNl
bmRpZgogewogICAgIFNjcm9sbGJhciogX3Njcm9sbGJhcjsKICAgICBSZXRhaW5QdHI8TlNTY3Jv
bGxlckltcD4gX3Njcm9sbGVySW1wOwogICAgIEZlYXR1cmVUb0FuaW1hdGUgX2ZlYXR1cmVUb0Fu
aW1hdGU7CiAgICAgQ0dGbG9hdCBfc3RhcnRWYWx1ZTsKICAgICBDR0Zsb2F0IF9lbmRWYWx1ZTsK
LSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAgICAgTlNUaW1l
SW50ZXJ2YWwgX2R1cmF0aW9uOwogICAgIFJldGFpblB0cjxOU1RpbWVyPiBfdGltZXI7CiAgICAg
UmV0YWluUHRyPE5TRGF0ZT4gX3N0YXJ0RGF0ZTsKICAgICBSZWZQdHI8Q3ViaWNCZXppZXJUaW1p
bmdGdW5jdGlvbj4gX3RpbWluZ0Z1bmN0aW9uOwotI2VuZGlmCiB9CiAtIChpZClpbml0V2l0aFNj
cm9sbGJhcjooU2Nyb2xsYmFyKilzY3JvbGxiYXIgZmVhdHVyZVRvQW5pbWF0ZTooRmVhdHVyZVRv
QW5pbWF0ZSlmZWF0dXJlVG9BbmltYXRlIGFuaW1hdGVGcm9tOihDR0Zsb2F0KXN0YXJ0VmFsdWUg
YW5pbWF0ZVRvOihDR0Zsb2F0KWVuZFZhbHVlIGR1cmF0aW9uOihOU1RpbWVJbnRlcnZhbClkdXJh
dGlvbjsKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAtICh2
b2lkKXNldEN1cnJlbnRQcm9ncmVzczooTlNUaW1lciAqKXRpbWVyOwogLSAodm9pZClzZXREdXJh
dGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb247CiAtICh2b2lkKXN0b3BBbmltYXRpb247Ci0j
ZW5kaWYKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYlNjcm9sbGJhclBhcnRBbmltYXRpb24K
IAogLSAoaWQpaW5pdFdpdGhTY3JvbGxiYXI6KFNjcm9sbGJhciopc2Nyb2xsYmFyIGZlYXR1cmVU
b0FuaW1hdGU6KEZlYXR1cmVUb0FuaW1hdGUpZmVhdHVyZVRvQW5pbWF0ZSBhbmltYXRlRnJvbToo
Q0dGbG9hdClzdGFydFZhbHVlIGFuaW1hdGVUbzooQ0dGbG9hdCllbmRWYWx1ZSBkdXJhdGlvbjoo
TlNUaW1lSW50ZXJ2YWwpZHVyYXRpb24KIHsKLSNpZiAhRU5BQkxFKFdFQlBST0NFU1NfV0lORE9X
U0VSVkVSX0JMT0NLSU5HKQotICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhEdXJhdGlvbjpkdXJh
dGlvbiBhbmltYXRpb25DdXJ2ZTpOU0FuaW1hdGlvbkVhc2VJbk91dF07Ci0gICAgaWYgKCFzZWxm
KQotICAgICAgICByZXR1cm4gbmlsOwotI2Vsc2UKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwog
ICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTM0NSw3ICszMzIsNiBAQCAt
IChpZClpbml0V2l0aFNjcm9sbGJhcjooU2Nyb2xsYmFyKilzY3JvbGxiYXIgZmVhdHVyZVRvQW5p
bWF0ZTooRmVhdHVyZVRvQW5pbWF0ZQogICAgIF90aW1lciA9IGFkb3B0TlMoW1tOU1RpbWVyIGFs
bG9jXSBpbml0V2l0aEZpcmVEYXRlOltOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5v
dzowXSBpbnRlcnZhbDp0aW1lSW50ZXJ2YWwgdGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9y
KHNldEN1cnJlbnRQcm9ncmVzczopIHVzZXJJbmZvOm5pbCByZXBlYXRzOllFU10pOwogICAgIF9k
dXJhdGlvbiA9IGR1cmF0aW9uOwogICAgIF90aW1pbmdGdW5jdGlvbiA9IEN1YmljQmV6aWVyVGlt
aW5nRnVuY3Rpb246OmNyZWF0ZShDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uOjpFYXNlSW5PdXQp
OwotI2VuZGlmCiAKICAgICBMT0dfV0lUSF9TVFJFQU0oT3ZlcmxheVNjcm9sbGJhcnMsIHN0cmVh
bSA8PCAiQ3JlYXRpbmcgV2ViU2Nyb2xsYmFyUGFydEFuaW1hdGlvbiBmb3IgIiA8PCBmZWF0dXJl
VG9BbmltYXRlIDw8ICIgZnJvbSAiIDw8IHN0YXJ0VmFsdWUgPDwgIiB0byAiIDw8IGVuZFZhbHVl
KTsKIApAQCAtMzU0LDEwICszNDAsNiBAQCAtIChpZClpbml0V2l0aFNjcm9sbGJhcjooU2Nyb2xs
YmFyKilzY3JvbGxiYXIgZmVhdHVyZVRvQW5pbWF0ZTooRmVhdHVyZVRvQW5pbWF0ZQogICAgIF9z
dGFydFZhbHVlID0gc3RhcnRWYWx1ZTsKICAgICBfZW5kVmFsdWUgPSBlbmRWYWx1ZTsKIAotI2lm
ICFFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0gICAgW3NlbGYgc2V0
QW5pbWF0aW9uQmxvY2tpbmdNb2RlOk5TQW5pbWF0aW9uTm9uYmxvY2tpbmddOwotI2VuZGlmCi0K
ICAgICByZXR1cm4gc2VsZjsKIH0KIApAQCAtMzY5LDEyICszNTEsOCBAQCAtICh2b2lkKXN0YXJ0
QW5pbWF0aW9uCiAKICAgICBMT0dfV0lUSF9TVFJFQU0oT3ZlcmxheVNjcm9sbGJhcnMsIHN0cmVh
bSA8PCAiLVtXZWJTY3JvbGxiYXJQYXJ0QW5pbWF0aW9uICIgPDwgc2VsZiA8PCAic3RhcnRBbmlt
YXRpb25dIGZvciAiIDw8IF9mZWF0dXJlVG9BbmltYXRlKTsKIAotI2lmICFFTkFCTEUoV0VCUFJP
Q0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0gICAgW3N1cGVyIHN0YXJ0QW5pbWF0aW9uXTsK
LSNlbHNlCiAgICAgW1tOU1J1bkxvb3AgbWFpblJ1bkxvb3BdIGFkZFRpbWVyOl90aW1lci5nZXQo
KSBmb3JNb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlXTsKICAgICBfc3RhcnREYXRlID0gYWRvcHRO
UyhbW05TRGF0ZSBhbGxvY10gaW5pdFdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzowXSk7Ci0jZW5k
aWYKIH0KIAogLSAodm9pZClzZXRTdGFydFZhbHVlOihDR0Zsb2F0KXN0YXJ0VmFsdWUKQEAgLTM4
NywxNSArMzY1LDggQEAgLSAodm9pZClzZXRFbmRWYWx1ZTooQ0dGbG9hdCllbmRWYWx1ZQogICAg
IF9lbmRWYWx1ZSA9IGVuZFZhbHVlOwogfQogCi0jaWYgIUVOQUJMRShXRUJQUk9DRVNTX1dJTkRP
V1NFUlZFUl9CTE9DS0lORykKLS0gKHZvaWQpc2V0Q3VycmVudFByb2dyZXNzOihOU0FuaW1hdGlv
blByb2dyZXNzKXByb2dyZXNzCi0jZWxzZQogLSAodm9pZClzZXRDdXJyZW50UHJvZ3Jlc3M6KE5T
VGltZXIgKil0aW1lcgotI2VuZGlmCiB7Ci0jaWYgIUVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykKLSAgICBbc3VwZXIgc2V0Q3VycmVudFByb2dyZXNzOnByb2dyZXNzXTsK
LSNlbHNlCiAgICAgQ0dGbG9hdCBwcm9ncmVzcyA9IDA7CiAgICAgTlNEYXRlICpub3cgPSBbTlNE
YXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MF07CiAgICAgTlNUaW1lSW50ZXJ2YWwg
ZWxhcHNlZCA9IFtub3cgdGltZUludGVydmFsU2luY2VEYXRlOl9zdGFydERhdGUuZ2V0KCldOwpA
QCAtNDA4LDcgKzM3OSw2IEBAIC0gKHZvaWQpc2V0Q3VycmVudFByb2dyZXNzOihOU1RpbWVyICop
dGltZXIKICAgICAgICAgICAgIHQgPSBlbGFwc2VkIC8gX2R1cmF0aW9uOwogICAgICAgICBwcm9n
cmVzcyA9IF90aW1pbmdGdW5jdGlvbi0+dHJhbnNmb3JtVGltZSh0LCBfZHVyYXRpb24pOwogICAg
IH0KLSNlbmRpZgogICAgIEFTU0VSVChfc2Nyb2xsYmFyKTsKIAogICAgIExPR19XSVRIX1NUUkVB
TShPdmVybGF5U2Nyb2xsYmFycywgc3RyZWFtIDw8ICItW1dlYlNjcm9sbGJhclBhcnRBbmltYXRp
b24gIiA8PCBzZWxmIDw8ICJzZXRDdXJyZW50UHJvZ3Jlc3M6IiA8PCBwcm9ncmVzcyA8PCJdIGZv
ciAiIDw8IF9mZWF0dXJlVG9BbmltYXRlKTsKQEAgLTQ0Niw3ICs0MTYsNiBAQCAtICh2b2lkKWlu
dmFsaWRhdGUKICAgICBfc2Nyb2xsYmFyID0gMDsKIH0KIAotI2lmIEVOQUJMRShXRUJQUk9DRVNT
X1dJTkRPV1NFUlZFUl9CTE9DS0lORykKIC0gKHZvaWQpc2V0RHVyYXRpb246KE5TVGltZUludGVy
dmFsKWR1cmF0aW9uCiB7CiAgICAgX2R1cmF0aW9uID0gZHVyYXRpb247CkBAIC00NTYsNyArNDI1
LDYgQEAgLSAodm9pZClzdG9wQW5pbWF0aW9uCiB7CiAgICAgW190aW1lciBpbnZhbGlkYXRlXTsK
IH0KLSNlbmRpZgogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
Y29jb2EvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29j
b2EvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbQppbmRleCAyNDA1OGU5YjcxZGEwZTNkYzlkNjAzYTJm
YTc3NTFlZjM1Njc3ZjAxLi4xZGE4M2VjM2U0MWUxYTZjOGE1OTMzYzlhZGZjNDZjY2E1NTA4ZDI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0xheWVySG9zdGluZ0Nv
bnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9MYXllckhvc3RpbmdD
b250ZXh0Lm1tCkBAIC02Nyw3ICs2Nyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxMYXllckhvc3RpbmdD
b250ZXh0PiBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpCiAgICAg
ICAgIGtDQUNvbnRleHREaXNwbGF5SWQgOiBAMTAwMDAKICNlbmRpZgogICAgIH1dOwotI2VsaWYg
IVBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJf
QkxPQ0tJTkcpCisjZWxpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAgICAgW0NBQ29udGV4dCBz
ZXRBbGxvd3NDR1NDb25uZWN0aW9uczpOT107CiAgICAgbGF5ZXJIb3N0aW5nQ29udGV4dC0+bV9j
b250ZXh0ID0gW0NBQ29udGV4dCByZW1vdGVDb250ZXh0V2l0aE9wdGlvbnM6QHsKICAgICAgICAg
a0NBQ29udGV4dENJRmlsdGVyQmVoYXZpb3IgOiAgQCJpZ25vcmUiLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL0hhbmdEZXRlY3Rpb25EaXNhYmxlck1hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9IYW5nRGV0ZWN0aW9uRGlzYWJsZXJNYWMubW0KaW5kZXggY2Q2
ZDM0MjEyNDE0YjdhY2M2MGQ3MTI4NjU1NGFlNDZhNWI3ZmYxMi4uZTI0YmU2N2MxYWFiMjQxZGYx
YzdmZDQ1Zjk0NzgzYmZkMTE1MGMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL0hhbmdEZXRlY3Rpb25EaXNhYmxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvSGFuZ0RldGVjdGlvbkRpc2FibGVyTWFjLm1tCkBAIC00OCwxNCArNDgsMTQgQEAgc3Rh
dGljIGJvb2wgY2xpZW50c01heUlnbm9yZUV2ZW50cygpCiBzdGF0aWMgdm9pZCBzZXRDbGllbnRz
TWF5SWdub3JlRXZlbnRzKGJvb2wgY2xpZW50c01heUlnbm9yZUV2ZW50cykKIHsKICAgICBhdXRv
IGNnc0lkID0gQ0dTTWFpbkNvbm5lY3Rpb25JRCgpOwotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJ
TkRPV1NFUlZFUl9CTE9DS0lORykKKwogICAgIC8vIEluIG1hY09TIDEwLjE0IGFuZCBsYXRlciwg
dGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0byB0aGUgV2luZG93
U2VydmVyLgogICAgIC8vIEluIHRoaXMgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyB2YWxpZCBXaW5k
b3dTZXJ2ZXIgbWFpbiBjb25uZWN0aW9uLgogICAgIGlmICghY2dzSWQpCiAgICAgICAgIHJldHVy
bjsKICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE4NDQ4ND4gV2Ugc2hvdWxk
IGFzc2VydCBoZXJlIGlmIHRoaXMgaXMgYmVpbmcgY2FsbGVkIGZyb20KICAgICAvLyB0aGUgV2Vi
Q29udGVudCBwcm9jZXNzLgotI2VuZGlmCisKICAgICBpZiAoQ0dTU2V0Q29ubmVjdGlvblByb3Bl
cnR5KGNnc0lkLCBjZ3NJZCwgY2xpZW50c01heUlnbm9yZUV2ZW50c0tleSwgY2xpZW50c01heUln
bm9yZUV2ZW50cyA/IGtDRkJvb2xlYW5UcnVlIDoga0NGQm9vbGVhbkZhbHNlKSAhPSBrQ0dFcnJv
clN1Y2Nlc3MpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXgg
ZjQ4NjE4NDI5NmIwMjFhYzk1NDExZmI0ODhhZjU1ODZjMjkwYmIwZS4uNjQ4MGYyNDMwNDA5MWUz
OTk2NmFkMDhhYjA4YTExMGZlZGVkNWZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC02NjYsMTIgKzY2NiwxMCBA
QCB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycygpCiAg
ICAgICAgIHNjcmVlblByb3BlcnRpZXNTdGF0ZUNoYW5nZWQoKTsKICAgICB9XTsKIAotI2lmIEVO
QUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKICAgICBtX3Njcm9sbGVyU3R5
bGVOb3RpZmljYXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENl
bnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TUHJlZmVycmVkU2Nyb2xsZXJTdHlsZURpZENoYW5n
ZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsIHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1cnJlbnRR
dWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICpub3RpZmljYXRpb24pIHsKICAgICAg
ICAgYXV0byBzY3JvbGxiYXJTdHlsZSA9IFtOU1Njcm9sbGVyIHByZWZlcnJlZFNjcm9sbGVyU3R5
bGVdOwogICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNj
cm9sbGVyU3R5bGVQcmVmZXJlbmNlQ2hhbmdlZChzY3JvbGxiYXJTdHlsZSkpOwogICAgIH1dOwot
I2VuZGlmCiAKICAgICBtX2FjdGl2YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50
ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRpb25EaWRCZWNv
bWVBY3RpdmVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwIHF1ZXVlOltOU09wZXJhdGlvblF1ZXVl
IGN1cnJlbnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICpub3RpZmljYXRpb24p
IHsKICNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKQEAgLTczNiw5ICs3MzQsNyBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCkKICAg
ICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1f
YXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25Ob3RpZmljYXRpb25PYnNlcnZlci5nZXQoKV07CiAg
ICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpt
X2F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25Ob3RpZmljYXRpb25PYnNlcnZlci5nZXQoKV07CiAg
ICAgW1tOU1dvcmtzcGFjZS5zaGFyZWRXb3Jrc3BhY2Ugbm90aWZpY2F0aW9uQ2VudGVyXSByZW1v
dmVPYnNlcnZlcjptX2FjY2Vzc2liaWxpdHlEaXNwbGF5T3B0aW9uc05vdGlmaWNhdGlvbk9ic2Vy
dmVyLmdldCgpXTsKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcp
CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZl
cjptX3Njcm9sbGVyU3R5bGVOb3RpZmljYXRpb25PYnNlcnZlci5nZXQoKV07Ci0jZW5kaWYKICAg
ICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1f
ZGVhY3RpdmF0aW9uT2JzZXJ2ZXIuZ2V0KCldOwogICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVt
b3ZlT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREaXN0cmlidXRlZENlbnRlcigpLCB0
aGlzLCBBcHBsZUNvbG9yUHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uLCBudWxscHRyKTsK
ICNlbGlmICFQTEFURk9STShNQUNDQVRBTFlTVCkKQEAgLTc2Nyw3ICs3NjMsNyBAQCBib29sIFdl
YlByb2Nlc3NQb29sOjppc1VSTEtub3duSFNUU0hvc3QoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcp
IGNvbnN0CiAgICAgcmV0dXJuIF9DRk5ldHdvcmtJc0tub3duSFNUU0hvc3RXaXRoU2Vzc2lvbih1
cmwuZ2V0KCksIG51bGxwdHIpOwogfQogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VC
UFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgSEFWRShDVkRJU1BMQVlMSU5LKQog
T3B0aW9uYWw8dW5zaWduZWQ+IFdlYlByb2Nlc3NQb29sOjpub21pbmFsRnJhbWVzUGVyU2Vjb25k
Rm9yRGlzcGxheShXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiB7CiAgICAg
Zm9yIChhdXRvJiBkaXNwbGF5TGluayA6IG1fZGlzcGxheUxpbmtzKSB7CkBAIC04MTAsNyArODA2
LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c3RvcERpc3BsYXlMaW5rcyhJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24pCiAgICAgZm9yIChhdXRvJiBkaXNwbGF5TGluayA6IG1fZGlzcGxheUxp
bmtzKQogICAgICAgICBkaXNwbGF5TGluay0+cmVtb3ZlT2JzZXJ2ZXJzKGNvbm5lY3Rpb24pOwog
fQotI2VuZGlmCisjZW5kaWYgLy8gSEFWRShDVkRJU1BMQVlMSU5LKQogCiAvLyBGSVhNRTogRGVw
cmVjYXRlZC4gTGVmdCBoZXJlIHVudGlsIGEgZmluYWwgZGVjaXNpb24gaXMgbWFkZS4KIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnNldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdj
Mjk3ZmNhODFlZGM1Yzc4YWM3MDFjZmNhMTI3ODE1MDRmMGEzYmIuLmRhZTBmODhmZDk5OWNkOTFm
Nzg3N2U2MTA2ZTY2MGJhNmJjNGQ5ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtMjI0LDYgKzIyNCw3IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1B
QykKKyNpbmNsdWRlICJEaXNwbGF5TGluay5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VVdGls
aXRpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgogI2VuZGlmCkBAIC0y
OTQsMTAgKzI5NSw2IEBACiAjaW5jbHVkZSAiV2ViRGF0ZVRpbWVQaWNrZXIuaCIKICNlbmRpZgog
Ci0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQotI2luY2x1ZGUg
IkRpc3BsYXlMaW5rLmgiCi0jZW5kaWYKLQogLy8gVGhpcyBjb250cm9scyB3aGF0IHN0cmF0ZWd5
IHdlIHVzZSBmb3IgbW91c2Ugd2hlZWwgY29hbGVzY2luZy4KICNkZWZpbmUgTUVSR0VfV0hFRUxf
RVZFTlRTIDEKIApAQCAtMzIxLDcgKzMxOCw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBERUZJTkVfREVCVUdfT05MWV9HTE9CQUwoV1RGOjpSZWZDb3VudGVkTGVha0NvdW50ZXIsIHdl
YlBhZ2VQcm94eUNvdW50ZXIsICgiV2ViUGFnZVByb3h5IikpOwogCi0jaWYgRU5BQkxFKFdFQlBS
T0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQogY2xhc3MgU2Nyb2xsaW5nT2JzZXJ2ZXIgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNjcm9sbGluZ09ic2VydmVyKTsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKQEAgLTM0OCw3ICszNDQsNiBAQCBTY3JvbGxpbmdPYnNlcnZlciYg
U2Nyb2xsaW5nT2JzZXJ2ZXI6OnNpbmdsZXRvbigpCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFNjcm9sbGluZ09ic2VydmVyPiBkZXRlY3RvcjsKICAgICByZXR1cm4gZGV0ZWN0b3I7CiB9Ci0j
ZW5kaWYgLy8gRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQogCiBjbGFz
cyBTdG9yYWdlUmVxdWVzdHMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFN0b3JhZ2VSZXF1
ZXN0cyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMjc0Nyw5ICsyNzQyLDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVu
dCYgZXZlbnQpCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzZW5kV2hlZWxFdmVudChjb25zdCBXZWJX
aGVlbEV2ZW50JiBldmVudCkKIHsKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJf
QkxPQ0tJTkcpCiAgICAgU2Nyb2xsaW5nT2JzZXJ2ZXI6OnNpbmdsZXRvbigpLndpbGxTZW5kV2hl
ZWxFdmVudCgpOwotI2VuZGlmCiAKICAgICBzZW5kKAogICAgICAgICBNZXNzYWdlczo6RXZlbnRE
aXNwYXRjaGVyOjpXaGVlbEV2ZW50KApAQCAtOTkzMSw3ICs5OTI0LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmdldElzVmlld1Zpc2libGUoYm9vbCYgcmVzdWx0KQogCiB2b2lkIFdlYlBhZ2VQcm94
eTo6dXBkYXRlQ3VycmVudE1vZGlmaWVyU3RhdGUoKQogewotI2lmIFBMQVRGT1JNKE1BQykgJiYg
RU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKSB8fCBQTEFURk9STShJT1Nf
RkFNSUxZKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGF1dG8gbW9kaWZpZXJzID0gUGxhdGZv
cm1LZXlib2FyZEV2ZW50OjpjdXJyZW50U3RhdGVPZk1vZGlmaWVyS2V5cygpOwogICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlVwZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRlKG1vZGlmaWVycykp
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5k
ZXggNDEyMGQzN2Q0YzA1NzljZTczZTgxMGY0NTBjNzI3ZTdmMzVlY2FiZi4uM2VjZTUxZTg4ZWM0
Y2FhMTliMjQyZWE5YmNjMWZlZWIzMjg1ZGE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNjg2LDkgKzY4Niw3IEBAIHN0YXRpYyB2b2lkIGRpc3Bs
YXlSZWNvbmZpZ3VyYXRpb25DYWxsQmFjayhDR0RpcmVjdERpc3BsYXlJRCBkaXNwbGF5LCBDR0Rp
c3BsYXlDCiAgICAgYXV0byBzY3JlZW5Qcm9wZXJ0aWVzID0gV2ViQ29yZTo6Y29sbGVjdFNjcmVl
blByb3BlcnRpZXMoKTsKICAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogV2ViUHJvY2Vzc1Bv
b2w6OmFsbFByb2Nlc3NQb29scygpKSB7CiAgICAgICAgIHByb2Nlc3NQb29sLT5zZW5kVG9BbGxQ
cm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldFNjcmVlblByb3BlcnRpZXMoc2NyZWVu
UHJvcGVydGllcykpOwotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lO
RykKICAgICAgICAgcHJvY2Vzc1Bvb2wtPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2Vi
UHJvY2Vzczo6RGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkKGRpc3BsYXksIGZsYWdzKSk7Ci0j
ZW5kaWYKICAgICB9CiB9CiAKQEAgLTE5NTMsNyArMTk1MSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnJlc2V0TW9ja01lZGlhRGV2aWNlcygpCiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRE
aXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWRNZXNzYWdlRm9yVGVzdGluZygpCiB7Ci0jaWYgUExB
VEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisj
aWYgUExBVEZPUk0oTUFDKQogICAgIGF1dG8gZGlzcGxheSA9IENHU01haW5EaXNwbGF5SUQoKTsK
IAogICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBXZWJQcm9jZXNzUG9vbDo6YWxsUHJvY2Vz
c1Bvb2xzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4
IGI3OGJmZGUyMGJhNGI1NGZlZmRkMzhhOWIyNTg4Zjg0NDMyMTM4NTAuLjY5YzMzNGQ4YWM0M2Rh
NzI1MjMzNjgxNWZjNGZhNjUxODU4NzI3ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaApAQCAtNzAsMTEgKzcwLDkgQEAgT0JKQ19DTEFTUyBXS1dlYkluc3BlY3Rv
clByZWZlcmVuY2VPYnNlcnZlcjsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQotI2ltcG9y
dCA8V2ViQ29yZS9Qb3dlck9ic2VydmVyTWFjLmg+Ci0jaW1wb3J0IDxwYWwvc3lzdGVtL1N5c3Rl
bVNsZWVwTGlzdGVuZXIuaD4KLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxP
Q0tJTkcpCiAjaW5jbHVkZSAiRGlzcGxheUxpbmsuaCIKLSNlbmRpZgorI2luY2x1ZGUgPFdlYkNv
cmUvUG93ZXJPYnNlcnZlck1hYy5oPgorI2luY2x1ZGUgPHBhbC9zeXN0ZW0vU3lzdGVtU2xlZXBM
aXN0ZW5lci5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBBUEkgewpAQCAtMjQwLDcgKzIzOCw3IEBA
IHB1YmxpYzoKICAgICBQbHVnaW5JbmZvU3RvcmUmIHBsdWdpbkluZm9TdG9yZSgpIHsgcmV0dXJu
IG1fcGx1Z2luSW5mb1N0b3JlOyB9CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5B
QkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lmIEhBVkUoQ1ZESVNQTEFZ
TElOSykKICAgICBPcHRpb25hbDx1bnNpZ25lZD4gbm9taW5hbEZyYW1lc1BlclNlY29uZEZvckRp
c3BsYXkoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQpOwogICAgIHZvaWQgc3RhcnREaXNwbGF5
TGluayhJUEM6OkNvbm5lY3Rpb24mLCBEaXNwbGF5TGlua09ic2VydmVySUQsIFdlYkNvcmU6OlBs
YXRmb3JtRGlzcGxheUlEKTsKICAgICB2b2lkIHN0b3BEaXNwbGF5TGluayhJUEM6OkNvbm5lY3Rp
b24mLCBEaXNwbGF5TGlua09ic2VydmVySUQsIFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKTsK
QEAgLTY2Nyw5ICs2NjUsNyBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxOU09iamVjdD4gbV9h
dXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbk5vdGlmaWNhdGlvbk9ic2VydmVyOwogICAgIFJldGFp
blB0cjxOU09iamVjdD4gbV9hdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uTm90aWZpY2F0aW9uT2Jz
ZXJ2ZXI7CiAgICAgUmV0YWluUHRyPE5TT2JqZWN0PiBtX2FjY2Vzc2liaWxpdHlEaXNwbGF5T3B0
aW9uc05vdGlmaWNhdGlvbk9ic2VydmVyOwotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fc2Nyb2xsZXJTdHlsZU5v
dGlmaWNhdGlvbk9ic2VydmVyOwotI2VuZGlmCiAgICAgUmV0YWluUHRyPE5TT2JqZWN0PiBtX2Rl
YWN0aXZhdGlvbk9ic2VydmVyOwogICAgIFJldGFpblB0cjxXS1dlYkluc3BlY3RvclByZWZlcmVu
Y2VPYnNlcnZlcj4gbV93ZWJJbnNwZWN0b3JQcmVmZXJlbmNlT2JzZXJ2ZXI7CiAKQEAgLTc1Myw3
ICs3NDksNyBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlByZXdhcm1JbmZvcm1hdGlvbj4+IG1fcHJl
d2FybUluZm9ybWF0aW9uUGVyUmVnaXN0cmFibGVEb21haW47CiAKLSNpZiBQTEFURk9STShNQUMp
ICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBIQVZFKENW
RElTUExBWUxJTkspCiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGluaz4+IG1f
ZGlzcGxheUxpbmtzOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCmluZGV4IDg5MjgyYWQ4M2VmYTA2YWM2YzY3MjQ3MmIyNzIyNmFjMDE3MWFh
ZTAuLjQ5MmYzYmI5YTA2ZWYyMGUyNzM4MWVhZmRmYWI1ZGQ4NDNiOTAzZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjQ0LDcgKzI0NCw3IEBA
IFdlYlByb2Nlc3NQcm94eTo6fldlYlByb2Nlc3NQcm94eSgpCiAKICAgICBXZWJQYXN0ZWJvYXJk
UHJveHk6OnNpbmdsZXRvbigpLnJlbW92ZVdlYlByb2Nlc3NQcm94eSgqdGhpcyk7CiAKLSNpZiBQ
TEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykK
KyNpZiBIQVZFKENWRElTUExBWUxJTkspCiAgICAgaWYgKHN0YXRlKCkgPT0gU3RhdGU6OlJ1bm5p
bmcpCiAgICAgICAgIHByb2Nlc3NQb29sKCkuc3RvcERpc3BsYXlMaW5rcygqY29ubmVjdGlvbigp
KTsKICNlbmRpZgpAQCAtNDM5LDcgKzQzOSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpwcm9j
ZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsKICAgICBBU1NF
UlRfVU5VU0VEKGNvbm5lY3Rpb24sIHRoaXMtPmNvbm5lY3Rpb24oKSA9PSAmY29ubmVjdGlvbik7
CiAKLSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9C
TE9DS0lORykKKyNpZiBIQVZFKENWRElTUExBWUxJTkspCiAgICAgcHJvY2Vzc1Bvb2woKS5zdG9w
RGlzcGxheUxpbmtzKGNvbm5lY3Rpb24pOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDVkYWM4MzFjMmVkMjY3MTBjNTcwOGU4ZDQ0MDdh
OTRjYmE0NjY2MDcuLjIyNjhiNzc5NTllZWJhNDk3N2FlMDBmM2QyN2NhOGM2NGFmZTQ2NmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0yOTcsNyArMjk3
LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVsZWFzZUhpZ2hQZXJmb3JtYW5jZUdQVSgpOwogI2Vu
ZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZF
Ul9CTE9DS0lORykKKyNpZiBIQVZFKENWRElTUExBWUxJTkspCiAgICAgdm9pZCBzdGFydERpc3Bs
YXlMaW5rKERpc3BsYXlMaW5rT2JzZXJ2ZXJJRCwgV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQp
OwogICAgIHZvaWQgc3RvcERpc3BsYXlMaW5rKERpc3BsYXlMaW5rT2JzZXJ2ZXJJRCwgV2ViQ29y
ZTo6UGxhdGZvcm1EaXNwbGF5SUQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNDlkYjBiMzQ0MGJiODBh
Y2Y1NzUzZmMwMDg3MzkwMTY0MGI4NDA0Ni4uZWE5Y2RhNTAxZjA4OTBiZDNkYTMwZjAyZmUxNGMz
YjFjYmIyYzczZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtNzEsNyArNzEsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9j
ZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIFJlbGVhc2VIaWdoUGVyZm9ybWFuY2VHUFUo
KQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRP
V1NFUlZFUl9CTE9DS0lORykKKyNpZiBIQVZFKENWRElTUExBWUxJTkspCiAgICAgU3RhcnREaXNw
bGF5TGluayhXZWJLaXQ6OkRpc3BsYXlMaW5rT2JzZXJ2ZXJJRCBvYnNlcnZlcklELCB1aW50MzJf
dCBkaXNwbGF5SUQpCiAgICAgU3RvcERpc3BsYXlMaW5rKFdlYktpdDo6RGlzcGxheUxpbmtPYnNl
cnZlcklEIG9ic2VydmVySUQsIHVpbnQzMl90IGRpc3BsYXlJRCkKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHAKaW5kZXggMGQxZjM4NzFiYjdmZDBj
ZDBmYmUyNmU5Y2Y4ODFiYjc4MWQ1ZTY1Ni4uMDk1YzA5Y2I3ZGY2Mjk0NmY1ZTQ3NGFlYzY2Mzgx
ZjU2MDU4ZjE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3Bs
YXlMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsu
Y3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRGlz
cGxheUxpbmsuaCIKIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lO
RykKKyNpZiBIQVZFKENWRElTUExBWUxJTkspCiAKICNpbmNsdWRlICJFdmVudERpc3BhdGNoZXJN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgpAQCAtMTUwLDQgKzE1
MCw0IEBAIHZvaWQgRGlzcGxheUxpbms6Om5vdGlmeU9ic2VydmVyc0Rpc3BsYXlXYXNSZWZyZXNo
ZWQoKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIEVOQUJMRShXRUJQUk9D
RVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNlbmRpZiAvLyBIQVZFKENWRElTUExBWUxJTksp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5oCmluZGV4IGFhN2U2ZWVh
YjczNTM2ZGQ4N2Y5YzhjNDM5YTBlNDkzODI3NTlhYjAuLjdkMmVlZDNjMzZiMmY2YzdkOGQwYzAz
MTRhODkzYzI2Y2Q5NGJlMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9EaXNwbGF5TGluay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5
TGluay5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKFdF
QlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykK
IAogI2luY2x1ZGUgIkRpc3BsYXlMaW5rT2JzZXJ2ZXJJRC5oIgogI2luY2x1ZGUgPENvcmVWaWRl
by9DVkRpc3BsYXlMaW5rLmg+CkBAIC03MSw1ICs3MSw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCi0jZW5kaWYKLQorI2VuZGlmIC8vIEhBVkUoQ1ZESVNQTEFZTElOSykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQcm9jZXNzUHJveHlN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1Byb3h5TWFjLm1t
CmluZGV4IDUyZmQwY2UxOTE5ZTQ0MTM3MzFjNjU3NDEyYzA4OWRhMDY4NmIwNjYuLjQ3MTk1NTJm
YjBlNWQyYTZkNzZhNjhiN2JiOWIyYTYzOGVkMTA0NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XZWJQcm9jZXNzUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dlYlByb2Nlc3NQcm94eU1hYy5tbQpAQCAtNTksNyArNTksNiBAQCBi
b29sIFdlYlByb2Nlc3NQcm94eTo6c2hvdWxkQWxsb3dOb25WYWxpZEluamVjdGVkQ29kZSgpIGNv
bnN0CiAgICAgcmV0dXJuICFwYXRoLmlzRW1wdHkoKSAmJiAhcGF0aC5zdGFydHNXaXRoKCIvU3lz
dGVtLyIpOwogfQogCi0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5H
KQogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnN0YXJ0RGlzcGxheUxpbmsoRGlzcGxheUxpbmtPYnNl
cnZlcklEIG9ic2VydmVySUQsIFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkK
IHsKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5D
b21tdW5pY2F0ZVdpdGhXaW5kb3dTZXJ2ZXIpKTsKQEAgLTcyLDcgKzcxLDYgQEAgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OnN0b3BEaXNwbGF5TGluayhEaXNwbGF5TGlua09ic2VydmVySUQgb2JzZXJ2
ZXJJRCwgV2ViQ29yZToKICAgICBBU1NFUlQoY29ubmVjdGlvbigpKTsKICAgICBwcm9jZXNzUG9v
bCgpLnN0b3BEaXNwbGF5TGluaygqY29ubmVjdGlvbigpLCBvYnNlcnZlcklELCBkaXNwbGF5SUQp
OwogfQotI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFj
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL21hYy9JbmplY3Rl
ZEJ1bmRsZU1hYy5tbQppbmRleCBiZDZlMzlmMGYwZmJkMmQ1YjU2MGNlMWMzNDQ2NzQyYjRmZmUw
ODlmLi44M2YwYzAyZTY5Y2JhZDA4NWQwZDNmY2IyM2JiODk5NDRiMjRkZTU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVu
ZGxlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9t
YWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0KQEAgLTUyLDggKzUyLDYgQEAgQGVuZAogbmFtZXNwYWNl
IFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotI2lmIEVOQUJMRShXRUJQUk9D
RVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLQogc3RhdGljIE5TRXZlbnRNb2RpZmllckZsYWdz
IGN1cnJlbnRNb2RpZmllckZsYWdzKGlkIHNlbGYsIFNFTCBfY21kKQogewogICAgIGF1dG8gY3Vy
cmVudE1vZGlmaWVycyA9IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudFN0YXRlT2ZNb2Rp
ZmllcktleXMoKTsKQEAgLTczLDggKzcxLDYgQEAgc3RhdGljIE5TRXZlbnRNb2RpZmllckZsYWdz
IGN1cnJlbnRNb2RpZmllckZsYWdzKGlkIHNlbGYsIFNFTCBfY21kKQogICAgIHJldHVybiBtb2Rp
ZmllcnM7CiB9CiAKLSNlbmRpZgotCiBzdGF0aWMgUmV0YWluUHRyPE5TS2V5ZWRVbmFyY2hpdmVy
PiBjcmVhdGVVbmFyY2hpdmVyKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGJ5dGVzLCBOU1VJbnRlZ2Vy
IGxlbmd0aCkKIHsKICAgICBhdXRvIGRhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0
V2l0aEJ5dGVzTm9Db3B5OmNvbnN0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KGJ5dGVzKSBsZW5ndGg6
bGVuZ3RoIGZyZWVXaGVuRG9uZTpOT10pOwpAQCAtMTc3LDExICsxNzMsOSBAQCBib29sIEluamVj
dGVkQnVuZGxlOjppbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMsCiAgICAgaWYgKGFkZGl0aW9uYWxDbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXJG
dW5jdGlvbikKICAgICAgICAgYWRkaXRpb25hbENsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlckZ1bmN0
aW9uKHRvQVBJKHRoaXMpLCB0b0FQSShpbml0aWFsaXphdGlvblVzZXJEYXRhKSk7CiAKLSNpZiBF
TkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAgICAgLy8gU3dpenpsZSBb
TlNFdmVudCBtb2RpZmVyRmxhZ3NdLCBzaW5jZSBpdCBhbHdheXMgcmV0dXJucyAwIHdoZW4gdGhl
IFdpbmRvd1NlcnZlciBpcyBibG9ja2VkLgogICAgIE1ldGhvZCBtZXRob2QgPSBjbGFzc19nZXRD
bGFzc01ldGhvZChbTlNFdmVudCBjbGFzc10sIEBzZWxlY3Rvcihtb2RpZmllckZsYWdzKSk7CiAg
ICAgbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKG1ldGhvZCwgcmVpbnRlcnByZXRfY2FzdDxJTVA+
KGN1cnJlbnRNb2RpZmllckZsYWdzKSk7Ci0jZW5kaWYKIAogICAgIC8vIEZpcnN0IGNoZWNrIHRv
IHNlZSBpZiB0aGUgYnVuZGxlIGhhcyBhIFdLQnVuZGxlSW5pdGlhbGl6ZSBmdW5jdGlvbi4KICAg
ICBpZiAoaW5pdGlhbGl6ZUZ1bmN0aW9uKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGTGF5ZXJDb250cm9sbGVyU1BJLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGTGF5ZXJDb250cm9sbGVyU1BJLmgKaW5kZXgg
ZDAzOTM1NzllZjY2NzZkYjhmMTFhYjFmYmIxOGYzOTFjNTEwYWExYS4uNjdmNzI3ZDk5NmI1Mzk1
NmIxYWI0NzAyYzk3ZjIyMmJiMDVkYzEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERkxheWVyQ29udHJvbGxlclNQSS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZMYXllckNvbnRyb2xsZXJTUEkuaApAQCAt
MjMsOCArMjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
LSNpZm5kZWYgUERGTGF5ZXJDb250cm9sbGVyU1BJX2gKLSNkZWZpbmUgUERGTGF5ZXJDb250cm9s
bGVyU1BJX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKFBERktJVF9QTFVHSU4pCiAKQEAg
LTE3MCwxNiArMTY5LDEyIEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFBERkxheWVyQ29u
dHJvbGxlckN1cnNvclR5cGUpIHsKIC0gKE5TQXJyYXkgKilhY2Nlc3NpYmlsaXR5Q2hpbGRyZW47
CiAtICh2b2lkKXNldEFjY2Vzc2liaWxpdHlQYXJlbnQ6KGlkKXBhcmVudDsKIC0gKGlkKWFjY2Vz
c2liaWxpdHlFbGVtZW50Rm9yQW5ub3RhdGlvbjooUERGQW5ub3RhdGlvbiAqKWFubm90YXRpb247
Ci0KLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAtICh2b2lk
KXNldERldmljZUNvbG9yU3BhY2U6KENHQ29sb3JTcGFjZVJlZiljb2xvclNwYWNlOwotI2VuZGlm
CisKIEBlbmQKIAogQGludGVyZmFjZSBQREZBbm5vdGF0aW9uIChBY2Nlc3NpYmlsaXR5UHJpdmF0
ZSkKIC0gKGlkKWFjY2Vzc2liaWxpdHlOb2RlOwogQGVuZAogCi0jZW5kaWYKLQotI2VuZGlmIC8v
IFBERkxheWVyQ29udHJvbGxlclNQSV9oCisjZW5kaWYgLy8gRU5BQkxFKFBERktJVF9QTFVHSU4p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1
Z2luLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5t
bQppbmRleCBhMmM4YmIxYTQ3MTc4Y2MwYzM0N2FkYzQ3YmQwNjQ5OGRiNTdjMWM3Li5lMjA3NmRk
ODJmNTJiMjQ5OGIxYWEzYWY2MWE0ZThhOTNiNDU3Y2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTYzMywxMiArNjMzLDEw
IEBAIGlubGluZSBQREZQbHVnaW46OlBERlBsdWdpbihXZWJGcmFtZSYgZnJhbWUpCiAKICAgICBb
bV9jb250YWluZXJMYXllciBhZGRTdWJsYXllcjptX2NvbnRlbnRMYXllci5nZXQoKV07CiAgICAg
W21fY29udGFpbmVyTGF5ZXIgYWRkU3VibGF5ZXI6bV9zY3JvbGxDb3JuZXJMYXllci5nZXQoKV07
Ci0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQogICAgIGlmIChb
bV9wZGZMYXllckNvbnRyb2xsZXIgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXREZXZp
Y2VDb2xvclNwYWNlOildKSB7CiAgICAgICAgIGF1dG8gdmlldyA9IGZyYW1lLmNvcmVGcmFtZSgp
LT52aWV3KCk7CiAgICAgICAgIFttX3BkZkxheWVyQ29udHJvbGxlciBzZXREZXZpY2VDb2xvclNw
YWNlOnNjcmVlbkNvbG9yU3BhY2UodmlldyldOwogICAgIH0KLSNlbmRpZgogCiAjaWYgSEFWRShJ
TkNSRU1FTlRBTF9QREZfQVBJUykKICAgICBpZiAobV9pbmNyZW1lbnRhbFBERkxvYWRpbmdFbmFi
bGVkKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YS5jcHAKaW5kZXggYWYzMTJkNzE5YTIyNDFhMjM5MGFhODYxNjgwZWU5ZmQ0ZDQ4ZWFhNy4uZWM1
ZTM2YjViNDRhOTlkNDljYWJkZjgyNmIzZDE0OGRiNzhiOTliNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcApAQCAtODIsNyArODIsNyBA
QCB2b2lkIERyYXdpbmdBcmVhOjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdVcGRhdGVkU2Nyb2xsUG9z
aXRpb24oV1RGOjpGdW5jdGlvbjx2b2lkCiAgICAgZnVuY3Rpb24oKTsKIH0KIAotI2lmICEoUExB
VEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpKQor
I2lmICFQTEFURk9STShNQUMpCiBSZWZQdHI8V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9y
PiBEcmF3aW5nQXJlYTo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxh
eUlEKQogewogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggNjBlMjBmNDQ2MDI5ODdi
ZTU2ZDZmMjFkOTA4YzRiODUwZGJhNTY1My4uZjFiYjhjNzU2MGJhNWI5ZTM4YmEyZmE1ZDExYzBm
ZjkxYjllNDI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC0yOTEsNyArMjkxLDcgQEAgdm9pZCBFdmVudERpc3Bh
dGNoZXI6Om5vdGlmeVNjcm9sbGluZ1RyZWVzRGlzcGxheVdhc1JlZnJlc2hlZChQbGF0Zm9ybURp
c3BsYXlJRAogI2VuZGlmCiB9CiAKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJf
QkxPQ0tJTkcpCisjaWYgSEFWRShDVkRJU1BMQVlMSU5LKQogdm9pZCBFdmVudERpc3BhdGNoZXI6
OmRpc3BsYXlXYXNSZWZyZXNoZWQoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogewogICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAppbmRleCA0NzliZjc5ZDU1MzliMjIzNDVh
OGI3YWYyOTFmMWMzOGMzMjYyMjdiLi42NzFiMjhkZjNlNTEwZGVhMzUwMWQ4MDI4Yjk3ODcxODc2
YTY0YTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVu
dERpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVu
dERpc3BhdGNoZXIuaApAQCAtMTA2LDcgKzEwNiw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZv
aWQgc2VuZERpZFJlY2VpdmVFdmVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViRXZlbnQ6
OlR5cGUsIGJvb2wgZGlkSGFuZGxlRXZlbnQpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCUFJP
Q0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQg
ZGlzcGxheVdhc1JlZnJlc2hlZChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCk7CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCmluZGV4IGJiNTBiOTc3MDUyODQxMWYwMDQwMTNiYjY4
NzFiMWIwZTkxNTQyNGQuLmNmNGY3NjY2NmNjNTM0MzFlOTliZWRlNWU4MjhhOGFhODdhMDNjYzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0
Y2hlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9F
dmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW4KQEAgLTI5LDcgKzI5LDcgQEAgbWVzc2FnZXMgLT4g
RXZlbnREaXNwYXRjaGVyIHsKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogICAgIEdl
c3R1cmVFdmVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYktpdDo6V2ViR2Vz
dHVyZUV2ZW50IGV2ZW50KQogI2VuZGlmCi0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VS
VkVSX0JMT0NLSU5HKQorI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKICAgICBEaXNwbGF5V2FzUmVm
cmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJRCkKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0RyYXdpbmdBcmVhTWFjLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EcmF3aW5nQXJlYU1hYy5jcHAKaW5kZXgg
YjQ3NDk2MDFhY2U3OTUwZTJhNWIwNGNmMjE0NjQ0MDU0OWYxMzNmOC4uMDQyYjZkOTAyYTQwZmNi
MDBlZDAzNjBjOTU4ZjkyNjQzODhmZTIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL0RyYXdpbmdBcmVhTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRHJhd2luZ0FyZWFNYWMuY3BwCkBAIC0zNiw4ICszNiw2
IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0jaWYg
RU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQotCiBjbGFzcyBEaXNwbGF5
UmVmcmVzaE1vbml0b3JNYWMgOiBwdWJsaWMgRGlzcGxheVJlZnJlc2hNb25pdG9yIHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYz4gY3JlYXRlKFBsYXRm
b3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKQEAgLTEwNiw2ICsxMDQsNSBAQCBSZWZQdHI8V2ViQ29y
ZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yPiBEcmF3aW5nQXJlYTo6Y3JlYXRlRGlzcGxheVJlZnJl
c2hNb25pdG9yKAogewogICAgIHJldHVybiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmNyZWF0
ZShkaXNwbGF5SUQpOwogfQotI2VuZGlmIC8vIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZF
Ul9CTE9DS0lORykKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IDMwMWI4ODc3YjM1N2QwZDYxM2EzYWQxMDBhYTk0ZjllOGQ3NmY2MjIuLmNmNzk3MzA3YTdm
YmQ3YWRkYjYzODNmZjY0NWZlZjhhZTY0OTkyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKQEAgLTE1NCw2ICsxNTQsMTAgQEAKICNpbmNsdWRlICJVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUMpCisjaW5jbHVkZSA8
V2ViQ29yZS9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmg+CisjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAjaW5jbHVkZSAiV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmgi
CiAjZW5kaWYKQEAgLTIxMSwxMCArMjE1LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1ZQOVV0aWxp
dGllc0NvY29hLmg+CiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZF
Ul9CTE9DS0lORykKLSNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFn
ZXIuaD4KLSNlbmRpZgotCiAjZGVmaW5lIFJFTEVBU0VfTE9HX1NFU1NJT05fSUQgKG1fc2Vzc2lv
bklEID8gbV9zZXNzaW9uSUQtPnRvVUludDY0KCkgOiAwKQogI2RlZmluZSBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKGNoYW5uZWwsIGZtdCwgLi4uKSBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9n
Z2luZ0FsbG93ZWQoKSwgY2hhbm5lbCwgIiVwIC0gW3Nlc3Npb25JRD0lIiBQUkl1NjQgIl0gV2Vi
UHJvY2Vzczo6IiBmbXQsIHRoaXMsIFJFTEVBU0VfTE9HX1NFU1NJT05fSUQsICMjX19WQV9BUkdT
X18pCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoY2hhbm5lbCwgZm10LCAu
Li4pIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBjaGFu
bmVsLCAiJXAgLSBbc2Vzc2lvbklEPSUiIFBSSXU2NCAiXSBXZWJQcm9jZXNzOjoiIGZtdCwgdGhp
cywgUkVMRUFTRV9MT0dfU0VTU0lPTl9JRCwgIyNfX1ZBX0FSR1NfXykKQEAgLTE4NzYsNyArMTg3
Niw3IEBAIGJvb2wgV2ViUHJvY2Vzczo6YXJlQWxsUGFnZXNUaHJvdHRsZWFibGUoKSBjb25zdAog
ICAgIH0pOwogfQogCi0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5H
KQorI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgV2ViUHJvY2Vzczo6ZGlzcGxheVdhc1JlZnJlc2hl
ZCh1aW50MzJfdCBkaXNwbGF5SUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGZjNmMzODcyZWIwNDQ0Y2Vh
MGJlOGNlZGFjMWJmYmY3NzZiMDI5ZjMuLjRkNmE4NzViNGE0MWZlZWI5ZmYwYmUxNDE4ZmI1MWZh
YTM3ZjA1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtNTA5LDEx
ICs1MDksOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2VuZFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhSW1tZWRpYXRlbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICNlbmRpZgogCi0j
aWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQotICAgIHZvaWQgZGlz
cGxheVdhc1JlZnJlc2hlZCh1aW50MzJfdCBkaXNwbGF5SUQpOwotI2VuZGlmCi0KICNpZiBQTEFU
Rk9STShNQUMpCisgICAgdm9pZCBkaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJ
RCk7CiAgICAgdm9pZCBzeXN0ZW1XaWxsUG93ZXJPbigpOwogICAgIHZvaWQgc3lzdGVtV2lsbFNs
ZWVwKCk7CiAgICAgdm9pZCBzeXN0ZW1EaWRXYWtlKCk7CkBAIC01MjksNyArNTI2LDcgQEAgcHJp
dmF0ZToKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViUHJvY2Vzc01lc3NhZ2VS
ZWNlaXZlci5jcHAKICAgICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxF
KFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lmIFBMQVRGT1JNKE1BQykKICAg
ICB2b2lkIHNjcm9sbGVyU3R5bGVQcmVmZXJlbmNlQ2hhbmdlZChib29sIHVzZU92ZXJsYXlTY3Jv
bGxiYXJzKTsKICAgICB2b2lkIGRpc3BsYXlDb25maWd1cmF0aW9uQ2hhbmdlZChDR0RpcmVjdERp
c3BsYXlJRCwgQ0dEaXNwbGF5Q2hhbmdlU3VtbWFyeUZsYWdzKTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBhNDNmYTBl
MThkYWM3YjE0YzllYjdkYTI0ZDg4MGVhNTlhMmQ3NTM2Li5iMDQwOGM3Nzk3YTg0Njg5YzZhNmU5
MTJkNzBiMTRhNjc4NTY2MGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTE1LDcgKzExNSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBy
b2Nlc3MgTGVnYWN5UmVjZWl2ZXIgTm90UmVmQ291bnRlZCB7CiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgU2V0U2NyZWVuUHJvcGVydGllcyhzdHJ1Y3QgV2ViQ29yZTo6U2NyZWVuUHJvcGVydGll
cyBzY3JlZW5Qcm9wZXJ0aWVzKQogI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUo
V0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgUExBVEZPUk0oTUFDKQogICAg
IFNjcm9sbGVyU3R5bGVQcmVmZXJlbmNlQ2hhbmdlZChib29sIHVzZU92ZWxheVNjcm9sbGJhcnMp
CiAgICAgRGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkKENHRGlyZWN0RGlzcGxheUlEIGRpc3Bs
YXlJRCwgQ0dEaXNwbGF5Q2hhbmdlU3VtbWFyeUZsYWdzIGZsYWdzKQogI2VuZGlmCkBAIC0xOTIs
MTEgKzE5Miw5IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgTm90UmVm
Q291bnRlZCB7CiAgICAgRGlkV3JpdGVUb1Bhc3RlYm9hcmRBc3luY2hyb25vdXNseShTdHJpbmcg
cGFzdGVib2FyZE5hbWUpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dT
RVJWRVJfQkxPQ0tJTkcpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIERpc3BsYXlXYXNSZWZyZXNo
ZWQodWludDMyX3QgZGlzcGxheUlEKQotI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpCiAgICAg
U3lzdGVtV2lsbFBvd2VyT24oKQogICAgIFN5c3RlbVdpbGxTbGVlcCgpCiAgICAgU3lzdGVtRGlk
V2FrZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbQppbmRleCA1N2IyNTA3N2RhZmM4YzExMWY4YjY2NWVmNzNiMGVmM2VkYzE3ZjliLi4x
MDI4YmRlNmM3MGJkOGZlMDlmNWFlYWQ3OTdiYzc4ZmYxYzc0OGI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTM1MCw3ICsz
NTAsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgICAgICBsYXVuY2hTZXJ2aWNlc0V4
dGVuc2lvbi0+cmV2b2tlKCk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxF
KFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lmIFBMQVRGT1JNKE1BQykKICAg
ICAvLyBBcHAgbmFwIG11c3QgYmUgbWFudWFsbHkgZW5hYmxlZCB3aGVuIG5vdCBydW5uaW5nIHRo
ZSBOU0FwcGxpY2F0aW9uIHJ1biBsb29wLgogICAgIF9fQ0ZSdW5Mb29wU2V0T3B0aW9uc1JlYXNv
bihfX0NGUnVuTG9vcE9wdGlvbnNFbmFibGVBcHBOYXAsIENGU1RSKCJGaW5pc2hlZCBjaGVja2lu
IGFzIGFwcGxpY2F0aW9uIC0gZW5hYmxlIGFwcCBuYXAiKSk7CiAjZW5kaWYKQEAgLTM4Niw3ICsz
ODYsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogCiAgICAgV2ViQ29yZTo6c2V0U2NyZWVu
UHJvcGVydGllcyhwYXJhbWV0ZXJzLnNjcmVlblByb3BlcnRpZXMpOwogCi0jaWYgUExBVEZPUk0o
TUFDKSAmJiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgUExB
VEZPUk0oTUFDKQogICAgIHNjcm9sbGVyU3R5bGVQcmVmZXJlbmNlQ2hhbmdlZChwYXJhbWV0ZXJz
LnVzZU92ZXJsYXlTY3JvbGxiYXJzKTsKICNlbmRpZgogCkBAIC02MzEsMjEgKzYzMSwxMiBAQCB2
b2lkIFdlYlByb2Nlc3M6OnJlZ2lzdGVyV2l0aFN0YXRlRHVtcGVyKCkKIHZvaWQgV2ViUHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyhjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogI2lmIFBMQVRGT1JNKE1BQykKLSNp
ZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAgICAgLy8gRGVueSB0
aGUgV2ViQ29udGVudCBwcm9jZXNzIGFjY2VzcyB0byB0aGUgV2luZG93U2VydmVyLgogICAgIC8v
IFRoaXMgY2FsbCB3aWxsIG5vdCBzdWNjZWVkIGlmIHRoZXJlIGFyZSBvcGVuIFdpbmRvd1NlcnZl
ciBjb25uZWN0aW9ucyBhdCB0aGlzIHBvaW50LgogICAgIGF1dG8gcmV0dmFsID0gQ0dTU2V0RGVu
eVdpbmRvd1NlcnZlckNvbm5lY3Rpb25zKHRydWUpOwogICAgIFJFTEVBU0VfQVNTRVJUKHJldHZh
bCA9PSBrQ0dFcnJvclN1Y2Nlc3MpOwogICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHdlIGNsb3NlIGFu
eSBXaW5kb3dTZXJ2ZXIgY29ubmVjdGlvbnMgYWZ0ZXIgY2hlY2tpbmcgaW4gd2l0aCBMYXVuY2gg
U2VydmljZXMuCiAgICAgQ0dTU2h1dGRvd25TZXJ2ZXJDb25uZWN0aW9ucygpOwotI2Vsc2UKLQot
ICAgIGlmICghW05TQXBwIGlzUnVubmluZ10pIHsKLSAgICAgICAgLy8gVGhpcyBjYWxsIGlzIG5l
ZWRlZCB3aGVuIHRoZSBXZWJQcm9jZXNzIGlzIG5vdCBydW5uaW5nIHRoZSBOU0FwcGxpY2F0aW9u
IGV2ZW50IGxvb3AuCi0gICAgICAgIC8vIE90aGVyd2lzZSwgY2FsbGluZyBlbmFibGVTYW5kYm94
U3R5bGVGaWxlUXVhcmFudGluZSgpIHdpbGwgZmFpbC4KLSAgICAgICAgbGF1bmNoU2VydmljZXND
aGVja0luKCk7Ci0gICAgfQotI2VuZGlmIC8vIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZF
Ul9CTE9DS0lORykKIAogICAgIFN3aXRjaGluZ0dQVUNsaWVudDo6c2V0U2luZ2xldG9uKFdlYlN3
aXRjaGluZ0dQVUNsaWVudDo6c2luZ2xldG9uKCkpOwogICAgIE1haW5UaHJlYWRTaGFyZWRUaW1l
cjo6c2hvdWxkU2V0dXBQb3dlck9ic2VydmVyKCkgPSBmYWxzZTsKQEAgLTk5MCw3ICs5ODEsNyBA
QCB2b2lkIFdlYlByb2Nlc3M6OnVwZGF0ZUZyZWV6ZXJTdGF0dXMoKQogfQogI2VuZGlmCiAKLSNp
ZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lO
RykKKyNpZiBQTEFURk9STShNQUMpCiB2b2lkIFdlYlByb2Nlc3M6OnNjcm9sbGVyU3R5bGVQcmVm
ZXJlbmNlQ2hhbmdlZChib29sIHVzZU92ZXJsYXlTY3JvbGxiYXJzKQogewogICAgIFNjcm9sbGVy
U3R5bGU6OnNldFVzZU92ZXJsYXlTY3JvbGxiYXJzKHVzZU92ZXJsYXlTY3JvbGxiYXJzKTsK
</data>
<flag name="commit-queue"
          id="440486"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421611</attachid>
            <date>2021-02-25 22:14:20 -0800</date>
            <delta_ts>2021-02-26 11:24:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222459-20210225221420.patch</filename>
            <type>text/plain</type>
            <size>42857</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRlNTc0MjQ2MDAyMzhhNTBkMzgxMjJl
MTgxYWQxMzRiY2NkMTljNzQuLjhhNjY5N2Y3YTI3Zjg0MjIyY2E3YzliZTkxMTJjZmNkOWZlNWM1
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDItMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIEVOQUJMRV9XRUJQUk9DRVNTX1dJ
TkRPV1NFUlZFUl9CTE9DS0lORyB3aGljaCBpcyBhbHdheXMgdHJ1ZSBmb3IgbWFjT1MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQ1OQorCisgICAg
ICAgIEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyBpcyBhbHdheXMgZGVm
aW5lZCBmb3IgUExBVEZPUk0oTUFDKSwgc28gcmVtb3ZlIGl0LAorICAgICAgICByZXBsYWNpbmcg
d2l0aCBQTEFURk9STShNQUMpIGluIGEgZmV3IHBsYWNlcy4gSW4gb3JkZXIgdG8gcmVkdWNlIHRo
ZSBudW1iZXIgUExBVEZPUk0oTUFDKSwgZGVmaW5lCisgICAgICAgIEhBVkUoQ1ZESVNQTEFZTElO
SykgYW5kIHVzZSBpdCBpbiBXSzIgY29kZSB0aGF0IHJlbGF0ZXMgdG8gRGlzcGxheUxpbmtzLgor
CisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisgICAgICAgICogd3RmL1BsYXRmb3Jt
RW5hYmxlQ29jb2EuaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIwMjEtMDIt
MjMgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBbQ01h
a2VdIEZpeCBKU0NPbmx5IGJ1aWxkIG9uIFdpbmRvd3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MzVmNzYyMThk
M2ZiYTAxZjg5YzUzYWQ4YTRiYzI0YzNjZTRlNjI4Li5iYmY1NmNhM2FmYjc5NWI2Y2IzMTcxOWJj
N2JlNzc4N2NlOGFjNzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjEtMDItMjUg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3Zl
IEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyB3aGljaCBpcyBhbHdheXMg
dHJ1ZSBmb3IgbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMjQ1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyBpcyBhbHdheXMg
ZGVmaW5lZCBmb3IgUExBVEZPUk0oTUFDKSwgc28gcmVtb3ZlIGl0LAorICAgICAgICByZXBsYWNp
bmcgd2l0aCBQTEFURk9STShNQUMpIGluIGEgZmV3IHBsYWNlcy4gSW4gb3JkZXIgdG8gcmVkdWNl
IHRoZSBudW1iZXIgUExBVEZPUk0oTUFDKSwgZGVmaW5lCisgICAgICAgIEhBVkUoQ1ZESVNQTEFZ
TElOSykgYW5kIHVzZSBpdCBpbiBXSzIgY29kZSB0aGF0IHJlbGF0ZXMgdG8gRGlzcGxheUxpbmtz
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjplbnN1cmVQbGF0Zm9ybUNvbnRleHQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
OjphZGRDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
TWFuYWdlcjo6cmVtb3ZlQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0tleUV2ZW50
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50
U3RhdGVPZk1vZGlmaWVyS2V5cyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2Ny
ZWVuTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Z3B1SURGb3JEaXNwbGF5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgICgtW1dlYlNjcm9s
bGJhclBhcnRBbmltYXRpb24gaW5pdFdpdGhTY3JvbGxiYXI6ZmVhdHVyZVRvQW5pbWF0ZTphbmlt
YXRlRnJvbTphbmltYXRlVG86ZHVyYXRpb246XSk6CisgICAgICAgICgtW1dlYlNjcm9sbGJhclBh
cnRBbmltYXRpb24gc3RhcnRBbmltYXRpb25dKToKKyAgICAgICAgKC1bV2ViU2Nyb2xsYmFyUGFy
dEFuaW1hdGlvbiBzZXRDdXJyZW50UHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dlYlNjcm9sbGJh
clBhcnRBbmltYXRpb24gc3RvcEFuaW1hdGlvbl0pOgorICAgICAgICAoLVtXZWJTY3JvbGxiYXJQ
YXJ0QW5pbWF0aW9uIHNldEN1cnJlbnRQcm9ncmVzczpzZXRDdXJyZW50UHJvZ3Jlc3M6XSk6IERl
bGV0ZWQuCisKIDIwMjEtMDItMjQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTGVnYWN5TGluZUxheW91dF0gSW5saW5lIGxldmVsIGJveCBzaG91bGQgbm90IHN0
aWNrIG91dCBhdCB0aGUgYm90dG9tIG9mIGl0cyBjb250YWluaW5nIGJsb2NrCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDIxN2I4MWYwMTIwNzIxN2FhMTg3MjBhOGVjOGQ1MWJkZDc2MjMyMTAuLjgzMzAzMzM2ZGNiODY1
NjE4ZGNiODkzNWUxNTY5MjkxMTJhYzg5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIw
MjEtMDItMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlIEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyB3aGljaCBp
cyBhbHdheXMgdHJ1ZSBmb3IgbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMjQ1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyBp
cyBhbHdheXMgZGVmaW5lZCBmb3IgUExBVEZPUk0oTUFDKSwgc28gcmVtb3ZlIGl0LAorICAgICAg
ICByZXBsYWNpbmcgd2l0aCBQTEFURk9STShNQUMpIGluIGEgZmV3IHBsYWNlcy4gSW4gb3JkZXIg
dG8gcmVkdWNlIHRoZSBudW1iZXIgUExBVEZPUk0oTUFDKSwgZGVmaW5lCisgICAgICAgIEhBVkUo
Q1ZESVNQTEFZTElOSykgYW5kIHVzZSBpdCBpbiBXSzIgY29kZSB0aGF0IHJlbGF0ZXMgdG8gRGlz
cGxheUxpbmtzLgorCisgICAgICAgICogUGxhdGZvcm0vY29jb2EvTGF5ZXJIb3N0aW5nQ29udGV4
dC5tbToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0
ZXJuYWxIb3N0aW5nUHJvY2Vzcyk6CisgICAgICAgICogU2hhcmVkL21hYy9IYW5nRGV0ZWN0aW9u
RGlzYWJsZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OnNldENsaWVudHNNYXlJZ25vcmVFdmVu
dHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRpb25PYnNl
cnZlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlm
aWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ09ic2VydmVyOjpzaW5nbGV0b24pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlbmRXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGlzcGxheVJl
Y29uZmlndXJhdGlvbkNhbGxCYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OnNlbmREaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWRNZXNzYWdlRm9yVGVzdGluZyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6fldl
YlByb2Nlc3NQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cHJvY2Vz
c1dpbGxTaHV0RG93bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9EaXNwbGF5TGluay5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1Byb3h5
TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnN0b3BEaXNwbGF5TGlu
ayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5k
bGVNYWMubW06CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjppbml0aWFsaXplKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERkxheWVyQ29udHJvbGxlclNQSS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgorICAgICAg
ICAoV2ViS2l0OjpQREZQbHVnaW46OlBERlBsdWdpbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0RyYXdpbmdBcmVh
TWFjLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OmNyZWF0ZURpc3BsYXlSZWZy
ZXNoTW9uaXRvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemVQcm9jZXNzKToKKwogMjAyMS0wMi0yNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjY3NzYzKTogW0dUS11bV1BF
XSB1c2VyIHByZWZlcnJlZCBsYW5ndWFnZXMgYXJlIHNlbnQgdG8gdGhlIHdyb25nIG5ldHdvcmsg
cHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaCBiL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKaW5kZXggMTlhOGU0NzYzYzJhNDBiZjJmYjNj
ODM0YWFhMzcwMTI5ODUxNTJmZS4uNGIwN2M3YWM4NGRjNTcwMTljY2EzMjUxMGNkOTkxMWI0MTJm
MTUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCkBAIC0xMDgsMTAgKzEwOCw2IEBACiAjZGVm
aW5lIEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUCAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVk
KEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLSNkZWZpbmUgRU5BQkxF
X1dFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HIDAKLSNlbmRpZgotCiAjaWYgIWRlZmlu
ZWQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykKICNkZWZpbmUgRU5BQkxFX01BQ19HRVNUVVJF
X0VWRU5UUyAwCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCBh
NmNiMTFmYmJlYjJmYjMwNjljNmZmMDgyMDk4YjRiYTYzNmUyYTQxLi4zYzkzNmEyZTc4YmJiMzYw
OWYxZTFkYTRmMzYwZWZhMGNmMTFmOWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2Nv
YS5oCkBAIC01ODIsMTAgKzU4Miw2IEBACiAjZGVmaW5lIEVOQUJMRV9XRUJQUk9DRVNTX05TUlVO
TE9PUCAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykgJiYgUExBVEZPUk0oTUFDKQotI2RlZmluZSBFTkFCTEVfV0VCUFJPQ0VT
U19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcgMQotI2VuZGlmCi0KICNpZiAhZGVmaW5lZChFTkFCTEVf
V0VCWFIpICYmIChIQVZFKFdFQlhSX0lOVEVSTkFMUykgfHwgKFVTRShBUFBMRV9JTlRFUk5BTF9T
REspICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMTAwMDApKQogI2RlZmluZSBFTkFCTEVfV0VCWFIgMQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2
ZS5oCmluZGV4IDliNTQ0ZDhhMGZkMTI5NDU2OWNiNTU4NTczYWU0ZGUyM2VkNTg3MWYuLjFmNzc5
NGZiYmNiZjVmZjZiYjI0YTkyNTFjYTk0ZWY2NTZmYzY0YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5o
CkBAIC0yODYsNiArMjg2LDEwIEBACiAjZGVmaW5lIEhBVkVfSU9TVVJGQUNFIDEKICNlbmRpZgog
CisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBIQVZFX0NWRElTUExBWUxJTksgMQorI2VuZGlm
CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1V
TEFUT1IpCiAjZGVmaW5lIEhBVkVfSU9TVVJGQUNFX0NPUkVJTUFHRV9TVVBQT1JUIDEKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9T
dXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJm
YWNlLm1tCmluZGV4IGNmN2NiNmU1M2NkNDk4MzZjYjQ5M2FhY2JlMTZiYjA1ZTQzNzRiNjguLmNh
NGZmOTU4NjUxOTA0MjVmMGMwMmI0MTQzMDE4OGQzYmM2MzdiYWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KQEAgLTMyMSw3
ICszMjEsNyBAQCBDR0NvbnRleHRSZWYgSU9TdXJmYWNlOjplbnN1cmVQbGF0Zm9ybUNvbnRleHQo
Y29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKICAgICAKICAgICBtX2NnQ29udGV4dCA9IGFk
b3B0Q0YoQ0dJT1N1cmZhY2VDb250ZXh0Q3JlYXRlKG1fc3VyZmFjZS5nZXQoKSwgbV9jb250ZXh0
U2l6ZS53aWR0aCgpLCBtX2NvbnRleHRTaXplLmhlaWdodCgpLCBiaXRzUGVyQ29tcG9uZW50LCBi
aXRzUGVyUGl4ZWwsIG1fY29sb3JTcGFjZS5nZXQoKSwgYml0bWFwSW5mbykpOwogCi0jaWYgUExB
VEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisj
aWYgUExBVEZPUk0oTUFDKQogICAgIGlmIChhdXRvIGRpc3BsYXlNYXNrID0gcHJpbWFyeU9wZW5H
TERpc3BsYXlNYXNrKCkpIHsKICAgICAgICAgaWYgKGhvc3RXaW5kb3cgJiYgaG9zdFdpbmRvdy0+
ZGlzcGxheUlEKCkpCiAgICAgICAgICAgICBkaXNwbGF5TWFzayA9IGRpc3BsYXlNYXNrRm9yRGlz
cGxheShob3N0V2luZG93LT5kaXNwbGF5SUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCmluZGV4IDA3ZWJhMDQyNmI2Y2NjNGEyZDE0Yjg3ZTA4
Yjc3NjNmNzUzMGIyZTkuLmU2NmUwMGFkYjI4NzVhZGY2OWExOTdmY2M2OTIzMTZkYTZmOTZlNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCkBA
IC02MiwxMSArNjIsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6YWRk
Q29udGV4dChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dAogICAgIGlmICghY29udGV4
dCkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhRU5BQkxFKFdFQlBS
T0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQotICAgIGlmICghbV9jb250ZXh0cy5zaXplKCkp
Ci0gICAgICAgIENHRGlzcGxheVJlZ2lzdGVyUmVjb25maWd1cmF0aW9uQ2FsbGJhY2soZGlzcGxh
eVdhc1JlY29uZmlndXJlZCwgbnVsbHB0cik7Ci0jZW5kaWYKLQogICAgIEFTU0VSVCghbV9jb250
ZXh0cy5jb250YWlucyhjb250ZXh0KSk7CiAgICAgbV9jb250ZXh0cy5hcHBlbmQoY29udGV4dCk7
CiB9CkBAIC03NiwxMCArNzEsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdl
cjo6cmVtb3ZlQ29udGV4dChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udAogICAgIGlmICgh
bV9jb250ZXh0cy5jb250YWlucyhjb250ZXh0KSkKICAgICAgICAgcmV0dXJuOwogICAgIG1fY29u
dGV4dHMucmVtb3ZlRmlyc3QoY29udGV4dCk7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAhRU5BQkxF
KFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQotICAgIGlmICghbV9jb250ZXh0cy5z
aXplKCkpCi0gICAgICAgIENHRGlzcGxheVJlbW92ZVJlY29uZmlndXJhdGlvbkNhbGxiYWNrKGRp
c3BsYXlXYXNSZWNvbmZpZ3VyZWQsIG51bGxwdHIpOwotI2VuZGlmCiB9CiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpyZWN5Y2xlQ29udGV4dElmTmVjZXNzYXJ5KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbQppbmRleCBjMTljOTc0MzMw
NjZjMGQ2MjYxZjVkMmFkZGUyOTBjMzkzNjUyNTg4Li4wNmZkZDUyODI2ZTdjZDJmN2EwYzlkNTBj
ODllNmI5ZTFjYTlmMDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
S2V5RXZlbnRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tleUV2ZW50
TWFjLm1tCkBAIC0yNTksMTMgKzI1OSwxMiBAQCB2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6
ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFR5cGUgdHlwZSwgYm9vbCBiYWNrd2FyZENvbQogCiBP
cHRpb25TZXQ8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6
Y3VycmVudFN0YXRlT2ZNb2RpZmllcktleXMoKQogewotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJ
TkRPV1NFUlZFUl9CTE9DS0lORykKICAgICAvLyBzX2N1cnJlbnRNb2RpZmllcnMgaXMgb25seSBz
ZXQgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcywgbm90IGluIHRoZSBVSSBwcm9jZXNzLgogICAg
IGlmIChzX2N1cnJlbnRNb2RpZmllcnMpIHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKICAgICAgICAgcmV0dXJuICpzX2N1cnJlbnRNb2RpZmllcnM7CiAgICAgfQotI2VuZGlmCisK
ICAgICBVSW50MzIgY3VycmVudE1vZGlmaWVycyA9IEdldEN1cnJlbnRLZXlNb2RpZmllcnMoKTsK
IAogICAgIE9wdGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCmluZGV4
IDI1M2UzZjI0NGRhOWRhODQ3OTNlZDViNWI4NjQ0MGEyNWIwOTNjY2QuLmQ3ZDllZjA1ZTNmNTNh
MDU1MGQxZTZjN2FiMTE5N2E3ZDVkNWQzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KQEAgLTIwMiwxMyArMjAyLDEwIEBAIElPUmVn
aXN0cnlHUFVJRCBwcmltYXJ5R1BVSUQoKQogCiBJT1JlZ2lzdHJ5R1BVSUQgZ3B1SURGb3JEaXNw
bGF5KFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKIHsKLSNpZiBFTkFCTEUoV0VCUFJPQ0VT
U19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAgICAgaWYgKGF1dG8gZGF0YSA9IHNjcmVlbkRhdGEo
ZGlzcGxheUlEKSkKICAgICAgICAgcmV0dXJuIGRhdGEtPmdwdUlEOworCiAgICAgcmV0dXJuIDA7
Ci0jZWxzZQotICAgIHJldHVybiBncHVJREZvckRpc3BsYXlNYXNrKENHRGlzcGxheUlEVG9PcGVu
R0xEaXNwbGF5TWFzayhkaXNwbGF5SUQpKTsKLSNlbmRpZgogfQogCiBJT1JlZ2lzdHJ5R1BVSUQg
Z3B1SURGb3JEaXNwbGF5TWFzayhHTHVpbnQgZGlzcGxheU1hc2spCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggMDcxOTdlMDM4YTNh
Mjg0ODMxYTY5MDdhODc0MGM5MWUxY2Q2NTlhZC4uOGUwMGJkNzE4YmY1MGI2MzRkOGIyOTY2Njhj
Y2RlYjViYzg0MjllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxBbmltYXRvck1hYy5tbQpAQCAtMzAyLDQxICszMDIsMjggQEAgc3RhdGljIFRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEZlYXR1cmVUb0FuaW1hdGUgZmVhdHVyZSkKIH0K
ICNlbmRpZgogCi0jaWYgIUVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykK
LUBpbnRlcmZhY2UgV2ViU2Nyb2xsYmFyUGFydEFuaW1hdGlvbiA6IE5TQW5pbWF0aW9uCi0jZWxz
ZQogQGludGVyZmFjZSBXZWJTY3JvbGxiYXJQYXJ0QW5pbWF0aW9uIDogTlNPYmplY3QKLSNlbmRp
ZgogewogICAgIFNjcm9sbGJhciogX3Njcm9sbGJhcjsKICAgICBSZXRhaW5QdHI8TlNTY3JvbGxl
ckltcD4gX3Njcm9sbGVySW1wOwogICAgIEZlYXR1cmVUb0FuaW1hdGUgX2ZlYXR1cmVUb0FuaW1h
dGU7CiAgICAgQ0dGbG9hdCBfc3RhcnRWYWx1ZTsKICAgICBDR0Zsb2F0IF9lbmRWYWx1ZTsKLSNp
ZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAgICAgTlNUaW1lSW50
ZXJ2YWwgX2R1cmF0aW9uOwogICAgIFJldGFpblB0cjxOU1RpbWVyPiBfdGltZXI7CiAgICAgUmV0
YWluUHRyPE5TRGF0ZT4gX3N0YXJ0RGF0ZTsKICAgICBSZWZQdHI8Q3ViaWNCZXppZXJUaW1pbmdG
dW5jdGlvbj4gX3RpbWluZ0Z1bmN0aW9uOwotI2VuZGlmCiB9CiAtIChpZClpbml0V2l0aFNjcm9s
bGJhcjooU2Nyb2xsYmFyKilzY3JvbGxiYXIgZmVhdHVyZVRvQW5pbWF0ZTooRmVhdHVyZVRvQW5p
bWF0ZSlmZWF0dXJlVG9BbmltYXRlIGFuaW1hdGVGcm9tOihDR0Zsb2F0KXN0YXJ0VmFsdWUgYW5p
bWF0ZVRvOihDR0Zsb2F0KWVuZFZhbHVlIGR1cmF0aW9uOihOU1RpbWVJbnRlcnZhbClkdXJhdGlv
bjsKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAtICh2b2lk
KXNldEN1cnJlbnRQcm9ncmVzczooTlNUaW1lciAqKXRpbWVyOwogLSAodm9pZClzZXREdXJhdGlv
bjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb247CiAtICh2b2lkKXN0b3BBbmltYXRpb247Ci0jZW5k
aWYKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYlNjcm9sbGJhclBhcnRBbmltYXRpb24KIAog
LSAoaWQpaW5pdFdpdGhTY3JvbGxiYXI6KFNjcm9sbGJhciopc2Nyb2xsYmFyIGZlYXR1cmVUb0Fu
aW1hdGU6KEZlYXR1cmVUb0FuaW1hdGUpZmVhdHVyZVRvQW5pbWF0ZSBhbmltYXRlRnJvbTooQ0dG
bG9hdClzdGFydFZhbHVlIGFuaW1hdGVUbzooQ0dGbG9hdCllbmRWYWx1ZSBkdXJhdGlvbjooTlNU
aW1lSW50ZXJ2YWwpZHVyYXRpb24KIHsKLSNpZiAhRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VS
VkVSX0JMT0NLSU5HKQotICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhEdXJhdGlvbjpkdXJhdGlv
biBhbmltYXRpb25DdXJ2ZTpOU0FuaW1hdGlvbkVhc2VJbk91dF07Ci0gICAgaWYgKCFzZWxmKQot
ICAgICAgICByZXR1cm4gbmlsOwotI2Vsc2UKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAg
IGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTM0NSw3ICszMzIsNiBAQCAtIChp
ZClpbml0V2l0aFNjcm9sbGJhcjooU2Nyb2xsYmFyKilzY3JvbGxiYXIgZmVhdHVyZVRvQW5pbWF0
ZTooRmVhdHVyZVRvQW5pbWF0ZQogICAgIF90aW1lciA9IGFkb3B0TlMoW1tOU1RpbWVyIGFsbG9j
XSBpbml0V2l0aEZpcmVEYXRlOltOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzow
XSBpbnRlcnZhbDp0aW1lSW50ZXJ2YWwgdGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHNl
dEN1cnJlbnRQcm9ncmVzczopIHVzZXJJbmZvOm5pbCByZXBlYXRzOllFU10pOwogICAgIF9kdXJh
dGlvbiA9IGR1cmF0aW9uOwogICAgIF90aW1pbmdGdW5jdGlvbiA9IEN1YmljQmV6aWVyVGltaW5n
RnVuY3Rpb246OmNyZWF0ZShDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uOjpFYXNlSW5PdXQpOwot
I2VuZGlmCiAKICAgICBMT0dfV0lUSF9TVFJFQU0oT3ZlcmxheVNjcm9sbGJhcnMsIHN0cmVhbSA8
PCAiQ3JlYXRpbmcgV2ViU2Nyb2xsYmFyUGFydEFuaW1hdGlvbiBmb3IgIiA8PCBmZWF0dXJlVG9B
bmltYXRlIDw8ICIgZnJvbSAiIDw8IHN0YXJ0VmFsdWUgPDwgIiB0byAiIDw8IGVuZFZhbHVlKTsK
IApAQCAtMzU0LDEwICszNDAsNiBAQCAtIChpZClpbml0V2l0aFNjcm9sbGJhcjooU2Nyb2xsYmFy
KilzY3JvbGxiYXIgZmVhdHVyZVRvQW5pbWF0ZTooRmVhdHVyZVRvQW5pbWF0ZQogICAgIF9zdGFy
dFZhbHVlID0gc3RhcnRWYWx1ZTsKICAgICBfZW5kVmFsdWUgPSBlbmRWYWx1ZTsKIAotI2lmICFF
TkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0gICAgW3NlbGYgc2V0QW5p
bWF0aW9uQmxvY2tpbmdNb2RlOk5TQW5pbWF0aW9uTm9uYmxvY2tpbmddOwotI2VuZGlmCi0KICAg
ICByZXR1cm4gc2VsZjsKIH0KIApAQCAtMzY5LDEyICszNTEsOCBAQCAtICh2b2lkKXN0YXJ0QW5p
bWF0aW9uCiAKICAgICBMT0dfV0lUSF9TVFJFQU0oT3ZlcmxheVNjcm9sbGJhcnMsIHN0cmVhbSA8
PCAiLVtXZWJTY3JvbGxiYXJQYXJ0QW5pbWF0aW9uICIgPDwgc2VsZiA8PCAic3RhcnRBbmltYXRp
b25dIGZvciAiIDw8IF9mZWF0dXJlVG9BbmltYXRlKTsKIAotI2lmICFFTkFCTEUoV0VCUFJPQ0VT
U19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0gICAgW3N1cGVyIHN0YXJ0QW5pbWF0aW9uXTsKLSNl
bHNlCiAgICAgW1tOU1J1bkxvb3AgbWFpblJ1bkxvb3BdIGFkZFRpbWVyOl90aW1lci5nZXQoKSBm
b3JNb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlXTsKICAgICBfc3RhcnREYXRlID0gYWRvcHROUyhb
W05TRGF0ZSBhbGxvY10gaW5pdFdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzowXSk7Ci0jZW5kaWYK
IH0KIAogLSAodm9pZClzZXRTdGFydFZhbHVlOihDR0Zsb2F0KXN0YXJ0VmFsdWUKQEAgLTM4Nywx
NSArMzY1LDggQEAgLSAodm9pZClzZXRFbmRWYWx1ZTooQ0dGbG9hdCllbmRWYWx1ZQogICAgIF9l
bmRWYWx1ZSA9IGVuZFZhbHVlOwogfQogCi0jaWYgIUVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykKLS0gKHZvaWQpc2V0Q3VycmVudFByb2dyZXNzOihOU0FuaW1hdGlvblBy
b2dyZXNzKXByb2dyZXNzCi0jZWxzZQogLSAodm9pZClzZXRDdXJyZW50UHJvZ3Jlc3M6KE5TVGlt
ZXIgKil0aW1lcgotI2VuZGlmCiB7Ci0jaWYgIUVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZF
Ul9CTE9DS0lORykKLSAgICBbc3VwZXIgc2V0Q3VycmVudFByb2dyZXNzOnByb2dyZXNzXTsKLSNl
bHNlCiAgICAgQ0dGbG9hdCBwcm9ncmVzcyA9IDA7CiAgICAgTlNEYXRlICpub3cgPSBbTlNEYXRl
IGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MF07CiAgICAgTlNUaW1lSW50ZXJ2YWwgZWxh
cHNlZCA9IFtub3cgdGltZUludGVydmFsU2luY2VEYXRlOl9zdGFydERhdGUuZ2V0KCldOwpAQCAt
NDA4LDcgKzM3OSw2IEBAIC0gKHZvaWQpc2V0Q3VycmVudFByb2dyZXNzOihOU1RpbWVyICopdGlt
ZXIKICAgICAgICAgICAgIHQgPSBlbGFwc2VkIC8gX2R1cmF0aW9uOwogICAgICAgICBwcm9ncmVz
cyA9IF90aW1pbmdGdW5jdGlvbi0+dHJhbnNmb3JtVGltZSh0LCBfZHVyYXRpb24pOwogICAgIH0K
LSNlbmRpZgogICAgIEFTU0VSVChfc2Nyb2xsYmFyKTsKIAogICAgIExPR19XSVRIX1NUUkVBTShP
dmVybGF5U2Nyb2xsYmFycywgc3RyZWFtIDw8ICItW1dlYlNjcm9sbGJhclBhcnRBbmltYXRpb24g
IiA8PCBzZWxmIDw8ICJzZXRDdXJyZW50UHJvZ3Jlc3M6IiA8PCBwcm9ncmVzcyA8PCJdIGZvciAi
IDw8IF9mZWF0dXJlVG9BbmltYXRlKTsKQEAgLTQ0Niw3ICs0MTYsNiBAQCAtICh2b2lkKWludmFs
aWRhdGUKICAgICBfc2Nyb2xsYmFyID0gMDsKIH0KIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJ
TkRPV1NFUlZFUl9CTE9DS0lORykKIC0gKHZvaWQpc2V0RHVyYXRpb246KE5TVGltZUludGVydmFs
KWR1cmF0aW9uCiB7CiAgICAgX2R1cmF0aW9uID0gZHVyYXRpb247CkBAIC00NTYsNyArNDI1LDYg
QEAgLSAodm9pZClzdG9wQW5pbWF0aW9uCiB7CiAgICAgW190aW1lciBpbnZhbGlkYXRlXTsKIH0K
LSNlbmRpZgogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29j
b2EvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2Ev
TGF5ZXJIb3N0aW5nQ29udGV4dC5tbQppbmRleCAyNDA1OGU5YjcxZGEwZTNkYzlkNjAzYTJmYTc3
NTFlZjM1Njc3ZjAxLi4xZGE4M2VjM2U0MWUxYTZjOGE1OTMzYzlhZGZjNDZjY2E1NTA4ZDI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0xheWVySG9zdGluZ0NvbnRl
eHQubW0KKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9MYXllckhvc3RpbmdDb250
ZXh0Lm1tCkBAIC02Nyw3ICs2Nyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxMYXllckhvc3RpbmdDb250
ZXh0PiBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpCiAgICAgICAg
IGtDQUNvbnRleHREaXNwbGF5SWQgOiBAMTAwMDAKICNlbmRpZgogICAgIH1dOwotI2VsaWYgIVBM
QVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxP
Q0tJTkcpCisjZWxpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAgICAgW0NBQ29udGV4dCBzZXRB
bGxvd3NDR1NDb25uZWN0aW9uczpOT107CiAgICAgbGF5ZXJIb3N0aW5nQ29udGV4dC0+bV9jb250
ZXh0ID0gW0NBQ29udGV4dCByZW1vdGVDb250ZXh0V2l0aE9wdGlvbnM6QHsKICAgICAgICAga0NB
Q29udGV4dENJRmlsdGVyQmVoYXZpb3IgOiAgQCJpZ25vcmUiLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL0hhbmdEZXRlY3Rpb25EaXNhYmxlck1hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9IYW5nRGV0ZWN0aW9uRGlzYWJsZXJNYWMubW0KaW5kZXggY2Q2ZDM0
MjEyNDE0YjdhY2M2MGQ3MTI4NjU1NGFlNDZhNWI3ZmYxMi4uZTI0YmU2N2MxYWFiMjQxZGYxYzdm
ZDQ1Zjk0NzgzYmZkMTE1MGMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L0hhbmdEZXRlY3Rpb25EaXNhYmxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvSGFuZ0RldGVjdGlvbkRpc2FibGVyTWFjLm1tCkBAIC00OCwxNCArNDgsMTQgQEAgc3RhdGlj
IGJvb2wgY2xpZW50c01heUlnbm9yZUV2ZW50cygpCiBzdGF0aWMgdm9pZCBzZXRDbGllbnRzTWF5
SWdub3JlRXZlbnRzKGJvb2wgY2xpZW50c01heUlnbm9yZUV2ZW50cykKIHsKICAgICBhdXRvIGNn
c0lkID0gQ0dTTWFpbkNvbm5lY3Rpb25JRCgpOwotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRP
V1NFUlZFUl9CTE9DS0lORykKKwogICAgIC8vIEluIG1hY09TIDEwLjE0IGFuZCBsYXRlciwgdGhl
IFdlYkNvbnRlbnQgcHJvY2VzcyBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0byB0aGUgV2luZG93U2Vy
dmVyLgogICAgIC8vIEluIHRoaXMgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyB2YWxpZCBXaW5kb3dT
ZXJ2ZXIgbWFpbiBjb25uZWN0aW9uLgogICAgIGlmICghY2dzSWQpCiAgICAgICAgIHJldHVybjsK
ICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE4NDQ4ND4gV2Ugc2hvdWxkIGFz
c2VydCBoZXJlIGlmIHRoaXMgaXMgYmVpbmcgY2FsbGVkIGZyb20KICAgICAvLyB0aGUgV2ViQ29u
dGVudCBwcm9jZXNzLgotI2VuZGlmCisKICAgICBpZiAoQ0dTU2V0Q29ubmVjdGlvblByb3BlcnR5
KGNnc0lkLCBjZ3NJZCwgY2xpZW50c01heUlnbm9yZUV2ZW50c0tleSwgY2xpZW50c01heUlnbm9y
ZUV2ZW50cyA/IGtDRkJvb2xlYW5UcnVlIDoga0NGQm9vbGVhbkZhbHNlKSAhPSBrQ0dFcnJvclN1
Y2Nlc3MpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggZjQ4
NjE4NDI5NmIwMjFhYzk1NDExZmI0ODhhZjU1ODZjMjkwYmIwZS4uNjQ4MGYyNDMwNDA5MWUzOTk2
NmFkMDhhYjA4YTExMGZlZGVkNWZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC02NjYsMTIgKzY2NiwxMCBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycygpCiAgICAg
ICAgIHNjcmVlblByb3BlcnRpZXNTdGF0ZUNoYW5nZWQoKTsKICAgICB9XTsKIAotI2lmIEVOQUJM
RShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKICAgICBtX3Njcm9sbGVyU3R5bGVO
b3RpZmljYXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TUHJlZmVycmVkU2Nyb2xsZXJTdHlsZURpZENoYW5nZU5v
dGlmaWNhdGlvbiBvYmplY3Q6bmlsIHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1cnJlbnRRdWV1
ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICpub3RpZmljYXRpb24pIHsKICAgICAgICAg
YXV0byBzY3JvbGxiYXJTdHlsZSA9IFtOU1Njcm9sbGVyIHByZWZlcnJlZFNjcm9sbGVyU3R5bGVd
OwogICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNjcm9s
bGVyU3R5bGVQcmVmZXJlbmNlQ2hhbmdlZChzY3JvbGxiYXJTdHlsZSkpOwogICAgIH1dOwotI2Vu
ZGlmCiAKICAgICBtX2FjdGl2YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIg
ZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRpb25EaWRCZWNvbWVB
Y3RpdmVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwIHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1
cnJlbnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICpub3RpZmljYXRpb24pIHsK
ICNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKQEAgLTczNiw5ICs3MzQsNyBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCkKICAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fYXV0
b21hdGljUXVvdGVTdWJzdGl0dXRpb25Ob3RpZmljYXRpb25PYnNlcnZlci5nZXQoKV07CiAgICAg
W1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2F1
dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25Ob3RpZmljYXRpb25PYnNlcnZlci5nZXQoKV07CiAgICAg
W1tOU1dvcmtzcGFjZS5zaGFyZWRXb3Jrc3BhY2Ugbm90aWZpY2F0aW9uQ2VudGVyXSByZW1vdmVP
YnNlcnZlcjptX2FjY2Vzc2liaWxpdHlEaXNwbGF5T3B0aW9uc05vdGlmaWNhdGlvbk9ic2VydmVy
LmdldCgpXTsKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAg
ICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpt
X3Njcm9sbGVyU3R5bGVOb3RpZmljYXRpb25PYnNlcnZlci5nZXQoKV07Ci0jZW5kaWYKICAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fZGVh
Y3RpdmF0aW9uT2JzZXJ2ZXIuZ2V0KCldOwogICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVtb3Zl
T2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREaXN0cmlidXRlZENlbnRlcigpLCB0aGlz
LCBBcHBsZUNvbG9yUHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uLCBudWxscHRyKTsKICNl
bGlmICFQTEFURk9STShNQUNDQVRBTFlTVCkKQEAgLTc2Nyw3ICs3NjMsNyBAQCBib29sIFdlYlBy
b2Nlc3NQb29sOjppc1VSTEtub3duSFNUU0hvc3QoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpIGNv
bnN0CiAgICAgcmV0dXJuIF9DRk5ldHdvcmtJc0tub3duSFNUU0hvc3RXaXRoU2Vzc2lvbih1cmwu
Z2V0KCksIG51bGxwdHIpOwogfQogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VCUFJP
Q0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgSEFWRShDVkRJU1BMQVlMSU5LKQogT3B0
aW9uYWw8dW5zaWduZWQ+IFdlYlByb2Nlc3NQb29sOjpub21pbmFsRnJhbWVzUGVyU2Vjb25kRm9y
RGlzcGxheShXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiB7CiAgICAgZm9y
IChhdXRvJiBkaXNwbGF5TGluayA6IG1fZGlzcGxheUxpbmtzKSB7CkBAIC04MTAsNyArODA2LDcg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c3RvcERpc3BsYXlMaW5rcyhJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24pCiAgICAgZm9yIChhdXRvJiBkaXNwbGF5TGluayA6IG1fZGlzcGxheUxpbmtz
KQogICAgICAgICBkaXNwbGF5TGluay0+cmVtb3ZlT2JzZXJ2ZXJzKGNvbm5lY3Rpb24pOwogfQot
I2VuZGlmCisjZW5kaWYgLy8gSEFWRShDVkRJU1BMQVlMSU5LKQogCiAvLyBGSVhNRTogRGVwcmVj
YXRlZC4gTGVmdCBoZXJlIHVudGlsIGEgZmluYWwgZGVjaXNpb24gaXMgbWFkZS4KIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnNldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKGJvb2wgZW5h
YmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdjMjk3
ZmNhODFlZGM1Yzc4YWM3MDFjZmNhMTI3ODE1MDRmMGEzYmIuLmViOGRhNDMwYzAyOWU2MjU0ZTgz
Yzk5ZGQ1YTM5NDdmMGYzZTcxMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtMjI0LDYgKzIyNCw3IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykK
KyNpbmNsdWRlICJEaXNwbGF5TGluay5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VVdGlsaXRp
ZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgogI2VuZGlmCkBAIC0yOTQs
MTAgKzI5NSw2IEBACiAjaW5jbHVkZSAiV2ViRGF0ZVRpbWVQaWNrZXIuaCIKICNlbmRpZgogCi0j
aWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQotI2luY2x1ZGUgIkRp
c3BsYXlMaW5rLmgiCi0jZW5kaWYKLQogLy8gVGhpcyBjb250cm9scyB3aGF0IHN0cmF0ZWd5IHdl
IHVzZSBmb3IgbW91c2Ugd2hlZWwgY29hbGVzY2luZy4KICNkZWZpbmUgTUVSR0VfV0hFRUxfRVZF
TlRTIDEKIApAQCAtMzIxLDcgKzMxOCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBE
RUZJTkVfREVCVUdfT05MWV9HTE9CQUwoV1RGOjpSZWZDb3VudGVkTGVha0NvdW50ZXIsIHdlYlBh
Z2VQcm94eUNvdW50ZXIsICgiV2ViUGFnZVByb3h5IikpOwogCi0jaWYgRU5BQkxFKFdFQlBST0NF
U1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKIGNsYXNz
IFNjcm9sbGluZ09ic2VydmVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTY3JvbGxpbmdP
YnNlcnZlcik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC0zNDgsNyArMzQ1LDcg
QEAgU2Nyb2xsaW5nT2JzZXJ2ZXImIFNjcm9sbGluZ09ic2VydmVyOjpzaW5nbGV0b24oKQogICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTY3JvbGxpbmdPYnNlcnZlcj4gZGV0ZWN0b3I7CiAgICAg
cmV0dXJuIGRldGVjdG9yOwogfQotI2VuZGlmIC8vIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykKKyNlbmRpZgogCiBjbGFzcyBTdG9yYWdlUmVxdWVzdHMgewogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFN0b3JhZ2VSZXF1ZXN0cyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwpAQCAtMjc0Nyw3ICsyNzQ0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVdoZWVs
RXZlbnQoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYgZXZlbnQpCiAKIHZvaWQgV2ViUGFnZVBy
b3h5OjpzZW5kV2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiBldmVudCkKIHsKLSNpZiBF
TkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgSEFWRShDVkRJU1BM
QVlMSU5LKQogICAgIFNjcm9sbGluZ09ic2VydmVyOjpzaW5nbGV0b24oKS53aWxsU2VuZFdoZWVs
RXZlbnQoKTsKICNlbmRpZgogCkBAIC05OTMxLDcgKzk5MjgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6Z2V0SXNWaWV3VmlzaWJsZShib29sJiByZXN1bHQpCiAKIHZvaWQgV2ViUGFnZVByb3h5Ojp1
cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSgpCiB7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFC
TEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpIHx8IFBMQVRGT1JNKElPU19GQU1J
TFkpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYXV0byBtb2RpZmllcnMgPSBQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQ6OmN1cnJlbnRTdGF0ZU9mTW9kaWZpZXJLZXlzKCk7CiAgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6VXBkYXRlQ3VycmVudE1vZGlmaWVyU3RhdGUobW9kaWZpZXJzKSk7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA0
MTIwZDM3ZDRjMDU3OWNlNzNlODEwZjQ1MGM3MjdlN2YzNWVjYWJmLi4zZWNlNTFlODhlYzRjYWEx
OWIyNDJlYTliY2MxZmVlYjMyODVkYTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwCkBAIC02ODYsOSArNjg2LDcgQEAgc3RhdGljIHZvaWQgZGlzcGxheVJl
Y29uZmlndXJhdGlvbkNhbGxCYWNrKENHRGlyZWN0RGlzcGxheUlEIGRpc3BsYXksIENHRGlzcGxh
eUMKICAgICBhdXRvIHNjcmVlblByb3BlcnRpZXMgPSBXZWJDb3JlOjpjb2xsZWN0U2NyZWVuUHJv
cGVydGllcygpOwogICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBXZWJQcm9jZXNzUG9vbDo6
YWxsUHJvY2Vzc1Bvb2xzKCkpIHsKICAgICAgICAgcHJvY2Vzc1Bvb2wtPnNlbmRUb0FsbFByb2Nl
c3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0U2NyZWVuUHJvcGVydGllcyhzY3JlZW5Qcm9w
ZXJ0aWVzKSk7Ci0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQog
ICAgICAgICBwcm9jZXNzUG9vbC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzOjpEaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWQoZGlzcGxheSwgZmxhZ3MpKTsKLSNlbmRp
ZgogICAgIH0KIH0KIApAQCAtMTk1Myw3ICsxOTUxLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6
cmVzZXRNb2NrTWVkaWFEZXZpY2VzKCkKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZERpc3Bs
YXlDb25maWd1cmF0aW9uQ2hhbmdlZE1lc3NhZ2VGb3JUZXN0aW5nKCkKIHsKLSNpZiBQTEFURk9S
TShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBQ
TEFURk9STShNQUMpCiAgICAgYXV0byBkaXNwbGF5ID0gQ0dTTWFpbkRpc3BsYXlJRCgpOwogCiAg
ICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IFdlYlByb2Nlc3NQb29sOjphbGxQcm9jZXNzUG9v
bHMoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggYjc4
YmZkZTIwYmE0YjU0ZmVmZGQzOGE5YjI1ODhmODQ0MzIxMzg1MC4uNjljMzM0ZDhhYzQzZGE3MjUy
MzM2ODE1ZmM0ZmE2NTE4NTg3Mjc4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oCkBAIC03MCwxMSArNzAsOSBAQCBPQkpDX0NMQVNTIFdLV2ViSW5zcGVjdG9yUHJl
ZmVyZW5jZU9ic2VydmVyOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi0jaW1wb3J0IDxX
ZWJDb3JlL1Bvd2VyT2JzZXJ2ZXJNYWMuaD4KLSNpbXBvcnQgPHBhbC9zeXN0ZW0vU3lzdGVtU2xl
ZXBMaXN0ZW5lci5oPgotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lO
RykKICNpbmNsdWRlICJEaXNwbGF5TGluay5oIgotI2VuZGlmCisjaW5jbHVkZSA8V2ViQ29yZS9Q
b3dlck9ic2VydmVyTWFjLmg+CisjaW5jbHVkZSA8cGFsL3N5c3RlbS9TeXN0ZW1TbGVlcExpc3Rl
bmVyLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIEFQSSB7CkBAIC0yNDAsNyArMjM4LDcgQEAgcHVi
bGljOgogICAgIFBsdWdpbkluZm9TdG9yZSYgcGx1Z2luSW5mb1N0b3JlKCkgeyByZXR1cm4gbV9w
bHVnaW5JbmZvU3RvcmU7IH0KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUo
V0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgSEFWRShDVkRJU1BMQVlMSU5L
KQogICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kRm9yRGlzcGxh
eShXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCk7CiAgICAgdm9pZCBzdGFydERpc3BsYXlMaW5r
KElQQzo6Q29ubmVjdGlvbiYsIERpc3BsYXlMaW5rT2JzZXJ2ZXJJRCwgV2ViQ29yZTo6UGxhdGZv
cm1EaXNwbGF5SUQpOwogICAgIHZvaWQgc3RvcERpc3BsYXlMaW5rKElQQzo6Q29ubmVjdGlvbiYs
IERpc3BsYXlMaW5rT2JzZXJ2ZXJJRCwgV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQpOwpAQCAt
NjY3LDkgKzY2NSw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPE5TT2JqZWN0PiBtX2F1dG9t
YXRpY1F1b3RlU3Vic3RpdHV0aW9uTm90aWZpY2F0aW9uT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRy
PE5TT2JqZWN0PiBtX2F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25Ob3RpZmljYXRpb25PYnNlcnZl
cjsKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fYWNjZXNzaWJpbGl0eURpc3BsYXlPcHRpb25z
Tm90aWZpY2F0aW9uT2JzZXJ2ZXI7Ci0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVS
X0JMT0NLSU5HKQogICAgIFJldGFpblB0cjxOU09iamVjdD4gbV9zY3JvbGxlclN0eWxlTm90aWZp
Y2F0aW9uT2JzZXJ2ZXI7Ci0jZW5kaWYKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fZGVhY3Rp
dmF0aW9uT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPFdLV2ViSW5zcGVjdG9yUHJlZmVyZW5jZU9i
c2VydmVyPiBtX3dlYkluc3BlY3RvclByZWZlcmVuY2VPYnNlcnZlcjsKIApAQCAtNzUzLDcgKzc0
OSw3IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UHJld2FybUluZm9ybWF0aW9uPj4gbV9wcmV3YXJt
SW5mb3JtYXRpb25QZXJSZWdpc3RyYWJsZURvbWFpbjsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYg
RU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lmIEhBVkUoQ1ZESVNQ
TEFZTElOSykKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaW5rPj4gbV9kaXNw
bGF5TGlua3M7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKaW5kZXggODkyODJhZDgzZWZhMDZhYzZjNjcyNDcyYjI3MjI2YWMwMTcxYWFlMC4u
NDkyZjNiYjlhMDZlZjIwZTI3MzgxZWFmZGZhYjVkZDg0M2I5MDNmOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0yNDQsNyArMjQ0LDcgQEAgV2Vi
UHJvY2Vzc1Byb3h5Ojp+V2ViUHJvY2Vzc1Byb3h5KCkKIAogICAgIFdlYlBhc3RlYm9hcmRQcm94
eTo6c2luZ2xldG9uKCkucmVtb3ZlV2ViUHJvY2Vzc1Byb3h5KCp0aGlzKTsKIAotI2lmIFBMQVRG
T1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lm
IEhBVkUoQ1ZESVNQTEFZTElOSykKICAgICBpZiAoc3RhdGUoKSA9PSBTdGF0ZTo6UnVubmluZykK
ICAgICAgICAgcHJvY2Vzc1Bvb2woKS5zdG9wRGlzcGxheUxpbmtzKCpjb25uZWN0aW9uKCkpOwog
I2VuZGlmCkBAIC00MzksNyArNDM5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NX
aWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewogICAgIEFTU0VSVF9V
TlVTRUQoY29ubmVjdGlvbiwgdGhpcy0+Y29ubmVjdGlvbigpID09ICZjb25uZWN0aW9uKTsKIAot
I2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NL
SU5HKQorI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKICAgICBwcm9jZXNzUG9vbCgpLnN0b3BEaXNw
bGF5TGlua3MoY29ubmVjdGlvbik7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggNWRhYzgzMWMyZWQyNjcxMGM1NzA4ZThkNDQwN2E5NGNi
YTQ2NjYwNy4uMjI2OGI3Nzk1OWVlYmE0OTc3YWUwMGYzZDI3Y2E4YzY0YWZlNDY2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTI5Nyw3ICsyOTcsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCByZWxlYXNlSGlnaFBlcmZvcm1hbmNlR1BVKCk7CiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JM
T0NLSU5HKQorI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKICAgICB2b2lkIHN0YXJ0RGlzcGxheUxp
bmsoRGlzcGxheUxpbmtPYnNlcnZlcklELCBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCk7CiAg
ICAgdm9pZCBzdG9wRGlzcGxheUxpbmsoRGlzcGxheUxpbmtPYnNlcnZlcklELCBXZWJDb3JlOjpQ
bGF0Zm9ybURpc3BsYXlJRCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCA0OWRiMGIzNDQwYmI4MGFjZjU3
NTNmYzAwODczOTAxNjQwYjg0MDQ2Li5lYTljZGE1MDFmMDg5MGJkM2RhMzBmMDJmZTE0YzNiMWNi
YjJjNzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluCkBAIC03MSw3ICs3MSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQ
cm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgUmVsZWFzZUhpZ2hQZXJmb3JtYW5jZUdQVSgpCiAj
ZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VS
VkVSX0JMT0NLSU5HKQorI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKICAgICBTdGFydERpc3BsYXlM
aW5rKFdlYktpdDo6RGlzcGxheUxpbmtPYnNlcnZlcklEIG9ic2VydmVySUQsIHVpbnQzMl90IGRp
c3BsYXlJRCkKICAgICBTdG9wRGlzcGxheUxpbmsoV2ViS2l0OjpEaXNwbGF5TGlua09ic2VydmVy
SUQgb2JzZXJ2ZXJJRCwgdWludDMyX3QgZGlzcGxheUlEKQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmNwcAppbmRleCAwZDFmMzg3MWJiN2ZkMGNkMGZi
ZTI2ZTljZjg4MWJiNzgxZDVlNjU2Li4wOTVjMDljYjdkZjYyOTQ2ZjVlNDc0YWVjNjYzODFmNTYw
NThmMTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxp
bmsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHAK
QEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEaXNwbGF5
TGluay5oIgogCi0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQor
I2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKIAogI2luY2x1ZGUgIkV2ZW50RGlzcGF0Y2hlck1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCkBAIC0xNTAsNCArMTUwLDQg
QEAgdm9pZCBEaXNwbGF5TGluazo6bm90aWZ5T2JzZXJ2ZXJzRGlzcGxheVdhc1JlZnJlc2hlZCgp
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQlBST0NFU1Nf
V0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2VuZGlmIC8vIEhBVkUoQ1ZESVNQTEFZTElOSykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmgKaW5kZXggYWE3ZTZlZWFiNzM1
MzZkZDg3ZjljOGM0MzlhMGU0OTM4Mjc1OWFiMC4uN2QyZWVkM2MzNmIyZjZjN2Q4ZDBjMDMxNGE4
OTNjMjZjZDk0YmUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rp
c3BsYXlMaW5rLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5r
LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoV0VCUFJP
Q0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgSEFWRShDVkRJU1BMQVlMSU5LKQogCiAj
aW5jbHVkZSAiRGlzcGxheUxpbmtPYnNlcnZlcklELmgiCiAjaW5jbHVkZSA8Q29yZVZpZGVvL0NW
RGlzcGxheUxpbmsuaD4KQEAgLTcxLDUgKzcxLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKLSNlbmRpZgotCisjZW5kaWYgLy8gSEFWRShDVkRJU1BMQVlMSU5LKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlByb2Nlc3NQcm94eU1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQcm9jZXNzUHJveHlNYWMubW0KaW5k
ZXggNTJmZDBjZTE5MTllNDQxMzczMWM2NTc0MTJjMDg5ZGEwNjg2YjA2Ni4uNDcxOTU1MmZiMGU1
ZDJhNmQ3NmE2OGI3YmI5YjJhNjM4ZWQxMDQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYlByb2Nlc3NQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1Byb3h5TWFjLm1tCkBAIC01OSw3ICs1OSw2IEBAIGJvb2wg
V2ViUHJvY2Vzc1Byb3h5OjpzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2RlKCkgY29uc3QK
ICAgICByZXR1cm4gIXBhdGguaXNFbXB0eSgpICYmICFwYXRoLnN0YXJ0c1dpdGgoIi9TeXN0ZW0v
Iik7CiB9CiAKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6c3RhcnREaXNwbGF5TGluayhEaXNwbGF5TGlua09ic2VydmVy
SUQgb2JzZXJ2ZXJJRCwgV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogewog
ICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkNvbW11
bmljYXRlV2l0aFdpbmRvd1NlcnZlcikpOwpAQCAtNzIsNyArNzEsNiBAQCB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6c3RvcERpc3BsYXlMaW5rKERpc3BsYXlMaW5rT2JzZXJ2ZXJJRCBvYnNlcnZlcklE
LCBXZWJDb3JlOgogICAgIEFTU0VSVChjb25uZWN0aW9uKCkpOwogICAgIHByb2Nlc3NQb29sKCku
c3RvcERpc3BsYXlMaW5rKCpjb25uZWN0aW9uKCksIG9ic2VydmVySUQsIGRpc3BsYXlJRCk7CiB9
Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVu
ZGxlTWFjLm1tCmluZGV4IGJkNmUzOWYwZjBmYmQyZDViNTYwY2UxYzM0NDY3NDJiNGZmZTA4OWYu
LjgzZjBjMDJlNjljYmFkMDg1ZDBkM2ZjYjIzYmI4OTk0NGIyNGRlNTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL21hYy9J
bmplY3RlZEJ1bmRsZU1hYy5tbQpAQCAtNTIsOCArNTIsNiBAQCBAZW5kCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0jaWYgRU5BQkxFKFdFQlBST0NFU1Nf
V0lORE9XU0VSVkVSX0JMT0NLSU5HKQotCiBzdGF0aWMgTlNFdmVudE1vZGlmaWVyRmxhZ3MgY3Vy
cmVudE1vZGlmaWVyRmxhZ3MoaWQgc2VsZiwgU0VMIF9jbWQpCiB7CiAgICAgYXV0byBjdXJyZW50
TW9kaWZpZXJzID0gUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50U3RhdGVPZk1vZGlmaWVy
S2V5cygpOwpAQCAtNzMsOCArNzEsNiBAQCBzdGF0aWMgTlNFdmVudE1vZGlmaWVyRmxhZ3MgY3Vy
cmVudE1vZGlmaWVyRmxhZ3MoaWQgc2VsZiwgU0VMIF9jbWQpCiAgICAgcmV0dXJuIG1vZGlmaWVy
czsKIH0KIAotI2VuZGlmCi0KIHN0YXRpYyBSZXRhaW5QdHI8TlNLZXllZFVuYXJjaGl2ZXI+IGNy
ZWF0ZVVuYXJjaGl2ZXIoY29uc3QgdW5zaWduZWQgY2hhciogYnl0ZXMsIE5TVUludGVnZXIgbGVu
Z3RoKQogewogICAgIGF1dG8gZGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRo
Qnl0ZXNOb0NvcHk6Y29uc3RfY2FzdDx1bnNpZ25lZCBjaGFyKj4oYnl0ZXMpIGxlbmd0aDpsZW5n
dGggZnJlZVdoZW5Eb25lOk5PXSk7CkBAIC0xNzcsMTEgKzE3Myw5IEBAIGJvb2wgSW5qZWN0ZWRC
dW5kbGU6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFy
YW1ldGVycywKICAgICBpZiAoYWRkaXRpb25hbENsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlckZ1bmN0
aW9uKQogICAgICAgICBhZGRpdGlvbmFsQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyRnVuY3Rpb24o
dG9BUEkodGhpcyksIHRvQVBJKGluaXRpYWxpemF0aW9uVXNlckRhdGEpKTsKIAotI2lmIEVOQUJM
RShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKICAgICAvLyBTd2l6emxlIFtOU0V2
ZW50IG1vZGlmZXJGbGFnc10sIHNpbmNlIGl0IGFsd2F5cyByZXR1cm5zIDAgd2hlbiB0aGUgV2lu
ZG93U2VydmVyIGlzIGJsb2NrZWQuCiAgICAgTWV0aG9kIG1ldGhvZCA9IGNsYXNzX2dldENsYXNz
TWV0aG9kKFtOU0V2ZW50IGNsYXNzXSwgQHNlbGVjdG9yKG1vZGlmaWVyRmxhZ3MpKTsKICAgICBt
ZXRob2Rfc2V0SW1wbGVtZW50YXRpb24obWV0aG9kLCByZWludGVycHJldF9jYXN0PElNUD4oY3Vy
cmVudE1vZGlmaWVyRmxhZ3MpKTsKLSNlbmRpZgogCiAgICAgLy8gRmlyc3QgY2hlY2sgdG8gc2Vl
IGlmIHRoZSBidW5kbGUgaGFzIGEgV0tCdW5kbGVJbml0aWFsaXplIGZ1bmN0aW9uLgogICAgIGlm
IChpbml0aWFsaXplRnVuY3Rpb24pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9QREZMYXllckNvbnRyb2xsZXJTUEkuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZMYXllckNvbnRyb2xsZXJTUEkuaAppbmRleCBkMDM5
MzU3OWVmNjY3NmRiOGYxMWFiMWZiYjE4ZjM5MWM1MTBhYTFhLi42N2Y3MjdkOTk2YjUzOTU2YjFh
YjQ3MDJjOTdmMjIyYmIwNWRjMTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGTGF5ZXJDb250cm9sbGVyU1BJLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERkxheWVyQ29udHJvbGxlclNQSS5oCkBAIC0yMyw4
ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lm
bmRlZiBQREZMYXllckNvbnRyb2xsZXJTUElfaAotI2RlZmluZSBQREZMYXllckNvbnRyb2xsZXJT
UElfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoUERGS0lUX1BMVUdJTikKIApAQCAtMTcw
LDE2ICsxNjksMTIgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgUERGTGF5ZXJDb250cm9s
bGVyQ3Vyc29yVHlwZSkgewogLSAoTlNBcnJheSAqKWFjY2Vzc2liaWxpdHlDaGlsZHJlbjsKIC0g
KHZvaWQpc2V0QWNjZXNzaWJpbGl0eVBhcmVudDooaWQpcGFyZW50OwogLSAoaWQpYWNjZXNzaWJp
bGl0eUVsZW1lbnRGb3JBbm5vdGF0aW9uOihQREZBbm5vdGF0aW9uICopYW5ub3RhdGlvbjsKLQot
I2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKIC0gKHZvaWQpc2V0
RGV2aWNlQ29sb3JTcGFjZTooQ0dDb2xvclNwYWNlUmVmKWNvbG9yU3BhY2U7Ci0jZW5kaWYKKwog
QGVuZAogCiBAaW50ZXJmYWNlIFBERkFubm90YXRpb24gKEFjY2Vzc2liaWxpdHlQcml2YXRlKQog
LSAoaWQpYWNjZXNzaWJpbGl0eU5vZGU7CiBAZW5kCiAKLSNlbmRpZgotCi0jZW5kaWYgLy8gUERG
TGF5ZXJDb250cm9sbGVyU1BJX2gKKyNlbmRpZiAvLyBFTkFCTEUoUERGS0lUX1BMVUdJTikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmlu
ZGV4IGEyYzhiYjFhNDcxNzhjYzBjMzQ3YWRjNDdiZDA2NDk4ZGI1N2MxYzcuLmUyMDc2ZGQ4MmY1
MmIyNDk4YjFhYTNhZjYxYTRlOGE5M2I0NTdjYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtNjMzLDEyICs2MzMsMTAgQEAg
aW5saW5lIFBERlBsdWdpbjo6UERGUGx1Z2luKFdlYkZyYW1lJiBmcmFtZSkKIAogICAgIFttX2Nv
bnRhaW5lckxheWVyIGFkZFN1YmxheWVyOm1fY29udGVudExheWVyLmdldCgpXTsKICAgICBbbV9j
b250YWluZXJMYXllciBhZGRTdWJsYXllcjptX3Njcm9sbENvcm5lckxheWVyLmdldCgpXTsKLSNp
ZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAgICAgaWYgKFttX3Bk
ZkxheWVyQ29udHJvbGxlciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldERldmljZUNv
bG9yU3BhY2U6KV0pIHsKICAgICAgICAgYXV0byB2aWV3ID0gZnJhbWUuY29yZUZyYW1lKCktPnZp
ZXcoKTsKICAgICAgICAgW21fcGRmTGF5ZXJDb250cm9sbGVyIHNldERldmljZUNvbG9yU3BhY2U6
c2NyZWVuQ29sb3JTcGFjZSh2aWV3KV07CiAgICAgfQotI2VuZGlmCiAKICNpZiBIQVZFKElOQ1JF
TUVOVEFMX1BERl9BUElTKQogICAgIGlmIChtX2luY3JlbWVudGFsUERGTG9hZGluZ0VuYWJsZWQp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNw
cAppbmRleCBhZjMxMmQ3MTlhMjI0MWEyMzkwYWE4NjE2ODBlZTlmZDRkNDhlYWE3Li5lYzVlMzZi
NWI0NGE5OWQ0OWNhYmRmODI2YjNkMTQ4ZGI3OGI5OWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHZv
aWQgRHJhd2luZ0FyZWE6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ1VwZGF0ZWRTY3JvbGxQb3NpdGlv
bihXVEY6OkZ1bmN0aW9uPHZvaWQKICAgICBmdW5jdGlvbigpOwogfQogCi0jaWYgIShQTEFURk9S
TShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykpCisjaWYg
IVBMQVRGT1JNKE1BQykKIFJlZlB0cjxXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I+IERy
YXdpbmdBcmVhOjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQp
CiB7CiAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCA2MGUyMGY0NDYwMjk4N2JlNTZk
NmYyMWQ5MDhjNGI4NTBkYmE1NjUzLi5mMWJiOGM3NTYwYmE1YjllMzhiYTJmYTVkMTFjMGZmOTFi
OWU0Mjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVu
dERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2
ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTI5MSw3ICsyOTEsNyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hl
cjo6bm90aWZ5U2Nyb2xsaW5nVHJlZXNEaXNwbGF5V2FzUmVmcmVzaGVkKFBsYXRmb3JtRGlzcGxh
eUlECiAjZW5kaWYKIH0KIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9D
S0lORykKKyNpZiBIQVZFKENWRElTUExBWUxJTkspCiB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlz
cGxheVdhc1JlZnJlc2hlZChQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiB7CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCmluZGV4IDQ3OWJmNzlkNTUzOWIyMjM0NWE4Yjdh
ZjI5MWYxYzM4YzMyNjIyN2IuLjY3MWIyOGRmM2U1MTBkZWEzNTAxZDgwMjhiOTc4NzE4NzZhNjRh
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlz
cGF0Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlz
cGF0Y2hlci5oCkBAIC0xMDYsNyArMTA2LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBz
ZW5kRGlkUmVjZWl2ZUV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJFdmVudDo6VHlw
ZSwgYm9vbCBkaWRIYW5kbGVFdmVudCk7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJQUk9DRVNT
X1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBkaXNw
bGF5V2FzUmVmcmVzaGVkKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKTsKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNo
ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERp
c3BhdGNoZXIubWVzc2FnZXMuaW4KaW5kZXggYmI1MGI5NzcwNTI4NDExZjAwNDAxM2JiNjg3MWIx
YjBlOTE1NDI0ZC4uY2Y0Zjc2NjY2Y2M1MzQzMWU5OWJlZGU1ZTgyOGE4YWE4N2EwM2NjOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVy
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50
RGlzcGF0Y2hlci5tZXNzYWdlcy5pbgpAQCAtMjksNyArMjksNyBAQCBtZXNzYWdlcyAtPiBFdmVu
dERpc3BhdGNoZXIgewogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAgICAgR2VzdHVy
ZUV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViS2l0OjpXZWJHZXN0dXJl
RXZlbnQgZXZlbnQpCiAjZW5kaWYKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJf
QkxPQ0tJTkcpCisjaWYgSEFWRShDVkRJU1BMQVlMSU5LKQogICAgIERpc3BsYXlXYXNSZWZyZXNo
ZWQodWludDMyX3QgZGlzcGxheUlEKQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRHJhd2luZ0FyZWFNYWMuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0RyYXdpbmdBcmVhTWFjLmNwcAppbmRleCBiNDc0
OTYwMWFjZTc5NTBlMmE1YjA0Y2YyMTQ2NDQwNTQ5ZjEzM2Y4Li4wNDJiNmQ5MDJhNDBmY2IwMGVk
MDM2MGM5NThmOTI2NDM4OGZlMjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvRHJhd2luZ0FyZWFNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9EcmF3aW5nQXJlYU1hYy5jcHAKQEAgLTM2LDggKzM2LDYgQEAK
IG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLSNpZiBFTkFC
TEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0KIGNsYXNzIERpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hYyA6IHB1YmxpYyBEaXNwbGF5UmVmcmVzaE1vbml0b3IgewogcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjPiBjcmVhdGUoUGxhdGZvcm1E
aXNwbGF5SUQgZGlzcGxheUlEKQpAQCAtMTA2LDYgKzEwNCw1IEBAIFJlZlB0cjxXZWJDb3JlOjpE
aXNwbGF5UmVmcmVzaE1vbml0b3I+IERyYXdpbmdBcmVhOjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1v
bml0b3IoCiB7CiAgICAgcmV0dXJuIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6Y3JlYXRlKGRp
c3BsYXlJRCk7CiB9Ci0jZW5kaWYgLy8gRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JM
T0NLSU5HKQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXgg
MzAxYjg4NzdiMzU3ZDBkNjEzYTNhZDEwMGFhOTRmOWU4ZDc2ZjYyMi4uY2Y3OTczMDdhN2ZiZDdh
ZGRiNjM4M2ZmNjQ1ZmVmOGFlNjQ5OTJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcApAQCAtMTU0LDYgKzE1NCwxMCBAQAogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmgiCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlIDxXZWJD
b3JlL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaD4KKyNlbmRpZgorCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICNpbmNsdWRlICJXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCIKICNl
bmRpZgpAQCAtMjExLDEwICsyMTUsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvVlA5VXRpbGl0aWVz
Q29jb2EuaD4KICNlbmRpZgogCi0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JM
T0NLSU5HKQotI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5o
PgotI2VuZGlmCi0KICNkZWZpbmUgUkVMRUFTRV9MT0dfU0VTU0lPTl9JRCAobV9zZXNzaW9uSUQg
PyBtX3Nlc3Npb25JRC0+dG9VSW50NjQoKSA6IDApCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoY2hhbm5lbCwgZm10LCAuLi4pIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5n
QWxsb3dlZCgpLCBjaGFubmVsLCAiJXAgLSBbc2Vzc2lvbklEPSUiIFBSSXU2NCAiXSBXZWJQcm9j
ZXNzOjoiIGZtdCwgdGhpcywgUkVMRUFTRV9MT0dfU0VTU0lPTl9JRCwgIyNfX1ZBX0FSR1NfXykK
ICNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChjaGFubmVsLCBmbXQsIC4uLikg
UkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIGNoYW5uZWws
ICIlcCAtIFtzZXNzaW9uSUQ9JSIgUFJJdTY0ICJdIFdlYlByb2Nlc3M6OiIgZm10LCB0aGlzLCBS
RUxFQVNFX0xPR19TRVNTSU9OX0lELCAjI19fVkFfQVJHU19fKQpAQCAtMTg3Niw3ICsxODc2LDcg
QEAgYm9vbCBXZWJQcm9jZXNzOjphcmVBbGxQYWdlc1Rocm90dGxlYWJsZSgpIGNvbnN0CiAgICAg
fSk7CiB9CiAKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisj
aWYgUExBVEZPUk0oTUFDKQogdm9pZCBXZWJQcm9jZXNzOjpkaXNwbGF5V2FzUmVmcmVzaGVkKHVp
bnQzMl90IGRpc3BsYXlJRCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZmM2YzM4NzJlYjA0NDRjZWEwYmU4
Y2VkYWMxYmZiZjc3NmIwMjlmMy4uNGQ2YTg3NWI0YTQxZmVlYjlmZjBiZTE0MThmYjUxZmFhMzdm
MDUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC01MDksMTEgKzUw
OSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZW5kUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFJ
bW1lZGlhdGVseShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogI2VuZGlmCiAKLSNpZiBF
TkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0gICAgdm9pZCBkaXNwbGF5
V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJRCk7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JN
KE1BQykKKyAgICB2b2lkIGRpc3BsYXlXYXNSZWZyZXNoZWQodWludDMyX3QgZGlzcGxheUlEKTsK
ICAgICB2b2lkIHN5c3RlbVdpbGxQb3dlck9uKCk7CiAgICAgdm9pZCBzeXN0ZW1XaWxsU2xlZXAo
KTsKICAgICB2b2lkIHN5c3RlbURpZFdha2UoKTsKQEAgLTUyOSw3ICs1MjYsNyBAQCBwcml2YXRl
OgogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJQcm9jZXNzTWVzc2FnZVJlY2Vp
dmVyLmNwcAogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VC
UFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZv
aWQgc2Nyb2xsZXJTdHlsZVByZWZlcmVuY2VDaGFuZ2VkKGJvb2wgdXNlT3ZlcmxheVNjcm9sbGJh
cnMpOwogICAgIHZvaWQgZGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkKENHRGlyZWN0RGlzcGxh
eUlELCBDR0Rpc3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3MpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGE0M2ZhMGUxOGRh
YzdiMTRjOWViN2RhMjRkODgwZWE1OWEyZDc1MzYuLmIwNDA4Yzc3OTdhODQ2ODljNmE2ZTkxMmQ3
MGIxNGE2Nzg1NjYwZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCkBAIC0xMTUsNyArMTE1LDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vz
cyBMZWdhY3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBTZXRTY3JlZW5Qcm9wZXJ0aWVzKHN0cnVjdCBXZWJDb3JlOjpTY3JlZW5Qcm9wZXJ0aWVzIHNj
cmVlblByb3BlcnRpZXMpCiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQ
Uk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBQTEFURk9STShNQUMpCiAgICAgU2Ny
b2xsZXJTdHlsZVByZWZlcmVuY2VDaGFuZ2VkKGJvb2wgdXNlT3ZlbGF5U2Nyb2xsYmFycykKICAg
ICBEaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWQoQ0dEaXJlY3REaXNwbGF5SUQgZGlzcGxheUlE
LCBDR0Rpc3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3MgZmxhZ3MpCiAjZW5kaWYKQEAgLTE5MiwxMSAr
MTkyLDkgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciBOb3RSZWZDb3Vu
dGVkIHsKICAgICBEaWRXcml0ZVRvUGFzdGVib2FyZEFzeW5jaHJvbm91c2x5KFN0cmluZyBwYXN0
ZWJvYXJkTmFtZSk7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZF
Ul9CTE9DS0lORykKKyNpZiBQTEFURk9STShNQUMpCiAgICAgRGlzcGxheVdhc1JlZnJlc2hlZCh1
aW50MzJfdCBkaXNwbGF5SUQpCi0jZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykKICAgICBTeXN0
ZW1XaWxsUG93ZXJPbigpCiAgICAgU3lzdGVtV2lsbFNsZWVwKCkKICAgICBTeXN0ZW1EaWRXYWtl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tCmluZGV4IDU3YjI1MDc3ZGFmYzhjMTExZjhiNjY1ZWY3M2IwZWYzZWRjMTdmOWIuLjEwMjhi
ZGU2YzcwYmQ4ZmUwOWY1YWVhZDc5N2JjNzhmZjFjNzQ4YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMzUwLDcgKzM1MCw3
IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAgICAgICAgIGxhdW5jaFNlcnZpY2VzRXh0ZW5z
aW9uLT5yZXZva2UoKTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VC
UFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIC8v
IEFwcCBuYXAgbXVzdCBiZSBtYW51YWxseSBlbmFibGVkIHdoZW4gbm90IHJ1bm5pbmcgdGhlIE5T
QXBwbGljYXRpb24gcnVuIGxvb3AuCiAgICAgX19DRlJ1bkxvb3BTZXRPcHRpb25zUmVhc29uKF9f
Q0ZSdW5Mb29wT3B0aW9uc0VuYWJsZUFwcE5hcCwgQ0ZTVFIoIkZpbmlzaGVkIGNoZWNraW4gYXMg
YXBwbGljYXRpb24gLSBlbmFibGUgYXBwIG5hcCIpKTsKICNlbmRpZgpAQCAtMzg2LDcgKzM4Niw3
IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAKICAgICBXZWJDb3JlOjpzZXRTY3JlZW5Qcm9w
ZXJ0aWVzKHBhcmFtZXRlcnMuc2NyZWVuUHJvcGVydGllcyk7CiAKLSNpZiBQTEFURk9STShNQUMp
ICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBQTEFURk9S
TShNQUMpCiAgICAgc2Nyb2xsZXJTdHlsZVByZWZlcmVuY2VDaGFuZ2VkKHBhcmFtZXRlcnMudXNl
T3ZlcmxheVNjcm9sbGJhcnMpOwogI2VuZGlmCiAKQEAgLTYzMSwyMSArNjMxLDEyIEBAIHZvaWQg
V2ViUHJvY2Vzczo6cmVnaXN0ZXJXaXRoU3RhdGVEdW1wZXIoKQogdm9pZCBXZWJQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemVQcm9jZXNzKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXph
dGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQotI2lmIEVO
QUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKICAgICAvLyBEZW55IHRoZSBX
ZWJDb250ZW50IHByb2Nlc3MgYWNjZXNzIHRvIHRoZSBXaW5kb3dTZXJ2ZXIuCiAgICAgLy8gVGhp
cyBjYWxsIHdpbGwgbm90IHN1Y2NlZWQgaWYgdGhlcmUgYXJlIG9wZW4gV2luZG93U2VydmVyIGNv
bm5lY3Rpb25zIGF0IHRoaXMgcG9pbnQuCiAgICAgYXV0byByZXR2YWwgPSBDR1NTZXREZW55V2lu
ZG93U2VydmVyQ29ubmVjdGlvbnModHJ1ZSk7CiAgICAgUkVMRUFTRV9BU1NFUlQocmV0dmFsID09
IGtDR0Vycm9yU3VjY2Vzcyk7CiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgd2UgY2xvc2UgYW55IFdp
bmRvd1NlcnZlciBjb25uZWN0aW9ucyBhZnRlciBjaGVja2luZyBpbiB3aXRoIExhdW5jaCBTZXJ2
aWNlcy4KICAgICBDR1NTaHV0ZG93blNlcnZlckNvbm5lY3Rpb25zKCk7Ci0jZWxzZQotCi0gICAg
aWYgKCFbTlNBcHAgaXNSdW5uaW5nXSkgewotICAgICAgICAvLyBUaGlzIGNhbGwgaXMgbmVlZGVk
IHdoZW4gdGhlIFdlYlByb2Nlc3MgaXMgbm90IHJ1bm5pbmcgdGhlIE5TQXBwbGljYXRpb24gZXZl
bnQgbG9vcC4KLSAgICAgICAgLy8gT3RoZXJ3aXNlLCBjYWxsaW5nIGVuYWJsZVNhbmRib3hTdHls
ZUZpbGVRdWFyYW50aW5lKCkgd2lsbCBmYWlsLgotICAgICAgICBsYXVuY2hTZXJ2aWNlc0NoZWNr
SW4oKTsKLSAgICB9Ci0jZW5kaWYgLy8gRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JM
T0NLSU5HKQogCiAgICAgU3dpdGNoaW5nR1BVQ2xpZW50OjpzZXRTaW5nbGV0b24oV2ViU3dpdGNo
aW5nR1BVQ2xpZW50OjpzaW5nbGV0b24oKSk7CiAgICAgTWFpblRocmVhZFNoYXJlZFRpbWVyOjpz
aG91bGRTZXR1cFBvd2VyT2JzZXJ2ZXIoKSA9IGZhbHNlOwpAQCAtOTkwLDcgKzk4MSw3IEBAIHZv
aWQgV2ViUHJvY2Vzczo6dXBkYXRlRnJlZXplclN0YXR1cygpCiB9CiAjZW5kaWYKIAotI2lmIFBM
QVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQor
I2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgV2ViUHJvY2Vzczo6c2Nyb2xsZXJTdHlsZVByZWZlcmVu
Y2VDaGFuZ2VkKGJvb2wgdXNlT3ZlcmxheVNjcm9sbGJhcnMpCiB7CiAgICAgU2Nyb2xsZXJTdHls
ZTo6c2V0VXNlT3ZlcmxheVNjcm9sbGJhcnModXNlT3ZlcmxheVNjcm9sbGJhcnMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421681</attachid>
            <date>2021-02-26 11:24:55 -0800</date>
            <delta_ts>2021-02-26 13:45:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222459-20210226112455.patch</filename>
            <type>text/plain</type>
            <size>42652</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRlNTc0MjQ2MDAyMzhhNTBkMzgxMjJl
MTgxYWQxMzRiY2NkMTljNzQuLjhhNjY5N2Y3YTI3Zjg0MjIyY2E3YzliZTkxMTJjZmNkOWZlNWM1
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDItMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIEVOQUJMRV9XRUJQUk9DRVNTX1dJ
TkRPV1NFUlZFUl9CTE9DS0lORyB3aGljaCBpcyBhbHdheXMgdHJ1ZSBmb3IgbWFjT1MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQ1OQorCisgICAg
ICAgIEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyBpcyBhbHdheXMgZGVm
aW5lZCBmb3IgUExBVEZPUk0oTUFDKSwgc28gcmVtb3ZlIGl0LAorICAgICAgICByZXBsYWNpbmcg
d2l0aCBQTEFURk9STShNQUMpIGluIGEgZmV3IHBsYWNlcy4gSW4gb3JkZXIgdG8gcmVkdWNlIHRo
ZSBudW1iZXIgUExBVEZPUk0oTUFDKSwgZGVmaW5lCisgICAgICAgIEhBVkUoQ1ZESVNQTEFZTElO
SykgYW5kIHVzZSBpdCBpbiBXSzIgY29kZSB0aGF0IHJlbGF0ZXMgdG8gRGlzcGxheUxpbmtzLgor
CisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisgICAgICAgICogd3RmL1BsYXRmb3Jt
RW5hYmxlQ29jb2EuaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIwMjEtMDIt
MjMgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBbQ01h
a2VdIEZpeCBKU0NPbmx5IGJ1aWxkIG9uIFdpbmRvd3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MzVmNzYyMThk
M2ZiYTAxZjg5YzUzYWQ4YTRiYzI0YzNjZTRlNjI4Li5iYmY1NmNhM2FmYjc5NWI2Y2IzMTcxOWJj
N2JlNzc4N2NlOGFjNzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjEtMDItMjUg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3Zl
IEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyB3aGljaCBpcyBhbHdheXMg
dHJ1ZSBmb3IgbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMjQ1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyBpcyBhbHdheXMg
ZGVmaW5lZCBmb3IgUExBVEZPUk0oTUFDKSwgc28gcmVtb3ZlIGl0LAorICAgICAgICByZXBsYWNp
bmcgd2l0aCBQTEFURk9STShNQUMpIGluIGEgZmV3IHBsYWNlcy4gSW4gb3JkZXIgdG8gcmVkdWNl
IHRoZSBudW1iZXIgUExBVEZPUk0oTUFDKSwgZGVmaW5lCisgICAgICAgIEhBVkUoQ1ZESVNQTEFZ
TElOSykgYW5kIHVzZSBpdCBpbiBXSzIgY29kZSB0aGF0IHJlbGF0ZXMgdG8gRGlzcGxheUxpbmtz
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjplbnN1cmVQbGF0Zm9ybUNvbnRleHQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
OjphZGRDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
TWFuYWdlcjo6cmVtb3ZlQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0tleUV2ZW50
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50
U3RhdGVPZk1vZGlmaWVyS2V5cyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2Ny
ZWVuTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Z3B1SURGb3JEaXNwbGF5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgICgtW1dlYlNjcm9s
bGJhclBhcnRBbmltYXRpb24gaW5pdFdpdGhTY3JvbGxiYXI6ZmVhdHVyZVRvQW5pbWF0ZTphbmlt
YXRlRnJvbTphbmltYXRlVG86ZHVyYXRpb246XSk6CisgICAgICAgICgtW1dlYlNjcm9sbGJhclBh
cnRBbmltYXRpb24gc3RhcnRBbmltYXRpb25dKToKKyAgICAgICAgKC1bV2ViU2Nyb2xsYmFyUGFy
dEFuaW1hdGlvbiBzZXRDdXJyZW50UHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dlYlNjcm9sbGJh
clBhcnRBbmltYXRpb24gc3RvcEFuaW1hdGlvbl0pOgorICAgICAgICAoLVtXZWJTY3JvbGxiYXJQ
YXJ0QW5pbWF0aW9uIHNldEN1cnJlbnRQcm9ncmVzczpzZXRDdXJyZW50UHJvZ3Jlc3M6XSk6IERl
bGV0ZWQuCisKIDIwMjEtMDItMjQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTGVnYWN5TGluZUxheW91dF0gSW5saW5lIGxldmVsIGJveCBzaG91bGQgbm90IHN0
aWNrIG91dCBhdCB0aGUgYm90dG9tIG9mIGl0cyBjb250YWluaW5nIGJsb2NrCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDIxN2I4MWYwMTIwNzIxN2FhMTg3MjBhOGVjOGQ1MWJkZDc2MjMyMTAuLjgzMzAzMzM2ZGNiODY1
NjE4ZGNiODkzNWUxNTY5MjkxMTJhYzg5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIw
MjEtMDItMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlIEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyB3aGljaCBp
cyBhbHdheXMgdHJ1ZSBmb3IgbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMjQ1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyBp
cyBhbHdheXMgZGVmaW5lZCBmb3IgUExBVEZPUk0oTUFDKSwgc28gcmVtb3ZlIGl0LAorICAgICAg
ICByZXBsYWNpbmcgd2l0aCBQTEFURk9STShNQUMpIGluIGEgZmV3IHBsYWNlcy4gSW4gb3JkZXIg
dG8gcmVkdWNlIHRoZSBudW1iZXIgUExBVEZPUk0oTUFDKSwgZGVmaW5lCisgICAgICAgIEhBVkUo
Q1ZESVNQTEFZTElOSykgYW5kIHVzZSBpdCBpbiBXSzIgY29kZSB0aGF0IHJlbGF0ZXMgdG8gRGlz
cGxheUxpbmtzLgorCisgICAgICAgICogUGxhdGZvcm0vY29jb2EvTGF5ZXJIb3N0aW5nQ29udGV4
dC5tbToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0
ZXJuYWxIb3N0aW5nUHJvY2Vzcyk6CisgICAgICAgICogU2hhcmVkL21hYy9IYW5nRGV0ZWN0aW9u
RGlzYWJsZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OnNldENsaWVudHNNYXlJZ25vcmVFdmVu
dHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRpb25PYnNl
cnZlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlm
aWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ09ic2VydmVyOjpzaW5nbGV0b24pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlbmRXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGlzcGxheVJl
Y29uZmlndXJhdGlvbkNhbGxCYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OnNlbmREaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWRNZXNzYWdlRm9yVGVzdGluZyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6fldl
YlByb2Nlc3NQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cHJvY2Vz
c1dpbGxTaHV0RG93bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9EaXNwbGF5TGluay5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1Byb3h5
TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnN0b3BEaXNwbGF5TGlu
ayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5k
bGVNYWMubW06CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjppbml0aWFsaXplKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERkxheWVyQ29udHJvbGxlclNQSS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgorICAgICAg
ICAoV2ViS2l0OjpQREZQbHVnaW46OlBERlBsdWdpbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0RyYXdpbmdBcmVh
TWFjLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OmNyZWF0ZURpc3BsYXlSZWZy
ZXNoTW9uaXRvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemVQcm9jZXNzKToKKwogMjAyMS0wMi0yNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjY3NzYzKTogW0dUS11bV1BF
XSB1c2VyIHByZWZlcnJlZCBsYW5ndWFnZXMgYXJlIHNlbnQgdG8gdGhlIHdyb25nIG5ldHdvcmsg
cHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaCBiL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKaW5kZXggMTlhOGU0NzYzYzJhNDBiZjJmYjNj
ODM0YWFhMzcwMTI5ODUxNTJmZS4uNGIwN2M3YWM4NGRjNTcwMTljY2EzMjUxMGNkOTkxMWI0MTJm
MTUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCkBAIC0xMDgsMTAgKzEwOCw2IEBACiAjZGVm
aW5lIEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUCAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVk
KEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLSNkZWZpbmUgRU5BQkxF
X1dFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HIDAKLSNlbmRpZgotCiAjaWYgIWRlZmlu
ZWQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykKICNkZWZpbmUgRU5BQkxFX01BQ19HRVNUVVJF
X0VWRU5UUyAwCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCBh
NmNiMTFmYmJlYjJmYjMwNjljNmZmMDgyMDk4YjRiYTYzNmUyYTQxLi4zYzkzNmEyZTc4YmJiMzYw
OWYxZTFkYTRmMzYwZWZhMGNmMTFmOWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2Nv
YS5oCkBAIC01ODIsMTAgKzU4Miw2IEBACiAjZGVmaW5lIEVOQUJMRV9XRUJQUk9DRVNTX05TUlVO
TE9PUCAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykgJiYgUExBVEZPUk0oTUFDKQotI2RlZmluZSBFTkFCTEVfV0VCUFJPQ0VT
U19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcgMQotI2VuZGlmCi0KICNpZiAhZGVmaW5lZChFTkFCTEVf
V0VCWFIpICYmIChIQVZFKFdFQlhSX0lOVEVSTkFMUykgfHwgKFVTRShBUFBMRV9JTlRFUk5BTF9T
REspICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMTAwMDApKQogI2RlZmluZSBFTkFCTEVfV0VCWFIgMQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2
ZS5oCmluZGV4IDliNTQ0ZDhhMGZkMTI5NDU2OWNiNTU4NTczYWU0ZGUyM2VkNTg3MWYuLjFmNzc5
NGZiYmNiZjVmZjZiYjI0YTkyNTFjYTk0ZWY2NTZmYzY0YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5o
CkBAIC0yODYsNiArMjg2LDEwIEBACiAjZGVmaW5lIEhBVkVfSU9TVVJGQUNFIDEKICNlbmRpZgog
CisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBIQVZFX0NWRElTUExBWUxJTksgMQorI2VuZGlm
CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1V
TEFUT1IpCiAjZGVmaW5lIEhBVkVfSU9TVVJGQUNFX0NPUkVJTUFHRV9TVVBQT1JUIDEKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9T
dXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJm
YWNlLm1tCmluZGV4IGNmN2NiNmU1M2NkNDk4MzZjYjQ5M2FhY2JlMTZiYjA1ZTQzNzRiNjguLmNh
NGZmOTU4NjUxOTA0MjVmMGMwMmI0MTQzMDE4OGQzYmM2MzdiYWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KQEAgLTMyMSw3
ICszMjEsNyBAQCBDR0NvbnRleHRSZWYgSU9TdXJmYWNlOjplbnN1cmVQbGF0Zm9ybUNvbnRleHQo
Y29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKICAgICAKICAgICBtX2NnQ29udGV4dCA9IGFk
b3B0Q0YoQ0dJT1N1cmZhY2VDb250ZXh0Q3JlYXRlKG1fc3VyZmFjZS5nZXQoKSwgbV9jb250ZXh0
U2l6ZS53aWR0aCgpLCBtX2NvbnRleHRTaXplLmhlaWdodCgpLCBiaXRzUGVyQ29tcG9uZW50LCBi
aXRzUGVyUGl4ZWwsIG1fY29sb3JTcGFjZS5nZXQoKSwgYml0bWFwSW5mbykpOwogCi0jaWYgUExB
VEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisj
aWYgUExBVEZPUk0oTUFDKQogICAgIGlmIChhdXRvIGRpc3BsYXlNYXNrID0gcHJpbWFyeU9wZW5H
TERpc3BsYXlNYXNrKCkpIHsKICAgICAgICAgaWYgKGhvc3RXaW5kb3cgJiYgaG9zdFdpbmRvdy0+
ZGlzcGxheUlEKCkpCiAgICAgICAgICAgICBkaXNwbGF5TWFzayA9IGRpc3BsYXlNYXNrRm9yRGlz
cGxheShob3N0V2luZG93LT5kaXNwbGF5SUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCmluZGV4IDA3ZWJhMDQyNmI2Y2NjNGEyZDE0Yjg3ZTA4
Yjc3NjNmNzUzMGIyZTkuLmU2NmUwMGFkYjI4NzVhZGY2OWExOTdmY2M2OTIzMTZkYTZmOTZlNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCkBA
IC02MiwxMSArNjIsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6YWRk
Q29udGV4dChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dAogICAgIGlmICghY29udGV4
dCkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhRU5BQkxFKFdFQlBS
T0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQotICAgIGlmICghbV9jb250ZXh0cy5zaXplKCkp
Ci0gICAgICAgIENHRGlzcGxheVJlZ2lzdGVyUmVjb25maWd1cmF0aW9uQ2FsbGJhY2soZGlzcGxh
eVdhc1JlY29uZmlndXJlZCwgbnVsbHB0cik7Ci0jZW5kaWYKLQogICAgIEFTU0VSVCghbV9jb250
ZXh0cy5jb250YWlucyhjb250ZXh0KSk7CiAgICAgbV9jb250ZXh0cy5hcHBlbmQoY29udGV4dCk7
CiB9CkBAIC03NiwxMCArNzEsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdl
cjo6cmVtb3ZlQ29udGV4dChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udAogICAgIGlmICgh
bV9jb250ZXh0cy5jb250YWlucyhjb250ZXh0KSkKICAgICAgICAgcmV0dXJuOwogICAgIG1fY29u
dGV4dHMucmVtb3ZlRmlyc3QoY29udGV4dCk7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAhRU5BQkxF
KFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQotICAgIGlmICghbV9jb250ZXh0cy5z
aXplKCkpCi0gICAgICAgIENHRGlzcGxheVJlbW92ZVJlY29uZmlndXJhdGlvbkNhbGxiYWNrKGRp
c3BsYXlXYXNSZWNvbmZpZ3VyZWQsIG51bGxwdHIpOwotI2VuZGlmCiB9CiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpyZWN5Y2xlQ29udGV4dElmTmVjZXNzYXJ5KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbQppbmRleCBjMTljOTc0MzMw
NjZjMGQ2MjYxZjVkMmFkZGUyOTBjMzkzNjUyNTg4Li4wNmZkZDUyODI2ZTdjZDJmN2EwYzlkNTBj
ODllNmI5ZTFjYTlmMDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
S2V5RXZlbnRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tleUV2ZW50
TWFjLm1tCkBAIC0yNTksMTMgKzI1OSwxMiBAQCB2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6
ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFR5cGUgdHlwZSwgYm9vbCBiYWNrd2FyZENvbQogCiBP
cHRpb25TZXQ8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6
Y3VycmVudFN0YXRlT2ZNb2RpZmllcktleXMoKQogewotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJ
TkRPV1NFUlZFUl9CTE9DS0lORykKICAgICAvLyBzX2N1cnJlbnRNb2RpZmllcnMgaXMgb25seSBz
ZXQgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcywgbm90IGluIHRoZSBVSSBwcm9jZXNzLgogICAg
IGlmIChzX2N1cnJlbnRNb2RpZmllcnMpIHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKICAgICAgICAgcmV0dXJuICpzX2N1cnJlbnRNb2RpZmllcnM7CiAgICAgfQotI2VuZGlmCisK
ICAgICBVSW50MzIgY3VycmVudE1vZGlmaWVycyA9IEdldEN1cnJlbnRLZXlNb2RpZmllcnMoKTsK
IAogICAgIE9wdGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCmluZGV4
IDI1M2UzZjI0NGRhOWRhODQ3OTNlZDViNWI4NjQ0MGEyNWIwOTNjY2QuLmQ3ZDllZjA1ZTNmNTNh
MDU1MGQxZTZjN2FiMTE5N2E3ZDVkNWQzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KQEAgLTIwMiwxMyArMjAyLDEwIEBAIElPUmVn
aXN0cnlHUFVJRCBwcmltYXJ5R1BVSUQoKQogCiBJT1JlZ2lzdHJ5R1BVSUQgZ3B1SURGb3JEaXNw
bGF5KFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKIHsKLSNpZiBFTkFCTEUoV0VCUFJPQ0VT
U19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAgICAgaWYgKGF1dG8gZGF0YSA9IHNjcmVlbkRhdGEo
ZGlzcGxheUlEKSkKICAgICAgICAgcmV0dXJuIGRhdGEtPmdwdUlEOworCiAgICAgcmV0dXJuIDA7
Ci0jZWxzZQotICAgIHJldHVybiBncHVJREZvckRpc3BsYXlNYXNrKENHRGlzcGxheUlEVG9PcGVu
R0xEaXNwbGF5TWFzayhkaXNwbGF5SUQpKTsKLSNlbmRpZgogfQogCiBJT1JlZ2lzdHJ5R1BVSUQg
Z3B1SURGb3JEaXNwbGF5TWFzayhHTHVpbnQgZGlzcGxheU1hc2spCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggMDcxOTdlMDM4YTNh
Mjg0ODMxYTY5MDdhODc0MGM5MWUxY2Q2NTlhZC4uOGUwMGJkNzE4YmY1MGI2MzRkOGIyOTY2Njhj
Y2RlYjViYzg0MjllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxBbmltYXRvck1hYy5tbQpAQCAtMzAyLDQxICszMDIsMjggQEAgc3RhdGljIFRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEZlYXR1cmVUb0FuaW1hdGUgZmVhdHVyZSkKIH0K
ICNlbmRpZgogCi0jaWYgIUVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykK
LUBpbnRlcmZhY2UgV2ViU2Nyb2xsYmFyUGFydEFuaW1hdGlvbiA6IE5TQW5pbWF0aW9uCi0jZWxz
ZQogQGludGVyZmFjZSBXZWJTY3JvbGxiYXJQYXJ0QW5pbWF0aW9uIDogTlNPYmplY3QKLSNlbmRp
ZgogewogICAgIFNjcm9sbGJhciogX3Njcm9sbGJhcjsKICAgICBSZXRhaW5QdHI8TlNTY3JvbGxl
ckltcD4gX3Njcm9sbGVySW1wOwogICAgIEZlYXR1cmVUb0FuaW1hdGUgX2ZlYXR1cmVUb0FuaW1h
dGU7CiAgICAgQ0dGbG9hdCBfc3RhcnRWYWx1ZTsKICAgICBDR0Zsb2F0IF9lbmRWYWx1ZTsKLSNp
ZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAgICAgTlNUaW1lSW50
ZXJ2YWwgX2R1cmF0aW9uOwogICAgIFJldGFpblB0cjxOU1RpbWVyPiBfdGltZXI7CiAgICAgUmV0
YWluUHRyPE5TRGF0ZT4gX3N0YXJ0RGF0ZTsKICAgICBSZWZQdHI8Q3ViaWNCZXppZXJUaW1pbmdG
dW5jdGlvbj4gX3RpbWluZ0Z1bmN0aW9uOwotI2VuZGlmCiB9CiAtIChpZClpbml0V2l0aFNjcm9s
bGJhcjooU2Nyb2xsYmFyKilzY3JvbGxiYXIgZmVhdHVyZVRvQW5pbWF0ZTooRmVhdHVyZVRvQW5p
bWF0ZSlmZWF0dXJlVG9BbmltYXRlIGFuaW1hdGVGcm9tOihDR0Zsb2F0KXN0YXJ0VmFsdWUgYW5p
bWF0ZVRvOihDR0Zsb2F0KWVuZFZhbHVlIGR1cmF0aW9uOihOU1RpbWVJbnRlcnZhbClkdXJhdGlv
bjsKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAtICh2b2lk
KXNldEN1cnJlbnRQcm9ncmVzczooTlNUaW1lciAqKXRpbWVyOwogLSAodm9pZClzZXREdXJhdGlv
bjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb247CiAtICh2b2lkKXN0b3BBbmltYXRpb247Ci0jZW5k
aWYKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYlNjcm9sbGJhclBhcnRBbmltYXRpb24KIAog
LSAoaWQpaW5pdFdpdGhTY3JvbGxiYXI6KFNjcm9sbGJhciopc2Nyb2xsYmFyIGZlYXR1cmVUb0Fu
aW1hdGU6KEZlYXR1cmVUb0FuaW1hdGUpZmVhdHVyZVRvQW5pbWF0ZSBhbmltYXRlRnJvbTooQ0dG
bG9hdClzdGFydFZhbHVlIGFuaW1hdGVUbzooQ0dGbG9hdCllbmRWYWx1ZSBkdXJhdGlvbjooTlNU
aW1lSW50ZXJ2YWwpZHVyYXRpb24KIHsKLSNpZiAhRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VS
VkVSX0JMT0NLSU5HKQotICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhEdXJhdGlvbjpkdXJhdGlv
biBhbmltYXRpb25DdXJ2ZTpOU0FuaW1hdGlvbkVhc2VJbk91dF07Ci0gICAgaWYgKCFzZWxmKQot
ICAgICAgICByZXR1cm4gbmlsOwotI2Vsc2UKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAg
IGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTM0NSw3ICszMzIsNiBAQCAtIChp
ZClpbml0V2l0aFNjcm9sbGJhcjooU2Nyb2xsYmFyKilzY3JvbGxiYXIgZmVhdHVyZVRvQW5pbWF0
ZTooRmVhdHVyZVRvQW5pbWF0ZQogICAgIF90aW1lciA9IGFkb3B0TlMoW1tOU1RpbWVyIGFsbG9j
XSBpbml0V2l0aEZpcmVEYXRlOltOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzow
XSBpbnRlcnZhbDp0aW1lSW50ZXJ2YWwgdGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHNl
dEN1cnJlbnRQcm9ncmVzczopIHVzZXJJbmZvOm5pbCByZXBlYXRzOllFU10pOwogICAgIF9kdXJh
dGlvbiA9IGR1cmF0aW9uOwogICAgIF90aW1pbmdGdW5jdGlvbiA9IEN1YmljQmV6aWVyVGltaW5n
RnVuY3Rpb246OmNyZWF0ZShDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uOjpFYXNlSW5PdXQpOwot
I2VuZGlmCiAKICAgICBMT0dfV0lUSF9TVFJFQU0oT3ZlcmxheVNjcm9sbGJhcnMsIHN0cmVhbSA8
PCAiQ3JlYXRpbmcgV2ViU2Nyb2xsYmFyUGFydEFuaW1hdGlvbiBmb3IgIiA8PCBmZWF0dXJlVG9B
bmltYXRlIDw8ICIgZnJvbSAiIDw8IHN0YXJ0VmFsdWUgPDwgIiB0byAiIDw8IGVuZFZhbHVlKTsK
IApAQCAtMzU0LDEwICszNDAsNiBAQCAtIChpZClpbml0V2l0aFNjcm9sbGJhcjooU2Nyb2xsYmFy
KilzY3JvbGxiYXIgZmVhdHVyZVRvQW5pbWF0ZTooRmVhdHVyZVRvQW5pbWF0ZQogICAgIF9zdGFy
dFZhbHVlID0gc3RhcnRWYWx1ZTsKICAgICBfZW5kVmFsdWUgPSBlbmRWYWx1ZTsKIAotI2lmICFF
TkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0gICAgW3NlbGYgc2V0QW5p
bWF0aW9uQmxvY2tpbmdNb2RlOk5TQW5pbWF0aW9uTm9uYmxvY2tpbmddOwotI2VuZGlmCi0KICAg
ICByZXR1cm4gc2VsZjsKIH0KIApAQCAtMzY5LDEyICszNTEsOCBAQCAtICh2b2lkKXN0YXJ0QW5p
bWF0aW9uCiAKICAgICBMT0dfV0lUSF9TVFJFQU0oT3ZlcmxheVNjcm9sbGJhcnMsIHN0cmVhbSA8
PCAiLVtXZWJTY3JvbGxiYXJQYXJ0QW5pbWF0aW9uICIgPDwgc2VsZiA8PCAic3RhcnRBbmltYXRp
b25dIGZvciAiIDw8IF9mZWF0dXJlVG9BbmltYXRlKTsKIAotI2lmICFFTkFCTEUoV0VCUFJPQ0VT
U19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0gICAgW3N1cGVyIHN0YXJ0QW5pbWF0aW9uXTsKLSNl
bHNlCiAgICAgW1tOU1J1bkxvb3AgbWFpblJ1bkxvb3BdIGFkZFRpbWVyOl90aW1lci5nZXQoKSBm
b3JNb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlXTsKICAgICBfc3RhcnREYXRlID0gYWRvcHROUyhb
W05TRGF0ZSBhbGxvY10gaW5pdFdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzowXSk7Ci0jZW5kaWYK
IH0KIAogLSAodm9pZClzZXRTdGFydFZhbHVlOihDR0Zsb2F0KXN0YXJ0VmFsdWUKQEAgLTM4Nywx
NSArMzY1LDggQEAgLSAodm9pZClzZXRFbmRWYWx1ZTooQ0dGbG9hdCllbmRWYWx1ZQogICAgIF9l
bmRWYWx1ZSA9IGVuZFZhbHVlOwogfQogCi0jaWYgIUVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykKLS0gKHZvaWQpc2V0Q3VycmVudFByb2dyZXNzOihOU0FuaW1hdGlvblBy
b2dyZXNzKXByb2dyZXNzCi0jZWxzZQogLSAodm9pZClzZXRDdXJyZW50UHJvZ3Jlc3M6KE5TVGlt
ZXIgKil0aW1lcgotI2VuZGlmCiB7Ci0jaWYgIUVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZF
Ul9CTE9DS0lORykKLSAgICBbc3VwZXIgc2V0Q3VycmVudFByb2dyZXNzOnByb2dyZXNzXTsKLSNl
bHNlCiAgICAgQ0dGbG9hdCBwcm9ncmVzcyA9IDA7CiAgICAgTlNEYXRlICpub3cgPSBbTlNEYXRl
IGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MF07CiAgICAgTlNUaW1lSW50ZXJ2YWwgZWxh
cHNlZCA9IFtub3cgdGltZUludGVydmFsU2luY2VEYXRlOl9zdGFydERhdGUuZ2V0KCldOwpAQCAt
NDA4LDcgKzM3OSw2IEBAIC0gKHZvaWQpc2V0Q3VycmVudFByb2dyZXNzOihOU1RpbWVyICopdGlt
ZXIKICAgICAgICAgICAgIHQgPSBlbGFwc2VkIC8gX2R1cmF0aW9uOwogICAgICAgICBwcm9ncmVz
cyA9IF90aW1pbmdGdW5jdGlvbi0+dHJhbnNmb3JtVGltZSh0LCBfZHVyYXRpb24pOwogICAgIH0K
LSNlbmRpZgogICAgIEFTU0VSVChfc2Nyb2xsYmFyKTsKIAogICAgIExPR19XSVRIX1NUUkVBTShP
dmVybGF5U2Nyb2xsYmFycywgc3RyZWFtIDw8ICItW1dlYlNjcm9sbGJhclBhcnRBbmltYXRpb24g
IiA8PCBzZWxmIDw8ICJzZXRDdXJyZW50UHJvZ3Jlc3M6IiA8PCBwcm9ncmVzcyA8PCJdIGZvciAi
IDw8IF9mZWF0dXJlVG9BbmltYXRlKTsKQEAgLTQ0Niw3ICs0MTYsNiBAQCAtICh2b2lkKWludmFs
aWRhdGUKICAgICBfc2Nyb2xsYmFyID0gMDsKIH0KIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJ
TkRPV1NFUlZFUl9CTE9DS0lORykKIC0gKHZvaWQpc2V0RHVyYXRpb246KE5TVGltZUludGVydmFs
KWR1cmF0aW9uCiB7CiAgICAgX2R1cmF0aW9uID0gZHVyYXRpb247CkBAIC00NTYsNyArNDI1LDYg
QEAgLSAodm9pZClzdG9wQW5pbWF0aW9uCiB7CiAgICAgW190aW1lciBpbnZhbGlkYXRlXTsKIH0K
LSNlbmRpZgogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29j
b2EvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2Ev
TGF5ZXJIb3N0aW5nQ29udGV4dC5tbQppbmRleCAyNDA1OGU5YjcxZGEwZTNkYzlkNjAzYTJmYTc3
NTFlZjM1Njc3ZjAxLi4xZGE4M2VjM2U0MWUxYTZjOGE1OTMzYzlhZGZjNDZjY2E1NTA4ZDI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0xheWVySG9zdGluZ0NvbnRl
eHQubW0KKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9MYXllckhvc3RpbmdDb250
ZXh0Lm1tCkBAIC02Nyw3ICs2Nyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxMYXllckhvc3RpbmdDb250
ZXh0PiBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpCiAgICAgICAg
IGtDQUNvbnRleHREaXNwbGF5SWQgOiBAMTAwMDAKICNlbmRpZgogICAgIH1dOwotI2VsaWYgIVBM
QVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxP
Q0tJTkcpCisjZWxpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAgICAgW0NBQ29udGV4dCBzZXRB
bGxvd3NDR1NDb25uZWN0aW9uczpOT107CiAgICAgbGF5ZXJIb3N0aW5nQ29udGV4dC0+bV9jb250
ZXh0ID0gW0NBQ29udGV4dCByZW1vdGVDb250ZXh0V2l0aE9wdGlvbnM6QHsKICAgICAgICAga0NB
Q29udGV4dENJRmlsdGVyQmVoYXZpb3IgOiAgQCJpZ25vcmUiLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL0hhbmdEZXRlY3Rpb25EaXNhYmxlck1hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9IYW5nRGV0ZWN0aW9uRGlzYWJsZXJNYWMubW0KaW5kZXggY2Q2ZDM0
MjEyNDE0YjdhY2M2MGQ3MTI4NjU1NGFlNDZhNWI3ZmYxMi4uZTI0YmU2N2MxYWFiMjQxZGYxYzdm
ZDQ1Zjk0NzgzYmZkMTE1MGMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L0hhbmdEZXRlY3Rpb25EaXNhYmxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvSGFuZ0RldGVjdGlvbkRpc2FibGVyTWFjLm1tCkBAIC00OCwxNCArNDgsMTQgQEAgc3RhdGlj
IGJvb2wgY2xpZW50c01heUlnbm9yZUV2ZW50cygpCiBzdGF0aWMgdm9pZCBzZXRDbGllbnRzTWF5
SWdub3JlRXZlbnRzKGJvb2wgY2xpZW50c01heUlnbm9yZUV2ZW50cykKIHsKICAgICBhdXRvIGNn
c0lkID0gQ0dTTWFpbkNvbm5lY3Rpb25JRCgpOwotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRP
V1NFUlZFUl9CTE9DS0lORykKKwogICAgIC8vIEluIG1hY09TIDEwLjE0IGFuZCBsYXRlciwgdGhl
IFdlYkNvbnRlbnQgcHJvY2VzcyBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0byB0aGUgV2luZG93U2Vy
dmVyLgogICAgIC8vIEluIHRoaXMgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyB2YWxpZCBXaW5kb3dT
ZXJ2ZXIgbWFpbiBjb25uZWN0aW9uLgogICAgIGlmICghY2dzSWQpCiAgICAgICAgIHJldHVybjsK
ICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE4NDQ4ND4gV2Ugc2hvdWxkIGFz
c2VydCBoZXJlIGlmIHRoaXMgaXMgYmVpbmcgY2FsbGVkIGZyb20KICAgICAvLyB0aGUgV2ViQ29u
dGVudCBwcm9jZXNzLgotI2VuZGlmCisKICAgICBpZiAoQ0dTU2V0Q29ubmVjdGlvblByb3BlcnR5
KGNnc0lkLCBjZ3NJZCwgY2xpZW50c01heUlnbm9yZUV2ZW50c0tleSwgY2xpZW50c01heUlnbm9y
ZUV2ZW50cyA/IGtDRkJvb2xlYW5UcnVlIDoga0NGQm9vbGVhbkZhbHNlKSAhPSBrQ0dFcnJvclN1
Y2Nlc3MpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggZjQ4
NjE4NDI5NmIwMjFhYzk1NDExZmI0ODhhZjU1ODZjMjkwYmIwZS4uNjQ4MGYyNDMwNDA5MWUzOTk2
NmFkMDhhYjA4YTExMGZlZGVkNWZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC02NjYsMTIgKzY2NiwxMCBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycygpCiAgICAg
ICAgIHNjcmVlblByb3BlcnRpZXNTdGF0ZUNoYW5nZWQoKTsKICAgICB9XTsKIAotI2lmIEVOQUJM
RShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKICAgICBtX3Njcm9sbGVyU3R5bGVO
b3RpZmljYXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TUHJlZmVycmVkU2Nyb2xsZXJTdHlsZURpZENoYW5nZU5v
dGlmaWNhdGlvbiBvYmplY3Q6bmlsIHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1cnJlbnRRdWV1
ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICpub3RpZmljYXRpb24pIHsKICAgICAgICAg
YXV0byBzY3JvbGxiYXJTdHlsZSA9IFtOU1Njcm9sbGVyIHByZWZlcnJlZFNjcm9sbGVyU3R5bGVd
OwogICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNjcm9s
bGVyU3R5bGVQcmVmZXJlbmNlQ2hhbmdlZChzY3JvbGxiYXJTdHlsZSkpOwogICAgIH1dOwotI2Vu
ZGlmCiAKICAgICBtX2FjdGl2YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIg
ZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRpb25EaWRCZWNvbWVB
Y3RpdmVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwIHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1
cnJlbnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICpub3RpZmljYXRpb24pIHsK
ICNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKQEAgLTczNiw5ICs3MzQsNyBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCkKICAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fYXV0
b21hdGljUXVvdGVTdWJzdGl0dXRpb25Ob3RpZmljYXRpb25PYnNlcnZlci5nZXQoKV07CiAgICAg
W1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2F1
dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25Ob3RpZmljYXRpb25PYnNlcnZlci5nZXQoKV07CiAgICAg
W1tOU1dvcmtzcGFjZS5zaGFyZWRXb3Jrc3BhY2Ugbm90aWZpY2F0aW9uQ2VudGVyXSByZW1vdmVP
YnNlcnZlcjptX2FjY2Vzc2liaWxpdHlEaXNwbGF5T3B0aW9uc05vdGlmaWNhdGlvbk9ic2VydmVy
LmdldCgpXTsKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAg
ICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpt
X3Njcm9sbGVyU3R5bGVOb3RpZmljYXRpb25PYnNlcnZlci5nZXQoKV07Ci0jZW5kaWYKICAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fZGVh
Y3RpdmF0aW9uT2JzZXJ2ZXIuZ2V0KCldOwogICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVtb3Zl
T2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREaXN0cmlidXRlZENlbnRlcigpLCB0aGlz
LCBBcHBsZUNvbG9yUHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uLCBudWxscHRyKTsKICNl
bGlmICFQTEFURk9STShNQUNDQVRBTFlTVCkKQEAgLTc2Nyw3ICs3NjMsNyBAQCBib29sIFdlYlBy
b2Nlc3NQb29sOjppc1VSTEtub3duSFNUU0hvc3QoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpIGNv
bnN0CiAgICAgcmV0dXJuIF9DRk5ldHdvcmtJc0tub3duSFNUU0hvc3RXaXRoU2Vzc2lvbih1cmwu
Z2V0KCksIG51bGxwdHIpOwogfQogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VCUFJP
Q0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgSEFWRShDVkRJU1BMQVlMSU5LKQogT3B0
aW9uYWw8dW5zaWduZWQ+IFdlYlByb2Nlc3NQb29sOjpub21pbmFsRnJhbWVzUGVyU2Vjb25kRm9y
RGlzcGxheShXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiB7CiAgICAgZm9y
IChhdXRvJiBkaXNwbGF5TGluayA6IG1fZGlzcGxheUxpbmtzKSB7CkBAIC04MTAsNyArODA2LDcg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c3RvcERpc3BsYXlMaW5rcyhJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24pCiAgICAgZm9yIChhdXRvJiBkaXNwbGF5TGluayA6IG1fZGlzcGxheUxpbmtz
KQogICAgICAgICBkaXNwbGF5TGluay0+cmVtb3ZlT2JzZXJ2ZXJzKGNvbm5lY3Rpb24pOwogfQot
I2VuZGlmCisjZW5kaWYgLy8gSEFWRShDVkRJU1BMQVlMSU5LKQogCiAvLyBGSVhNRTogRGVwcmVj
YXRlZC4gTGVmdCBoZXJlIHVudGlsIGEgZmluYWwgZGVjaXNpb24gaXMgbWFkZS4KIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnNldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKGJvb2wgZW5h
YmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdjMjk3
ZmNhODFlZGM1Yzc4YWM3MDFjZmNhMTI3ODE1MDRmMGEzYmIuLmViOGRhNDMwYzAyOWU2MjU0ZTgz
Yzk5ZGQ1YTM5NDdmMGYzZTcxMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtMjI0LDYgKzIyNCw3IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykK
KyNpbmNsdWRlICJEaXNwbGF5TGluay5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VVdGlsaXRp
ZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgogI2VuZGlmCkBAIC0yOTQs
MTAgKzI5NSw2IEBACiAjaW5jbHVkZSAiV2ViRGF0ZVRpbWVQaWNrZXIuaCIKICNlbmRpZgogCi0j
aWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQotI2luY2x1ZGUgIkRp
c3BsYXlMaW5rLmgiCi0jZW5kaWYKLQogLy8gVGhpcyBjb250cm9scyB3aGF0IHN0cmF0ZWd5IHdl
IHVzZSBmb3IgbW91c2Ugd2hlZWwgY29hbGVzY2luZy4KICNkZWZpbmUgTUVSR0VfV0hFRUxfRVZF
TlRTIDEKIApAQCAtMzIxLDcgKzMxOCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBE
RUZJTkVfREVCVUdfT05MWV9HTE9CQUwoV1RGOjpSZWZDb3VudGVkTGVha0NvdW50ZXIsIHdlYlBh
Z2VQcm94eUNvdW50ZXIsICgiV2ViUGFnZVByb3h5IikpOwogCi0jaWYgRU5BQkxFKFdFQlBST0NF
U1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKIGNsYXNz
IFNjcm9sbGluZ09ic2VydmVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTY3JvbGxpbmdP
YnNlcnZlcik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC0zNDgsNyArMzQ1LDcg
QEAgU2Nyb2xsaW5nT2JzZXJ2ZXImIFNjcm9sbGluZ09ic2VydmVyOjpzaW5nbGV0b24oKQogICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTY3JvbGxpbmdPYnNlcnZlcj4gZGV0ZWN0b3I7CiAgICAg
cmV0dXJuIGRldGVjdG9yOwogfQotI2VuZGlmIC8vIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykKKyNlbmRpZgogCiBjbGFzcyBTdG9yYWdlUmVxdWVzdHMgewogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFN0b3JhZ2VSZXF1ZXN0cyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwpAQCAtMjc0Nyw3ICsyNzQ0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVdoZWVs
RXZlbnQoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYgZXZlbnQpCiAKIHZvaWQgV2ViUGFnZVBy
b3h5OjpzZW5kV2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiBldmVudCkKIHsKLSNpZiBF
TkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgSEFWRShDVkRJU1BM
QVlMSU5LKQogICAgIFNjcm9sbGluZ09ic2VydmVyOjpzaW5nbGV0b24oKS53aWxsU2VuZFdoZWVs
RXZlbnQoKTsKICNlbmRpZgogCkBAIC05OTMxLDcgKzk5MjgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6Z2V0SXNWaWV3VmlzaWJsZShib29sJiByZXN1bHQpCiAKIHZvaWQgV2ViUGFnZVByb3h5Ojp1
cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSgpCiB7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFC
TEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpIHx8IFBMQVRGT1JNKElPU19GQU1J
TFkpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYXV0byBtb2RpZmllcnMgPSBQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQ6OmN1cnJlbnRTdGF0ZU9mTW9kaWZpZXJLZXlzKCk7CiAgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6VXBkYXRlQ3VycmVudE1vZGlmaWVyU3RhdGUobW9kaWZpZXJzKSk7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA0
MTIwZDM3ZDRjMDU3OWNlNzNlODEwZjQ1MGM3MjdlN2YzNWVjYWJmLi4zZWNlNTFlODhlYzRjYWEx
OWIyNDJlYTliY2MxZmVlYjMyODVkYTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwCkBAIC02ODYsOSArNjg2LDcgQEAgc3RhdGljIHZvaWQgZGlzcGxheVJl
Y29uZmlndXJhdGlvbkNhbGxCYWNrKENHRGlyZWN0RGlzcGxheUlEIGRpc3BsYXksIENHRGlzcGxh
eUMKICAgICBhdXRvIHNjcmVlblByb3BlcnRpZXMgPSBXZWJDb3JlOjpjb2xsZWN0U2NyZWVuUHJv
cGVydGllcygpOwogICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBXZWJQcm9jZXNzUG9vbDo6
YWxsUHJvY2Vzc1Bvb2xzKCkpIHsKICAgICAgICAgcHJvY2Vzc1Bvb2wtPnNlbmRUb0FsbFByb2Nl
c3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0U2NyZWVuUHJvcGVydGllcyhzY3JlZW5Qcm9w
ZXJ0aWVzKSk7Ci0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQog
ICAgICAgICBwcm9jZXNzUG9vbC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzOjpEaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWQoZGlzcGxheSwgZmxhZ3MpKTsKLSNlbmRp
ZgogICAgIH0KIH0KIApAQCAtMTk1Myw3ICsxOTUxLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6
cmVzZXRNb2NrTWVkaWFEZXZpY2VzKCkKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZERpc3Bs
YXlDb25maWd1cmF0aW9uQ2hhbmdlZE1lc3NhZ2VGb3JUZXN0aW5nKCkKIHsKLSNpZiBQTEFURk9S
TShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBQ
TEFURk9STShNQUMpCiAgICAgYXV0byBkaXNwbGF5ID0gQ0dTTWFpbkRpc3BsYXlJRCgpOwogCiAg
ICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IFdlYlByb2Nlc3NQb29sOjphbGxQcm9jZXNzUG9v
bHMoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggYjc4
YmZkZTIwYmE0YjU0ZmVmZGQzOGE5YjI1ODhmODQ0MzIxMzg1MC4uNjljMzM0ZDhhYzQzZGE3MjUy
MzM2ODE1ZmM0ZmE2NTE4NTg3Mjc4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oCkBAIC03MCwxMSArNzAsOSBAQCBPQkpDX0NMQVNTIFdLV2ViSW5zcGVjdG9yUHJl
ZmVyZW5jZU9ic2VydmVyOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi0jaW1wb3J0IDxX
ZWJDb3JlL1Bvd2VyT2JzZXJ2ZXJNYWMuaD4KLSNpbXBvcnQgPHBhbC9zeXN0ZW0vU3lzdGVtU2xl
ZXBMaXN0ZW5lci5oPgotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lO
RykKICNpbmNsdWRlICJEaXNwbGF5TGluay5oIgotI2VuZGlmCisjaW5jbHVkZSA8V2ViQ29yZS9Q
b3dlck9ic2VydmVyTWFjLmg+CisjaW5jbHVkZSA8cGFsL3N5c3RlbS9TeXN0ZW1TbGVlcExpc3Rl
bmVyLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIEFQSSB7CkBAIC0yNDAsNyArMjM4LDcgQEAgcHVi
bGljOgogICAgIFBsdWdpbkluZm9TdG9yZSYgcGx1Z2luSW5mb1N0b3JlKCkgeyByZXR1cm4gbV9w
bHVnaW5JbmZvU3RvcmU7IH0KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUo
V0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgSEFWRShDVkRJU1BMQVlMSU5L
KQogICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kRm9yRGlzcGxh
eShXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCk7CiAgICAgdm9pZCBzdGFydERpc3BsYXlMaW5r
KElQQzo6Q29ubmVjdGlvbiYsIERpc3BsYXlMaW5rT2JzZXJ2ZXJJRCwgV2ViQ29yZTo6UGxhdGZv
cm1EaXNwbGF5SUQpOwogICAgIHZvaWQgc3RvcERpc3BsYXlMaW5rKElQQzo6Q29ubmVjdGlvbiYs
IERpc3BsYXlMaW5rT2JzZXJ2ZXJJRCwgV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQpOwpAQCAt
NjY3LDkgKzY2NSw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPE5TT2JqZWN0PiBtX2F1dG9t
YXRpY1F1b3RlU3Vic3RpdHV0aW9uTm90aWZpY2F0aW9uT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRy
PE5TT2JqZWN0PiBtX2F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25Ob3RpZmljYXRpb25PYnNlcnZl
cjsKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fYWNjZXNzaWJpbGl0eURpc3BsYXlPcHRpb25z
Tm90aWZpY2F0aW9uT2JzZXJ2ZXI7Ci0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVS
X0JMT0NLSU5HKQogICAgIFJldGFpblB0cjxOU09iamVjdD4gbV9zY3JvbGxlclN0eWxlTm90aWZp
Y2F0aW9uT2JzZXJ2ZXI7Ci0jZW5kaWYKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fZGVhY3Rp
dmF0aW9uT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPFdLV2ViSW5zcGVjdG9yUHJlZmVyZW5jZU9i
c2VydmVyPiBtX3dlYkluc3BlY3RvclByZWZlcmVuY2VPYnNlcnZlcjsKIApAQCAtNzUzLDcgKzc0
OSw3IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UHJld2FybUluZm9ybWF0aW9uPj4gbV9wcmV3YXJt
SW5mb3JtYXRpb25QZXJSZWdpc3RyYWJsZURvbWFpbjsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYg
RU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lmIEhBVkUoQ1ZESVNQ
TEFZTElOSykKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaW5rPj4gbV9kaXNw
bGF5TGlua3M7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKaW5kZXggODkyODJhZDgzZWZhMDZhYzZjNjcyNDcyYjI3MjI2YWMwMTcxYWFlMC4u
NDkyZjNiYjlhMDZlZjIwZTI3MzgxZWFmZGZhYjVkZDg0M2I5MDNmOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0yNDQsNyArMjQ0LDcgQEAgV2Vi
UHJvY2Vzc1Byb3h5Ojp+V2ViUHJvY2Vzc1Byb3h5KCkKIAogICAgIFdlYlBhc3RlYm9hcmRQcm94
eTo6c2luZ2xldG9uKCkucmVtb3ZlV2ViUHJvY2Vzc1Byb3h5KCp0aGlzKTsKIAotI2lmIFBMQVRG
T1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lm
IEhBVkUoQ1ZESVNQTEFZTElOSykKICAgICBpZiAoc3RhdGUoKSA9PSBTdGF0ZTo6UnVubmluZykK
ICAgICAgICAgcHJvY2Vzc1Bvb2woKS5zdG9wRGlzcGxheUxpbmtzKCpjb25uZWN0aW9uKCkpOwog
I2VuZGlmCkBAIC00MzksNyArNDM5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NX
aWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewogICAgIEFTU0VSVF9V
TlVTRUQoY29ubmVjdGlvbiwgdGhpcy0+Y29ubmVjdGlvbigpID09ICZjb25uZWN0aW9uKTsKIAot
I2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NL
SU5HKQorI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKICAgICBwcm9jZXNzUG9vbCgpLnN0b3BEaXNw
bGF5TGlua3MoY29ubmVjdGlvbik7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggNWRhYzgzMWMyZWQyNjcxMGM1NzA4ZThkNDQwN2E5NGNi
YTQ2NjYwNy4uMjI2OGI3Nzk1OWVlYmE0OTc3YWUwMGYzZDI3Y2E4YzY0YWZlNDY2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTI5Nyw3ICsyOTcsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCByZWxlYXNlSGlnaFBlcmZvcm1hbmNlR1BVKCk7CiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JM
T0NLSU5HKQorI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKICAgICB2b2lkIHN0YXJ0RGlzcGxheUxp
bmsoRGlzcGxheUxpbmtPYnNlcnZlcklELCBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCk7CiAg
ICAgdm9pZCBzdG9wRGlzcGxheUxpbmsoRGlzcGxheUxpbmtPYnNlcnZlcklELCBXZWJDb3JlOjpQ
bGF0Zm9ybURpc3BsYXlJRCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCA0OWRiMGIzNDQwYmI4MGFjZjU3
NTNmYzAwODczOTAxNjQwYjg0MDQ2Li5lYTljZGE1MDFmMDg5MGJkM2RhMzBmMDJmZTE0YzNiMWNi
YjJjNzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluCkBAIC03MSw3ICs3MSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQ
cm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgUmVsZWFzZUhpZ2hQZXJmb3JtYW5jZUdQVSgpCiAj
ZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VS
VkVSX0JMT0NLSU5HKQorI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKICAgICBTdGFydERpc3BsYXlM
aW5rKFdlYktpdDo6RGlzcGxheUxpbmtPYnNlcnZlcklEIG9ic2VydmVySUQsIHVpbnQzMl90IGRp
c3BsYXlJRCkKICAgICBTdG9wRGlzcGxheUxpbmsoV2ViS2l0OjpEaXNwbGF5TGlua09ic2VydmVy
SUQgb2JzZXJ2ZXJJRCwgdWludDMyX3QgZGlzcGxheUlEKQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmNwcAppbmRleCAwZDFmMzg3MWJiN2ZkMGNkMGZi
ZTI2ZTljZjg4MWJiNzgxZDVlNjU2Li4wOTVjMDljYjdkZjYyOTQ2ZjVlNDc0YWVjNjYzODFmNTYw
NThmMTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxp
bmsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHAK
QEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEaXNwbGF5
TGluay5oIgogCi0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQor
I2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKIAogI2luY2x1ZGUgIkV2ZW50RGlzcGF0Y2hlck1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCkBAIC0xNTAsNCArMTUwLDQg
QEAgdm9pZCBEaXNwbGF5TGluazo6bm90aWZ5T2JzZXJ2ZXJzRGlzcGxheVdhc1JlZnJlc2hlZCgp
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQlBST0NFU1Nf
V0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2VuZGlmIC8vIEhBVkUoQ1ZESVNQTEFZTElOSykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmgKaW5kZXggYWE3ZTZlZWFiNzM1
MzZkZDg3ZjljOGM0MzlhMGU0OTM4Mjc1OWFiMC4uN2QyZWVkM2MzNmIyZjZjN2Q4ZDBjMDMxNGE4
OTNjMjZjZDk0YmUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rp
c3BsYXlMaW5rLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5r
LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoV0VCUFJP
Q0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgSEFWRShDVkRJU1BMQVlMSU5LKQogCiAj
aW5jbHVkZSAiRGlzcGxheUxpbmtPYnNlcnZlcklELmgiCiAjaW5jbHVkZSA8Q29yZVZpZGVvL0NW
RGlzcGxheUxpbmsuaD4KQEAgLTcxLDUgKzcxLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKLSNlbmRpZgotCisjZW5kaWYgLy8gSEFWRShDVkRJU1BMQVlMSU5LKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlByb2Nlc3NQcm94eU1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQcm9jZXNzUHJveHlNYWMubW0KaW5k
ZXggNTJmZDBjZTE5MTllNDQxMzczMWM2NTc0MTJjMDg5ZGEwNjg2YjA2Ni4uNDcxOTU1MmZiMGU1
ZDJhNmQ3NmE2OGI3YmI5YjJhNjM4ZWQxMDQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYlByb2Nlc3NQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1Byb3h5TWFjLm1tCkBAIC01OSw3ICs1OSw2IEBAIGJvb2wg
V2ViUHJvY2Vzc1Byb3h5OjpzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2RlKCkgY29uc3QK
ICAgICByZXR1cm4gIXBhdGguaXNFbXB0eSgpICYmICFwYXRoLnN0YXJ0c1dpdGgoIi9TeXN0ZW0v
Iik7CiB9CiAKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6c3RhcnREaXNwbGF5TGluayhEaXNwbGF5TGlua09ic2VydmVy
SUQgb2JzZXJ2ZXJJRCwgV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogewog
ICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkNvbW11
bmljYXRlV2l0aFdpbmRvd1NlcnZlcikpOwpAQCAtNzIsNyArNzEsNiBAQCB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6c3RvcERpc3BsYXlMaW5rKERpc3BsYXlMaW5rT2JzZXJ2ZXJJRCBvYnNlcnZlcklE
LCBXZWJDb3JlOgogICAgIEFTU0VSVChjb25uZWN0aW9uKCkpOwogICAgIHByb2Nlc3NQb29sKCku
c3RvcERpc3BsYXlMaW5rKCpjb25uZWN0aW9uKCksIG9ic2VydmVySUQsIGRpc3BsYXlJRCk7CiB9
Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVu
ZGxlTWFjLm1tCmluZGV4IGJkNmUzOWYwZjBmYmQyZDViNTYwY2UxYzM0NDY3NDJiNGZmZTA4OWYu
Ljg4ZDI1MDg4NjE3ZjYyNzg3NWY0MGU4YzVmM2EwMTJkYTU3MDhmNzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL21hYy9J
bmplY3RlZEJ1bmRsZU1hYy5tbQpAQCAtNTIsOCArNTIsNyBAQCBAZW5kCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0jaWYgRU5BQkxFKFdFQlBST0NFU1Nf
V0lORE9XU0VSVkVSX0JMT0NLSU5HKQotCisjaWYgUExBVEZPUk0oTUFDKQogc3RhdGljIE5TRXZl
bnRNb2RpZmllckZsYWdzIGN1cnJlbnRNb2RpZmllckZsYWdzKGlkIHNlbGYsIFNFTCBfY21kKQog
ewogICAgIGF1dG8gY3VycmVudE1vZGlmaWVycyA9IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3Vy
cmVudFN0YXRlT2ZNb2RpZmllcktleXMoKTsKQEAgLTcyLDcgKzcxLDYgQEAgc3RhdGljIE5TRXZl
bnRNb2RpZmllckZsYWdzIGN1cnJlbnRNb2RpZmllckZsYWdzKGlkIHNlbGYsIFNFTCBfY21kKQog
ICAgIAogICAgIHJldHVybiBtb2RpZmllcnM7CiB9Ci0KICNlbmRpZgogCiBzdGF0aWMgUmV0YWlu
UHRyPE5TS2V5ZWRVbmFyY2hpdmVyPiBjcmVhdGVVbmFyY2hpdmVyKGNvbnN0IHVuc2lnbmVkIGNo
YXIqIGJ5dGVzLCBOU1VJbnRlZ2VyIGxlbmd0aCkKQEAgLTE3Nyw3ICsxNzUsNyBAQCBib29sIElu
amVjdGVkQnVuZGxlOjppbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMsCiAgICAgaWYgKGFkZGl0aW9uYWxDbGFzc2VzRm9yUGFyYW1ldGVyQ29k
ZXJGdW5jdGlvbikKICAgICAgICAgYWRkaXRpb25hbENsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlckZ1
bmN0aW9uKHRvQVBJKHRoaXMpLCB0b0FQSShpbml0aWFsaXphdGlvblVzZXJEYXRhKSk7CiAKLSNp
ZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgUExBVEZPUk0o
TUFDKQogICAgIC8vIFN3aXp6bGUgW05TRXZlbnQgbW9kaWZlckZsYWdzXSwgc2luY2UgaXQgYWx3
YXlzIHJldHVybnMgMCB3aGVuIHRoZSBXaW5kb3dTZXJ2ZXIgaXMgYmxvY2tlZC4KICAgICBNZXRo
b2QgbWV0aG9kID0gY2xhc3NfZ2V0Q2xhc3NNZXRob2QoW05TRXZlbnQgY2xhc3NdLCBAc2VsZWN0
b3IobW9kaWZpZXJGbGFncykpOwogICAgIG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihtZXRob2Qs
IHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihjdXJyZW50TW9kaWZpZXJGbGFncykpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERkxheWVyQ29udHJvbGxl
clNQSS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERkxheWVyQ29u
dHJvbGxlclNQSS5oCmluZGV4IGQwMzkzNTc5ZWY2Njc2ZGI4ZjExYWIxZmJiMThmMzkxYzUxMGFh
MWEuLjY3ZjcyN2Q5OTZiNTM5NTZiMWFiNDcwMmM5N2YyMjJiYjA1ZGMxMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZMYXllckNvbnRyb2xsZXJT
UEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGTGF5ZXJD
b250cm9sbGVyU1BJLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFBERkxheWVyQ29udHJvbGxlclNQSV9oCi0jZGVm
aW5lIFBERkxheWVyQ29udHJvbGxlclNQSV9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShQ
REZLSVRfUExVR0lOKQogCkBAIC0xNzAsMTYgKzE2OSwxMiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJ
bnRlZ2VyLCBQREZMYXllckNvbnRyb2xsZXJDdXJzb3JUeXBlKSB7CiAtIChOU0FycmF5ICopYWNj
ZXNzaWJpbGl0eUNoaWxkcmVuOwogLSAodm9pZClzZXRBY2Nlc3NpYmlsaXR5UGFyZW50OihpZClw
YXJlbnQ7CiAtIChpZClhY2Nlc3NpYmlsaXR5RWxlbWVudEZvckFubm90YXRpb246KFBERkFubm90
YXRpb24gKilhbm5vdGF0aW9uOwotCi0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVS
X0JMT0NLSU5HKQogLSAodm9pZClzZXREZXZpY2VDb2xvclNwYWNlOihDR0NvbG9yU3BhY2VSZWYp
Y29sb3JTcGFjZTsKLSNlbmRpZgorCiBAZW5kCiAKIEBpbnRlcmZhY2UgUERGQW5ub3RhdGlvbiAo
QWNjZXNzaWJpbGl0eVByaXZhdGUpCiAtIChpZClhY2Nlc3NpYmlsaXR5Tm9kZTsKIEBlbmQKIAot
I2VuZGlmCi0KLSNlbmRpZiAvLyBQREZMYXllckNvbnRyb2xsZXJTUElfaAorI2VuZGlmIC8vIEVO
QUJMRShQREZLSVRfUExVR0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggYTJjOGJiMWE0NzE3OGNjMGMzNDdhZGM0N2JkMDY0
OThkYjU3YzFjNy4uZTIwNzZkZDgyZjUyYjI0OThiMWFhM2FmNjFhNGU4YTkzYjQ1N2NjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1t
CkBAIC02MzMsMTIgKzYzMywxMCBAQCBpbmxpbmUgUERGUGx1Z2luOjpQREZQbHVnaW4oV2ViRnJh
bWUmIGZyYW1lKQogCiAgICAgW21fY29udGFpbmVyTGF5ZXIgYWRkU3VibGF5ZXI6bV9jb250ZW50
TGF5ZXIuZ2V0KCldOwogICAgIFttX2NvbnRhaW5lckxheWVyIGFkZFN1YmxheWVyOm1fc2Nyb2xs
Q29ybmVyTGF5ZXIuZ2V0KCldOwotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9C
TE9DS0lORykKICAgICBpZiAoW21fcGRmTGF5ZXJDb250cm9sbGVyIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3Ioc2V0RGV2aWNlQ29sb3JTcGFjZTopXSkgewogICAgICAgICBhdXRvIHZpZXcg
PSBmcmFtZS5jb3JlRnJhbWUoKS0+dmlldygpOwogICAgICAgICBbbV9wZGZMYXllckNvbnRyb2xs
ZXIgc2V0RGV2aWNlQ29sb3JTcGFjZTpzY3JlZW5Db2xvclNwYWNlKHZpZXcpXTsKICAgICB9Ci0j
ZW5kaWYKIAogI2lmIEhBVkUoSU5DUkVNRU5UQUxfUERGX0FQSVMpCiAgICAgaWYgKG1faW5jcmVt
ZW50YWxQREZMb2FkaW5nRW5hYmxlZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCmluZGV4IGFmMzEyZDcxOWEyMjQxYTIzOTBhYTg2MTY4
MGVlOWZkNGQ0OGVhYTcuLmVjNWUzNmI1YjQ0YTk5ZDQ5Y2FiZGY4MjZiM2QxNDhkYjc4Yjk5Yjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVh
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5j
cHAKQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBEcmF3aW5nQXJlYTo6ZGlzcGF0Y2hBZnRlckVuc3Vy
aW5nVXBkYXRlZFNjcm9sbFBvc2l0aW9uKFdURjo6RnVuY3Rpb248dm9pZAogICAgIGZ1bmN0aW9u
KCk7CiB9CiAKLSNpZiAhKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9X
U0VSVkVSX0JMT0NLSU5HKSkKKyNpZiAhUExBVEZPUk0oTUFDKQogUmVmUHRyPFdlYkNvcmU6OkRp
c3BsYXlSZWZyZXNoTW9uaXRvcj4gRHJhd2luZ0FyZWE6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9u
aXRvcihQbGF0Zm9ybURpc3BsYXlJRCkKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCmlu
ZGV4IDYwZTIwZjQ0NjAyOTg3YmU1NmQ2ZjIxZDkwOGM0Yjg1MGRiYTU2NTMuLmYxYmI4Yzc1NjBi
YTViOWUzOGJhMmZhNWQxMWMwZmY5MWI5ZTQyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtMjkxLDcgKzI5MSw3
IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjpub3RpZnlTY3JvbGxpbmdUcmVlc0Rpc3BsYXlXYXNS
ZWZyZXNoZWQoUGxhdGZvcm1EaXNwbGF5SUQKICNlbmRpZgogfQogCi0jaWYgRU5BQkxFKFdFQlBS
T0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKIHZv
aWQgRXZlbnREaXNwYXRjaGVyOjpkaXNwbGF5V2FzUmVmcmVzaGVkKFBsYXRmb3JtRGlzcGxheUlE
IGRpc3BsYXlJRCkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKaW5kZXgg
NDc5YmY3OWQ1NTM5YjIyMzQ1YThiN2FmMjkxZjFjMzhjMzI2MjI3Yi4uNjcxYjI4ZGYzZTUxMGRl
YTM1MDFkODAyOGI5Nzg3MTg3NmE2NGEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKQEAgLTEwNiw3ICsxMDYsNyBAQCBwcml2
YXRlOgogICAgIHN0YXRpYyB2b2lkIHNlbmREaWRSZWNlaXZlRXZlbnQoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIFdlYkV2ZW50OjpUeXBlLCBib29sIGRpZEhhbmRsZUV2ZW50KTsKICNlbmRpZgog
Ci0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lmIFBMQVRG
T1JNKE1BQykKICAgICB2b2lkIGRpc3BsYXlXYXNSZWZyZXNoZWQoV2ViQ29yZTo6UGxhdGZvcm1E
aXNwbGF5SUQpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5tZXNzYWdlcy5pbgppbmRleCBiYjUwYjk3
NzA1Mjg0MTFmMDA0MDEzYmI2ODcxYjFiMGU5MTU0MjRkLi5jZjRmNzY2NjZjYzUzNDMxZTk5YmVk
ZTVlODI4YThhYTg3YTAzY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCkBAIC0yOSw3ICsy
OSw3IEBAIG1lc3NhZ2VzIC0+IEV2ZW50RGlzcGF0Y2hlciB7CiAjaWYgRU5BQkxFKE1BQ19HRVNU
VVJFX0VWRU5UUykKICAgICBHZXN0dXJlRXZlbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBXZWJLaXQ6OldlYkdlc3R1cmVFdmVudCBldmVudCkKICNlbmRpZgotI2lmIEVOQUJMRShX
RUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBIQVZFKENWRElTUExBWUxJTksp
CiAgICAgRGlzcGxheVdhc1JlZnJlc2hlZCh1aW50MzJfdCBkaXNwbGF5SUQpCiAjZW5kaWYKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EcmF3aW5n
QXJlYU1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRHJhd2lu
Z0FyZWFNYWMuY3BwCmluZGV4IGI0NzQ5NjAxYWNlNzk1MGUyYTViMDRjZjIxNDY0NDA1NDlmMTMz
ZjguLjA0MmI2ZDkwMmE0MGZjYjAwZWQwMzYwYzk1OGY5MjY0Mzg4ZmUyMTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EcmF3aW5nQXJlYU1hYy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0RyYXdpbmdBcmVhTWFj
LmNwcApAQCAtMzYsOCArMzYsNiBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lO
RykKLQogY2xhc3MgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjIDogcHVibGljIERpc3BsYXlSZWZy
ZXNoTW9uaXRvciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWM+IGNyZWF0ZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCkBAIC0xMDYsNiArMTA0
LDUgQEAgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gRHJhd2luZ0FyZWE6
OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcigKIHsKICAgICByZXR1cm4gRGlzcGxheVJlZnJl
c2hNb25pdG9yTWFjOjpjcmVhdGUoZGlzcGxheUlEKTsKIH0KLSNlbmRpZiAvLyBFTkFCTEUoV0VC
UFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAppbmRleCAzMDFiODg3N2IzNTdkMGQ2MTNhM2FkMTAwYWE5NGY5ZThk
NzZmNjIyLi5jZjc5NzMwN2E3ZmJkN2FkZGI2MzgzZmY2NDVmZWY4YWU2NDk5MmE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xNTQsNiArMTU0LDEwIEBACiAj
aW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oTUFDKQorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5o
PgorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2luY2x1ZGUgIldlYlNRTGl0
ZURhdGFiYXNlVHJhY2tlci5oIgogI2VuZGlmCkBAIC0yMTEsMTAgKzIxNSw2IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9WUDlVdGlsaXRpZXNDb2NvYS5oPgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VC
UFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0jaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5
UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmg+Ci0jZW5kaWYKLQogI2RlZmluZSBSRUxFQVNFX0xPR19T
RVNTSU9OX0lEIChtX3Nlc3Npb25JRCA/IG1fc2Vzc2lvbklELT50b1VJbnQ2NCgpIDogMCkKICNk
ZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChjaGFubmVsLCBmbXQsIC4uLikgUkVMRUFTRV9M
T0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIGNoYW5uZWwsICIlcCAtIFtzZXNzaW9u
SUQ9JSIgUFJJdTY0ICJdIFdlYlByb2Nlc3M6OiIgZm10LCB0aGlzLCBSRUxFQVNFX0xPR19TRVNT
SU9OX0lELCAjI19fVkFfQVJHU19fKQogI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExP
V0VEKGNoYW5uZWwsIGZtdCwgLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihpc0Fsd2F5c09uTG9n
Z2luZ0FsbG93ZWQoKSwgY2hhbm5lbCwgIiVwIC0gW3Nlc3Npb25JRD0lIiBQUkl1NjQgIl0gV2Vi
UHJvY2Vzczo6IiBmbXQsIHRoaXMsIFJFTEVBU0VfTE9HX1NFU1NJT05fSUQsICMjX19WQV9BUkdT
X18pCkBAIC0xODc2LDcgKzE4NzYsNyBAQCBib29sIFdlYlByb2Nlc3M6OmFyZUFsbFBhZ2VzVGhy
b3R0bGVhYmxlKCkgY29uc3QKICAgICB9KTsKIH0KIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJ
TkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBQTEFURk9STShNQUMpCiB2b2lkIFdlYlByb2Nlc3M6
OmRpc3BsYXlXYXNSZWZyZXNoZWQodWludDMyX3QgZGlzcGxheUlEKQogewogICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRl
eCBmYzZjMzg3MmViMDQ0NGNlYTBiZThjZWRhYzFiZmJmNzc2YjAyOWYzLi40ZDZhODc1YjRhNDFm
ZWViOWZmMGJlMTQxOGZiNTFmYWEzN2YwNTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmgKQEAgLTUwOSwxMSArNTA5LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlbmRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YUltbWVkaWF0ZWx5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9D
S0lORykKLSAgICB2b2lkIGRpc3BsYXlXYXNSZWZyZXNoZWQodWludDMyX3QgZGlzcGxheUlEKTsK
LSNlbmRpZgotCiAjaWYgUExBVEZPUk0oTUFDKQorICAgIHZvaWQgZGlzcGxheVdhc1JlZnJlc2hl
ZCh1aW50MzJfdCBkaXNwbGF5SUQpOwogICAgIHZvaWQgc3lzdGVtV2lsbFBvd2VyT24oKTsKICAg
ICB2b2lkIHN5c3RlbVdpbGxTbGVlcCgpOwogICAgIHZvaWQgc3lzdGVtRGlkV2FrZSgpOwpAQCAt
NTI5LDcgKzUyNiw3IEBAIHByaXZhdGU6CiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVk
IFdlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwCiAgICAgdm9pZCBkaWRSZWNlaXZlV2ViUHJv
Y2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAKLSNpZiBQTEFU
Rk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNp
ZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBzY3JvbGxlclN0eWxlUHJlZmVyZW5jZUNoYW5nZWQo
Ym9vbCB1c2VPdmVybGF5U2Nyb2xsYmFycyk7CiAgICAgdm9pZCBkaXNwbGF5Q29uZmlndXJhdGlv
bkNoYW5nZWQoQ0dEaXJlY3REaXNwbGF5SUQsIENHRGlzcGxheUNoYW5nZVN1bW1hcnlGbGFncyk7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KaW5kZXggYTQzZmEwZTE4ZGFjN2IxNGM5ZWI3ZGEyNGQ4ODBlYTU5YTJkNzUzNi4uYjA0
MDhjNzc5N2E4NDY4OWM2YTZlOTEyZDcwYjE0YTY3ODU2NjBkOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTExNSw3ICsxMTUsNyBA
QCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5vdFJlZkNvdW50ZWQgewog
I2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFNldFNjcmVlblByb3BlcnRpZXMoc3RydWN0IFdlYkNv
cmU6OlNjcmVlblByb3BlcnRpZXMgc2NyZWVuUHJvcGVydGllcykKICNlbmRpZgotI2lmIFBMQVRG
T1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lm
IFBMQVRGT1JNKE1BQykKICAgICBTY3JvbGxlclN0eWxlUHJlZmVyZW5jZUNoYW5nZWQoYm9vbCB1
c2VPdmVsYXlTY3JvbGxiYXJzKQogICAgIERpc3BsYXlDb25maWd1cmF0aW9uQ2hhbmdlZChDR0Rp
cmVjdERpc3BsYXlJRCBkaXNwbGF5SUQsIENHRGlzcGxheUNoYW5nZVN1bW1hcnlGbGFncyBmbGFn
cykKICNlbmRpZgpAQCAtMTkyLDExICsxOTIsOSBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExl
Z2FjeVJlY2VpdmVyIE5vdFJlZkNvdW50ZWQgewogICAgIERpZFdyaXRlVG9QYXN0ZWJvYXJkQXN5
bmNocm9ub3VzbHkoU3RyaW5nIHBhc3RlYm9hcmROYW1lKTsKICNlbmRpZgogCi0jaWYgRU5BQkxF
KFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lmIFBMQVRGT1JNKE1BQykKICAg
ICBEaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJRCkKLSNlbmRpZgogCi0jaWYg
UExBVEZPUk0oTUFDKQogICAgIFN5c3RlbVdpbGxQb3dlck9uKCkKICAgICBTeXN0ZW1XaWxsU2xl
ZXAoKQogICAgIFN5c3RlbURpZFdha2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggNTdiMjUwNzdkYWZjOGMxMTFmOGI2NjVl
ZjczYjBlZjNlZGMxN2Y5Yi4uMTAyOGJkZTZjNzBiZDhmZTA5ZjVhZWFkNzk3YmM3OGZmMWM3NDhi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tCkBAIC0zNTAsNyArMzUwLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKICAgICAg
ICAgbGF1bmNoU2VydmljZXNFeHRlbnNpb24tPnJldm9rZSgpOwogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNp
ZiBQTEFURk9STShNQUMpCiAgICAgLy8gQXBwIG5hcCBtdXN0IGJlIG1hbnVhbGx5IGVuYWJsZWQg
d2hlbiBub3QgcnVubmluZyB0aGUgTlNBcHBsaWNhdGlvbiBydW4gbG9vcC4KICAgICBfX0NGUnVu
TG9vcFNldE9wdGlvbnNSZWFzb24oX19DRlJ1bkxvb3BPcHRpb25zRW5hYmxlQXBwTmFwLCBDRlNU
UigiRmluaXNoZWQgY2hlY2tpbiBhcyBhcHBsaWNhdGlvbiAtIGVuYWJsZSBhcHAgbmFwIikpOwog
I2VuZGlmCkBAIC0zODYsNyArMzg2LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKIAogICAg
IFdlYkNvcmU6OnNldFNjcmVlblByb3BlcnRpZXMocGFyYW1ldGVycy5zY3JlZW5Qcm9wZXJ0aWVz
KTsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVS
X0JMT0NLSU5HKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBzY3JvbGxlclN0eWxlUHJlZmVyZW5j
ZUNoYW5nZWQocGFyYW1ldGVycy51c2VPdmVybGF5U2Nyb2xsYmFycyk7CiAjZW5kaWYKIApAQCAt
NjMxLDIxICs2MzEsMTIgQEAgdm9pZCBXZWJQcm9jZXNzOjpyZWdpc3RlcldpdGhTdGF0ZUR1bXBl
cigpCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQXV4
aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICNp
ZiBQTEFURk9STShNQUMpCi0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NL
SU5HKQogICAgIC8vIERlbnkgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBhY2Nlc3MgdG8gdGhlIFdp
bmRvd1NlcnZlci4KICAgICAvLyBUaGlzIGNhbGwgd2lsbCBub3Qgc3VjY2VlZCBpZiB0aGVyZSBh
cmUgb3BlbiBXaW5kb3dTZXJ2ZXIgY29ubmVjdGlvbnMgYXQgdGhpcyBwb2ludC4KICAgICBhdXRv
IHJldHZhbCA9IENHU1NldERlbnlXaW5kb3dTZXJ2ZXJDb25uZWN0aW9ucyh0cnVlKTsKICAgICBS
RUxFQVNFX0FTU0VSVChyZXR2YWwgPT0ga0NHRXJyb3JTdWNjZXNzKTsKICAgICAvLyBNYWtlIHN1
cmUgdGhhdCB3ZSBjbG9zZSBhbnkgV2luZG93U2VydmVyIGNvbm5lY3Rpb25zIGFmdGVyIGNoZWNr
aW5nIGluIHdpdGggTGF1bmNoIFNlcnZpY2VzLgogICAgIENHU1NodXRkb3duU2VydmVyQ29ubmVj
dGlvbnMoKTsKLSNlbHNlCi0KLSAgICBpZiAoIVtOU0FwcCBpc1J1bm5pbmddKSB7Ci0gICAgICAg
IC8vIFRoaXMgY2FsbCBpcyBuZWVkZWQgd2hlbiB0aGUgV2ViUHJvY2VzcyBpcyBub3QgcnVubmlu
ZyB0aGUgTlNBcHBsaWNhdGlvbiBldmVudCBsb29wLgotICAgICAgICAvLyBPdGhlcndpc2UsIGNh
bGxpbmcgZW5hYmxlU2FuZGJveFN0eWxlRmlsZVF1YXJhbnRpbmUoKSB3aWxsIGZhaWwuCi0gICAg
ICAgIGxhdW5jaFNlcnZpY2VzQ2hlY2tJbigpOwotICAgIH0KLSNlbmRpZiAvLyBFTkFCTEUoV0VC
UFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAKICAgICBTd2l0Y2hpbmdHUFVDbGllbnQ6
OnNldFNpbmdsZXRvbihXZWJTd2l0Y2hpbmdHUFVDbGllbnQ6OnNpbmdsZXRvbigpKTsKICAgICBN
YWluVGhyZWFkU2hhcmVkVGltZXI6OnNob3VsZFNldHVwUG93ZXJPYnNlcnZlcigpID0gZmFsc2U7
CkBAIC05OTAsNyArOTgxLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjp1cGRhdGVGcmVlemVyU3RhdHVz
KCkKIH0KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VCUFJPQ0VTU19X
SU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgUExBVEZPUk0oTUFDKQogdm9pZCBXZWJQcm9jZXNz
OjpzY3JvbGxlclN0eWxlUHJlZmVyZW5jZUNoYW5nZWQoYm9vbCB1c2VPdmVybGF5U2Nyb2xsYmFy
cykKIHsKICAgICBTY3JvbGxlclN0eWxlOjpzZXRVc2VPdmVybGF5U2Nyb2xsYmFycyh1c2VPdmVy
bGF5U2Nyb2xsYmFycyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421704</attachid>
            <date>2021-02-26 13:45:32 -0800</date>
            <delta_ts>2021-03-01 09:37:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222459-20210226134531.patch</filename>
            <type>text/plain</type>
            <size>42860</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRlNTc0MjQ2MDAyMzhhNTBkMzgxMjJl
MTgxYWQxMzRiY2NkMTljNzQuLjhhNjY5N2Y3YTI3Zjg0MjIyY2E3YzliZTkxMTJjZmNkOWZlNWM1
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDItMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIEVOQUJMRV9XRUJQUk9DRVNTX1dJ
TkRPV1NFUlZFUl9CTE9DS0lORyB3aGljaCBpcyBhbHdheXMgdHJ1ZSBmb3IgbWFjT1MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQ1OQorCisgICAg
ICAgIEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyBpcyBhbHdheXMgZGVm
aW5lZCBmb3IgUExBVEZPUk0oTUFDKSwgc28gcmVtb3ZlIGl0LAorICAgICAgICByZXBsYWNpbmcg
d2l0aCBQTEFURk9STShNQUMpIGluIGEgZmV3IHBsYWNlcy4gSW4gb3JkZXIgdG8gcmVkdWNlIHRo
ZSBudW1iZXIgUExBVEZPUk0oTUFDKSwgZGVmaW5lCisgICAgICAgIEhBVkUoQ1ZESVNQTEFZTElO
SykgYW5kIHVzZSBpdCBpbiBXSzIgY29kZSB0aGF0IHJlbGF0ZXMgdG8gRGlzcGxheUxpbmtzLgor
CisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisgICAgICAgICogd3RmL1BsYXRmb3Jt
RW5hYmxlQ29jb2EuaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIwMjEtMDIt
MjMgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBbQ01h
a2VdIEZpeCBKU0NPbmx5IGJ1aWxkIG9uIFdpbmRvd3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MzVmNzYyMThk
M2ZiYTAxZjg5YzUzYWQ4YTRiYzI0YzNjZTRlNjI4Li5iYmY1NmNhM2FmYjc5NWI2Y2IzMTcxOWJj
N2JlNzc4N2NlOGFjNzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjEtMDItMjUg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3Zl
IEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyB3aGljaCBpcyBhbHdheXMg
dHJ1ZSBmb3IgbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMjQ1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyBpcyBhbHdheXMg
ZGVmaW5lZCBmb3IgUExBVEZPUk0oTUFDKSwgc28gcmVtb3ZlIGl0LAorICAgICAgICByZXBsYWNp
bmcgd2l0aCBQTEFURk9STShNQUMpIGluIGEgZmV3IHBsYWNlcy4gSW4gb3JkZXIgdG8gcmVkdWNl
IHRoZSBudW1iZXIgUExBVEZPUk0oTUFDKSwgZGVmaW5lCisgICAgICAgIEhBVkUoQ1ZESVNQTEFZ
TElOSykgYW5kIHVzZSBpdCBpbiBXSzIgY29kZSB0aGF0IHJlbGF0ZXMgdG8gRGlzcGxheUxpbmtz
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjplbnN1cmVQbGF0Zm9ybUNvbnRleHQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
OjphZGRDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
TWFuYWdlcjo6cmVtb3ZlQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0tleUV2ZW50
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50
U3RhdGVPZk1vZGlmaWVyS2V5cyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2Ny
ZWVuTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Z3B1SURGb3JEaXNwbGF5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgICgtW1dlYlNjcm9s
bGJhclBhcnRBbmltYXRpb24gaW5pdFdpdGhTY3JvbGxiYXI6ZmVhdHVyZVRvQW5pbWF0ZTphbmlt
YXRlRnJvbTphbmltYXRlVG86ZHVyYXRpb246XSk6CisgICAgICAgICgtW1dlYlNjcm9sbGJhclBh
cnRBbmltYXRpb24gc3RhcnRBbmltYXRpb25dKToKKyAgICAgICAgKC1bV2ViU2Nyb2xsYmFyUGFy
dEFuaW1hdGlvbiBzZXRDdXJyZW50UHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dlYlNjcm9sbGJh
clBhcnRBbmltYXRpb24gc3RvcEFuaW1hdGlvbl0pOgorICAgICAgICAoLVtXZWJTY3JvbGxiYXJQ
YXJ0QW5pbWF0aW9uIHNldEN1cnJlbnRQcm9ncmVzczpzZXRDdXJyZW50UHJvZ3Jlc3M6XSk6IERl
bGV0ZWQuCisKIDIwMjEtMDItMjQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTGVnYWN5TGluZUxheW91dF0gSW5saW5lIGxldmVsIGJveCBzaG91bGQgbm90IHN0
aWNrIG91dCBhdCB0aGUgYm90dG9tIG9mIGl0cyBjb250YWluaW5nIGJsb2NrCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDIxN2I4MWYwMTIwNzIxN2FhMTg3MjBhOGVjOGQ1MWJkZDc2MjMyMTAuLjgzMzAzMzM2ZGNiODY1
NjE4ZGNiODkzNWUxNTY5MjkxMTJhYzg5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIw
MjEtMDItMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlIEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyB3aGljaCBp
cyBhbHdheXMgdHJ1ZSBmb3IgbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMjQ1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyBp
cyBhbHdheXMgZGVmaW5lZCBmb3IgUExBVEZPUk0oTUFDKSwgc28gcmVtb3ZlIGl0LAorICAgICAg
ICByZXBsYWNpbmcgd2l0aCBQTEFURk9STShNQUMpIGluIGEgZmV3IHBsYWNlcy4gSW4gb3JkZXIg
dG8gcmVkdWNlIHRoZSBudW1iZXIgUExBVEZPUk0oTUFDKSwgZGVmaW5lCisgICAgICAgIEhBVkUo
Q1ZESVNQTEFZTElOSykgYW5kIHVzZSBpdCBpbiBXSzIgY29kZSB0aGF0IHJlbGF0ZXMgdG8gRGlz
cGxheUxpbmtzLgorCisgICAgICAgICogUGxhdGZvcm0vY29jb2EvTGF5ZXJIb3N0aW5nQ29udGV4
dC5tbToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0
ZXJuYWxIb3N0aW5nUHJvY2Vzcyk6CisgICAgICAgICogU2hhcmVkL21hYy9IYW5nRGV0ZWN0aW9u
RGlzYWJsZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OnNldENsaWVudHNNYXlJZ25vcmVFdmVu
dHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRpb25PYnNl
cnZlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlm
aWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ09ic2VydmVyOjpzaW5nbGV0b24pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlbmRXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGlzcGxheVJl
Y29uZmlndXJhdGlvbkNhbGxCYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OnNlbmREaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWRNZXNzYWdlRm9yVGVzdGluZyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6fldl
YlByb2Nlc3NQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cHJvY2Vz
c1dpbGxTaHV0RG93bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9EaXNwbGF5TGluay5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1Byb3h5
TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnN0b3BEaXNwbGF5TGlu
ayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5k
bGVNYWMubW06CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjppbml0aWFsaXplKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERkxheWVyQ29udHJvbGxlclNQSS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgorICAgICAg
ICAoV2ViS2l0OjpQREZQbHVnaW46OlBERlBsdWdpbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0RyYXdpbmdBcmVh
TWFjLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OmNyZWF0ZURpc3BsYXlSZWZy
ZXNoTW9uaXRvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemVQcm9jZXNzKToKKwogMjAyMS0wMi0yNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjY3NzYzKTogW0dUS11bV1BF
XSB1c2VyIHByZWZlcnJlZCBsYW5ndWFnZXMgYXJlIHNlbnQgdG8gdGhlIHdyb25nIG5ldHdvcmsg
cHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaCBiL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKaW5kZXggMTlhOGU0NzYzYzJhNDBiZjJmYjNj
ODM0YWFhMzcwMTI5ODUxNTJmZS4uNGIwN2M3YWM4NGRjNTcwMTljY2EzMjUxMGNkOTkxMWI0MTJm
MTUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCkBAIC0xMDgsMTAgKzEwOCw2IEBACiAjZGVm
aW5lIEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUCAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVk
KEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLSNkZWZpbmUgRU5BQkxF
X1dFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HIDAKLSNlbmRpZgotCiAjaWYgIWRlZmlu
ZWQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykKICNkZWZpbmUgRU5BQkxFX01BQ19HRVNUVVJF
X0VWRU5UUyAwCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCBh
NmNiMTFmYmJlYjJmYjMwNjljNmZmMDgyMDk4YjRiYTYzNmUyYTQxLi4zYzkzNmEyZTc4YmJiMzYw
OWYxZTFkYTRmMzYwZWZhMGNmMTFmOWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2Nv
YS5oCkBAIC01ODIsMTAgKzU4Miw2IEBACiAjZGVmaW5lIEVOQUJMRV9XRUJQUk9DRVNTX05TUlVO
TE9PUCAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykgJiYgUExBVEZPUk0oTUFDKQotI2RlZmluZSBFTkFCTEVfV0VCUFJPQ0VT
U19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcgMQotI2VuZGlmCi0KICNpZiAhZGVmaW5lZChFTkFCTEVf
V0VCWFIpICYmIChIQVZFKFdFQlhSX0lOVEVSTkFMUykgfHwgKFVTRShBUFBMRV9JTlRFUk5BTF9T
REspICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMTAwMDApKQogI2RlZmluZSBFTkFCTEVfV0VCWFIgMQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2
ZS5oCmluZGV4IDliNTQ0ZDhhMGZkMTI5NDU2OWNiNTU4NTczYWU0ZGUyM2VkNTg3MWYuLjFmNzc5
NGZiYmNiZjVmZjZiYjI0YTkyNTFjYTk0ZWY2NTZmYzY0YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5o
CkBAIC0yODYsNiArMjg2LDEwIEBACiAjZGVmaW5lIEhBVkVfSU9TVVJGQUNFIDEKICNlbmRpZgog
CisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBIQVZFX0NWRElTUExBWUxJTksgMQorI2VuZGlm
CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1V
TEFUT1IpCiAjZGVmaW5lIEhBVkVfSU9TVVJGQUNFX0NPUkVJTUFHRV9TVVBQT1JUIDEKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9T
dXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJm
YWNlLm1tCmluZGV4IGNmN2NiNmU1M2NkNDk4MzZjYjQ5M2FhY2JlMTZiYjA1ZTQzNzRiNjguLmNh
NGZmOTU4NjUxOTA0MjVmMGMwMmI0MTQzMDE4OGQzYmM2MzdiYWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KQEAgLTMyMSw3
ICszMjEsNyBAQCBDR0NvbnRleHRSZWYgSU9TdXJmYWNlOjplbnN1cmVQbGF0Zm9ybUNvbnRleHQo
Y29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKICAgICAKICAgICBtX2NnQ29udGV4dCA9IGFk
b3B0Q0YoQ0dJT1N1cmZhY2VDb250ZXh0Q3JlYXRlKG1fc3VyZmFjZS5nZXQoKSwgbV9jb250ZXh0
U2l6ZS53aWR0aCgpLCBtX2NvbnRleHRTaXplLmhlaWdodCgpLCBiaXRzUGVyQ29tcG9uZW50LCBi
aXRzUGVyUGl4ZWwsIG1fY29sb3JTcGFjZS5nZXQoKSwgYml0bWFwSW5mbykpOwogCi0jaWYgUExB
VEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisj
aWYgUExBVEZPUk0oTUFDKQogICAgIGlmIChhdXRvIGRpc3BsYXlNYXNrID0gcHJpbWFyeU9wZW5H
TERpc3BsYXlNYXNrKCkpIHsKICAgICAgICAgaWYgKGhvc3RXaW5kb3cgJiYgaG9zdFdpbmRvdy0+
ZGlzcGxheUlEKCkpCiAgICAgICAgICAgICBkaXNwbGF5TWFzayA9IGRpc3BsYXlNYXNrRm9yRGlz
cGxheShob3N0V2luZG93LT5kaXNwbGF5SUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCmluZGV4IDA3ZWJhMDQyNmI2Y2NjNGEyZDE0Yjg3ZTA4
Yjc3NjNmNzUzMGIyZTkuLmU2NmUwMGFkYjI4NzVhZGY2OWExOTdmY2M2OTIzMTZkYTZmOTZlNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCkBA
IC02MiwxMSArNjIsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6YWRk
Q29udGV4dChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dAogICAgIGlmICghY29udGV4
dCkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhRU5BQkxFKFdFQlBS
T0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQotICAgIGlmICghbV9jb250ZXh0cy5zaXplKCkp
Ci0gICAgICAgIENHRGlzcGxheVJlZ2lzdGVyUmVjb25maWd1cmF0aW9uQ2FsbGJhY2soZGlzcGxh
eVdhc1JlY29uZmlndXJlZCwgbnVsbHB0cik7Ci0jZW5kaWYKLQogICAgIEFTU0VSVCghbV9jb250
ZXh0cy5jb250YWlucyhjb250ZXh0KSk7CiAgICAgbV9jb250ZXh0cy5hcHBlbmQoY29udGV4dCk7
CiB9CkBAIC03NiwxMCArNzEsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdl
cjo6cmVtb3ZlQ29udGV4dChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udAogICAgIGlmICgh
bV9jb250ZXh0cy5jb250YWlucyhjb250ZXh0KSkKICAgICAgICAgcmV0dXJuOwogICAgIG1fY29u
dGV4dHMucmVtb3ZlRmlyc3QoY29udGV4dCk7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAhRU5BQkxF
KFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQotICAgIGlmICghbV9jb250ZXh0cy5z
aXplKCkpCi0gICAgICAgIENHRGlzcGxheVJlbW92ZVJlY29uZmlndXJhdGlvbkNhbGxiYWNrKGRp
c3BsYXlXYXNSZWNvbmZpZ3VyZWQsIG51bGxwdHIpOwotI2VuZGlmCiB9CiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpyZWN5Y2xlQ29udGV4dElmTmVjZXNzYXJ5KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbQppbmRleCBjMTljOTc0MzMw
NjZjMGQ2MjYxZjVkMmFkZGUyOTBjMzkzNjUyNTg4Li4wNmZkZDUyODI2ZTdjZDJmN2EwYzlkNTBj
ODllNmI5ZTFjYTlmMDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
S2V5RXZlbnRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tleUV2ZW50
TWFjLm1tCkBAIC0yNTksMTMgKzI1OSwxMiBAQCB2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6
ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFR5cGUgdHlwZSwgYm9vbCBiYWNrd2FyZENvbQogCiBP
cHRpb25TZXQ8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6
Y3VycmVudFN0YXRlT2ZNb2RpZmllcktleXMoKQogewotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJ
TkRPV1NFUlZFUl9CTE9DS0lORykKICAgICAvLyBzX2N1cnJlbnRNb2RpZmllcnMgaXMgb25seSBz
ZXQgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcywgbm90IGluIHRoZSBVSSBwcm9jZXNzLgogICAg
IGlmIChzX2N1cnJlbnRNb2RpZmllcnMpIHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKICAgICAgICAgcmV0dXJuICpzX2N1cnJlbnRNb2RpZmllcnM7CiAgICAgfQotI2VuZGlmCisK
ICAgICBVSW50MzIgY3VycmVudE1vZGlmaWVycyA9IEdldEN1cnJlbnRLZXlNb2RpZmllcnMoKTsK
IAogICAgIE9wdGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCmluZGV4
IDI1M2UzZjI0NGRhOWRhODQ3OTNlZDViNWI4NjQ0MGEyNWIwOTNjY2QuLmQ3ZDllZjA1ZTNmNTNh
MDU1MGQxZTZjN2FiMTE5N2E3ZDVkNWQzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KQEAgLTIwMiwxMyArMjAyLDEwIEBAIElPUmVn
aXN0cnlHUFVJRCBwcmltYXJ5R1BVSUQoKQogCiBJT1JlZ2lzdHJ5R1BVSUQgZ3B1SURGb3JEaXNw
bGF5KFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKIHsKLSNpZiBFTkFCTEUoV0VCUFJPQ0VT
U19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAgICAgaWYgKGF1dG8gZGF0YSA9IHNjcmVlbkRhdGEo
ZGlzcGxheUlEKSkKICAgICAgICAgcmV0dXJuIGRhdGEtPmdwdUlEOworCiAgICAgcmV0dXJuIDA7
Ci0jZWxzZQotICAgIHJldHVybiBncHVJREZvckRpc3BsYXlNYXNrKENHRGlzcGxheUlEVG9PcGVu
R0xEaXNwbGF5TWFzayhkaXNwbGF5SUQpKTsKLSNlbmRpZgogfQogCiBJT1JlZ2lzdHJ5R1BVSUQg
Z3B1SURGb3JEaXNwbGF5TWFzayhHTHVpbnQgZGlzcGxheU1hc2spCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggMDcxOTdlMDM4YTNh
Mjg0ODMxYTY5MDdhODc0MGM5MWUxY2Q2NTlhZC4uOGUwMGJkNzE4YmY1MGI2MzRkOGIyOTY2Njhj
Y2RlYjViYzg0MjllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxBbmltYXRvck1hYy5tbQpAQCAtMzAyLDQxICszMDIsMjggQEAgc3RhdGljIFRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEZlYXR1cmVUb0FuaW1hdGUgZmVhdHVyZSkKIH0K
ICNlbmRpZgogCi0jaWYgIUVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykK
LUBpbnRlcmZhY2UgV2ViU2Nyb2xsYmFyUGFydEFuaW1hdGlvbiA6IE5TQW5pbWF0aW9uCi0jZWxz
ZQogQGludGVyZmFjZSBXZWJTY3JvbGxiYXJQYXJ0QW5pbWF0aW9uIDogTlNPYmplY3QKLSNlbmRp
ZgogewogICAgIFNjcm9sbGJhciogX3Njcm9sbGJhcjsKICAgICBSZXRhaW5QdHI8TlNTY3JvbGxl
ckltcD4gX3Njcm9sbGVySW1wOwogICAgIEZlYXR1cmVUb0FuaW1hdGUgX2ZlYXR1cmVUb0FuaW1h
dGU7CiAgICAgQ0dGbG9hdCBfc3RhcnRWYWx1ZTsKICAgICBDR0Zsb2F0IF9lbmRWYWx1ZTsKLSNp
ZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAgICAgTlNUaW1lSW50
ZXJ2YWwgX2R1cmF0aW9uOwogICAgIFJldGFpblB0cjxOU1RpbWVyPiBfdGltZXI7CiAgICAgUmV0
YWluUHRyPE5TRGF0ZT4gX3N0YXJ0RGF0ZTsKICAgICBSZWZQdHI8Q3ViaWNCZXppZXJUaW1pbmdG
dW5jdGlvbj4gX3RpbWluZ0Z1bmN0aW9uOwotI2VuZGlmCiB9CiAtIChpZClpbml0V2l0aFNjcm9s
bGJhcjooU2Nyb2xsYmFyKilzY3JvbGxiYXIgZmVhdHVyZVRvQW5pbWF0ZTooRmVhdHVyZVRvQW5p
bWF0ZSlmZWF0dXJlVG9BbmltYXRlIGFuaW1hdGVGcm9tOihDR0Zsb2F0KXN0YXJ0VmFsdWUgYW5p
bWF0ZVRvOihDR0Zsb2F0KWVuZFZhbHVlIGR1cmF0aW9uOihOU1RpbWVJbnRlcnZhbClkdXJhdGlv
bjsKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAtICh2b2lk
KXNldEN1cnJlbnRQcm9ncmVzczooTlNUaW1lciAqKXRpbWVyOwogLSAodm9pZClzZXREdXJhdGlv
bjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb247CiAtICh2b2lkKXN0b3BBbmltYXRpb247Ci0jZW5k
aWYKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYlNjcm9sbGJhclBhcnRBbmltYXRpb24KIAog
LSAoaWQpaW5pdFdpdGhTY3JvbGxiYXI6KFNjcm9sbGJhciopc2Nyb2xsYmFyIGZlYXR1cmVUb0Fu
aW1hdGU6KEZlYXR1cmVUb0FuaW1hdGUpZmVhdHVyZVRvQW5pbWF0ZSBhbmltYXRlRnJvbTooQ0dG
bG9hdClzdGFydFZhbHVlIGFuaW1hdGVUbzooQ0dGbG9hdCllbmRWYWx1ZSBkdXJhdGlvbjooTlNU
aW1lSW50ZXJ2YWwpZHVyYXRpb24KIHsKLSNpZiAhRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VS
VkVSX0JMT0NLSU5HKQotICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhEdXJhdGlvbjpkdXJhdGlv
biBhbmltYXRpb25DdXJ2ZTpOU0FuaW1hdGlvbkVhc2VJbk91dF07Ci0gICAgaWYgKCFzZWxmKQot
ICAgICAgICByZXR1cm4gbmlsOwotI2Vsc2UKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAg
IGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTM0NSw3ICszMzIsNiBAQCAtIChp
ZClpbml0V2l0aFNjcm9sbGJhcjooU2Nyb2xsYmFyKilzY3JvbGxiYXIgZmVhdHVyZVRvQW5pbWF0
ZTooRmVhdHVyZVRvQW5pbWF0ZQogICAgIF90aW1lciA9IGFkb3B0TlMoW1tOU1RpbWVyIGFsbG9j
XSBpbml0V2l0aEZpcmVEYXRlOltOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzow
XSBpbnRlcnZhbDp0aW1lSW50ZXJ2YWwgdGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHNl
dEN1cnJlbnRQcm9ncmVzczopIHVzZXJJbmZvOm5pbCByZXBlYXRzOllFU10pOwogICAgIF9kdXJh
dGlvbiA9IGR1cmF0aW9uOwogICAgIF90aW1pbmdGdW5jdGlvbiA9IEN1YmljQmV6aWVyVGltaW5n
RnVuY3Rpb246OmNyZWF0ZShDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uOjpFYXNlSW5PdXQpOwot
I2VuZGlmCiAKICAgICBMT0dfV0lUSF9TVFJFQU0oT3ZlcmxheVNjcm9sbGJhcnMsIHN0cmVhbSA8
PCAiQ3JlYXRpbmcgV2ViU2Nyb2xsYmFyUGFydEFuaW1hdGlvbiBmb3IgIiA8PCBmZWF0dXJlVG9B
bmltYXRlIDw8ICIgZnJvbSAiIDw8IHN0YXJ0VmFsdWUgPDwgIiB0byAiIDw8IGVuZFZhbHVlKTsK
IApAQCAtMzU0LDEwICszNDAsNiBAQCAtIChpZClpbml0V2l0aFNjcm9sbGJhcjooU2Nyb2xsYmFy
KilzY3JvbGxiYXIgZmVhdHVyZVRvQW5pbWF0ZTooRmVhdHVyZVRvQW5pbWF0ZQogICAgIF9zdGFy
dFZhbHVlID0gc3RhcnRWYWx1ZTsKICAgICBfZW5kVmFsdWUgPSBlbmRWYWx1ZTsKIAotI2lmICFF
TkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0gICAgW3NlbGYgc2V0QW5p
bWF0aW9uQmxvY2tpbmdNb2RlOk5TQW5pbWF0aW9uTm9uYmxvY2tpbmddOwotI2VuZGlmCi0KICAg
ICByZXR1cm4gc2VsZjsKIH0KIApAQCAtMzY5LDEyICszNTEsOCBAQCAtICh2b2lkKXN0YXJ0QW5p
bWF0aW9uCiAKICAgICBMT0dfV0lUSF9TVFJFQU0oT3ZlcmxheVNjcm9sbGJhcnMsIHN0cmVhbSA8
PCAiLVtXZWJTY3JvbGxiYXJQYXJ0QW5pbWF0aW9uICIgPDwgc2VsZiA8PCAic3RhcnRBbmltYXRp
b25dIGZvciAiIDw8IF9mZWF0dXJlVG9BbmltYXRlKTsKIAotI2lmICFFTkFCTEUoV0VCUFJPQ0VT
U19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0gICAgW3N1cGVyIHN0YXJ0QW5pbWF0aW9uXTsKLSNl
bHNlCiAgICAgW1tOU1J1bkxvb3AgbWFpblJ1bkxvb3BdIGFkZFRpbWVyOl90aW1lci5nZXQoKSBm
b3JNb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlXTsKICAgICBfc3RhcnREYXRlID0gYWRvcHROUyhb
W05TRGF0ZSBhbGxvY10gaW5pdFdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzowXSk7Ci0jZW5kaWYK
IH0KIAogLSAodm9pZClzZXRTdGFydFZhbHVlOihDR0Zsb2F0KXN0YXJ0VmFsdWUKQEAgLTM4Nywx
NSArMzY1LDggQEAgLSAodm9pZClzZXRFbmRWYWx1ZTooQ0dGbG9hdCllbmRWYWx1ZQogICAgIF9l
bmRWYWx1ZSA9IGVuZFZhbHVlOwogfQogCi0jaWYgIUVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykKLS0gKHZvaWQpc2V0Q3VycmVudFByb2dyZXNzOihOU0FuaW1hdGlvblBy
b2dyZXNzKXByb2dyZXNzCi0jZWxzZQogLSAodm9pZClzZXRDdXJyZW50UHJvZ3Jlc3M6KE5TVGlt
ZXIgKil0aW1lcgotI2VuZGlmCiB7Ci0jaWYgIUVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZF
Ul9CTE9DS0lORykKLSAgICBbc3VwZXIgc2V0Q3VycmVudFByb2dyZXNzOnByb2dyZXNzXTsKLSNl
bHNlCiAgICAgQ0dGbG9hdCBwcm9ncmVzcyA9IDA7CiAgICAgTlNEYXRlICpub3cgPSBbTlNEYXRl
IGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MF07CiAgICAgTlNUaW1lSW50ZXJ2YWwgZWxh
cHNlZCA9IFtub3cgdGltZUludGVydmFsU2luY2VEYXRlOl9zdGFydERhdGUuZ2V0KCldOwpAQCAt
NDA4LDcgKzM3OSw2IEBAIC0gKHZvaWQpc2V0Q3VycmVudFByb2dyZXNzOihOU1RpbWVyICopdGlt
ZXIKICAgICAgICAgICAgIHQgPSBlbGFwc2VkIC8gX2R1cmF0aW9uOwogICAgICAgICBwcm9ncmVz
cyA9IF90aW1pbmdGdW5jdGlvbi0+dHJhbnNmb3JtVGltZSh0LCBfZHVyYXRpb24pOwogICAgIH0K
LSNlbmRpZgogICAgIEFTU0VSVChfc2Nyb2xsYmFyKTsKIAogICAgIExPR19XSVRIX1NUUkVBTShP
dmVybGF5U2Nyb2xsYmFycywgc3RyZWFtIDw8ICItW1dlYlNjcm9sbGJhclBhcnRBbmltYXRpb24g
IiA8PCBzZWxmIDw8ICJzZXRDdXJyZW50UHJvZ3Jlc3M6IiA8PCBwcm9ncmVzcyA8PCJdIGZvciAi
IDw8IF9mZWF0dXJlVG9BbmltYXRlKTsKQEAgLTQ0Niw3ICs0MTYsNiBAQCAtICh2b2lkKWludmFs
aWRhdGUKICAgICBfc2Nyb2xsYmFyID0gMDsKIH0KIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJ
TkRPV1NFUlZFUl9CTE9DS0lORykKIC0gKHZvaWQpc2V0RHVyYXRpb246KE5TVGltZUludGVydmFs
KWR1cmF0aW9uCiB7CiAgICAgX2R1cmF0aW9uID0gZHVyYXRpb247CkBAIC00NTYsNyArNDI1LDYg
QEAgLSAodm9pZClzdG9wQW5pbWF0aW9uCiB7CiAgICAgW190aW1lciBpbnZhbGlkYXRlXTsKIH0K
LSNlbmRpZgogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29j
b2EvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2Ev
TGF5ZXJIb3N0aW5nQ29udGV4dC5tbQppbmRleCAyNDA1OGU5YjcxZGEwZTNkYzlkNjAzYTJmYTc3
NTFlZjM1Njc3ZjAxLi4xZGE4M2VjM2U0MWUxYTZjOGE1OTMzYzlhZGZjNDZjY2E1NTA4ZDI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0xheWVySG9zdGluZ0NvbnRl
eHQubW0KKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9MYXllckhvc3RpbmdDb250
ZXh0Lm1tCkBAIC02Nyw3ICs2Nyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxMYXllckhvc3RpbmdDb250
ZXh0PiBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpCiAgICAgICAg
IGtDQUNvbnRleHREaXNwbGF5SWQgOiBAMTAwMDAKICNlbmRpZgogICAgIH1dOwotI2VsaWYgIVBM
QVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxP
Q0tJTkcpCisjZWxpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAgICAgW0NBQ29udGV4dCBzZXRB
bGxvd3NDR1NDb25uZWN0aW9uczpOT107CiAgICAgbGF5ZXJIb3N0aW5nQ29udGV4dC0+bV9jb250
ZXh0ID0gW0NBQ29udGV4dCByZW1vdGVDb250ZXh0V2l0aE9wdGlvbnM6QHsKICAgICAgICAga0NB
Q29udGV4dENJRmlsdGVyQmVoYXZpb3IgOiAgQCJpZ25vcmUiLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL0hhbmdEZXRlY3Rpb25EaXNhYmxlck1hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9IYW5nRGV0ZWN0aW9uRGlzYWJsZXJNYWMubW0KaW5kZXggY2Q2ZDM0
MjEyNDE0YjdhY2M2MGQ3MTI4NjU1NGFlNDZhNWI3ZmYxMi4uZTI0YmU2N2MxYWFiMjQxZGYxYzdm
ZDQ1Zjk0NzgzYmZkMTE1MGMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L0hhbmdEZXRlY3Rpb25EaXNhYmxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvSGFuZ0RldGVjdGlvbkRpc2FibGVyTWFjLm1tCkBAIC00OCwxNCArNDgsMTQgQEAgc3RhdGlj
IGJvb2wgY2xpZW50c01heUlnbm9yZUV2ZW50cygpCiBzdGF0aWMgdm9pZCBzZXRDbGllbnRzTWF5
SWdub3JlRXZlbnRzKGJvb2wgY2xpZW50c01heUlnbm9yZUV2ZW50cykKIHsKICAgICBhdXRvIGNn
c0lkID0gQ0dTTWFpbkNvbm5lY3Rpb25JRCgpOwotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRP
V1NFUlZFUl9CTE9DS0lORykKKwogICAgIC8vIEluIG1hY09TIDEwLjE0IGFuZCBsYXRlciwgdGhl
IFdlYkNvbnRlbnQgcHJvY2VzcyBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0byB0aGUgV2luZG93U2Vy
dmVyLgogICAgIC8vIEluIHRoaXMgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyB2YWxpZCBXaW5kb3dT
ZXJ2ZXIgbWFpbiBjb25uZWN0aW9uLgogICAgIGlmICghY2dzSWQpCiAgICAgICAgIHJldHVybjsK
ICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE4NDQ4ND4gV2Ugc2hvdWxkIGFz
c2VydCBoZXJlIGlmIHRoaXMgaXMgYmVpbmcgY2FsbGVkIGZyb20KICAgICAvLyB0aGUgV2ViQ29u
dGVudCBwcm9jZXNzLgotI2VuZGlmCisKICAgICBpZiAoQ0dTU2V0Q29ubmVjdGlvblByb3BlcnR5
KGNnc0lkLCBjZ3NJZCwgY2xpZW50c01heUlnbm9yZUV2ZW50c0tleSwgY2xpZW50c01heUlnbm9y
ZUV2ZW50cyA/IGtDRkJvb2xlYW5UcnVlIDoga0NGQm9vbGVhbkZhbHNlKSAhPSBrQ0dFcnJvclN1
Y2Nlc3MpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggZjQ4
NjE4NDI5NmIwMjFhYzk1NDExZmI0ODhhZjU1ODZjMjkwYmIwZS4uNjQ4MGYyNDMwNDA5MWUzOTk2
NmFkMDhhYjA4YTExMGZlZGVkNWZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC02NjYsMTIgKzY2NiwxMCBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycygpCiAgICAg
ICAgIHNjcmVlblByb3BlcnRpZXNTdGF0ZUNoYW5nZWQoKTsKICAgICB9XTsKIAotI2lmIEVOQUJM
RShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKICAgICBtX3Njcm9sbGVyU3R5bGVO
b3RpZmljYXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TUHJlZmVycmVkU2Nyb2xsZXJTdHlsZURpZENoYW5nZU5v
dGlmaWNhdGlvbiBvYmplY3Q6bmlsIHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1cnJlbnRRdWV1
ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICpub3RpZmljYXRpb24pIHsKICAgICAgICAg
YXV0byBzY3JvbGxiYXJTdHlsZSA9IFtOU1Njcm9sbGVyIHByZWZlcnJlZFNjcm9sbGVyU3R5bGVd
OwogICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNjcm9s
bGVyU3R5bGVQcmVmZXJlbmNlQ2hhbmdlZChzY3JvbGxiYXJTdHlsZSkpOwogICAgIH1dOwotI2Vu
ZGlmCiAKICAgICBtX2FjdGl2YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIg
ZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRpb25EaWRCZWNvbWVB
Y3RpdmVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwIHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1
cnJlbnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICpub3RpZmljYXRpb24pIHsK
ICNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKQEAgLTczNiw5ICs3MzQsNyBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCkKICAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fYXV0
b21hdGljUXVvdGVTdWJzdGl0dXRpb25Ob3RpZmljYXRpb25PYnNlcnZlci5nZXQoKV07CiAgICAg
W1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2F1
dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25Ob3RpZmljYXRpb25PYnNlcnZlci5nZXQoKV07CiAgICAg
W1tOU1dvcmtzcGFjZS5zaGFyZWRXb3Jrc3BhY2Ugbm90aWZpY2F0aW9uQ2VudGVyXSByZW1vdmVP
YnNlcnZlcjptX2FjY2Vzc2liaWxpdHlEaXNwbGF5T3B0aW9uc05vdGlmaWNhdGlvbk9ic2VydmVy
LmdldCgpXTsKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAg
ICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpt
X3Njcm9sbGVyU3R5bGVOb3RpZmljYXRpb25PYnNlcnZlci5nZXQoKV07Ci0jZW5kaWYKICAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fZGVh
Y3RpdmF0aW9uT2JzZXJ2ZXIuZ2V0KCldOwogICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVtb3Zl
T2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREaXN0cmlidXRlZENlbnRlcigpLCB0aGlz
LCBBcHBsZUNvbG9yUHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uLCBudWxscHRyKTsKICNl
bGlmICFQTEFURk9STShNQUNDQVRBTFlTVCkKQEAgLTc2Nyw3ICs3NjMsNyBAQCBib29sIFdlYlBy
b2Nlc3NQb29sOjppc1VSTEtub3duSFNUU0hvc3QoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpIGNv
bnN0CiAgICAgcmV0dXJuIF9DRk5ldHdvcmtJc0tub3duSFNUU0hvc3RXaXRoU2Vzc2lvbih1cmwu
Z2V0KCksIG51bGxwdHIpOwogfQogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VCUFJP
Q0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgSEFWRShDVkRJU1BMQVlMSU5LKQogT3B0
aW9uYWw8dW5zaWduZWQ+IFdlYlByb2Nlc3NQb29sOjpub21pbmFsRnJhbWVzUGVyU2Vjb25kRm9y
RGlzcGxheShXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiB7CiAgICAgZm9y
IChhdXRvJiBkaXNwbGF5TGluayA6IG1fZGlzcGxheUxpbmtzKSB7CkBAIC04MTAsNyArODA2LDcg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c3RvcERpc3BsYXlMaW5rcyhJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24pCiAgICAgZm9yIChhdXRvJiBkaXNwbGF5TGluayA6IG1fZGlzcGxheUxpbmtz
KQogICAgICAgICBkaXNwbGF5TGluay0+cmVtb3ZlT2JzZXJ2ZXJzKGNvbm5lY3Rpb24pOwogfQot
I2VuZGlmCisjZW5kaWYgLy8gSEFWRShDVkRJU1BMQVlMSU5LKQogCiAvLyBGSVhNRTogRGVwcmVj
YXRlZC4gTGVmdCBoZXJlIHVudGlsIGEgZmluYWwgZGVjaXNpb24gaXMgbWFkZS4KIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnNldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKGJvb2wgZW5h
YmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdjMjk3
ZmNhODFlZGM1Yzc4YWM3MDFjZmNhMTI3ODE1MDRmMGEzYmIuLmViOGRhNDMwYzAyOWU2MjU0ZTgz
Yzk5ZGQ1YTM5NDdmMGYzZTcxMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtMjI0LDYgKzIyNCw3IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykK
KyNpbmNsdWRlICJEaXNwbGF5TGluay5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VVdGlsaXRp
ZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgogI2VuZGlmCkBAIC0yOTQs
MTAgKzI5NSw2IEBACiAjaW5jbHVkZSAiV2ViRGF0ZVRpbWVQaWNrZXIuaCIKICNlbmRpZgogCi0j
aWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQotI2luY2x1ZGUgIkRp
c3BsYXlMaW5rLmgiCi0jZW5kaWYKLQogLy8gVGhpcyBjb250cm9scyB3aGF0IHN0cmF0ZWd5IHdl
IHVzZSBmb3IgbW91c2Ugd2hlZWwgY29hbGVzY2luZy4KICNkZWZpbmUgTUVSR0VfV0hFRUxfRVZF
TlRTIDEKIApAQCAtMzIxLDcgKzMxOCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBE
RUZJTkVfREVCVUdfT05MWV9HTE9CQUwoV1RGOjpSZWZDb3VudGVkTGVha0NvdW50ZXIsIHdlYlBh
Z2VQcm94eUNvdW50ZXIsICgiV2ViUGFnZVByb3h5IikpOwogCi0jaWYgRU5BQkxFKFdFQlBST0NF
U1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKIGNsYXNz
IFNjcm9sbGluZ09ic2VydmVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTY3JvbGxpbmdP
YnNlcnZlcik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC0zNDgsNyArMzQ1LDcg
QEAgU2Nyb2xsaW5nT2JzZXJ2ZXImIFNjcm9sbGluZ09ic2VydmVyOjpzaW5nbGV0b24oKQogICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTY3JvbGxpbmdPYnNlcnZlcj4gZGV0ZWN0b3I7CiAgICAg
cmV0dXJuIGRldGVjdG9yOwogfQotI2VuZGlmIC8vIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykKKyNlbmRpZgogCiBjbGFzcyBTdG9yYWdlUmVxdWVzdHMgewogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFN0b3JhZ2VSZXF1ZXN0cyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwpAQCAtMjc0Nyw3ICsyNzQ0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVdoZWVs
RXZlbnQoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYgZXZlbnQpCiAKIHZvaWQgV2ViUGFnZVBy
b3h5OjpzZW5kV2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiBldmVudCkKIHsKLSNpZiBF
TkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgSEFWRShDVkRJU1BM
QVlMSU5LKQogICAgIFNjcm9sbGluZ09ic2VydmVyOjpzaW5nbGV0b24oKS53aWxsU2VuZFdoZWVs
RXZlbnQoKTsKICNlbmRpZgogCkBAIC05OTMxLDcgKzk5MjgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6Z2V0SXNWaWV3VmlzaWJsZShib29sJiByZXN1bHQpCiAKIHZvaWQgV2ViUGFnZVByb3h5Ojp1
cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSgpCiB7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFC
TEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpIHx8IFBMQVRGT1JNKElPU19GQU1J
TFkpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYXV0byBtb2RpZmllcnMgPSBQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQ6OmN1cnJlbnRTdGF0ZU9mTW9kaWZpZXJLZXlzKCk7CiAgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6VXBkYXRlQ3VycmVudE1vZGlmaWVyU3RhdGUobW9kaWZpZXJzKSk7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA0
MTIwZDM3ZDRjMDU3OWNlNzNlODEwZjQ1MGM3MjdlN2YzNWVjYWJmLi4zZWNlNTFlODhlYzRjYWEx
OWIyNDJlYTliY2MxZmVlYjMyODVkYTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwCkBAIC02ODYsOSArNjg2LDcgQEAgc3RhdGljIHZvaWQgZGlzcGxheVJl
Y29uZmlndXJhdGlvbkNhbGxCYWNrKENHRGlyZWN0RGlzcGxheUlEIGRpc3BsYXksIENHRGlzcGxh
eUMKICAgICBhdXRvIHNjcmVlblByb3BlcnRpZXMgPSBXZWJDb3JlOjpjb2xsZWN0U2NyZWVuUHJv
cGVydGllcygpOwogICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBXZWJQcm9jZXNzUG9vbDo6
YWxsUHJvY2Vzc1Bvb2xzKCkpIHsKICAgICAgICAgcHJvY2Vzc1Bvb2wtPnNlbmRUb0FsbFByb2Nl
c3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0U2NyZWVuUHJvcGVydGllcyhzY3JlZW5Qcm9w
ZXJ0aWVzKSk7Ci0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQog
ICAgICAgICBwcm9jZXNzUG9vbC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzOjpEaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWQoZGlzcGxheSwgZmxhZ3MpKTsKLSNlbmRp
ZgogICAgIH0KIH0KIApAQCAtMTk1Myw3ICsxOTUxLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6
cmVzZXRNb2NrTWVkaWFEZXZpY2VzKCkKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZERpc3Bs
YXlDb25maWd1cmF0aW9uQ2hhbmdlZE1lc3NhZ2VGb3JUZXN0aW5nKCkKIHsKLSNpZiBQTEFURk9S
TShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBQ
TEFURk9STShNQUMpCiAgICAgYXV0byBkaXNwbGF5ID0gQ0dTTWFpbkRpc3BsYXlJRCgpOwogCiAg
ICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IFdlYlByb2Nlc3NQb29sOjphbGxQcm9jZXNzUG9v
bHMoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggYjc4
YmZkZTIwYmE0YjU0ZmVmZGQzOGE5YjI1ODhmODQ0MzIxMzg1MC4uNjljMzM0ZDhhYzQzZGE3MjUy
MzM2ODE1ZmM0ZmE2NTE4NTg3Mjc4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oCkBAIC03MCwxMSArNzAsOSBAQCBPQkpDX0NMQVNTIFdLV2ViSW5zcGVjdG9yUHJl
ZmVyZW5jZU9ic2VydmVyOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi0jaW1wb3J0IDxX
ZWJDb3JlL1Bvd2VyT2JzZXJ2ZXJNYWMuaD4KLSNpbXBvcnQgPHBhbC9zeXN0ZW0vU3lzdGVtU2xl
ZXBMaXN0ZW5lci5oPgotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lO
RykKICNpbmNsdWRlICJEaXNwbGF5TGluay5oIgotI2VuZGlmCisjaW5jbHVkZSA8V2ViQ29yZS9Q
b3dlck9ic2VydmVyTWFjLmg+CisjaW5jbHVkZSA8cGFsL3N5c3RlbS9TeXN0ZW1TbGVlcExpc3Rl
bmVyLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIEFQSSB7CkBAIC0yNDAsNyArMjM4LDcgQEAgcHVi
bGljOgogICAgIFBsdWdpbkluZm9TdG9yZSYgcGx1Z2luSW5mb1N0b3JlKCkgeyByZXR1cm4gbV9w
bHVnaW5JbmZvU3RvcmU7IH0KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUo
V0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgSEFWRShDVkRJU1BMQVlMSU5L
KQogICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kRm9yRGlzcGxh
eShXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCk7CiAgICAgdm9pZCBzdGFydERpc3BsYXlMaW5r
KElQQzo6Q29ubmVjdGlvbiYsIERpc3BsYXlMaW5rT2JzZXJ2ZXJJRCwgV2ViQ29yZTo6UGxhdGZv
cm1EaXNwbGF5SUQpOwogICAgIHZvaWQgc3RvcERpc3BsYXlMaW5rKElQQzo6Q29ubmVjdGlvbiYs
IERpc3BsYXlMaW5rT2JzZXJ2ZXJJRCwgV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQpOwpAQCAt
NjY3LDkgKzY2NSw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPE5TT2JqZWN0PiBtX2F1dG9t
YXRpY1F1b3RlU3Vic3RpdHV0aW9uTm90aWZpY2F0aW9uT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRy
PE5TT2JqZWN0PiBtX2F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25Ob3RpZmljYXRpb25PYnNlcnZl
cjsKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fYWNjZXNzaWJpbGl0eURpc3BsYXlPcHRpb25z
Tm90aWZpY2F0aW9uT2JzZXJ2ZXI7Ci0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVS
X0JMT0NLSU5HKQogICAgIFJldGFpblB0cjxOU09iamVjdD4gbV9zY3JvbGxlclN0eWxlTm90aWZp
Y2F0aW9uT2JzZXJ2ZXI7Ci0jZW5kaWYKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fZGVhY3Rp
dmF0aW9uT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPFdLV2ViSW5zcGVjdG9yUHJlZmVyZW5jZU9i
c2VydmVyPiBtX3dlYkluc3BlY3RvclByZWZlcmVuY2VPYnNlcnZlcjsKIApAQCAtNzUzLDcgKzc0
OSw3IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UHJld2FybUluZm9ybWF0aW9uPj4gbV9wcmV3YXJt
SW5mb3JtYXRpb25QZXJSZWdpc3RyYWJsZURvbWFpbjsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYg
RU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lmIEhBVkUoQ1ZESVNQ
TEFZTElOSykKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaW5rPj4gbV9kaXNw
bGF5TGlua3M7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKaW5kZXggODkyODJhZDgzZWZhMDZhYzZjNjcyNDcyYjI3MjI2YWMwMTcxYWFlMC4u
NDkyZjNiYjlhMDZlZjIwZTI3MzgxZWFmZGZhYjVkZDg0M2I5MDNmOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0yNDQsNyArMjQ0LDcgQEAgV2Vi
UHJvY2Vzc1Byb3h5Ojp+V2ViUHJvY2Vzc1Byb3h5KCkKIAogICAgIFdlYlBhc3RlYm9hcmRQcm94
eTo6c2luZ2xldG9uKCkucmVtb3ZlV2ViUHJvY2Vzc1Byb3h5KCp0aGlzKTsKIAotI2lmIFBMQVRG
T1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lm
IEhBVkUoQ1ZESVNQTEFZTElOSykKICAgICBpZiAoc3RhdGUoKSA9PSBTdGF0ZTo6UnVubmluZykK
ICAgICAgICAgcHJvY2Vzc1Bvb2woKS5zdG9wRGlzcGxheUxpbmtzKCpjb25uZWN0aW9uKCkpOwog
I2VuZGlmCkBAIC00MzksNyArNDM5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NX
aWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewogICAgIEFTU0VSVF9V
TlVTRUQoY29ubmVjdGlvbiwgdGhpcy0+Y29ubmVjdGlvbigpID09ICZjb25uZWN0aW9uKTsKIAot
I2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NL
SU5HKQorI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKICAgICBwcm9jZXNzUG9vbCgpLnN0b3BEaXNw
bGF5TGlua3MoY29ubmVjdGlvbik7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggNWRhYzgzMWMyZWQyNjcxMGM1NzA4ZThkNDQwN2E5NGNi
YTQ2NjYwNy4uMjI2OGI3Nzk1OWVlYmE0OTc3YWUwMGYzZDI3Y2E4YzY0YWZlNDY2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTI5Nyw3ICsyOTcsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCByZWxlYXNlSGlnaFBlcmZvcm1hbmNlR1BVKCk7CiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JM
T0NLSU5HKQorI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKICAgICB2b2lkIHN0YXJ0RGlzcGxheUxp
bmsoRGlzcGxheUxpbmtPYnNlcnZlcklELCBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCk7CiAg
ICAgdm9pZCBzdG9wRGlzcGxheUxpbmsoRGlzcGxheUxpbmtPYnNlcnZlcklELCBXZWJDb3JlOjpQ
bGF0Zm9ybURpc3BsYXlJRCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCA0OWRiMGIzNDQwYmI4MGFjZjU3
NTNmYzAwODczOTAxNjQwYjg0MDQ2Li5lYTljZGE1MDFmMDg5MGJkM2RhMzBmMDJmZTE0YzNiMWNi
YjJjNzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluCkBAIC03MSw3ICs3MSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQ
cm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgUmVsZWFzZUhpZ2hQZXJmb3JtYW5jZUdQVSgpCiAj
ZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VS
VkVSX0JMT0NLSU5HKQorI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKICAgICBTdGFydERpc3BsYXlM
aW5rKFdlYktpdDo6RGlzcGxheUxpbmtPYnNlcnZlcklEIG9ic2VydmVySUQsIHVpbnQzMl90IGRp
c3BsYXlJRCkKICAgICBTdG9wRGlzcGxheUxpbmsoV2ViS2l0OjpEaXNwbGF5TGlua09ic2VydmVy
SUQgb2JzZXJ2ZXJJRCwgdWludDMyX3QgZGlzcGxheUlEKQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmNwcAppbmRleCAwZDFmMzg3MWJiN2ZkMGNkMGZi
ZTI2ZTljZjg4MWJiNzgxZDVlNjU2Li4wOTVjMDljYjdkZjYyOTQ2ZjVlNDc0YWVjNjYzODFmNTYw
NThmMTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxp
bmsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHAK
QEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEaXNwbGF5
TGluay5oIgogCi0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQor
I2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKIAogI2luY2x1ZGUgIkV2ZW50RGlzcGF0Y2hlck1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCkBAIC0xNTAsNCArMTUwLDQg
QEAgdm9pZCBEaXNwbGF5TGluazo6bm90aWZ5T2JzZXJ2ZXJzRGlzcGxheVdhc1JlZnJlc2hlZCgp
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQlBST0NFU1Nf
V0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2VuZGlmIC8vIEhBVkUoQ1ZESVNQTEFZTElOSykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmgKaW5kZXggYWE3ZTZlZWFiNzM1
MzZkZDg3ZjljOGM0MzlhMGU0OTM4Mjc1OWFiMC4uN2QyZWVkM2MzNmIyZjZjN2Q4ZDBjMDMxNGE4
OTNjMjZjZDk0YmUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rp
c3BsYXlMaW5rLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5r
LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoV0VCUFJP
Q0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgSEFWRShDVkRJU1BMQVlMSU5LKQogCiAj
aW5jbHVkZSAiRGlzcGxheUxpbmtPYnNlcnZlcklELmgiCiAjaW5jbHVkZSA8Q29yZVZpZGVvL0NW
RGlzcGxheUxpbmsuaD4KQEAgLTcxLDUgKzcxLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKLSNlbmRpZgotCisjZW5kaWYgLy8gSEFWRShDVkRJU1BMQVlMSU5LKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlByb2Nlc3NQcm94eU1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQcm9jZXNzUHJveHlNYWMubW0KaW5k
ZXggNTJmZDBjZTE5MTllNDQxMzczMWM2NTc0MTJjMDg5ZGEwNjg2YjA2Ni4uNDcxOTU1MmZiMGU1
ZDJhNmQ3NmE2OGI3YmI5YjJhNjM4ZWQxMDQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYlByb2Nlc3NQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1Byb3h5TWFjLm1tCkBAIC01OSw3ICs1OSw2IEBAIGJvb2wg
V2ViUHJvY2Vzc1Byb3h5OjpzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2RlKCkgY29uc3QK
ICAgICByZXR1cm4gIXBhdGguaXNFbXB0eSgpICYmICFwYXRoLnN0YXJ0c1dpdGgoIi9TeXN0ZW0v
Iik7CiB9CiAKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6c3RhcnREaXNwbGF5TGluayhEaXNwbGF5TGlua09ic2VydmVy
SUQgb2JzZXJ2ZXJJRCwgV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogewog
ICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkNvbW11
bmljYXRlV2l0aFdpbmRvd1NlcnZlcikpOwpAQCAtNzIsNyArNzEsNiBAQCB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6c3RvcERpc3BsYXlMaW5rKERpc3BsYXlMaW5rT2JzZXJ2ZXJJRCBvYnNlcnZlcklE
LCBXZWJDb3JlOgogICAgIEFTU0VSVChjb25uZWN0aW9uKCkpOwogICAgIHByb2Nlc3NQb29sKCku
c3RvcERpc3BsYXlMaW5rKCpjb25uZWN0aW9uKCksIG9ic2VydmVySUQsIGRpc3BsYXlJRCk7CiB9
Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVu
ZGxlTWFjLm1tCmluZGV4IGJkNmUzOWYwZjBmYmQyZDViNTYwY2UxYzM0NDY3NDJiNGZmZTA4OWYu
Ljg4ZDI1MDg4NjE3ZjYyNzg3NWY0MGU4YzVmM2EwMTJkYTU3MDhmNzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL21hYy9J
bmplY3RlZEJ1bmRsZU1hYy5tbQpAQCAtNTIsOCArNTIsNyBAQCBAZW5kCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0jaWYgRU5BQkxFKFdFQlBST0NFU1Nf
V0lORE9XU0VSVkVSX0JMT0NLSU5HKQotCisjaWYgUExBVEZPUk0oTUFDKQogc3RhdGljIE5TRXZl
bnRNb2RpZmllckZsYWdzIGN1cnJlbnRNb2RpZmllckZsYWdzKGlkIHNlbGYsIFNFTCBfY21kKQog
ewogICAgIGF1dG8gY3VycmVudE1vZGlmaWVycyA9IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3Vy
cmVudFN0YXRlT2ZNb2RpZmllcktleXMoKTsKQEAgLTcyLDcgKzcxLDYgQEAgc3RhdGljIE5TRXZl
bnRNb2RpZmllckZsYWdzIGN1cnJlbnRNb2RpZmllckZsYWdzKGlkIHNlbGYsIFNFTCBfY21kKQog
ICAgIAogICAgIHJldHVybiBtb2RpZmllcnM7CiB9Ci0KICNlbmRpZgogCiBzdGF0aWMgUmV0YWlu
UHRyPE5TS2V5ZWRVbmFyY2hpdmVyPiBjcmVhdGVVbmFyY2hpdmVyKGNvbnN0IHVuc2lnbmVkIGNo
YXIqIGJ5dGVzLCBOU1VJbnRlZ2VyIGxlbmd0aCkKQEAgLTE3Nyw3ICsxNzUsNyBAQCBib29sIElu
amVjdGVkQnVuZGxlOjppbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMsCiAgICAgaWYgKGFkZGl0aW9uYWxDbGFzc2VzRm9yUGFyYW1ldGVyQ29k
ZXJGdW5jdGlvbikKICAgICAgICAgYWRkaXRpb25hbENsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlckZ1
bmN0aW9uKHRvQVBJKHRoaXMpLCB0b0FQSShpbml0aWFsaXphdGlvblVzZXJEYXRhKSk7CiAKLSNp
ZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgUExBVEZPUk0o
TUFDKQogICAgIC8vIFN3aXp6bGUgW05TRXZlbnQgbW9kaWZlckZsYWdzXSwgc2luY2UgaXQgYWx3
YXlzIHJldHVybnMgMCB3aGVuIHRoZSBXaW5kb3dTZXJ2ZXIgaXMgYmxvY2tlZC4KICAgICBNZXRo
b2QgbWV0aG9kID0gY2xhc3NfZ2V0Q2xhc3NNZXRob2QoW05TRXZlbnQgY2xhc3NdLCBAc2VsZWN0
b3IobW9kaWZpZXJGbGFncykpOwogICAgIG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihtZXRob2Qs
IHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihjdXJyZW50TW9kaWZpZXJGbGFncykpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERkxheWVyQ29udHJvbGxl
clNQSS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERkxheWVyQ29u
dHJvbGxlclNQSS5oCmluZGV4IGQwMzkzNTc5ZWY2Njc2ZGI4ZjExYWIxZmJiMThmMzkxYzUxMGFh
MWEuLjY3ZjcyN2Q5OTZiNTM5NTZiMWFiNDcwMmM5N2YyMjJiYjA1ZGMxMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZMYXllckNvbnRyb2xsZXJT
UEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGTGF5ZXJD
b250cm9sbGVyU1BJLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFBERkxheWVyQ29udHJvbGxlclNQSV9oCi0jZGVm
aW5lIFBERkxheWVyQ29udHJvbGxlclNQSV9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShQ
REZLSVRfUExVR0lOKQogCkBAIC0xNzAsMTYgKzE2OSwxMiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJ
bnRlZ2VyLCBQREZMYXllckNvbnRyb2xsZXJDdXJzb3JUeXBlKSB7CiAtIChOU0FycmF5ICopYWNj
ZXNzaWJpbGl0eUNoaWxkcmVuOwogLSAodm9pZClzZXRBY2Nlc3NpYmlsaXR5UGFyZW50OihpZClw
YXJlbnQ7CiAtIChpZClhY2Nlc3NpYmlsaXR5RWxlbWVudEZvckFubm90YXRpb246KFBERkFubm90
YXRpb24gKilhbm5vdGF0aW9uOwotCi0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVS
X0JMT0NLSU5HKQogLSAodm9pZClzZXREZXZpY2VDb2xvclNwYWNlOihDR0NvbG9yU3BhY2VSZWYp
Y29sb3JTcGFjZTsKLSNlbmRpZgorCiBAZW5kCiAKIEBpbnRlcmZhY2UgUERGQW5ub3RhdGlvbiAo
QWNjZXNzaWJpbGl0eVByaXZhdGUpCiAtIChpZClhY2Nlc3NpYmlsaXR5Tm9kZTsKIEBlbmQKIAot
I2VuZGlmCi0KLSNlbmRpZiAvLyBQREZMYXllckNvbnRyb2xsZXJTUElfaAorI2VuZGlmIC8vIEVO
QUJMRShQREZLSVRfUExVR0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggYTJjOGJiMWE0NzE3OGNjMGMzNDdhZGM0N2JkMDY0
OThkYjU3YzFjNy4uZTIwNzZkZDgyZjUyYjI0OThiMWFhM2FmNjFhNGU4YTkzYjQ1N2NjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1t
CkBAIC02MzMsMTIgKzYzMywxMCBAQCBpbmxpbmUgUERGUGx1Z2luOjpQREZQbHVnaW4oV2ViRnJh
bWUmIGZyYW1lKQogCiAgICAgW21fY29udGFpbmVyTGF5ZXIgYWRkU3VibGF5ZXI6bV9jb250ZW50
TGF5ZXIuZ2V0KCldOwogICAgIFttX2NvbnRhaW5lckxheWVyIGFkZFN1YmxheWVyOm1fc2Nyb2xs
Q29ybmVyTGF5ZXIuZ2V0KCldOwotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9C
TE9DS0lORykKICAgICBpZiAoW21fcGRmTGF5ZXJDb250cm9sbGVyIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3Ioc2V0RGV2aWNlQ29sb3JTcGFjZTopXSkgewogICAgICAgICBhdXRvIHZpZXcg
PSBmcmFtZS5jb3JlRnJhbWUoKS0+dmlldygpOwogICAgICAgICBbbV9wZGZMYXllckNvbnRyb2xs
ZXIgc2V0RGV2aWNlQ29sb3JTcGFjZTpzY3JlZW5Db2xvclNwYWNlKHZpZXcpXTsKICAgICB9Ci0j
ZW5kaWYKIAogI2lmIEhBVkUoSU5DUkVNRU5UQUxfUERGX0FQSVMpCiAgICAgaWYgKG1faW5jcmVt
ZW50YWxQREZMb2FkaW5nRW5hYmxlZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCmluZGV4IGFmMzEyZDcxOWEyMjQxYTIzOTBhYTg2MTY4
MGVlOWZkNGQ0OGVhYTcuLmVjNWUzNmI1YjQ0YTk5ZDQ5Y2FiZGY4MjZiM2QxNDhkYjc4Yjk5Yjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVh
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5j
cHAKQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBEcmF3aW5nQXJlYTo6ZGlzcGF0Y2hBZnRlckVuc3Vy
aW5nVXBkYXRlZFNjcm9sbFBvc2l0aW9uKFdURjo6RnVuY3Rpb248dm9pZAogICAgIGZ1bmN0aW9u
KCk7CiB9CiAKLSNpZiAhKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9X
U0VSVkVSX0JMT0NLSU5HKSkKKyNpZiAhUExBVEZPUk0oTUFDKQogUmVmUHRyPFdlYkNvcmU6OkRp
c3BsYXlSZWZyZXNoTW9uaXRvcj4gRHJhd2luZ0FyZWE6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9u
aXRvcihQbGF0Zm9ybURpc3BsYXlJRCkKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCmlu
ZGV4IDYwZTIwZjQ0NjAyOTg3YmU1NmQ2ZjIxZDkwOGM0Yjg1MGRiYTU2NTMuLmYxYmI4Yzc1NjBi
YTViOWUzOGJhMmZhNWQxMWMwZmY5MWI5ZTQyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtMjkxLDcgKzI5MSw3
IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjpub3RpZnlTY3JvbGxpbmdUcmVlc0Rpc3BsYXlXYXNS
ZWZyZXNoZWQoUGxhdGZvcm1EaXNwbGF5SUQKICNlbmRpZgogfQogCi0jaWYgRU5BQkxFKFdFQlBS
T0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKIHZv
aWQgRXZlbnREaXNwYXRjaGVyOjpkaXNwbGF5V2FzUmVmcmVzaGVkKFBsYXRmb3JtRGlzcGxheUlE
IGRpc3BsYXlJRCkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKaW5kZXgg
NDc5YmY3OWQ1NTM5YjIyMzQ1YThiN2FmMjkxZjFjMzhjMzI2MjI3Yi4uNjcxYjI4ZGYzZTUxMGRl
YTM1MDFkODAyOGI5Nzg3MTg3NmE2NGEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKQEAgLTEwNiw3ICsxMDYsNyBAQCBwcml2
YXRlOgogICAgIHN0YXRpYyB2b2lkIHNlbmREaWRSZWNlaXZlRXZlbnQoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIFdlYkV2ZW50OjpUeXBlLCBib29sIGRpZEhhbmRsZUV2ZW50KTsKICNlbmRpZgog
Ci0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lmIFBMQVRG
T1JNKE1BQykKICAgICB2b2lkIGRpc3BsYXlXYXNSZWZyZXNoZWQoV2ViQ29yZTo6UGxhdGZvcm1E
aXNwbGF5SUQpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5tZXNzYWdlcy5pbgppbmRleCBiYjUwYjk3
NzA1Mjg0MTFmMDA0MDEzYmI2ODcxYjFiMGU5MTU0MjRkLi5jZjRmNzY2NjZjYzUzNDMxZTk5YmVk
ZTVlODI4YThhYTg3YTAzY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCkBAIC0yOSw3ICsy
OSw3IEBAIG1lc3NhZ2VzIC0+IEV2ZW50RGlzcGF0Y2hlciB7CiAjaWYgRU5BQkxFKE1BQ19HRVNU
VVJFX0VWRU5UUykKICAgICBHZXN0dXJlRXZlbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBXZWJLaXQ6OldlYkdlc3R1cmVFdmVudCBldmVudCkKICNlbmRpZgotI2lmIEVOQUJMRShX
RUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBIQVZFKENWRElTUExBWUxJTksp
CiAgICAgRGlzcGxheVdhc1JlZnJlc2hlZCh1aW50MzJfdCBkaXNwbGF5SUQpCiAjZW5kaWYKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EcmF3aW5n
QXJlYU1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRHJhd2lu
Z0FyZWFNYWMuY3BwCmluZGV4IGI0NzQ5NjAxYWNlNzk1MGUyYTViMDRjZjIxNDY0NDA1NDlmMTMz
ZjguLjc4YzI5M2Q4MGFmNjQ3N2Q0OTZhMGY5N2YyN2NiY2NmOTQyMzExZTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EcmF3aW5nQXJlYU1hYy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0RyYXdpbmdBcmVhTWFj
LmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRy
YXdpbmdBcmVhLmgiCiAKKyNpZiBQTEFURk9STShNQUMpCisKICNpbmNsdWRlICJXZWJQcm9jZXNz
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1By
b3h5TWVzc2FnZXMuaCIKQEAgLTM2LDggKzM4LDYgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJW
RVJfQkxPQ0tJTkcpCi0KIGNsYXNzIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYyA6IHB1YmxpYyBE
aXNwbGF5UmVmcmVzaE1vbml0b3IgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8RGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFjPiBjcmVhdGUoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQpAQCAt
MTA2LDYgKzEwNiw3IEBAIFJlZlB0cjxXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I+IERy
YXdpbmdBcmVhOjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoCiB7CiAgICAgcmV0dXJuIERp
c3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6Y3JlYXRlKGRpc3BsYXlJRCk7CiB9Ci0jZW5kaWYgLy8g
RU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQogCiB9CisKKyNlbmRpZiAv
LyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5k
ZXggMzAxYjg4NzdiMzU3ZDBkNjEzYTNhZDEwMGFhOTRmOWU4ZDc2ZjYyMi4uY2Y3OTczMDdhN2Zi
ZDdhZGRiNjM4M2ZmNjQ1ZmVmOGFlNjQ5OTJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcApAQCAtMTU0LDYgKzE1NCwxMCBAQAogI2luY2x1ZGUgIlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmgiCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlIDxX
ZWJDb3JlL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaD4KKyNlbmRpZgorCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICNpbmNsdWRlICJXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCIK
ICNlbmRpZgpAQCAtMjExLDEwICsyMTUsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvVlA5VXRpbGl0
aWVzQ29jb2EuaD4KICNlbmRpZgogCi0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVS
X0JMT0NLSU5HKQotI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdl
ci5oPgotI2VuZGlmCi0KICNkZWZpbmUgUkVMRUFTRV9MT0dfU0VTU0lPTl9JRCAobV9zZXNzaW9u
SUQgPyBtX3Nlc3Npb25JRC0+dG9VSW50NjQoKSA6IDApCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoY2hhbm5lbCwgZm10LCAuLi4pIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dn
aW5nQWxsb3dlZCgpLCBjaGFubmVsLCAiJXAgLSBbc2Vzc2lvbklEPSUiIFBSSXU2NCAiXSBXZWJQ
cm9jZXNzOjoiIGZtdCwgdGhpcywgUkVMRUFTRV9MT0dfU0VTU0lPTl9JRCwgIyNfX1ZBX0FSR1Nf
XykKICNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChjaGFubmVsLCBmbXQsIC4u
LikgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIGNoYW5u
ZWwsICIlcCAtIFtzZXNzaW9uSUQ9JSIgUFJJdTY0ICJdIFdlYlByb2Nlc3M6OiIgZm10LCB0aGlz
LCBSRUxFQVNFX0xPR19TRVNTSU9OX0lELCAjI19fVkFfQVJHU19fKQpAQCAtMTg3Niw3ICsxODc2
LDcgQEAgYm9vbCBXZWJQcm9jZXNzOjphcmVBbGxQYWdlc1Rocm90dGxlYWJsZSgpIGNvbnN0CiAg
ICAgfSk7CiB9CiAKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcp
CisjaWYgUExBVEZPUk0oTUFDKQogdm9pZCBXZWJQcm9jZXNzOjpkaXNwbGF5V2FzUmVmcmVzaGVk
KHVpbnQzMl90IGRpc3BsYXlJRCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZmM2YzM4NzJlYjA0NDRjZWEw
YmU4Y2VkYWMxYmZiZjc3NmIwMjlmMy4uNGQ2YTg3NWI0YTQxZmVlYjlmZjBiZTE0MThmYjUxZmFh
MzdmMDUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC01MDksMTEg
KzUwOSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZW5kUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFJbW1lZGlhdGVseShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogI2VuZGlmCiAKLSNp
ZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0gICAgdm9pZCBkaXNw
bGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJRCk7Ci0jZW5kaWYKLQogI2lmIFBMQVRG
T1JNKE1BQykKKyAgICB2b2lkIGRpc3BsYXlXYXNSZWZyZXNoZWQodWludDMyX3QgZGlzcGxheUlE
KTsKICAgICB2b2lkIHN5c3RlbVdpbGxQb3dlck9uKCk7CiAgICAgdm9pZCBzeXN0ZW1XaWxsU2xl
ZXAoKTsKICAgICB2b2lkIHN5c3RlbURpZFdha2UoKTsKQEAgLTUyOSw3ICs1MjYsNyBAQCBwcml2
YXRlOgogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJQcm9jZXNzTWVzc2FnZVJl
Y2VpdmVyLmNwcAogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUo
V0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgUExBVEZPUk0oTUFDKQogICAg
IHZvaWQgc2Nyb2xsZXJTdHlsZVByZWZlcmVuY2VDaGFuZ2VkKGJvb2wgdXNlT3ZlcmxheVNjcm9s
bGJhcnMpOwogICAgIHZvaWQgZGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkKENHRGlyZWN0RGlz
cGxheUlELCBDR0Rpc3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3MpOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGE0M2ZhMGUx
OGRhYzdiMTRjOWViN2RhMjRkODgwZWE1OWEyZDc1MzYuLmIwNDA4Yzc3OTdhODQ2ODljNmE2ZTkx
MmQ3MGIxNGE2Nzg1NjYwZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xMTUsNyArMTE1LDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJv
Y2VzcyBMZWdhY3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICBTZXRTY3JlZW5Qcm9wZXJ0aWVzKHN0cnVjdCBXZWJDb3JlOjpTY3JlZW5Qcm9wZXJ0aWVz
IHNjcmVlblByb3BlcnRpZXMpCiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShX
RUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBQTEFURk9STShNQUMpCiAgICAg
U2Nyb2xsZXJTdHlsZVByZWZlcmVuY2VDaGFuZ2VkKGJvb2wgdXNlT3ZlbGF5U2Nyb2xsYmFycykK
ICAgICBEaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWQoQ0dEaXJlY3REaXNwbGF5SUQgZGlzcGxh
eUlELCBDR0Rpc3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3MgZmxhZ3MpCiAjZW5kaWYKQEAgLTE5Miwx
MSArMTkyLDkgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciBOb3RSZWZD
b3VudGVkIHsKICAgICBEaWRXcml0ZVRvUGFzdGVib2FyZEFzeW5jaHJvbm91c2x5KFN0cmluZyBw
YXN0ZWJvYXJkTmFtZSk7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykKKyNpZiBQTEFURk9STShNQUMpCiAgICAgRGlzcGxheVdhc1JlZnJlc2hl
ZCh1aW50MzJfdCBkaXNwbGF5SUQpCi0jZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykKICAgICBT
eXN0ZW1XaWxsUG93ZXJPbigpCiAgICAgU3lzdGVtV2lsbFNsZWVwKCkKICAgICBTeXN0ZW1EaWRX
YWtlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tCmluZGV4IDU3YjI1MDc3ZGFmYzhjMTExZjhiNjY1ZWY3M2IwZWYzZWRjMTdmOWIuLjEw
MjhiZGU2YzcwYmQ4ZmUwOWY1YWVhZDc5N2JjNzhmZjFjNzQ4YjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMzUwLDcgKzM1
MCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAgICAgICAgIGxhdW5jaFNlcnZpY2VzRXh0
ZW5zaW9uLT5yZXZva2UoKTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUo
V0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgUExBVEZPUk0oTUFDKQogICAg
IC8vIEFwcCBuYXAgbXVzdCBiZSBtYW51YWxseSBlbmFibGVkIHdoZW4gbm90IHJ1bm5pbmcgdGhl
IE5TQXBwbGljYXRpb24gcnVuIGxvb3AuCiAgICAgX19DRlJ1bkxvb3BTZXRPcHRpb25zUmVhc29u
KF9fQ0ZSdW5Mb29wT3B0aW9uc0VuYWJsZUFwcE5hcCwgQ0ZTVFIoIkZpbmlzaGVkIGNoZWNraW4g
YXMgYXBwbGljYXRpb24gLSBlbmFibGUgYXBwIG5hcCIpKTsKICNlbmRpZgpAQCAtMzg2LDcgKzM4
Niw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAKICAgICBXZWJDb3JlOjpzZXRTY3JlZW5Q
cm9wZXJ0aWVzKHBhcmFtZXRlcnMuc2NyZWVuUHJvcGVydGllcyk7CiAKLSNpZiBQTEFURk9STShN
QUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBQTEFU
Rk9STShNQUMpCiAgICAgc2Nyb2xsZXJTdHlsZVByZWZlcmVuY2VDaGFuZ2VkKHBhcmFtZXRlcnMu
dXNlT3ZlcmxheVNjcm9sbGJhcnMpOwogI2VuZGlmCiAKQEAgLTYzMSwyMSArNjMxLDEyIEBAIHZv
aWQgV2ViUHJvY2Vzczo6cmVnaXN0ZXJXaXRoU3RhdGVEdW1wZXIoKQogdm9pZCBXZWJQcm9jZXNz
OjpwbGF0Zm9ybUluaXRpYWxpemVQcm9jZXNzKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFs
aXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQotI2lm
IEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKICAgICAvLyBEZW55IHRo
ZSBXZWJDb250ZW50IHByb2Nlc3MgYWNjZXNzIHRvIHRoZSBXaW5kb3dTZXJ2ZXIuCiAgICAgLy8g
VGhpcyBjYWxsIHdpbGwgbm90IHN1Y2NlZWQgaWYgdGhlcmUgYXJlIG9wZW4gV2luZG93U2VydmVy
IGNvbm5lY3Rpb25zIGF0IHRoaXMgcG9pbnQuCiAgICAgYXV0byByZXR2YWwgPSBDR1NTZXREZW55
V2luZG93U2VydmVyQ29ubmVjdGlvbnModHJ1ZSk7CiAgICAgUkVMRUFTRV9BU1NFUlQocmV0dmFs
ID09IGtDR0Vycm9yU3VjY2Vzcyk7CiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgd2UgY2xvc2UgYW55
IFdpbmRvd1NlcnZlciBjb25uZWN0aW9ucyBhZnRlciBjaGVja2luZyBpbiB3aXRoIExhdW5jaCBT
ZXJ2aWNlcy4KICAgICBDR1NTaHV0ZG93blNlcnZlckNvbm5lY3Rpb25zKCk7Ci0jZWxzZQotCi0g
ICAgaWYgKCFbTlNBcHAgaXNSdW5uaW5nXSkgewotICAgICAgICAvLyBUaGlzIGNhbGwgaXMgbmVl
ZGVkIHdoZW4gdGhlIFdlYlByb2Nlc3MgaXMgbm90IHJ1bm5pbmcgdGhlIE5TQXBwbGljYXRpb24g
ZXZlbnQgbG9vcC4KLSAgICAgICAgLy8gT3RoZXJ3aXNlLCBjYWxsaW5nIGVuYWJsZVNhbmRib3hT
dHlsZUZpbGVRdWFyYW50aW5lKCkgd2lsbCBmYWlsLgotICAgICAgICBsYXVuY2hTZXJ2aWNlc0No
ZWNrSW4oKTsKLSAgICB9Ci0jZW5kaWYgLy8gRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVS
X0JMT0NLSU5HKQogCiAgICAgU3dpdGNoaW5nR1BVQ2xpZW50OjpzZXRTaW5nbGV0b24oV2ViU3dp
dGNoaW5nR1BVQ2xpZW50OjpzaW5nbGV0b24oKSk7CiAgICAgTWFpblRocmVhZFNoYXJlZFRpbWVy
OjpzaG91bGRTZXR1cFBvd2VyT2JzZXJ2ZXIoKSA9IGZhbHNlOwpAQCAtOTkwLDcgKzk4MSw3IEBA
IHZvaWQgV2ViUHJvY2Vzczo6dXBkYXRlRnJlZXplclN0YXR1cygpCiB9CiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5H
KQorI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgV2ViUHJvY2Vzczo6c2Nyb2xsZXJTdHlsZVByZWZl
cmVuY2VDaGFuZ2VkKGJvb2wgdXNlT3ZlcmxheVNjcm9sbGJhcnMpCiB7CiAgICAgU2Nyb2xsZXJT
dHlsZTo6c2V0VXNlT3ZlcmxheVNjcm9sbGJhcnModXNlT3ZlcmxheVNjcm9sbGJhcnMpOwo=
</data>
<flag name="review"
          id="440616"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>