<?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>228809</bug_id>
          
          <creation_ts>2021-08-04 19:29:08 -0700</creation_ts>
          <short_desc>Deduplicate logging channel algorithms</short_desc>
          <delta_ts>2021-09-12 12:45:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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>
          <dependson>228897</dependson>
          <blocked>228768</blocked>
    
    <blocked>228899</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>annulen</cc>
    
    <cc>apinheiro</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>joepeck</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>samuel_white</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1782122</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-04 19:29:08 -0700</bug_when>
    <thetext>Deduplicate logging channel algorithms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782435</commentid>
    <comment_count>1</comment_count>
      <attachid>435051</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-05 19:57:12 -0700</bug_when>
    <thetext>Created attachment 435051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782572</commentid>
    <comment_count>2</comment_count>
      <attachid>435051</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-08-06 14:40:34 -0700</bug_when>
    <thetext>Comment on attachment 435051
Patch

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

&gt; Source/WTF/wtf/LogChannels.cpp:37
&gt; +    WTFLogChannel* channel = WTFLogChannelByName(m_logChannels.data(), m_logChannels.size(), name.utf8().data());

You can use getLogChannel(name) here.

&gt; Source/WTF/wtf/LogChannels.cpp:45
&gt; +    WTFLogChannel* channel = WTFLogChannelByName(m_logChannels.data(), m_logChannels.size(), name.utf8().data());

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782573</commentid>
    <comment_count>3</comment_count>
      <attachid>435051</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-08-06 14:44:47 -0700</bug_when>
    <thetext>Comment on attachment 435051
Patch

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

&gt; Source/WebCore/platform/LogInitialization.cpp:32
&gt; +#include &lt;wtf/text/CString.h&gt;

Do you really use &lt;wtf/text/CString.h&gt; in this file?

&gt; Source/WebCore/platform/LogInitialization.cpp:36
&gt; +#if PLATFORM(COCOA)

Do you really need Cocoa specific headers in this file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782575</commentid>
    <comment_count>4</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-08-06 14:51:17 -0700</bug_when>
    <thetext>They have some #undef for the problem.
https://github.com/WebKit/WebKit/blob/4c96573f0f4dde291b8ce4a23dfd54d4b9fd7d5e/Source/WebCore/platform/graphics/GLContext.h#L51
https://github.com/WebKit/WebKit/blob/4c96573f0f4dde291b8ce4a23dfd54d4b9fd7d5e/Source/WebCore/platform/graphics/GraphicsContext.h#L73</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782577</commentid>
    <comment_count>5</comment_count>
      <attachid>435051</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-08-06 14:52:45 -0700</bug_when>
    <thetext>Comment on attachment 435051
Patch

Nice refactoring. LGTM. But, cq- for the GTK build problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782647</commentid>
    <comment_count>6</comment_count>
      <attachid>435110</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-06 20:05:34 -0700</bug_when>
    <thetext>Created attachment 435110
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782672</commentid>
    <comment_count>7</comment_count>
      <attachid>435119</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-06 23:40:08 -0700</bug_when>
    <thetext>Created attachment 435119
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782673</commentid>
    <comment_count>8</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-07 00:55:03 -0700</bug_when>
    <thetext>Committed r280756 (240341@main): &lt;https://commits.webkit.org/240341@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782674</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-07 00:56:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/81647472&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782697</commentid>
    <comment_count>10</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-08-07 09:26:09 -0700</bug_when>
    <thetext>(In reply to Myles C. Maxfield from comment #8)
&gt; Committed r280756 (240341@main): &lt;https://commits.webkit.org/240341@main&gt;
This seems to have broken GTK build.
e.g.:
https://build.webkit.org/#/builders/41/builds/4806 passed with 240340@main
https://build.webkit.org/#/builders/41/builds/4807 failed with 240341@main</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782699</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-08-07 09:27:49 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 228897</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782710</commentid>
    <comment_count>12</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-07 11:15:58 -0700</bug_when>
    <thetext>Oh, somehow the patch I committed didn&apos;t include the fix for GTK! The Patch for committing above includes a change to Threading.h but r280756 doesn&apos;t.

Let&apos;s try this again, with the fully updated patch this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782715</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-07 11:50:23 -0700</bug_when>
    <thetext>Committed r280758 (240343@main): &lt;https://commits.webkit.org/240343@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 435119.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782716</commentid>
    <comment_count>14</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-07 11:55:35 -0700</bug_when>
    <thetext>Watching the GTK bot now...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792799</commentid>
    <comment_count>15</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-09-12 12:45:14 -0700</bug_when>
    <thetext>(In reply to EWS from comment #13)
&gt; Committed r280758 (240343@main): &lt;https://commits.webkit.org/240343@main&gt;
&gt; 
&gt; All reviewed patches have been landed. Closing bug and clearing flags on
&gt; attachment 435119 [details].

Follow-up fix to the WebKit Xcode project:

    REGRESSION (r280758): WebKit project won&apos;t open in Xcode 11.4
    &lt;https://trac.webkit.org/changeset/282317/webkit&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435051</attachid>
            <date>2021-08-05 19:57:12 -0700</date>
            <delta_ts>2021-08-06 14:52:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228809-20210805195711.patch</filename>
            <type>text/plain</type>
            <size>65393</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRiMmExZGEyMDk2ZTExZDQ5NmRiNWEz
ZjI5NGQ0Zjg4MGJjOGU1YjMuLjlhMjdiM2YyZjI1Y2IwYzA1OTMwYTQ3NWJhYzg1MTEzOTdmYTcx
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjEtMDgtMDQgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBEZWR1cGxpY2F0ZSBsb2dnaW5nIGNoYW5u
ZWwgYWxnb3JpdGhtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI4ODA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlIGN1cnJlbnQgaW5mcmFzdHJ1Y3R1cmUgKGJlZm9yZSB0aGlzIHBhdGNoKSBoYWQg
dGhlIGZvbGxvd2luZyBkdXBsaWNhdGVkIGZvciBlYWNoIGZyYW1ld29yazoKKyAgICAgICAgICAt
IEEgLmNwcCBmaWxlIGRlY2xhcmVkIHRoZSBsaXN0IG9mIGxvZ2dpbmcgY2hhbm5lbHMgZm9yIHRo
YXQgZnJhbWV3b3JrCisgICAgICAgICAgLSBUaGUgLmNwcCBmaWxlIGFsc28gaGFkIGFsZ29yaXRo
bXMgdG8gc2VhcmNoLCBtb2RpZnksIGFuZCBpbml0aWFsaXplIHRoZXNlIGxvZ2dpbmcgY2hhbm5l
bHMKKworICAgICAgICBFYWNoIGZyYW1ld29yaydzIC5jcHAgZmlsZSBoYWQgZHVwbGljYXRlIGFs
Z29yaXRobXMuIChUaGUgaW5pdGlhbGl6YXRpb24gYWxnb3JpdGhtIHdhcyBldmVuCisgICAgICAg
IGR1cGxpY2F0ZWQgMyB0aW1lcyEpCisKKyAgICAgICAgQmVjYXVzZSB0aGUgYWxnb3JpdGhtcyBk
aXJlY3RseSBuYW1lIHRoZWlyIHNwZWNpZmljIGxpc3Qgb2YgbG9nZ2luZyBjaGFubmVscywgYSBu
YWl2ZSBkZWR1cGxpY2F0aW9uCisgICAgICAgIHdvdWxkIGhhdmUgaGFkIHRvIGFkZCBuZXcgcGFy
YW1ldGVycyB0byB0aGVzZSBhbGdvcml0aG1zIHRvIHBhc3MgaW4gdGhlIGFwcHJvcHJpYXRlIGZy
YW1ld29yaydzCisgICAgICAgIGxpc3QuIFRoYXQncyBmaW5lLCBidXQgdGhpcyBpcyBleGFjdGx5
IHRoZSBzb3J0IG9mIHRoaW5nIGNsYXNzZXMgd2VyZSBkZXNpZ25lZCBmb3IgLSBjbGFzc2VzIGFy
ZQorICAgICAgICBhbiBhc3NvY2lhdGlvbiBvZiBhbGdvcml0aG1zIGFuZCBkYXRhLiBUaGUgYWxn
b3JpdGhtcyBhcmUgc2hhcmVkIGJ1dCB0aGUgZGF0YSBpc24ndCwgd2hpY2ggcmVhbGx5CisgICAg
ICAgIGp1c3QgbWVhbnMgd2Ugc2hvdWxkIGhhdmUgMyBpbnN0YW5jZXMgb2YgYSBzaGFyZWQgY2xh
c3MgLSBvbmUgZm9yIHRoZSAzIHNldHMgb2YgZGF0YS4KKworICAgICAgICBTbywgdGhpcyBwYXRj
aCBjcmVhdGVzIHRoZSBMb2dDaGFubmVscyBjbGFzcyB3aGljaCBjb250YWlucyB0aGUgZGVkdXBs
aWNhdGVkIGFsZ29yaXRobXMsIGFuZCBlYWNoCisgICAgICAgIGZyYW1ld29yayBoYXMgYSBOZXZl
ckRlc3Ryb3llZCBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhhdCBjbGFzcy4gVGhlcmUgaXMgYSBz
aW5nbGUgdmlydHVhbCBtZXRob2QKKyAgICAgICAgaW4gdGhlIGNsYXNzLCBzbyB0aGUgYXBwcm9w
cmlhdGUgImRlZmF1bHQgd3JpdGUiIHZhcmlhYmxlIGNhbiBiZSBxdWVyaWVkIGZvciBlYWNoIGZy
YW1ld29yay4KKworICAgICAgICBUaGUgaW5zdGFuY2VzIGNhbm5vdCBiZSBkZWNsYXJlZCBpbiB0
aGUgTG9nZ2luZy5oIGZpbGVzIGluIHRoZSBmcmFtZXdvcmtzLCBiZWNhdXNlIGNlcnRhaW4gV2Vi
S2l0MgorICAgICAgICBmaWxlcyB3YW50IHRvIGluaXRpYWxpemUgYWxsIDMgaW5zdGFuY2VzIG9m
IExvZ0NoYW5uZWxzLCBidXQgeW91IGNhbid0ICNpbmNsdWRlIG11bHRpcGxlIExvZ2dpbmcuaAor
ICAgICAgICBmaWxlcyBhdCB0aGUgc2FtZSB0aW1lIGJlY2F1c2UgdGhlaXIgTE9HX0NIQU5ORUxf
UFJFRklYICNkZWZpbmVzIHdpbGwgY29sbGlkZSB3aXRoIGVhY2ggb3RoZXIuCisgICAgICAgIEx1
Y2tpbHksIExvZ0luaXRpYWxpemF0aW9uLmggZmlsZXMgZXhpc3QgZXhhY3RseSB0byBzb2x2ZSB0
aGlzIHB1cnBvc2UsIHNvIHRoYXQncyB3aGVyZSB0aGUKKyAgICAgICAgTG9nQ2hhbm5lbHMgaW5z
dGFuY2VzIGFyZSBkZWNsYXJlZCBpbi4gQWZ0ZXIgdGhpcyBjaGFuZ2UsIHRoZSBMb2dnaW5nLmgg
ZmlsZXMgYXJlIGp1c3QgZm9yIHRoZQorICAgICAgICBkZWNsYXJhdGlvbnMgb2YgdGhlIGxvZ2dp
bmcgY2hhbm5lbHMgdGhlbXNlbHZlcywgYW5kIHRoZSBMb2dJbml0aWFsaXphdGlvbi5oIGZpbGVz
IGFyZSBmb3IgdGhlCisgICAgICAgIExvZ0NoYW5uZWxzIGluc3RhbmNlcyB3aGljaCBjb250YWlu
IHRoZSBzZWFyY2hpbmcvbW9kaWZ5aW5nL2luaXRpYWxpemluZyBhbGdvcml0aG1zIG9uIHRoZSBs
aXN0IG9mCisgICAgICAgIGxvZ2dpbmcgY2hhbm5lbHMuIElmIHlvdSBqdXN0IHdhbnQgdG8gTE9H
KC4uLikgc29tZXRoaW5nLCAjaW5jbHVkZSB0aGUgcmVsZXZhbnQgTG9nZ2luZy5oIGZpbGUsIGFu
ZAorICAgICAgICBpZiB5b3Ugd2FudCB0byBzZWFyY2gvbW9kaWZ5L2luaXRpYWxpemUgYWNyb3Nz
IHRoZSBlbnRpcmUgbGlzdCBvZiBjaGFubmVscywgdGhlbiAjaW5jbHVkZSB0aGUKKyAgICAgICAg
cmVsZXZhbnQgTG9nSW5pdGlhbGl6YXRpb24uaCBmaWxlLgorCisgICAgICAgICogV1RGLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIHd0Zi9Mb2dDaGFubmVscy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvZ2dpbmcuY3BwLgorICAgICAgICAoV1RGOjpMb2dDaGFubmVsczo6aXNMb2dDaGFu
bmVsRW5hYmxlZCk6CisgICAgICAgIChXVEY6OkxvZ0NoYW5uZWxzOjpzZXRMb2dDaGFubmVsVG9B
Y2N1bXVsYXRlKToKKyAgICAgICAgKFdURjo6TG9nQ2hhbm5lbHM6OmNsZWFyQWxsTG9nQ2hhbm5l
bHNUb0FjY3VtdWxhdGUpOgorICAgICAgICAoV1RGOjpMb2dDaGFubmVsczo6aW5pdGlhbGl6ZUxv
Z0NoYW5uZWxzSWZOZWNlc3NhcnkpOgorICAgICAgICAoV1RGOjpMb2dDaGFubmVsczo6Z2V0TG9n
Q2hhbm5lbCk6CisgICAgICAgICogd3RmL0xvZ0NoYW5uZWxzLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmguCisKIDIwMjEtMDgtMDUgIE1p
Y2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgR0NDIDEx
IGJ1aWxkcyBzaG91bGQgdXNlIC1Xbm8tYXJyYXktYm91bmRzLCAtV25vLW5vbm51bGwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA3YmM1OGYwYjZhMzkwZWQzZTdiNTcyMDI2OGI3YmEyOTUzNmJjYzM2Li5iYjBhYjNk
YzdiMTQwNjY5ZTQyNjg5ZDBjODQxZWIwMjQxZTgzMGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzMgQEAKKzIwMjEtMDgtMDQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNv
bT4KKworICAgICAgICBEZWR1cGxpY2F0ZSBsb2dnaW5nIGNoYW5uZWwgYWxnb3JpdGhtcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4ODA5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogU291cmNl
cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9h
Z2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmNwcDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaC4KKyAgICAgICAgKFdl
YkNvcmU6OmxvZ0NoYW5uZWxzKToKKyAgICAgICAgKFdlYkNvcmU6OmdldExvZ0NoYW5uZWwpOgor
ICAgICAgICAqIHBsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmg6CisgICAgICAgICogcGxhdGZv
cm0vTG9nZ2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0xvZ0NoYW5uZWxFbmFibGVkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNldExvZ0NoYW5uZWxUb0FjY3VtdWxhdGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y2xlYXJBbGxMb2dDaGFubmVsc1RvQWNjdW11bGF0
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5l
Y2Vzc2FyeSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpnZXRMb2dDaGFubmVsKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAgICogdGVzdGluZy9q
cy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRlc3RTdXBwb3J0Ojpz
ZXRMb2dDaGFubmVsVG9BY2N1bXVsYXRlKToKKyAgICAgICAgKFdlYkNvcmVUZXN0U3VwcG9ydDo6
Y2xlYXJBbGxMb2dDaGFubmVsc1RvQWNjdW11bGF0ZSk6CisgICAgICAgIChXZWJDb3JlVGVzdFN1
cHBvcnQ6OmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KToKKwogMjAyMS0wOC0wNSAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBmYXN0L2Nh
bnZhcy9jYW52YXMtY3Jhc2guaHRtbCBkb2Vzbid0IHRlc3Qgd2hhdCBpdCBpbnRlbmRzIHRvIG9u
IGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCAyNTBlMzBhNDI2Y2NhZmRhNDI5NDgzODVlOWYyMTUxMDBjMDc4YjM3
Li43NzVjNGJjMjI3NTg5YWI2YWQyMDE2NmJhNWNhMjAxOTNiYzhkZjdjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMyIEBACisyMDIxLTA4LTA0ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBh
cHBsZS5jb20+CisKKyAgICAgICAgRGVkdXBsaWNhdGUgbG9nZ2luZyBjaGFubmVsIGFsZ29yaXRo
bXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODgw
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL0dQVVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzOjppbml0aWFs
aXplR1BVUHJvY2Vzcyk6CisgICAgICAgICogUGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAu
CisgICAgICAgIChXZWJLaXQ6OmxvZ0NoYW5uZWxzKToKKyAgICAgICAgKFdlYktpdDo6Z2V0TG9n
Q2hhbm5lbCk6CisgICAgICAgICogUGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaDoKKyAgICAg
ICAgKiBQbGF0Zm9ybS9Mb2dnaW5nLmNwcDoKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZUxv
Z0NoYW5uZWxzSWZOZWNlc3NhcnkpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpnZXRMb2dD
aGFubmVsKTogRGVsZXRlZC4KKyAgICAgICAgKiBQbGF0Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAg
ICogU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlh
cnlQcm9jZXNzOjppbml0aWFsaXplKToKKyAgICAgICAgKiBTaGFyZWQvV2ViS2l0MkluaXRpYWxp
emUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbml0aWFsaXplV2ViS2l0Mik6CisgICAgICAgICog
U291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKiBXZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMjEtMDgtMDUgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5l
X2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgTG9hZFdlYkFyY2hpdmUuRmFpbE5hdmlnYXRp
b24xIHRlc3QgaXMgYSBmYWxzZSBwb3NpdGl2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwppbmRleCA4Y2Qx
YjZjYmVkM2JkNjZmZGY4N2RmZjRhMWM2NzlmY2E2MjNjYzg0Li5hYTg1ZDY0OGFkMTNmMTkxNzBm
NzAwMGUzMDg4MTY1YTdhNmRiZTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
IEBACisyMDIxLTA4LTA0ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CisKKyAgICAgICAgRGVkdXBsaWNhdGUgbG9nZ2luZyBjaGFubmVsIGFsZ29yaXRobXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODgwOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0TGVnYWN5
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMDgtMDIgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYm1lc3NhZ2luZy9icm9hZGNhc3RjaGFubmVsL2Jsb2JzLmh0bWwgaXMgYSBmbGFreSBm
YWlsdXJlIHNpbmNlIGltcGxlbWVudGluZyBCbG9iQ2hhbm5lbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCmluZGV4IDBkZmY0MzhjMTIwNzU3ZjM2M2UwMGRiODMyNDczNWY1NWUwYTFiOWMuLmZk
ZjVkNjRjMDdiNDEzMzliMmM3NjUyYTYxMjI3YjI2OWMwMzM4OTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMS0wOC0wNCAgTXlsZXMgQy4gTWF4Zmll
bGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIERlZHVwbGljYXRlIGxvZ2dpbmcg
Y2hhbm5lbCBhbGdvcml0aG1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjg4MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE1pc2MvV2ViS2l0TG9nSW5pdGlhbGl6YXRpb24uaDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5oLgorICAgICAgICAqIE1p
c2MvV2ViS2l0TG9nSW5pdGlhbGl6YXRpb24ubW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL01pc2MvV2ViS2l0TG9nZ2luZy5tLgorICAgICAgICAoV2ViS2l0Ojpsb2dDaGFu
bmVscyk6CisgICAgICAgIChSZXBvcnREaXNjYXJkZWREZWxlZ2F0ZUV4Y2VwdGlvbik6CisgICAg
ICAgICogTWlzYy9XZWJLaXRMb2dnaW5nLmg6CisgICAgICAgICogTWlzYy9XZWJLaXRMb2dnaW5n
Lm06CisgICAgICAgIChSZXBvcnREaXNjYXJkZWREZWxlZ2F0ZUV4Y2VwdGlvbik6IERlbGV0ZWQu
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLm1tOgorICAgICAgICAqIFdl
YlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6YXRp
b25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKwogMjAyMS0wNy0yOSAgTXlsZXMgQy4gTWF4
ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3AgYnVpbGRpbmcgV2Vi
R1BVIGFuZCB0aGUgV0hMU0wgY29tcGlsZXIgdG8gZGVjcmVhc2UgYmluYXJ5IHNpemUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhiODFkOGJhNzA3YzExZmZh
M2Y3Y2UyN2Q3YzBkMWZjOGYyODQ4OGMuLmRmMzJjZmRmYjJiNjJlYzk3M2YwMmYwNDlhMGQ2ZDg3
NmVhMWExMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
NjEsNiArNjEsNyBAQAogCQkxQzE4MUM5NjFEMzA4MDBBMDBGNUZBMTYgLyogVGV4dEJyZWFrSXRl
cmF0b3JJbnRlcm5hbElDVUNvY29hLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDMTgxQzk1MUQzMDgwMEEwMEY1RkExNiAvKiBUZXh0QnJlYWtJdGVy
YXRvckludGVybmFsSUNVQ29jb2EuY3BwICovOyB9OwogCQkxQzUwM0JFNjIzQUFFMEFFMDA3MkU2
NkIgLyogTGFuZ3VhZ2VDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDNTAzQkU1MjNBQUUwQUUwMDcyRTY2QiAvKiBMYW5ndWFnZUNvY29hLm1t
ICovOyB9OwogCQkxQ0E4NUNBOTI0MUIwQjI2MDA3MUMyRjUgLyogUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUNBODVDQTgyNDFCMEIyNjAwNzFDMkY1IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
c0NvY29hLmNwcCAqLzsgfTsKKwkJMUNGMThGM0IyNkJCNTc5RTAwNEIxNzIyIC8qIExvZ0NoYW5u
ZWxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
RjE4RjM5MjZCQjU3OUUwMDRCMTcyMiAvKiBMb2dDaGFubmVscy5jcHAgKi87IH07CiAJCTFGQTQ3
QzhBMTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGQTQ3Qzg4MTUyNTAyREEwMDU2OEQxQiAv
KiBXZWJDb3JlVGhyZWFkLmNwcCAqLzsgfTsKIAkJMkNDRDg5MkExNUMwMzkwMjAwMjg1MDgzIC8q
IEdyZWdvcmlhbkRhdGVUaW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJDQ0Q4OTI5MTVDMDM5MDIwMDI4NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGlt
ZS5jcHAgKi87IH07CiAJCTJDREVEMEVGMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNERUQwRUUx
ODExNUMzODAwNERCQTcwIC8qIFJ1bkxvb3BDRi5jcHAgKi87IH07CkBAIC0zNTEsNiArMzUyLDgg
QEAKIAkJMUNDREIxNDkxRTU2NjYyNjAwNkM3M0MwIC8qIFRleHRCcmVha0l0ZXJhdG9yQ0YuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dEJyZWFrSXRlcmF0b3JDRi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0NEQjE0RDFFNTY2ODk4MDA2QzczQzAgLyog
VGV4dEJyZWFrSXRlcmF0b3JJQ1UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGV4dEJyZWFrSXRlcmF0b3JJQ1UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUND
REIxNTExRTU2NkJDNTAwNkM3M0MwIC8qIENGU3RyaW5nU1BJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENGU3RyaW5nU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDRjE4RjM5MjZCQjU3OUUwMDRCMTcyMiAvKiBMb2dDaGFubmVscy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBMb2dDaGFubmVscy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDRjE4RjNBMjZCQjU3OUUwMDRCMTcyMiAvKiBMb2dDaGFubmVscy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBMb2dDaGFubmVscy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRkE0N0M4ODE1
MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUZBNDdDODkxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVRocmVhZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyNEYxQjI0ODYxOUY0MTIyOTZEMUMxOUMgLyogUmFuZG9tRGV2
aWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmRvbURldmljZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTEyLDggKzUxNSw4IEBACiAJCTlCQjkxRjUx
MjY0OEVBNEQwMEE1NjIxNyAvKiBDaGVja2VkUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoZWNrZWRQ
dHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJDNzBGMDQxNzZDMzc5RDAwMTAx
REVDIC8qIEF0b21TdHJpbmdUYWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBBdG9tU3RyaW5nVGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5QkQ4RjQwQTE3NkMyQUQ4MDAwMkQ4NjUgLyogQXRvbVN0cmluZ1RhYmxlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEF0b21TdHJpbmdUYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5
QkYwMDEzNDI2N0M0Q0NGMDBEQ0ZCM0YgLyogQ2hlY2tlZFJlZi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
aGVja2VkUmVmLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRTE1MzM1MjY3MUYw
MEYwMEM3RDA5NiAvKiBXZWFrSGFzaE1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWFrSGFzaE1hcC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QkYwMDEzNDI2N0M0Q0NGMDBEQ0ZCM0Yg
LyogQ2hlY2tlZFJlZi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGVja2VkUmVmLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTlDNjdDNTQyNTg5MzQ4RTI4NUI0OTY5OSAvKiBJbmRleGVkQ29u
dGFpbmVySXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5kZXhl
ZENvbnRhaW5lckl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQjg5
Qjg3MjIxRTAwMEYwMEVCNENFQSAvKiBTREtWYXJpYW50LnhjY29uZmlnICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC54Y2NvbmZpZzsgcGF0aCA9IFNES1ZhcmlhbnQueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUEzMEQ0MTJDMUYwREUwQkEwMEI3MTk1NCAvKiBTb2Z0TGlua2luZy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb2Z0TGlua2luZy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTEyMiw2ICsxMTI1LDggQEAKIAkJCQkwRjYwRjMyRTFERkNC
RDFCMDA0MTZENkMgLyogTG9ja2VkUHJpbnRTdHJlYW0uaCAqLywKIAkJCQlBOEE0NzJDMzE1MUE4
MjVBMDA0MTIzRkYgLyogTG9ja2VyLmggKi8sCiAJCQkJNTMxMUJENTUxRUE3RTE1QTAwNTI1Mjgx
IC8qIExvY2tsZXNzQmFnLmggKi8sCisJCQkJMUNGMThGMzkyNkJCNTc5RTAwNEIxNzIyIC8qIExv
Z0NoYW5uZWxzLmNwcCAqLywKKwkJCQkxQ0YxOEYzQTI2QkI1NzlFMDA0QjE3MjIgLyogTG9nQ2hh
bm5lbHMuaCAqLywKIAkJCQk5M0I1QjQ1MDIyMTcxRUU5MDA0QjdBQTcgLyogTG9nZ2VyLmNwcCAq
LywKIAkJCQkwNzdDRDg2QTFGRDlDRkQyMDA4Mjg1ODcgLyogTG9nZ2VyLmggKi8sCiAJCQkJMDc3
Q0Q4NkIxRkQ5Q0ZEMzAwODI4NTg3IC8qIExvZ2dlckhlbHBlci5oICovLApAQCAtMTczOCw2ICsx
NzQzLDcgQEAKIAkJCQlDMkJDRkM1NTFGNjIxRjNGMDBDOTIyMkMgLyogTGluZUVuZGluZy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRkUxNjQ2QTFCNkZGQzk2MDA0MDBFN0MgLyogTG9jay5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRjYwRjMyRjFERkNCRDFCMDA0MTZENkMgLyogTG9ja2VkUHJp
bnRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUNGMThGM0IyNkJCNTc5RTAwNEIxNzIy
IC8qIExvZ0NoYW5uZWxzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzQjVCNDUxMjIxNzFFRUEw
MDRCN0FBNyAvKiBMb2dnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTM1MzRGMkExRUMwRTEw
RTAwMTQxQjJGIC8qIE1hY2hFeGNlcHRpb25zLmRlZnMgaW4gU291cmNlcyAqLywKIAkJCQk3QTZF
QkEzNDIwNzQ2QzM0MDA0RjlDNDQgLyogTWFjaFNlbmRSaWdodC5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93
dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggMDUxN2RkYmUzYmU3ZWIxNDIxNTljZDExODUxOGZmNTll
MTg1N2Y1OS4uNTFhZjBhYTAxNWM2MTJlYmZiNjliMzljZWI2NjQyMzE0NmE1ZWUxZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQKQEAgLTEyMyw2ICsxMjMsNyBAQCBzZXQoV1RGX1BVQkxJQ19IRUFERVJT
CiAgICAgTG9ja2VkUHJpbnRTdHJlYW0uaAogICAgIExvY2tlci5oCiAgICAgTG9ja2xlc3NCYWcu
aAorICAgIExvZ0NoYW5uZWxzLmgKICAgICBMb2dnZXIuaAogICAgIExvZ2dlckhlbHBlci5oCiAg
ICAgTG9nZ2luZ0FjY3VtdWxhdG9yLmgKQEAgLTQyMiw2ICs0MjMsNyBAQCBzZXQoV1RGX1NPVVJD
RVMKICAgICBMaWtlbHlEZW5zZVVuc2lnbmVkSW50ZWdlclNldC5jcHAKICAgICBMb2NrLmNwcAog
ICAgIExvY2tlZFByaW50U3RyZWFtLmNwcAorICAgIExvZ0NoYW5uZWxzLmNwcAogICAgIExvZ2dl
ci5jcHAKICAgICBNYWluVGhyZWFkLmNwcAogICAgIE1lZGlhVGltZS5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0xvZ0NoYW5uZWxzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0xvZ0NoYW5u
ZWxzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45YTNmZDI0ZTk3ZjQwOGQ4NGJkM2NmMGE3NjAwZjY5OTcwYmY0
YzU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvTG9nQ2hhbm5lbHMuY3BwCkBA
IC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvZ0NoYW5uZWxzLmgiCisKKyNp
bmNsdWRlIDx3dGYvTG9nZ2luZ0FjY3VtdWxhdG9yLmg+CisKK25hbWVzcGFjZSBXVEYgeworCisj
aWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKworYm9vbCBMb2dDaGFu
bmVsczo6aXNMb2dDaGFubmVsRW5hYmxlZChjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgV1RG
TG9nQ2hhbm5lbCogY2hhbm5lbCA9IFdURkxvZ0NoYW5uZWxCeU5hbWUobV9sb2dDaGFubmVscy5k
YXRhKCksIG1fbG9nQ2hhbm5lbHMuc2l6ZSgpLCBuYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgIGlm
ICghY2hhbm5lbCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBjaGFubmVsLT5z
dGF0ZSAhPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZjsKK30KKwordm9pZCBMb2dDaGFubmVsczo6
c2V0TG9nQ2hhbm5lbFRvQWNjdW11bGF0ZShjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgV1RG
TG9nQ2hhbm5lbCogY2hhbm5lbCA9IFdURkxvZ0NoYW5uZWxCeU5hbWUobV9sb2dDaGFubmVscy5k
YXRhKCksIG1fbG9nQ2hhbm5lbHMuc2l6ZSgpLCBuYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgIGlm
ICghY2hhbm5lbCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY2hhbm5lbC0+c3RhdGUgPSBXVEZM
b2dDaGFubmVsU3RhdGU6Ok9uV2l0aEFjY3VtdWxhdGlvbjsKKyAgICBtX2xvZ0NoYW5uZWxzTmVl
ZEluaXRpYWxpemF0aW9uID0gdHJ1ZTsKK30KKwordm9pZCBMb2dDaGFubmVsczo6Y2xlYXJBbGxM
b2dDaGFubmVsc1RvQWNjdW11bGF0ZSgpCit7CisgICAgcmVzZXRBY2N1bXVsYXRlZExvZ3MoKTsK
KyAgICBmb3IgKGF1dG8qIGNoYW5uZWwgOiBtX2xvZ0NoYW5uZWxzKSB7CisgICAgICAgIGlmIChj
aGFubmVsLT5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uV2l0aEFjY3VtdWxhdGlvbikK
KyAgICAgICAgICAgIGNoYW5uZWwtPnN0YXRlID0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmY7Cisg
ICAgfQorCisgICAgbV9sb2dDaGFubmVsc05lZWRJbml0aWFsaXphdGlvbiA9IHRydWU7Cit9CisK
K3ZvaWQgTG9nQ2hhbm5lbHM6OmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiBsb2dDaGFubmVsU3RyaW5nKQoreworICAgIGlmICghbV9sb2dDaGFu
bmVsc05lZWRJbml0aWFsaXphdGlvbiAmJiAhbG9nQ2hhbm5lbFN0cmluZykKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9sb2dDaGFubmVsc05lZWRJbml0aWFsaXphdGlvbiA9IGZhbHNlOworCisg
ICAgU3RyaW5nIGVuYWJsZWRDaGFubmVsc1N0cmluZyA9IGxvZ0NoYW5uZWxTdHJpbmcgPyBsb2dD
aGFubmVsU3RyaW5nLnZhbHVlKCkgOiBsb2dMZXZlbFN0cmluZygpOworICAgIFdURkluaXRpYWxp
emVMb2dDaGFubmVsU3RhdGVzRnJvbVN0cmluZyhtX2xvZ0NoYW5uZWxzLmRhdGEoKSwgbV9sb2dD
aGFubmVscy5zaXplKCksIGVuYWJsZWRDaGFubmVsc1N0cmluZy51dGY4KCkuZGF0YSgpKTsKK30K
KworV1RGTG9nQ2hhbm5lbCogTG9nQ2hhbm5lbHM6OmdldExvZ0NoYW5uZWwoY29uc3QgU3RyaW5n
JiBuYW1lKQoreworICAgIHJldHVybiBXVEZMb2dDaGFubmVsQnlOYW1lKG1fbG9nQ2hhbm5lbHMu
ZGF0YSgpLCBtX2xvZ0NoYW5uZWxzLnNpemUoKSwgbmFtZS51dGY4KCkuZGF0YSgpKTsKK30KKwor
I2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisKK30gLy8g
bmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9nQ2hhbm5lbHMuaCBi
L1NvdXJjZS9XVEYvd3RmL0xvZ0NoYW5uZWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjM2NGVhZTg1Yjk1NDU3
ZmYyNmY5NTMxNDcxOWIxNTAxZmRhZWMyOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0xvZ0NoYW5uZWxzLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPG9wdGlv
bmFsPgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdURiB7CisK
KyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAorCitjbGFzcyBMb2dD
aGFubmVscyB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TG9nQ2hhbm5lbHMoKSA9IGRlZmF1bHQ7
CisgICAgdmlydHVhbCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKSA9IDA7CisKKyAgICBib29sIGlz
TG9nQ2hhbm5lbEVuYWJsZWQoY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgdm9pZCBzZXRMb2dDaGFubmVsVG9BY2N1bXVsYXRlKGNvbnN0IFN0cmluZyYgbmFtZSk7
CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgY2xlYXJBbGxMb2dDaGFubmVsc1RvQWNjdW11
bGF0ZSgpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGluaXRpYWxpemVMb2dDaGFubmVs
c0lmTmVjZXNzYXJ5KHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiA9IHN0ZDo6bnVsbG9wdCk7CisgICAg
V1RGX0VYUE9SVF9QUklWQVRFIFdURkxvZ0NoYW5uZWwqIGdldExvZ0NoYW5uZWwoY29uc3QgU3Ry
aW5nJiBuYW1lKTsKKworcHJvdGVjdGVkOgorICAgIFZlY3RvcjxXVEZMb2dDaGFubmVsKj4gbV9s
b2dDaGFubmVsczsKKyAgICBib29sIG1fbG9nQ2hhbm5lbHNOZWVkSW5pdGlhbGl6YXRpb24geyB0
cnVlIH07Cit9OworCisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDI2NjE0YTdkOTc1
MzIwZGI2Yjg1ZDQzZDM5YzlhZDMyNTNiNTIzY2YuLjA3NzI1YTQyODM5M2IyZGZhZjI3ZGU1MjI4
MzNkYmEzOGY3ODA1MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNzU1LDYgKzE3NTUsNyBAQCBwbGF0
Zm9ybS9MZW5ndGhCb3guY3BwCiBwbGF0Zm9ybS9MZW5ndGhQb2ludC5jcHAKIHBsYXRmb3JtL0xl
bmd0aFNpemUuY3BwCiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAorcGxhdGZvcm0vTG9n
SW5pdGlhbGl6YXRpb24uY3BwCiBwbGF0Zm9ybS9Mb2dnaW5nLmNwcAogcGxhdGZvcm0vTG93UG93
ZXJNb2RlTm90aWZpZXIuY3BwCiBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdi
ZTQ4NzYzYTY0NzkzYjA4ZTRmNzZmZTlkMDY0NmMzNTA4OTgwNTAuLmI2MzlhNWI4ZjEyNWQ4OGQ5
NDY3ZmQyMjc4ZWM4MTg5MGQ1Njk0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY5NzcsNiArNjk3Nyw3IEBACiAJCTFDRThE
MTJCMjYxODYxNjQwMEZDM0FFRiAvKiBEaXNwbGF5TGlzdEl0ZXJhdG9yLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERpc3BsYXlMaXN0SXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQ0U4RDEyQzI2MTg2MTY0MDBGQzNBRUYgLyogRGlzcGxheUxpc3RJdGVyYXRvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEaXNwbGF5TGlzdEl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFDRjBCRkQ0MjI5ODcwNjgwMEVEMjA3NCAvKiBUZXh0U2l6ZUFkanVzdG1l
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dFNpemVBZGp1c3RtZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNGMThGM0MyNkJCNUFGMjAwNEIxNzIyIC8qIExvZ0lu
aXRpYWxpemF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvZ0luaXRpYWxpemF0aW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNE
IC8qIGxpYm9iamMuZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgbmFtZSA9IGxpYm9iamMuZHlsaWI7
IHBhdGggPSAvdXNyL2xpYi9saWJvYmpjLmR5bGliOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4i
OyB9OwogCQkxRDAwMjZBMjIzNzRENjIzMDBDQTZDREYgLyogSlNQaWN0dXJlSW5QaWN0dXJlV2lu
ZG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUGljdHVyZUluUGljdHVy
ZVdpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDAwMjZBMzIzNzRENjI0
MDBDQTZDREYgLyogSlNQaWN0dXJlSW5QaWN0dXJlV2luZG93LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGljdHVyZUluUGljdHVyZVdpbmRvdy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzU4Nyw2ICsyNzU4OCw3IEBACiAJCQkJOTM1MjA3
QkQwOUJENDEwQTAwRjIwMzhEIC8qIExvY2FsaXplZFN0cmluZ3MuaCAqLywKIAkJCQlBODIzOURG
RTA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5jcHAgKi8sCiAJCQkJQTgyMzlERkYwOUIzQ0Y4
QTAwQjYwNjQxIC8qIExvZ2dpbmcuaCAqLywKKwkJCQkxQ0YxOEYzQzI2QkI1QUYyMDA0QjE3MjIg
LyogTG9nSW5pdGlhbGl6YXRpb24uY3BwICovLAogCQkJCTBGRENEN0YyMUQ0N0U2NTUwMDlGMDhC
QyAvKiBMb2dJbml0aWFsaXphdGlvbi5oICovLAogCQkJCTQ2RUZBRjBGMUU1RkI5RTEwMEU3RjM0
QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllci5jcHAgKi8sCiAJCQkJNDZFRkFGMTAxRTVGQjlFMTAw
RTdGMzRCIC8qIExvd1Bvd2VyTW9kZU5vdGlmaWVyLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhMb2dnZXIuY3BwCmluZGV4IDdiZjc5MWI3NjA3YjhiMDdjODVlOTJhODQxNTVh
NzkyOTIxMDJkOTUuLjMwMzY2NjYzN2IyMGY5MDBjZTk3ZTU5MTFhZmEyNTcyZmFjMjgyYWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCkBAIC0zNiw2ICszNiw3
IEBACiAjZW5kaWYKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCisjaW5jbHVkZSAiTG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5n
LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVBZ2VudC5jcHAK
aW5kZXggNmUyZmQ2ZmEyMWQ4MzE1MjU2M2QwNDNiMzBjZTE1NWRlZWFhMmJhMS4uOTE0NjYzZGMz
ZTk4NGY5NDkwNTA4ZTE5NDY2ZGQxZmFmM2M5MjVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmNwcApAQCAt
MzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkNvbW1hbmRMaW5lQVBJSG9zdC5oIgogI2luY2x1ZGUg
Ikluc3BlY3RvckRPTUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgor
I2luY2x1ZGUgIkxvZ0luaXRpYWxpemF0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2lu
Y2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBm
Nzc4MDc3YTI5MDUzOWMxYTE2YjE3MjFiYjA4MmJhNzk5NTBlZTFmLi5hM2I5ZmJkMzg5YjhmYzgy
ZGNiYmFlYWNiMzE4ZDk1YzZlNGIzNjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTgzLDYgKzgz
LDcgQEAKICNpbmNsdWRlICJMZWdhY3lTY2hlbWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIkxpYldl
YlJUQ1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKKyNpbmNsdWRlICJM
b2dJbml0aWFsaXphdGlvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJMb3dQ
b3dlck1vZGVOb3RpZmllci5oIgogI2luY2x1ZGUgIk1lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjEzOWNlYzZjYzU0NjBkNDQ1OTI3ZmIwYzZlMTk0Yzc0YWY3OWZhNzgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5jcHAKQEAg
LTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDIxIEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMb2dJbml0aWFsaXphdGlv
bi5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPHd0Zi9Mb2dnaW5nQWNjdW11
bGF0b3IuaD4KKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyNpbmNsdWRlIDxub3RpZnkuaD4KKyNpbmNsdWRlIDx3dGYvQmxvY2tQ
dHIuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiAhTE9HX0RJU0FCTEVE
IHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAorCitjbGFzcyBMb2dDaGFubmVscyBmaW5hbCA6IHB1
YmxpYyBXVEY6OkxvZ0NoYW5uZWxzIHsKK3B1YmxpYzoKKyAgICBMb2dDaGFubmVscygpCisgICAg
eworICAgICAgICBtX2xvZ0NoYW5uZWxzID0geworICAgICAgICAgICAgV0VCQ09SRV9MT0dfQ0hB
Tk5FTFMoTE9HX0NIQU5ORUxfQUREUkVTUykKKyAgICAgICAgfTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgU3RyaW5nIGxvZ0xldmVsU3RyaW5nKCkgZmluYWwKKyAgICB7CisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpsb2dMZXZlbFN0cmluZygpOworICAgIH0KK307CisKK1dURjo6TG9nQ2hhbm5l
bHMmIGxvZ0NoYW5uZWxzKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TG9nQ2hhbm5l
bHM+IGxvZ0NoYW5uZWxzOworICAgIHJldHVybiBsb2dDaGFubmVscy5nZXQoKTsKK30KKworV1RG
TG9nQ2hhbm5lbCogZ2V0TG9nQ2hhbm5lbChjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgcmV0
dXJuIGxvZ0NoYW5uZWxzKCkuZ2V0TG9nQ2hhbm5lbChuYW1lKTsKK30KKworI2Vsc2UKKworV1RG
TG9nQ2hhbm5lbCogZ2V0TG9nQ2hhbm5lbChjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xP
R19ESVNBQkxFRAorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaAppbmRleCAyMzhjMjVhMjExZmNjMWUxZGFmMDdiNTgx
NTkxOTM5ODMyMTIxOTYwLi41MjUzYzk4ZTM2ZTMxM2E2NGI4NmU3OWQ1MDJlZjIzYmZlMGYzYjk1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDEzLCAyMDE1LCAy
MDE2IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAtMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yNSwyMCArMjUsMTggQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5j
bHVkZSA8d3RmL0xvZ0NoYW5uZWxzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAKLVdFQkNPUkVfRVhQT1JUIFN0cmluZyBsb2dMZXZlbFN0cmluZygpOwot
Ym9vbCBpc0xvZ0NoYW5uZWxFbmFibGVkKGNvbnN0IFN0cmluZyYgbmFtZSk7Ci1XRUJDT1JFX0VY
UE9SVCB2b2lkIHNldExvZ0NoYW5uZWxUb0FjY3VtdWxhdGUoY29uc3QgU3RyaW5nJiBuYW1lKTsK
LVdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJBbGxMb2dDaGFubmVsc1RvQWNjdW11bGF0ZSgpOwot
V0VCQ09SRV9FWFBPUlQgdm9pZCBpbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeShzdGQ6
Om9wdGlvbmFsPFN0cmluZz4gPSBzdGQ6Om51bGxvcHQpOworV0VCQ09SRV9FWFBPUlQgV1RGOjpM
b2dDaGFubmVscyYgbG9nQ2hhbm5lbHMoKTsKK1N0cmluZyBsb2dMZXZlbFN0cmluZygpOwogCiAj
ZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAorV0VCQ09S
RV9FWFBPUlQgV1RGTG9nQ2hhbm5lbCogZ2V0TG9nQ2hhbm5lbChjb25zdCBTdHJpbmcmIG5hbWUp
OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Mb2dnaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuY3Bw
CmluZGV4IDYxZmU4ZDM3NTIxNTgzZDJkNDY1MTkzODA1MDI4NWYzYzQzNTc3NzAuLjJjM2EzOTU2
ZThlZDNjYmQwNTMzMzZlMjMxNWYwZDA5MmEwMDQ2MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xvZ2dpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Z2dpbmcuY3BwCkBAIC0yNSwxNyArMjUsNiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIkxvZ0luaXRpYWxpemF0aW9uLmgiCi0KLSNpbmNs
dWRlIDx3dGYvTG9nZ2luZ0FjY3VtdWxhdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KLQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1ZGUgPG5vdGlmeS5oPgot
I2luY2x1ZGUgPHd0Zi9CbG9ja1B0ci5oPgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNDQsNjcgKzMzLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2RlZmluZSBERUZJTkVf
V0VCQ09SRV9MT0dfQ0hBTk5FTChuYW1lKSBERUZJTkVfTE9HX0NIQU5ORUwobmFtZSwgTE9HX0NI
QU5ORUxfV0VCS0lUX1NVQlNZU1RFTSkKIFdFQkNPUkVfTE9HX0NIQU5ORUxTKERFRklORV9XRUJD
T1JFX0xPR19DSEFOTkVMKQogCi1zdGF0aWMgV1RGTG9nQ2hhbm5lbCogbG9nQ2hhbm5lbHNbXSA9
IHsKLSAgICBXRUJDT1JFX0xPR19DSEFOTkVMUyhMT0dfQ0hBTk5FTF9BRERSRVNTKQotfTsKLQot
c3RhdGljIGNvbnN0IHNpemVfdCBsb2dDaGFubmVsQ291bnQgPSBXVEZfQVJSQVlfTEVOR1RIKGxv
Z0NoYW5uZWxzKTsKLQotYm9vbCBpc0xvZ0NoYW5uZWxFbmFibGVkKGNvbnN0IFN0cmluZyYgbmFt
ZSkKLXsKLSAgICBXVEZMb2dDaGFubmVsKiBjaGFubmVsID0gV1RGTG9nQ2hhbm5lbEJ5TmFtZShs
b2dDaGFubmVscywgbG9nQ2hhbm5lbENvdW50LCBuYW1lLnV0ZjgoKS5kYXRhKCkpOwotICAgIGlm
ICghY2hhbm5lbCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBjaGFubmVsLT5z
dGF0ZSAhPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZjsKLX0KLQotc3RhdGljIGJvb2wgbG9nQ2hh
bm5lbHNOZWVkSW5pdGlhbGl6YXRpb24gPSB0cnVlOwotCi12b2lkIHNldExvZ0NoYW5uZWxUb0Fj
Y3VtdWxhdGUoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIFdURkxvZ0NoYW5uZWwqIGNoYW5u
ZWwgPSBXVEZMb2dDaGFubmVsQnlOYW1lKGxvZ0NoYW5uZWxzLCBsb2dDaGFubmVsQ291bnQsIG5h
bWUudXRmOCgpLmRhdGEoKSk7Ci0gICAgaWYgKCFjaGFubmVsKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBjaGFubmVsLT5zdGF0ZSA9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T25XaXRoQWNjdW11bGF0
aW9uOwotICAgIGxvZ0NoYW5uZWxzTmVlZEluaXRpYWxpemF0aW9uID0gdHJ1ZTsKLX0KLQotdm9p
ZCBjbGVhckFsbExvZ0NoYW5uZWxzVG9BY2N1bXVsYXRlKCkKLXsKLSAgICByZXNldEFjY3VtdWxh
dGVkTG9ncygpOwotICAgIGZvciAoYXV0byogY2hhbm5lbCA6IGxvZ0NoYW5uZWxzKSB7Ci0gICAg
ICAgIGlmIChjaGFubmVsLT5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uV2l0aEFjY3Vt
dWxhdGlvbikKLSAgICAgICAgICAgIGNoYW5uZWwtPnN0YXRlID0gV1RGTG9nQ2hhbm5lbFN0YXRl
OjpPZmY7Ci0gICAgfQotCi0gICAgbG9nQ2hhbm5lbHNOZWVkSW5pdGlhbGl6YXRpb24gPSB0cnVl
OwotfQotCi12b2lkIGluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBsb2dDaGFubmVsU3RyaW5nKQotewotICAgIGlmICghbG9nQ2hhbm5lbHNOZWVk
SW5pdGlhbGl6YXRpb24gJiYgIWxvZ0NoYW5uZWxTdHJpbmcpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGxvZ0NoYW5uZWxzTmVlZEluaXRpYWxpemF0aW9uID0gZmFsc2U7Ci0KLSAgICBTdHJpbmcg
ZW5hYmxlZENoYW5uZWxzU3RyaW5nID0gbG9nQ2hhbm5lbFN0cmluZyA/IGxvZ0NoYW5uZWxTdHJp
bmcudmFsdWUoKSA6IGxvZ0xldmVsU3RyaW5nKCk7Ci0gICAgV1RGSW5pdGlhbGl6ZUxvZ0NoYW5u
ZWxTdGF0ZXNGcm9tU3RyaW5nKGxvZ0NoYW5uZWxzLCBsb2dDaGFubmVsQ291bnQsIGVuYWJsZWRD
aGFubmVsc1N0cmluZy51dGY4KCkuZGF0YSgpKTsKLS8vICAgIExvZ0V2ZW50TG9vcC5zdGF0ZSA9
IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T247Ci19Ci0KLVdURkxvZ0NoYW5uZWwqIGdldExvZ0NoYW5u
ZWwoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIHJldHVybiBXVEZMb2dDaGFubmVsQnlOYW1l
KGxvZ0NoYW5uZWxzLCBsb2dDaGFubmVsQ291bnQsIG5hbWUudXRmOCgpLmRhdGEoKSk7Ci19Ci0K
LSNlbHNlCi0KLVdURkxvZ0NoYW5uZWwqIGdldExvZ0NoYW5uZWwoY29uc3QgU3RyaW5nJikKLXsK
LSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQogI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xvZ2dpbmcuaAppbmRleCA4MjM1ODQzZmE1MTI5NTVjN2NlYjVlZmRmY2RmOTNkZTRhNTll
MjMyLi43NjRlZWY3YmIyZTFmNDc3ZmM0OGFlM2FhN2RhODgzYzZlOWNjMTQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9nZ2luZy5oCkBAIC0xMzMsNiArMTMzLDQgQEAgV0VCQ09SRV9MT0dfQ0hBTk5F
TFMoREVDTEFSRV9MT0dfQ0hBTk5FTCkKIAogI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECiAKLVdFQkNPUkVfRVhQT1JUIFdURkxvZ0NoYW5uZWwqIGdldExv
Z0NoYW5uZWwoY29uc3QgU3RyaW5nJiBuYW1lKTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCmlu
ZGV4IDhkZGM0MGU1NzhmNWIxNmI2ZTBkZmJkNTk0NDJlZjdjYjA0MDBmNDQuLjQzNDY1Yzk0OTMz
MTBlODM1OWI0NzM0YWVhYjU4NmJmNDExNTFhNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNs
dWRlICJKU1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuaCIKICNpbmNsdWRlICJKU1dvcmtlckdsb2Jh
bFNjb3BlLmgiCiAjaW5jbHVkZSAiTG9nSW5pdGlhbGl6YXRpb24uaCIKKyNpbmNsdWRlICJMb2dn
aW5nLmgiCiAjaW5jbHVkZSAiTW9ja0dhbWVwYWRQcm92aWRlci5oIgogI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJTV0NvbnRleHRNYW5hZ2VyLmgiCkBAIC0xMjIsNyArMTIzLDcgQEAgdm9p
ZCBjbGVhcldoZWVsRXZlbnRUZXN0TW9uaXRvcihXZWJDb3JlOjpGcmFtZSYgZnJhbWUpCiB2b2lk
IHNldExvZ0NoYW5uZWxUb0FjY3VtdWxhdGUoY29uc3QgU3RyaW5nJiBuYW1lKQogewogI2lmICFM
T0dfRElTQUJMRUQKLSAgICBXZWJDb3JlOjpzZXRMb2dDaGFubmVsVG9BY2N1bXVsYXRlKG5hbWUp
OworICAgIGxvZ0NoYW5uZWxzKCkuc2V0TG9nQ2hhbm5lbFRvQWNjdW11bGF0ZShuYW1lKTsKICNl
bHNlCiAgICAgVU5VU0VEX1BBUkFNKG5hbWUpOwogI2VuZGlmCkBAIC0xMzEsMTQgKzEzMiwxNCBA
QCB2b2lkIHNldExvZ0NoYW5uZWxUb0FjY3VtdWxhdGUoY29uc3QgU3RyaW5nJiBuYW1lKQogdm9p
ZCBjbGVhckFsbExvZ0NoYW5uZWxzVG9BY2N1bXVsYXRlKCkKIHsKICNpZiAhTE9HX0RJU0FCTEVE
Ci0gICAgV2ViQ29yZTo6Y2xlYXJBbGxMb2dDaGFubmVsc1RvQWNjdW11bGF0ZSgpOworICAgIGxv
Z0NoYW5uZWxzKCkuY2xlYXJBbGxMb2dDaGFubmVsc1RvQWNjdW11bGF0ZSgpOwogI2VuZGlmCiB9
CiAKIHZvaWQgaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKQogewogI2lmICFMT0df
RElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgV2ViQ29yZTo6aW5pdGlhbGl6
ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKKyAgICBsb2dDaGFubmVscygpLmluaXRpYWxpemVM
b2dDaGFubmVsc0lmTmVjZXNzYXJ5KCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDdl
ZGQxNDg3OTlhOWViOWJmMjI1Y2E2ODdkYjVlMWM1MWM4NDAxMzAuLmFjNzMyNWI0Y2UyYzQyM2Y2
NjhjODRlNDE1NWM3NmM3NTA5ZTlhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTY0LDYgKzY0LDcgQEAK
ICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJFcnJvcnMu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0xv
Z0luaXRpYWxpemF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTm93UGxheWluZ01hbmFnZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9j
ZXNzLmNwcAppbmRleCBiMmJiM2MwMDcwZThmNTZhOTc4NTE2OTg1ZDY4NDRkNDFiMWIxZjMwLi5l
ZDdmMjllNmUwODA2Mjc4NTI4OWU0MTAwM2U2ODEzZmY5OGE1YTljIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCkBAIC0yNDMsOCArMjQzLDggQEAgdm9pZCBHUFVQcm9j
ZXNzOjppbml0aWFsaXplR1BVUHJvY2VzcyhHUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYg
cGFyYW1ldGVycykKICNlbmRpZgogCiAjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0df
RElTQUJMRUQKLSAgICBXZWJDb3JlOjppbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeShw
YXJhbWV0ZXJzLndlYkNvcmVMb2dnaW5nQ2hhbm5lbHMpOwotICAgIFdlYktpdDo6aW5pdGlhbGl6
ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkocGFyYW1ldGVycy53ZWJLaXRMb2dnaW5nQ2hhbm5lbHMp
OworICAgIFdlYkNvcmU6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNl
c3NhcnkocGFyYW1ldGVycy53ZWJDb3JlTG9nZ2luZ0NoYW5uZWxzKTsKKyAgICBXZWJLaXQ6Omxv
Z0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkocGFyYW1ldGVycy53
ZWJLaXRMb2dnaW5nQ2hhbm5lbHMpOwogI2VuZGlmCiAKICAgICAvLyBNYXRjaCB0aGUgUW9TIG9m
IHRoZSBVSVByb2Nlc3Mgc2luY2UgdGhlIEdQVSBwcm9jZXNzIGlzIGRvaW5nIHJlbmRlcmluZyBv
biBpdHMgYmVoYWxmLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dJbml0
aWFsaXphdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9u
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xYzYzYTU0YjBjMWRhNTU4ODQxODA4YWFmNzNjMDcxNmMwMjY1MGVk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dJbml0aWFsaXph
dGlvbi5jcHAKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJMb2dJbml0aWFsaXphdGlvbi5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5o
IgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
KyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAorCitjbGFzcyBMb2dD
aGFubmVscyBmaW5hbCA6IHB1YmxpYyBXVEY6OkxvZ0NoYW5uZWxzIHsKK3B1YmxpYzoKKyAgICBM
b2dDaGFubmVscygpCisgICAgeworICAgICAgICBtX2xvZ0NoYW5uZWxzID0geworICAgICAgICAg
ICAgV0VCS0lUMl9MT0dfQ0hBTk5FTFMoTE9HX0NIQU5ORUxfQUREUkVTUykKKyAgICAgICAgfTsK
KyAgICB9CisKK3ByaXZhdGU6CisgICAgU3RyaW5nIGxvZ0xldmVsU3RyaW5nKCkgZmluYWwKKyAg
ICB7CisgICAgICAgIHJldHVybiBXZWJLaXQ6OmxvZ0xldmVsU3RyaW5nKCk7CisgICAgfQorfTsK
KworV1RGOjpMb2dDaGFubmVscyYgbG9nQ2hhbm5lbHMoKQoreworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxMb2dDaGFubmVscz4gbG9nQ2hhbm5lbHM7CisgICAgcmV0dXJuIGxvZ0NoYW5uZWxz
LmdldCgpOworfQorCitXVEZMb2dDaGFubmVsKiBnZXRMb2dDaGFubmVsKGNvbnN0IFN0cmluZyYg
bmFtZSkKK3sKKyAgICByZXR1cm4gbG9nQ2hhbm5lbHMoKS5nZXRMb2dDaGFubmVsKG5hbWUpOwor
fQorCisjZWxzZQorCitXVEZMb2dDaGFubmVsKiBnZXRMb2dDaGFubmVsKGNvbnN0IFN0cmluZyYg
bmFtZSkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworI2VuZGlmIC8vICFMT0dfRElTQUJM
RUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5oIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5oCmluZGV4IDI1NmE0NTk3MzE4
ZDExYWRlZGUwNzViMWUxMjE1ZmQ2M2NmZWFmODEuLmY4NzZiZTdkYjNkYWY3NmYyMjA0YjNkNGM3
ODQyMjhhYjJiYTQ3OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nSW5p
dGlhbGl6YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ0luaXRpYWxpemF0
aW9uLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEzLCAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yNSwxNSArMjUsMTggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRl
IDx3dGYvTG9nQ2hhbm5lbHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAot
I2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0KIG5hbWVzcGFjZSBX
ZWJLaXQgewogCi12b2lkIGluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiA9IHN0ZDo6bnVsbG9wdCk7Ci1TdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKTsK
KyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCi19IC8vIG5hbWVz
cGFjZSBXZWJLaXQKK1dURjo6TG9nQ2hhbm5lbHMmIGxvZ0NoYW5uZWxzKCk7CitTdHJpbmcgbG9n
TGV2ZWxTdHJpbmcoKTsKIAogI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECisKK1dURkxvZ0NoYW5uZWwqIGdldExvZ0NoYW5uZWwoY29uc3QgU3RyaW5nJiBu
YW1lKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0xvZ2dpbmcuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmNw
cAppbmRleCA4NTFmMjU2MzNlY2NhMDgyNWIwMmI0ZjhjNDc0ZTdiYjFiYzZlZDU5Li41YTgyM2Rl
M2ZhNTllM2NjNjVjZmM5YjgyYzI1MGNjNDE3MTQwYWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0xvZ2dpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9n
Z2luZy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ft
c3VuZyBFbGVjdHJvbmljcwogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjYsNDAgKzI2LDEwIEBACiAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiTG9n
SW5pdGlhbGl6YXRpb24uaCIKLQotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lm
ICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKICNkZWZpbmUgREVGSU5F
X1dFQktJVDJfTE9HX0NIQU5ORUwobmFtZSkgREVGSU5FX0xPR19DSEFOTkVMKG5hbWUsIExPR19D
SEFOTkVMX1dFQktJVF9TVUJTWVNURU0pCiBXRUJLSVQyX0xPR19DSEFOTkVMUyhERUZJTkVfV0VC
S0lUMl9MT0dfQ0hBTk5FTCkKIAotc3RhdGljIFdURkxvZ0NoYW5uZWwqIGxvZ0NoYW5uZWxzW10g
PSB7Ci0gICAgV0VCS0lUMl9MT0dfQ0hBTk5FTFMoTE9HX0NIQU5ORUxfQUREUkVTUykKLX07Ci0K
LW5hbWVzcGFjZSBXZWJLaXQgewotCi1zdGF0aWMgY29uc3Qgc2l6ZV90IGxvZ0NoYW5uZWxDb3Vu
dCA9IFdURl9BUlJBWV9MRU5HVEgobG9nQ2hhbm5lbHMpOwotc3RhdGljIGJvb2wgbG9nQ2hhbm5l
bHNOZWVkSW5pdGlhbGl6YXRpb24gPSB0cnVlOwotCi12b2lkIGluaXRpYWxpemVMb2dDaGFubmVs
c0lmTmVjZXNzYXJ5KHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBsb2dDaGFubmVsU3RyaW5nKQotewot
ICAgIGlmICghbG9nQ2hhbm5lbHNOZWVkSW5pdGlhbGl6YXRpb24gJiYgIWxvZ0NoYW5uZWxTdHJp
bmcpCi0gICAgICAgIHJldHVybjsKLQotICAgIGxvZ0NoYW5uZWxzTmVlZEluaXRpYWxpemF0aW9u
ID0gZmFsc2U7Ci0KLSAgICBTdHJpbmcgZW5hYmxlZENoYW5uZWxzU3RyaW5nID0gbG9nQ2hhbm5l
bFN0cmluZyA/IGxvZ0NoYW5uZWxTdHJpbmcudmFsdWUoKSA6IGxvZ0xldmVsU3RyaW5nKCk7Ci0g
ICAgV1RGSW5pdGlhbGl6ZUxvZ0NoYW5uZWxTdGF0ZXNGcm9tU3RyaW5nKGxvZ0NoYW5uZWxzLCBs
b2dDaGFubmVsQ291bnQsIGVuYWJsZWRDaGFubmVsc1N0cmluZy51dGY4KCkuZGF0YSgpKTsKLX0K
LQotV1RGTG9nQ2hhbm5lbCogZ2V0TG9nQ2hhbm5lbChjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0g
ICAgcmV0dXJuIFdURkxvZ0NoYW5uZWxCeU5hbWUobG9nQ2hhbm5lbHMsIGxvZ0NoYW5uZWxDb3Vu
dCwgbmFtZS51dGY4KCkuZGF0YSgpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KICNl
bmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0xvZ2dpbmcuaAppbmRleCA5ODBhMjU5MTFkMGI4OGQ1NGJjNmZhZDdkMGIyODc2YmNjNzky
ZDhiLi5kNGQzMjY1Y2MwN2MzMTc3YmRhNTAyYTlkMjQ4OTQ1YTM2ODRjNjJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0xvZ2dpbmcuaApAQCAtMTEyLDEzICsxMTIsOCBAQCBXRUJLSVQyX0xPR19DSEFOTkVM
UyhERUNMQVJFX0xPR19DSEFOTkVMKQogCiAjdW5kZWYgREVDTEFSRV9MT0dfQ0hBTk5FTAogCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLVdURkxvZ0NoYW5uZWwqIGdldExvZ0NoYW5uZWwoY29uc3QgU3Ry
aW5nJik7Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAj
ZW5kaWYKIAogI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKaW5kZXggOTRmOTRl
OTI2YzNlOTEzNjEwY2VkZWIyYjdlZDRjYTFhMzk1ZTRhMC4uMDk1Y2Y0NTkxNDYyMWMxODgzMmJh
YTk1NjY3NWYzYjBkODFkNzJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4
aWxpYXJ5UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJv
Y2Vzcy5jcHAKQEAgLTgyLDggKzgyLDggQEAgdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFs
aXplKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMKICAgICBp
bml0aWFsaXplU2FuZGJveChwYXJhbWV0ZXJzLCBzYW5kYm94UGFyYW1ldGVycyk7CiAKICNpZiAh
TE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAotICAgIFdlYkNvcmU6OmluaXRp
YWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCk7Ci0gICAgV2ViS2l0Ojppbml0aWFsaXplTG9n
Q2hhbm5lbHNJZk5lY2Vzc2FyeSgpOworICAgIFdlYkNvcmU6OmxvZ0NoYW5uZWxzKCkuaW5pdGlh
bGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKKyAgICBXZWJLaXQ6OmxvZ0NoYW5uZWxzKCku
aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKICNlbmRpZiAvLyAhTE9HX0RJU0FC
TEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCiAgICAgaW5pdGlhbGl6ZVByb2Nlc3NOYW1l
KHBhcmFtZXRlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2l0Mklu
aXRpYWxpemUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2l0MkluaXRpYWxpemUuY3Bw
CmluZGV4IDUyNjY4Zjk1M2E0YjM4NmM5YjdjYzM2ODM5OWJmOTQzMWRkMDIzNjcuLjIzM2IzMGYy
MmFkNjQxNmEwYTNlMDQ3YmRkOWVlMzlmMzUxYjczZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAKQEAgLTQ3LDggKzQ3LDggQEAgdm9pZCBJbml0aWFsaXpl
V2ViS2l0MigpCiAgICAgV1RGOjpSZWZDb3VudGVkQmFzZTo6ZW5hYmxlVGhyZWFkaW5nQ2hlY2tz
R2xvYmFsbHkoKTsKIAogI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
Ci0gICAgV2ViQ29yZTo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKLSAgICBX
ZWJLaXQ6OmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCk7CisgICAgV2ViQ29yZTo6
bG9nQ2hhbm5lbHMoKS5pbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOworICAgIFdl
YktpdDo6bG9nQ2hhbm5lbHMoKS5pbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwog
I2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKICAgICBX
ZWJDb3JlOjpwb3B1bGF0ZUpJVE9wZXJhdGlvbnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGYzMDMxZTc5
MmJlYjQ1M2YxNjdkODgxM2U4OGFiZWNiYzJiNWNiN2IuLmI2OTI4MjFjYjdlOTAyYzEwNGJhMDM4
YTUyZDQzODJkOWMzY2E1ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMTM1LDYgKzEzNSw3IEBAIE5ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLmNwcAogTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5LmNwcAogCiAvLyBUT0RPOiBX
ZSBzaG91bGQgdW5pZnkgdGhlc2UgZmlsZXMgb25jZSBHVEsncyBQbHVnaW5Qcm9jZXNzMiBpcyBy
ZW1vdmVkLgorUGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uY3BwIEBuby11bmlmeQogUGxhdGZv
cm0vTG9nZ2luZy5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9Nb2R1bGUuY3BwIEBuby11bmlmeQog
UGxhdGZvcm0vU2hhcmVkTWVtb3J5LmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDhkNDFlNDUyM2Y0N2Y5MjEwNTI1OWM2MzA2MDUxNWVm
NGZjOThjMzMuLmU2YjJiMjlkODlkNTIyMTY1MzU3MTFhMjdiOWMwMGMwOTJkMmY5NmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjgsNiArNjgsNyBAQAog
I2luY2x1ZGUgIkZyYW1lSW5mb0RhdGEuaCIKICNpbmNsdWRlICJMZWdhY3lHbG9iYWxTZXR0aW5n
cy5oIgogI2luY2x1ZGUgIkxvYWRQYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiTG9nSW5pdGlhbGl6
YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViR2VzdHVy
ZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDJlYWI2YmNiODliOGI3OWE3
ZGNmM2NkY2Q0OWMwNmQ1YWNkMjEyYjMuLjgzNmIwNDAzZGE1N2IzNzQxZDExYjI2ZWE4M2MzNzVk
ZTVmOThmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
QEAgLTI1MSw4ICsyNTEsOCBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2woQVBJOjpQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgcmVzb2x2ZVBhdGhz
Rm9yU2FuZGJveEV4dGVuc2lvbnMoKTsKIAogI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECi0gICAgV2ViQ29yZTo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nh
cnkoKTsKLSAgICBXZWJLaXQ6OmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCk7Cisg
ICAgV2ViQ29yZTo6bG9nQ2hhbm5lbHMoKS5pbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2Fy
eSgpOworICAgIFdlYktpdDo6bG9nQ2hhbm5lbHMoKS5pbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5l
Y2Vzc2FyeSgpOwogI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAzYzU4NmNiMDYzNjA3MTdiNGEyNWRhMDQ1MmEwNTliODc3
ODkyYzQ1Li42YzFkYzc1ZGExZmRlNzg5MGE5MTVlM2Q5MGRmZDM5OWM3MzMzODE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMsNyAr
Myw3IEBACiAJYXJjaGl2ZVZlcnNpb24gPSAxOwogCWNsYXNzZXMgPSB7CiAJfTsKLQlvYmplY3RW
ZXJzaW9uID0gNTI7CisJb2JqZWN0VmVyc2lvbiA9IDU0OwogCW9iamVjdHMgPSB7CiAKIC8qIEJl
Z2luIFBCWEFnZ3JlZ2F0ZVRhcmdldCBzZWN0aW9uICovCkBAIC00NDEsNiArNDQxLDcgQEAKIAkJ
MUNBOEI5NDYxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBOEI5NDQx
MjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5oICovOyB9Owog
CQkxQ0JCRTRBMDE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNC
QkU0OUUxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKIAkJMUNCQkU0QTExOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
QkJFNDlGMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmggKi87IH07
CisJCTFDRjE4RjNGMjZCQjVEOTUwMDRCMTcyMiAvKiBMb2dJbml0aWFsaXphdGlvbi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0YxOEYzRTI2QkI1
RDkwMDA0QjE3MjIgLyogTG9nSW5pdGlhbGl6YXRpb24uY3BwICovOyB9OwogCQkxRDRENzM3MDIz
QTlFNTQ3MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0
RDczNkIyM0E5REY1NTAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMUQ0RDczNzEyM0E5RTU2MjAwNzE3QTI1IC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3MzZDMjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CiAJCTFENEQ3Mzc2MjNBOUVEMTgw
MDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNzUyM0E5
RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmggKi87IH07CkBAIC0zMDQ5LDYgKzMwNTAsNyBAQAogCQkxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZD
MkIgLyogV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNCQkU0OUUxOUI2NkM1MzAwNkI3RDgxIC8q
IFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0JCRTQ5RjE5QjY2QzUz
MDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKKwkJMUNGMThGM0UyNkJCNUQ5MDAwNEIxNzIyIC8qIExvZ0luaXRp
YWxpemF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvZ0luaXRpYWxpemF0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQwNTMwQzkyNThFQUI0NDAwRTQzNkY3IC8q
IGNvbWJpbmUtZmVhdHVyZS1mbGFncy1wbGlzdC5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9ICJjb21i
aW5lLWZlYXR1cmUtZmxhZ3MtcGxpc3QucHkiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxRDA1MzBEMTI1OTE2MkM4MDBFNDM2RjcgLyogV2ViS2l0LWlvcy5wbGlzdCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBw
YXRoID0gIldlYktpdC1pb3MucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
RDA1MzBEMjI1OTE2MkM5MDBFNDM2RjcgLyogV2ViS2l0LWFwcGxldHZvcy5wbGlzdCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1s
OyBwYXRoID0gIldlYktpdC1hcHBsZXR2b3MucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNjAwMCw3ICs2MDAyLDYgQEAKIAkJRjQwQkJCNDAyNTdGRjQ2RTAwNjc0NjNBIC8q
IEdQVVByb2Nlc3NXYWtldXBNZXNzYWdlQXJndW1lbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVBy
b2Nlc3NXYWtldXBNZXNzYWdlQXJndW1lbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY0MEQxQjY4MjIwQkRDMEYwMEI0OUEwMSAvKiBXZWJBdXRvY29ycmVjdGlvbkNvbnRleHQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV2ViQXV0b2NvcnJlY3Rpb25Db250ZXh0Lmg7IHBhdGggPSBpb3Mv
V2ViQXV0b2NvcnJlY3Rpb25Db250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY0MTA1NjYxMjEzMDY5OUEwMDkyMjgxRCAvKiBBUElBdHRhY2htZW50Q29jb2EubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBBUElBdHRhY2htZW50Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUY0MTRDRTJBMjY5RERFRDEwMEJEMjE2QSAvKiBHUFVQcm9jZXNzQ29jb2Eu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBHUFVQcm9jZXNzQ29j
b2EubW07IHBhdGggPSBjb2NvYS9HUFVQcm9jZXNzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY0MTRDRTJDMjY5REU2RUEwMEJEMjE2QSAvKiBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFN0YXRl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MkQ2MzNGMjJBMEVGRDMwMEQyRkIz
QSAvKiBXZWJBdXRvY29ycmVjdGlvbkRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV2ViQXV0b2NvcnJlY3Rpb25EYXRhLmg7IHBhdGggPSBpb3MvV2ViQXV0b2NvcnJlY3Rp
b25EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MkQ2MzQwMjJBMEVGRDMw
MEQyRkIzQSAvKiBXZWJBdXRvY29ycmVjdGlvbkRhdGEubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJBdXRvY29ycmVjdGlvbkRhdGEubW07IHBhdGggPSBpb3Mv
V2ViQXV0b2NvcnJlY3Rpb25EYXRhLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTA2OTcsNiArMTA2OTgsNyBAQAogCQkJCUVDQkZDMURCMUU2QTRENjYwMDAzMDBDNyAvKiBFeHRy
YVB1YmxpY1N5bWJvbHNGb3JUQVBJLmggKi8sCiAJCQkJNTFBN0YyRjQxMjVCRjhENDAwOEFFQjFE
IC8qIExvZ2dpbmcuY3BwICovLAogCQkJCTUxQTdGMkYyMTI1QkY4MjAwMDhBRUIxRCAvKiBMb2dn
aW5nLmggKi8sCisJCQkJMUNGMThGM0UyNkJCNUQ5MDAwNEIxNzIyIC8qIExvZ0luaXRpYWxpemF0
aW9uLmNwcCAqLywKIAkJCQkwRkRDRDdGNjFENDdFOTJBMDA5RjA4QkMgLyogTG9nSW5pdGlhbGl6
YXRpb24uaCAqLywKIAkJCQlDMEUzQUE0NTEyMDlFMkJBMDBBNDlEMDEgLyogTW9kdWxlLmNwcCAq
LywKIAkJCQlDMEUzQUE0NDEyMDlFMkJBMDBBNDlEMDEgLyogTW9kdWxlLmggKi8sCkBAIC0xMTcx
NiwxNCArMTE3MTgsNiBAQAogCQkJcGF0aCA9IGNhY2hlOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKIAkJfTsKLQkJRjQxNENFMjcyNjlEREU4MDAwQkQyMTZBIC8qIGNvY29hICovID0gewot
CQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQlGNDE0Q0UyQTI2OURERUQx
MDBCRDIxNkEgLyogR1BVUHJvY2Vzc0NvY29hLm1tICovLAotCQkJKTsKLQkJCW5hbWUgPSBjb2Nv
YTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCUY2Mzg5NTVBMTMzQkY1N0Qw
MDg5NDFENSAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KApAQCAtMTQyMzUsNiArMTQyMjksNyBAQAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxQyAv
KiBMaWJXZWJSVENOZXR3b3JrTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQ0OUQ5MERBMjFGREMzMEIwMEY2NzdDMCAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU29mdExpbmsu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc3OTIxMkI2QTYxMDBGNDkzRkQgLyogTG9nZ2lu
Zy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQ0YxOEYzRjI2QkI1RDk1MDA0QjE3MjIgLyogTG9n
SW5pdGlhbGl6YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDdFMTlFRkIyM0Q0MDFGMTAw
OTRGRkI0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxREYyOUU2NDI1N0YzN0EzMDAzQzI4QUYgLyogTWVkaWFTb3VyY2VQ
cml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTlCNDc5
MDkxMjUzMTU2MzIwMEVDMTFBQiAvKiBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbQppbmRleCBkZDFlZmY1YmFiYjZhNTRlZmE5N2M2MDU3MjBlODVlYjAxYzg5
NjcxLi5lNGVjMDYzYjcwZWU3YzYwZjcxOTY0M2YxN2VkNGE3NTkzYWE3ZTMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTI4
MSw4ICsyODEsOCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgIH0KIAogI2lmICFMT0df
RElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgV2ViQ29yZTo6aW5pdGlhbGl6
ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkocGFyYW1ldGVycy53ZWJDb3JlTG9nZ2luZ0NoYW5uZWxz
KTsKLSAgICBXZWJLaXQ6OmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHBhcmFtZXRl
cnMud2ViS2l0TG9nZ2luZ0NoYW5uZWxzKTsKKyAgICBXZWJDb3JlOjpsb2dDaGFubmVscygpLmlu
aXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHBhcmFtZXRlcnMud2ViQ29yZUxvZ2dpbmdD
aGFubmVscyk7CisgICAgV2ViS2l0Ojpsb2dDaGFubmVscygpLmluaXRpYWxpemVMb2dDaGFubmVs
c0lmTmVjZXNzYXJ5KHBhcmFtZXRlcnMud2ViS2l0TG9nZ2luZ0NoYW5uZWxzKTsKICNlbmRpZgog
CiAgICAgbV91aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyID0gcGFyYW1ldGVycy51aVByb2Nlc3NC
dW5kbGVJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJLaXRM
ZWdhY3kueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2Vi
S2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWRiMDRiYmZiYjM1Mzg1
ZjU4OTA2YTJmZGI3MjUxOWE2MTljMzI4Zi4uYTc4YTVjYzZmNzI2NGMxYTA0YjQ3YTBjNTE2N2Rj
ZjAyOWQ2MDlkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJLaXRMZWdhY3ku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktp
dExlZ2FjeS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTEsNiArMTExLDcgQEAKIAkJ
MUM2OEY2NzIwOTVCNUZDMTAwQzI5ODRFIC8qIFdlYk5vZGVIaWdobGlnaHRWaWV3Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM2OEY2NjYwOTVCNUZD
MTAwQzI5ODRFIC8qIFdlYk5vZGVIaWdobGlnaHRWaWV3Lm1tICovOyB9OwogCQkxQzdCMEM2NjBF
QjI0NjREMDBBMjg1MDIgLyogV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM3QjBDNjUwRUIyNDY0RDAwQTI4NTAy
IC8qIFdlYkluc3BlY3RvckNsaWVudENGLmNwcCAqLzsgfTsKIAkJMUM4Q0IwN0EwQUU5ODMwQzAw
QjFGNkU5IC8qIFdlYkVkaXRpbmdEZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOENCMDc5MEFFOTgzMEMwMEIxRjZFOSAvKiBX
ZWJFZGl0aW5nRGVsZWdhdGVQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUNGMThGNDEyNkJCNzFCNzAwNEIxNzIyIC8qIFdlYktpdExv
Z0luaXRpYWxpemF0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUNGMThGNDAyNkJCNzFCNzAwNEIxNzIyIC8qIFdlYktpdExvZ0luaXRpYWxpemF0
aW9uLm1tICovOyB9OwogCQkyMkYyMTlDQzA4RDIzNjczMDAzMEUwNzggLyogV2ViQmFja0Zvcndh
cmRMaXN0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjJGMjE5Q0IwOEQyMzY3MzAwMzBFMDc4IC8qIFdlYkJhY2tGb3J3YXJkTGlzdFByaXZh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQky
OUFFRjk2MDEzNEM3NkZCMDBGRTUwOTYgLyogT3V0bG9va1F1aXJrc1VzZXJTY3JpcHQuanMgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QUVGOTVEMTM0
Qzc1NTQwMEZFNTA5NiAvKiBPdXRsb29rUXVpcmtzVXNlclNjcmlwdC5qcyAqLzsgfTsKIAkJMkQy
NTM5NjYxOENFODVDMjAwMjcwMjIyIC8qIFdlYlNoYXJpbmdTZXJ2aWNlUGlja2VyQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyNTM5
NjQxOENFODVDMjAwMjcwMjIyIC8qIFdlYlNoYXJpbmdTZXJ2aWNlUGlja2VyQ29udHJvbGxlci5o
ICovOyB9OwpAQCAtODMxLDYgKzgzMiw4IEBACiAJCTFDOTA0RkQzMEJBOUREMEYwMDgxRTlEMCAv
KiBWZXJzaW9uLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFZlcnNp
b24ueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDOTA0RkQ0MEJBOURE
MEYwMDgxRTlEMCAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29u
ZmlnOyBwYXRoID0gRGVidWdSZWxlYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQzkwNEZENTBCQTlERDBGMDA4MUU5RDAgLyogQmFzZS54Y2NvbmZpZyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQ0YxOEY0MDI2QkI3MUI3MDA0QjE3MjIgLyogV2ViS2l0TG9nSW5pdGlh
bGl6YXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJLaXRMb2dJbml0aWFsaXphdGlv
bi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNGMThGNDIyNkJCNzFEMzAwNEIx
NzIyIC8qIFdlYktpdExvZ0luaXRpYWxpemF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdExv
Z0luaXRpYWxpemF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTIyRjIxOUNC
MDhEMjM2NzMwMDMwRTA3OCAvKiBXZWJCYWNrRm9yd2FyZExpc3RQcml2YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQmFja0ZvcndhcmRM
aXN0UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNU
YWJzID0gMDsgfTsKIAkJMjU2OEM3MkMwMTc0OTEyRDBFQ0ExNDlFIC8qIFdlYktpdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJ
MjlBRUY5NUQxMzRDNzU1NDAwRkU1MDk2IC8qIE91dGxvb2tRdWlya3NVc2VyU2NyaXB0LmpzICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gT3V0bG9va1F1aXJrc1VzZXJT
Y3JpcHQuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzg3LDYgKzE3OTAsOCBA
QAogCQkJCTUzNjVBRUQ5MjU2NjM0NTgwMDcwNDY3OSAvKiBXZWJLaXRMZWdhY3lfUHJpdmF0ZS5o
ICovLAogCQkJCTkzQUVCMTdEMDMyQzE3MzUwMDg2MzVDRSAvKiBXZWJLaXRMb2dnaW5nLmggKi8s
CiAJCQkJOTNBRUIxN0UwMzJDMTczNTAwODYzNUNFIC8qIFdlYktpdExvZ2dpbmcubSAqLywKKwkJ
CQkxQ0YxOEY0MjI2QkI3MUQzMDA0QjE3MjIgLyogV2ViS2l0TG9nSW5pdGlhbGl6YXRpb24uaCAq
LywKKwkJCQkxQ0YxOEY0MDI2QkI3MUI3MDA0QjE3MjIgLyogV2ViS2l0TG9nSW5pdGlhbGl6YXRp
b24ubW0gKi8sCiAJCQkJNzA4MkY1NkYwMzhFQURBQTAwQTgwMTgwIC8qIFdlYktpdE5TU3RyaW5n
RXh0cmFzLmggKi8sCiAJCQkJNzA4MkY1NzAwMzhFQURBQTAwQTgwMTgwIC8qIFdlYktpdE5TU3Ry
aW5nRXh0cmFzLm1tICovLAogCQkJCUY1MzQ0NENFMDJFODdDQkEwMTg2MzVDQSAvKiBXZWJLaXRT
dGF0aXN0aWNzLmggKi8sCkBAIC0zNjUxLDYgKzM2NTYsNyBAQAogCQkJCTkzOTgxMTAzMDgyNEJG
MDEwMDhERjAzOCAvKiBXZWJLaXRFcnJvcnMubSBpbiBTb3VyY2VzICovLAogCQkJCUNEOEJGQ0U3
MTU1MzEyMjQwMDVBRkIyNSAvKiBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIubW0gaW4gU291cmNl
cyAqLywKIAkJCQk5Mzk4MTBDMzA4MjRCRjAxMDA4REYwMzggLyogV2ViS2l0TG9nZ2luZy5tIGlu
IFNvdXJjZXMgKi8sCisJCQkJMUNGMThGNDEyNkJCNzFCNzAwNEIxNzIyIC8qIFdlYktpdExvZ0lu
aXRpYWxpemF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5ODEwQzQwODI0QkYwMTAwOERG
MDM4IC8qIFdlYktpdE5TU3RyaW5nRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBRjVE
MEYwRURERTdBNzAwOEQ4ODNEIC8qIFdlYktpdFBsdWdpbkFnZW50LmRlZnMgaW4gU291cmNlcyAq
LywKIAkJCQkxQUFGNUQwMDBFRERFNjA0MDA4RDg4M0QgLyogV2ViS2l0UGx1Z2luQ2xpZW50LmRl
ZnMgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01p
c2MvV2ViS2l0TG9nSW5pdGlhbGl6YXRpb24uaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01p
c2MvV2ViS2l0TG9nSW5pdGlhbGl6YXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzhkYTk3ZTk5M2NiODZh
NjA5NTRhOTg2ZGMyYWU2M2E5N2E2N2VjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRMb2dJbml0aWFsaXphdGlvbi5oCkBAIC0wLDAgKzEsNDMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvTG9nQ2hhbm5l
bHMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAorCitXVEY6
OkxvZ0NoYW5uZWxzJiBsb2dDaGFubmVscygpOworCisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8
fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKworV1RGTG9nQ2hhbm5lbCogZ2V0TG9nQ2hhbm5lbChj
b25zdCBTdHJpbmcmIG5hbWUpOworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwordm9pZCBSZXBv
cnREaXNjYXJkZWREZWxlZ2F0ZUV4Y2VwdGlvbihTRUwgZGVsZWdhdGVTZWxlY3RvciwgaWQgZXhj
ZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0
TG9nSW5pdGlhbGl6YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktp
dExvZ0luaXRpYWxpemF0aW9uLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViNGRiOWM4ZGY2OWEyNDBlOWU3Yzg1
Y2FlNzEyNGVhNjA2MGUyMWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9NaXNjL1dlYktpdExvZ0luaXRpYWxpemF0aW9uLm1tCkBAIC0wLDAgKzEsNzQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJ
bmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAg
IGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiV2ViS2l0TG9nSW5pdGlhbGl6YXRpb24uaCIKKworI2luY2x1ZGUgIldlYktpdExvZ2dpbmcu
aCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKworY2xhc3MgTG9n
Q2hhbm5lbHMgZmluYWwgOiBwdWJsaWMgV1RGOjpMb2dDaGFubmVscyB7CitwdWJsaWM6CisgICAg
TG9nQ2hhbm5lbHMoKQorICAgIHsKKyAgICAgICAgbV9sb2dDaGFubmVscyA9IHsKKyAgICAgICAg
ICAgIFdFQktJVF9MT0dfQ0hBTk5FTFMoTE9HX0NIQU5ORUxfQUREUkVTUykKKyAgICAgICAgfTsK
KyAgICB9CisKK3ByaXZhdGU6CisgICAgU3RyaW5nIGxvZ0xldmVsU3RyaW5nKCkgZmluYWwKKyAg
ICB7CisgICAgICAgIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGRlZmF1bHRzRG9tYWluID0gQCJX
ZWJLaXRMb2dnaW5nIjsKKyAgICAgICAgcmV0dXJuIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRV
c2VyRGVmYXVsdHNdIHN0cmluZ0ZvcktleTpkZWZhdWx0c0RvbWFpbl07CisgICAgfQorfTsKKwor
V1RGOjpMb2dDaGFubmVscyYgbG9nQ2hhbm5lbHMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxMb2dDaGFubmVscz4gbG9nQ2hhbm5lbHM7CisgICAgcmV0dXJuIGxvZ0NoYW5uZWxzLmdl
dCgpOworfQorCisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKK3ZvaWQgUmVwb3J0RGlzY2FyZGVkRGVsZWdh
dGVFeGNlcHRpb24oU0VMIGRlbGVnYXRlU2VsZWN0b3IsIGlkIGV4Y2VwdGlvbikKK3sKKyAgICBp
ZiAoW2V4Y2VwdGlvbiBpc0tpbmRPZkNsYXNzOltOU0V4Y2VwdGlvbiBjbGFzc11dKSB7CisgICAg
ICAgIE5TTG9nKEAiKioqIFdlYktpdCBkaXNjYXJkZWQgYW4gdW5jYXVnaHQgZXhjZXB0aW9uIGlu
IHRoZSAlcyBkZWxlZ2F0ZTogPCVAPiAlQCIsCisgICAgICAgICAgICBzZWxfZ2V0TmFtZShkZWxl
Z2F0ZVNlbGVjdG9yKSwgW2V4Y2VwdGlvbiBuYW1lXSwgW2V4Y2VwdGlvbiByZWFzb25dKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICBOU0xvZyhAIioqKiBXZWJLaXQgZGlzY2FyZGVkIGFuIHVuY2F1
Z2h0IGV4Y2VwdGlvbiBpbiB0aGUgJXMgZGVsZWdhdGU6ICVAIiwKKyAgICAgICAgICAgIHNlbF9n
ZXROYW1lKGRlbGVnYXRlU2VsZWN0b3IpLCBleGNlcHRpb24pOworICAgIH0KK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0TG9nZ2luZy5oIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRMb2dnaW5nLmgKaW5kZXggZjBkY2NmZjg2ZTQ0
Njg5YzZkODJlNTIxZmFlNTIzODAwYjI3NTk5ZC4uOTEyY2Y3ODhmYTQzOTk5OTBjYTgxOWQ3Yzc4
ZGQzOTUyNDBiMzMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9X
ZWJLaXRMb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRM
b2dnaW5nLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA3
LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjgsMTEgKzY4LDggQEAgV0VCS0lUX0xPR19DSEFO
TkVMUyhERUNMQVJFX0xPR19DSEFOTkVMKQogCiAjdW5kZWYgREVDTEFSRV9MT0dfQ0hBTk5FTAog
Ci12b2lkIFdlYktpdEluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHZvaWQpOwogI2Vu
ZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKLXZvaWQgUmVw
b3J0RGlzY2FyZGVkRGVsZWdhdGVFeGNlcHRpb24oU0VMIGRlbGVnYXRlU2VsZWN0b3IsIGlkIGV4
Y2VwdGlvbik7Ci0KICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdExvZ2dpbmcubSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0TG9nZ2luZy5tCmluZGV4IDlmMmJkYjhhNzgxMGQzYTcw
MTczZDBhYTQ1ZDZkNTExMTEzZTllMDguLjEwMjJjYTk5Yzk1ZWEyOTgyMzE3MWQ4M2I3Nzc1YzUy
MGZmYWQzYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0
TG9nZ2luZy5tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0TG9nZ2lu
Zy5tCkBAIC0zMywzNyArMzMsNCBAQAogI2RlZmluZSBERUZJTkVfV0VCS0lUX0xPR19DSEFOTkVM
KG5hbWUpIERFRklORV9MT0dfQ0hBTk5FTChuYW1lLCBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lT
VEVNKQogV0VCS0lUX0xPR19DSEFOTkVMUyhERUZJTkVfV0VCS0lUX0xPR19DSEFOTkVMKQogCi1z
dGF0aWMgV1RGTG9nQ2hhbm5lbCogbG9nQ2hhbm5lbHNbXSA9IHsKLSAgICBXRUJLSVRfTE9HX0NI
QU5ORUxTKExPR19DSEFOTkVMX0FERFJFU1MpCi19OwotCi1zdGF0aWMgY29uc3Qgc2l6ZV90IGxv
Z0NoYW5uZWxDb3VudCA9IHNpemVvZihsb2dDaGFubmVscykgLyBzaXplb2YobG9nQ2hhbm5lbHNb
MF0pOwotCi0KLXN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGRlZmF1bHRzRG9tYWluID0gQCJXZWJL
aXRMb2dnaW5nIjsKLQotdm9pZCBXZWJLaXRJbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2Fy
eSgpCi17Ci0gICAgc3RhdGljIGJvb2wgaGF2ZUluaXRpYWxpemVkTG9nZ2luZ0NoYW5uZWxzID0g
ZmFsc2U7Ci0gICAgaWYgKGhhdmVJbml0aWFsaXplZExvZ2dpbmdDaGFubmVscykKLSAgICAgICAg
cmV0dXJuOwotICAgIGhhdmVJbml0aWFsaXplZExvZ2dpbmdDaGFubmVscyA9IHRydWU7Ci0KLSAg
ICBOU1N0cmluZyAqbG9nTGV2ZWwgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1
bHRzXSBzdHJpbmdGb3JLZXk6ZGVmYXVsdHNEb21haW5dOwotICAgIGlmICghbG9nTGV2ZWwpCi0g
ICAgICAgIHJldHVybjsKLSAgICAKLSAgICBXVEZJbml0aWFsaXplTG9nQ2hhbm5lbFN0YXRlc0Zy
b21TdHJpbmcobG9nQ2hhbm5lbHMsIGxvZ0NoYW5uZWxDb3VudCwgW2xvZ0xldmVsIFVURjhTdHJp
bmddKTsKLX0KLQogI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECi0KLXZvaWQgUmVwb3J0RGlzY2FyZGVkRGVsZWdhdGVFeGNlcHRpb24oU0VMIGRlbGVnYXRl
U2VsZWN0b3IsIGlkIGV4Y2VwdGlvbikKLXsKLSAgICBpZiAoW2V4Y2VwdGlvbiBpc0tpbmRPZkNs
YXNzOltOU0V4Y2VwdGlvbiBjbGFzc11dKQotICAgICAgICBOU0xvZyhAIioqKiBXZWJLaXQgZGlz
Y2FyZGVkIGFuIHVuY2F1Z2h0IGV4Y2VwdGlvbiBpbiB0aGUgJXMgZGVsZWdhdGU6IDwlQD4gJUAi
LAotICAgICAgICAgICAgc2VsX2dldE5hbWUoZGVsZWdhdGVTZWxlY3RvciksIFtleGNlcHRpb24g
bmFtZV0sIFtleGNlcHRpb24gcmVhc29uXSk7Ci0gICAgZWxzZQotICAgICAgICBOU0xvZyhAIioq
KiBXZWJLaXQgZGlzY2FyZGVkIGFuIHVuY2F1Z2h0IGV4Y2VwdGlvbiBpbiB0aGUgJXMgZGVsZWdh
dGU6ICVAIiwKLSAgICAgICAgICAgIHNlbF9nZXROYW1lKGRlbGVnYXRlU2VsZWN0b3IpLCBleGNl
cHRpb24pOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRHJhZ0NsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkRyYWdDbGllbnQubW0KaW5kZXggNTU2NzQ5OTA0ZmQ1MzZiMjUxNDgzMDY3OWRi
OGY2NmM4ODJiZDYwYS4uZDBhOTVlYjc0YzU4YmZhMDkxYzExZDQwOTkxM2Y4ZjdmMzQyNWViMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJh
Z0NsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJEcmFnQ2xpZW50Lm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJXZWJGcmFtZUludGVy
bmFsLmgiCiAjaW1wb3J0ICJXZWJGcmFtZVZpZXcuaCIKICNpbXBvcnQgIldlYkhUTUxWaWV3SW50
ZXJuYWwuaCIKKyNpbXBvcnQgIldlYktpdExvZ0luaXRpYWxpemF0aW9uLmgiCiAjaW1wb3J0ICJX
ZWJLaXRMb2dnaW5nLmgiCiAjaW1wb3J0ICJXZWJLaXROU1N0cmluZ0V4dHJhcy5oIgogI2ltcG9y
dCAiV2ViTlNVUkxFeHRyYXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLm1t
CmluZGV4IDQzZmIzMzQ1MzFmZmU3YjE3MWEzYzAyYzAwNmRmZDU3MDY3NGNhOGIuLjQxMmVkNWJj
NTc5M2M3MmExNWYwMThlOTUxNTU5MDYyMTZjYTFjNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJEZWxlZ2F0ZUltcGxlbWVu
dGF0aW9uQ2FjaGluZy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IERhdmlkIFNtaXRoIChjYXRmaXNoLm1hbkBnbWFp
bC5jb20pCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbXBvcnQgIldl
YkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLmgiCiAKKyNpbXBvcnQgIldlYktpdExvZ0lu
aXRpYWxpemF0aW9uLmgiCiAjaW1wb3J0ICJXZWJLaXRMb2dnaW5nLmgiCiAjaW1wb3J0ICJXZWJW
aWV3LmgiCiAjaW1wb3J0ICJXZWJWaWV3RGF0YS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDA2MDhkYTUxOTdkZGY3ZWM2OTI1ZDcyYjA5MWFhYmQ4
NmNlZTM4ZGYuLmEzZTE2Yjg4ODRiMmVhNzM1NTVlZTc2ZWM0Y2M4ODBkNGJkZTFmYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTgxLDYgKzgxLDcg
QEAKICNpbXBvcnQgIldlYkluc3BlY3RvckNsaWVudC5oIgogI2ltcG9ydCAiV2ViS2l0RXJyb3Jz
LmgiCiAjaW1wb3J0ICJXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIuaCIKKyNpbXBvcnQgIldlYktp
dExvZ0luaXRpYWxpemF0aW9uLmgiCiAjaW1wb3J0ICJXZWJLaXRMb2dnaW5nLmgiCiAjaW1wb3J0
ICJXZWJLaXROU1N0cmluZ0V4dHJhcy5oIgogI2ltcG9ydCAiV2ViS2l0U3RhdGlzdGljc1ByaXZh
dGUuaCIKQEAgLTE0ODAsOCArMTQ4MSw4IEBAIC0gKHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9u
V2l0aEZyYW1lTmFtZTooTlNTdHJpbmcgKilmcmFtZU5hbWUgZ3JvdXBOYW1lOihOU1N0CiAjZW5k
aWYKICAgICBpZiAoIWRpZE9uZVRpbWVJbml0aWFsaXphdGlvbikgewogI2lmICFMT0dfRElTQUJM
RUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgICAgIFdlYktpdEluaXRpYWxpemVMb2dD
aGFubmVsc0lmTmVjZXNzYXJ5KCk7Ci0gICAgICAgIFdlYkNvcmU6OmluaXRpYWxpemVMb2dDaGFu
bmVsc0lmTmVjZXNzYXJ5KCk7CisgICAgICAgIFdlYkNvcmU6OmxvZ0NoYW5uZWxzKCkuaW5pdGlh
bGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKKyAgICAgICAgV2ViS2l0Ojpsb2dDaGFubmVs
cygpLmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCk7CiAjZW5kaWYKIAogICAgICAg
ICAvLyBJbml0aWFsaXplIG91ciBwbGF0Zm9ybSBzdHJhdGVnaWVzIGZpcnN0IGJlZm9yZSBpbnZv
a2luZyB0aGUgcmVzdAo=
</data>
<flag name="review"
          id="457730"
          type_id="1"
          status="+"
          setter="fujii"
    />
    <flag name="commit-queue"
          id="457731"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435110</attachid>
            <date>2021-08-06 20:05:34 -0700</date>
            <delta_ts>2021-08-06 23:39:44 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-228809-20210806200533.patch</filename>
            <type>text/plain</type>
            <size>65921</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRiMmExZGEyMDk2ZTExZDQ5NmRiNWEz
ZjI5NGQ0Zjg4MGJjOGU1YjMuLjc2MDc1MDY5NDVlY2VjMTcwNTUwYTU2OTI0NzFmYWEyNmUzMDVj
YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjEtMDgtMDYgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBEZWR1cGxpY2F0ZSBsb2dnaW5nIGNoYW5u
ZWwgYWxnb3JpdGhtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI4ODA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnVqaWkgSGlyb25vcmkuCisKKyAg
ICAgICAgVGhlIGN1cnJlbnQgaW5mcmFzdHJ1Y3R1cmUgKGJlZm9yZSB0aGlzIHBhdGNoKSBoYWQg
dGhlIGZvbGxvd2luZyBkdXBsaWNhdGVkIGZvciBlYWNoIGZyYW1ld29yazoKKyAgICAgICAgICAt
IEEgLmNwcCBmaWxlIGRlY2xhcmVkIHRoZSBsaXN0IG9mIGxvZ2dpbmcgY2hhbm5lbHMgZm9yIHRo
YXQgZnJhbWV3b3JrCisgICAgICAgICAgLSBUaGUgLmNwcCBmaWxlIGFsc28gaGFkIGFsZ29yaXRo
bXMgdG8gc2VhcmNoLCBtb2RpZnksIGFuZCBpbml0aWFsaXplIHRoZXNlIGxvZ2dpbmcgY2hhbm5l
bHMKKworICAgICAgICBFYWNoIGZyYW1ld29yaydzIC5jcHAgZmlsZSBoYWQgZHVwbGljYXRlIGFs
Z29yaXRobXMuIChUaGUgaW5pdGlhbGl6YXRpb24gYWxnb3JpdGhtIHdhcyBldmVuCisgICAgICAg
IGR1cGxpY2F0ZWQgMyB0aW1lcyEpCisKKyAgICAgICAgQmVjYXVzZSB0aGUgYWxnb3JpdGhtcyBk
aXJlY3RseSBuYW1lIHRoZWlyIHNwZWNpZmljIGxpc3Qgb2YgbG9nZ2luZyBjaGFubmVscywgYSBu
YWl2ZSBkZWR1cGxpY2F0aW9uCisgICAgICAgIHdvdWxkIGhhdmUgaGFkIHRvIGFkZCBuZXcgcGFy
YW1ldGVycyB0byB0aGVzZSBhbGdvcml0aG1zIHRvIHBhc3MgaW4gdGhlIGFwcHJvcHJpYXRlIGZy
YW1ld29yaydzCisgICAgICAgIGxpc3QuIFRoYXQncyBmaW5lLCBidXQgdGhpcyBpcyBleGFjdGx5
IHRoZSBzb3J0IG9mIHRoaW5nIGNsYXNzZXMgd2VyZSBkZXNpZ25lZCBmb3IgLSBjbGFzc2VzIGFy
ZQorICAgICAgICBhbiBhc3NvY2lhdGlvbiBvZiBhbGdvcml0aG1zIGFuZCBkYXRhLiBUaGUgYWxn
b3JpdGhtcyBhcmUgc2hhcmVkIGJ1dCB0aGUgZGF0YSBpc24ndCwgd2hpY2ggcmVhbGx5CisgICAg
ICAgIGp1c3QgbWVhbnMgd2Ugc2hvdWxkIGhhdmUgMyBpbnN0YW5jZXMgb2YgYSBzaGFyZWQgY2xh
c3MgLSBvbmUgZm9yIHRoZSAzIHNldHMgb2YgZGF0YS4KKworICAgICAgICBTbywgdGhpcyBwYXRj
aCBjcmVhdGVzIHRoZSBMb2dDaGFubmVscyBjbGFzcyB3aGljaCBjb250YWlucyB0aGUgZGVkdXBs
aWNhdGVkIGFsZ29yaXRobXMsIGFuZCBlYWNoCisgICAgICAgIGZyYW1ld29yayBoYXMgYSBOZXZl
ckRlc3Ryb3llZCBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhhdCBjbGFzcy4gVGhlcmUgaXMgYSBz
aW5nbGUgdmlydHVhbCBtZXRob2QKKyAgICAgICAgaW4gdGhlIGNsYXNzLCBzbyB0aGUgYXBwcm9w
cmlhdGUgImRlZmF1bHQgd3JpdGUiIHZhcmlhYmxlIGNhbiBiZSBxdWVyaWVkIGZvciBlYWNoIGZy
YW1ld29yay4KKworICAgICAgICBUaGUgaW5zdGFuY2VzIGNhbm5vdCBiZSBkZWNsYXJlZCBpbiB0
aGUgTG9nZ2luZy5oIGZpbGVzIGluIHRoZSBmcmFtZXdvcmtzLCBiZWNhdXNlIGNlcnRhaW4gV2Vi
S2l0MgorICAgICAgICBmaWxlcyB3YW50IHRvIGluaXRpYWxpemUgYWxsIDMgaW5zdGFuY2VzIG9m
IExvZ0NoYW5uZWxzLCBidXQgeW91IGNhbid0ICNpbmNsdWRlIG11bHRpcGxlIExvZ2dpbmcuaAor
ICAgICAgICBmaWxlcyBhdCB0aGUgc2FtZSB0aW1lIGJlY2F1c2UgdGhlaXIgTE9HX0NIQU5ORUxf
UFJFRklYICNkZWZpbmVzIHdpbGwgY29sbGlkZSB3aXRoIGVhY2ggb3RoZXIuCisgICAgICAgIEx1
Y2tpbHksIExvZ0luaXRpYWxpemF0aW9uLmggZmlsZXMgZXhpc3QgZXhhY3RseSB0byBzb2x2ZSB0
aGlzIHB1cnBvc2UsIHNvIHRoYXQncyB3aGVyZSB0aGUKKyAgICAgICAgTG9nQ2hhbm5lbHMgaW5z
dGFuY2VzIGFyZSBkZWNsYXJlZCBpbi4gQWZ0ZXIgdGhpcyBjaGFuZ2UsIHRoZSBMb2dnaW5nLmgg
ZmlsZXMgYXJlIGp1c3QgZm9yIHRoZQorICAgICAgICBkZWNsYXJhdGlvbnMgb2YgdGhlIGxvZ2dp
bmcgY2hhbm5lbHMgdGhlbXNlbHZlcywgYW5kIHRoZSBMb2dJbml0aWFsaXphdGlvbi5oIGZpbGVz
IGFyZSBmb3IgdGhlCisgICAgICAgIExvZ0NoYW5uZWxzIGluc3RhbmNlcyB3aGljaCBjb250YWlu
IHRoZSBzZWFyY2hpbmcvbW9kaWZ5aW5nL2luaXRpYWxpemluZyBhbGdvcml0aG1zIG9uIHRoZSBs
aXN0IG9mCisgICAgICAgIGxvZ2dpbmcgY2hhbm5lbHMuIElmIHlvdSBqdXN0IHdhbnQgdG8gTE9H
KC4uLikgc29tZXRoaW5nLCAjaW5jbHVkZSB0aGUgcmVsZXZhbnQgTG9nZ2luZy5oIGZpbGUsIGFu
ZAorICAgICAgICBpZiB5b3Ugd2FudCB0byBzZWFyY2gvbW9kaWZ5L2luaXRpYWxpemUgYWNyb3Nz
IHRoZSBlbnRpcmUgbGlzdCBvZiBjaGFubmVscywgdGhlbiAjaW5jbHVkZSB0aGUKKyAgICAgICAg
cmVsZXZhbnQgTG9nSW5pdGlhbGl6YXRpb24uaCBmaWxlLgorCisgICAgICAgICogV1RGLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIHd0Zi9Mb2dDaGFubmVscy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvZ2dpbmcuY3BwLgorICAgICAgICAoV1RGOjpMb2dDaGFubmVsczo6aXNMb2dDaGFu
bmVsRW5hYmxlZCk6CisgICAgICAgIChXVEY6OkxvZ0NoYW5uZWxzOjpzZXRMb2dDaGFubmVsVG9B
Y2N1bXVsYXRlKToKKyAgICAgICAgKFdURjo6TG9nQ2hhbm5lbHM6OmNsZWFyQWxsTG9nQ2hhbm5l
bHNUb0FjY3VtdWxhdGUpOgorICAgICAgICAoV1RGOjpMb2dDaGFubmVsczo6aW5pdGlhbGl6ZUxv
Z0NoYW5uZWxzSWZOZWNlc3NhcnkpOgorICAgICAgICAoV1RGOjpMb2dDaGFubmVsczo6Z2V0TG9n
Q2hhbm5lbCk6CisgICAgICAgICogd3RmL0xvZ0NoYW5uZWxzLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmguCisKIDIwMjEtMDgtMDUgIE1p
Y2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgR0NDIDEx
IGJ1aWxkcyBzaG91bGQgdXNlIC1Xbm8tYXJyYXktYm91bmRzLCAtV25vLW5vbm51bGwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA3OTA0N2I5MzU4NDcyOTVkMmY5NTVjNDlkZTQxZGQwNmZlNjAxNzUzLi4wZTdhNzYw
Y2Q5ZGY2Mzg4ZDVjM2IyZDU1NGZjMGZhODA3MWRkOWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzMgQEAKKzIwMjEtMDgtMDYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNv
bT4KKworICAgICAgICBEZWR1cGxpY2F0ZSBsb2dnaW5nIGNoYW5uZWwgYWxnb3JpdGhtcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4ODA5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRnVqaWkgSGlyb25vcmkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogU291cmNl
cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9h
Z2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmNwcDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaC4KKyAgICAgICAgKFdl
YkNvcmU6OmxvZ0NoYW5uZWxzKToKKyAgICAgICAgKFdlYkNvcmU6OmdldExvZ0NoYW5uZWwpOgor
ICAgICAgICAqIHBsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmg6CisgICAgICAgICogcGxhdGZv
cm0vTG9nZ2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0xvZ0NoYW5uZWxFbmFibGVkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNldExvZ0NoYW5uZWxUb0FjY3VtdWxhdGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y2xlYXJBbGxMb2dDaGFubmVsc1RvQWNjdW11bGF0
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5l
Y2Vzc2FyeSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpnZXRMb2dDaGFubmVsKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAgICogdGVzdGluZy9q
cy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRlc3RTdXBwb3J0Ojpz
ZXRMb2dDaGFubmVsVG9BY2N1bXVsYXRlKToKKyAgICAgICAgKFdlYkNvcmVUZXN0U3VwcG9ydDo6
Y2xlYXJBbGxMb2dDaGFubmVsc1RvQWNjdW11bGF0ZSk6CisgICAgICAgIChXZWJDb3JlVGVzdFN1
cHBvcnQ6OmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KToKKwogMjAyMS0wOC0wNiAg
S2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFz
aFRyYWNlcjogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50IGF0IGNvbS5hcHBsZS5XZWJDb3Jl
OiBXZWJDb3JlOjpDcnlwdG9LZXlSU0E6OmV4cG9ydEp3ayBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiZGNh
OWY1NTI3ODAxZTMwOTkxNWJlNGUyZjk5YjM1OWNiMGM2YmIxLi4xOTZmZmYyOTRkZDk3N2FmNTlj
ZDhiNDg5Y2I2NDk4NTkwYzQ2NWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA4
LTA2ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAg
RGVkdXBsaWNhdGUgbG9nZ2luZyBjaGFubmVsIGFsZ29yaXRobXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODgwOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IEZ1amlpIEhpcm9ub3JpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzOjppbml0aWFsaXplR1BVUHJvY2Vzcyk6CisgICAg
ICAgICogUGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAuCisgICAgICAgIChXZWJLaXQ6Omxv
Z0NoYW5uZWxzKToKKyAgICAgICAgKFdlYktpdDo6Z2V0TG9nQ2hhbm5lbCk6CisgICAgICAgICog
UGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Mb2dnaW5n
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnkp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpnZXRMb2dDaGFubmVsKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBQbGF0Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAgICogU2hhcmVkL0F1eGlsaWFyeVBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXpl
KToKKyAgICAgICAgKiBTaGFyZWQvV2ViS2l0MkluaXRpYWxpemUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpJbml0aWFsaXplV2ViS2l0Mik6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisK
IDIwMjEtMDgtMDYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgRGlzYWJsZSBXS0hvdmVyUGxhdHRlciBmb3Igbm93CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmlu
ZGV4IDhjZDFiNmNiZWQzYmQ2NmZkZjg3ZGZmNGExYzY3OWZjYTYyM2NjODQuLjhkNzU1MTI4NDdk
OGRkNjg1ODE2M2JlZTg4YjY4M2Y5OTkxOGYzMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMjEtMDgtMDYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFw
cGxlLmNvbT4KKworICAgICAgICBEZWR1cGxpY2F0ZSBsb2dnaW5nIGNoYW5uZWwgYWxnb3JpdGht
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4ODA5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnVqaWkgSGlyb25vcmkuCisKKyAgICAgICAgKiBXZWJL
aXRMZWdhY3kueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0wOC0wMiAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VibWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwvYmxvYnMuaHRtbCBpcyBh
IGZsYWt5IGZhaWx1cmUgc2luY2UgaW1wbGVtZW50aW5nIEJsb2JDaGFubmVsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKaW5kZXggZGZkZTk4MGMwY2I0MDRjYzA5MTQ4MGZhNTExYzYxZDFkMjc5
ZjAwNi4uNmQyYjIxNmNhZDE1NDkzNzM1MjBjNThhZjYyNzY0YWYzNDVjYzczMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA4LTA2ICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgRGVkdXBsaWNhdGUg
bG9nZ2luZyBjaGFubmVsIGFsZ29yaXRobXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyODgwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEZ1amlpIEhp
cm9ub3JpLgorCisgICAgICAgICogTWlzYy9XZWJLaXRMb2dJbml0aWFsaXphdGlvbi5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmguCisgICAg
ICAgICogTWlzYy9XZWJLaXRMb2dJbml0aWFsaXphdGlvbi5tbTogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRMb2dnaW5nLm0uCisgICAgICAgIChXZWJLaXQ6
OmxvZ0NoYW5uZWxzKToKKyAgICAgICAgKFJlcG9ydERpc2NhcmRlZERlbGVnYXRlRXhjZXB0aW9u
KToKKyAgICAgICAgKiBNaXNjL1dlYktpdExvZ2dpbmcuaDoKKyAgICAgICAgKiBNaXNjL1dlYktp
dExvZ2dpbmcubToKKyAgICAgICAgKFJlcG9ydERpc2NhcmRlZERlbGVnYXRlRXhjZXB0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcubW06CisgICAg
ICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0
aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0pOgorCiAyMDIxLTA4LTA2ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBDbGVhbiB1cCBG
ZWF0dXJlIEZsYWdzIHJlbGF0ZWQgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggOGI4MWQ4YmE3MDdjMTFmZmEzZjdjZTI3ZDdjMGQxZmM4ZjI4NDg4Yy4u
ZGYzMmNmZGZiMmI2MmVjOTczZjAyZjA0OWEwZDZkODc2ZWExYTExNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dU
Ri54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MSw2ICs2MSw3IEBACiAJCTFDMTgxQzk2
MUQzMDgwMEEwMEY1RkExNiAvKiBUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVQ29jb2EuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMxODFDOTUx
RDMwODAwQTAwRjVGQTE2IC8qIFRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VDb2NvYS5jcHAg
Ki87IH07CiAJCTFDNTAzQkU2MjNBQUUwQUUwMDcyRTY2QiAvKiBMYW5ndWFnZUNvY29hLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM1MDNCRTUyM0FB
RTBBRTAwNzJFNjZCIC8qIExhbmd1YWdlQ29jb2EubW0gKi87IH07CiAJCTFDQTg1Q0E5MjQxQjBC
MjYwMDcxQzJGNSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0E4NUNBODI0MUIwQjI2MDA3
MUMyRjUgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuY3BwICovOyB9OworCQkxQ0Yx
OEYzQjI2QkI1NzlFMDA0QjE3MjIgLyogTG9nQ2hhbm5lbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGMThGMzkyNkJCNTc5RTAwNEIxNzIyIC8q
IExvZ0NoYW5uZWxzLmNwcCAqLzsgfTsKIAkJMUZBNDdDOEExNTI1MDJEQTAwNTY4RDFCIC8qIFdl
YkNvcmVUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUZBNDdDODgxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICovOyB9
OwogCQkyQ0NEODkyQTE1QzAzOTAyMDAyODUwODMgLyogR3JlZ29yaWFuRGF0ZVRpbWUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNDRDg5MjkxNUMw
MzkwMjAwMjg1MDgzIC8qIEdyZWdvcmlhbkRhdGVUaW1lLmNwcCAqLzsgfTsKIAkJMkNERUQwRUYx
ODExNUMzODAwNERCQTcwIC8qIFJ1bkxvb3BDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0RFRDBFRTE4MTE1QzM4MDA0REJBNzAgLyogUnVuTG9v
cENGLmNwcCAqLzsgfTsKQEAgLTM1MSw2ICszNTIsOCBAQAogCQkxQ0NEQjE0OTFFNTY2NjI2MDA2
QzczQzAgLyogVGV4dEJyZWFrSXRlcmF0b3JDRi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBUZXh0QnJlYWtJdGVyYXRvckNGLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFDQ0RCMTREMUU1NjY4OTgwMDZDNzNDMCAvKiBUZXh0QnJlYWtJdGVyYXRvcklDVS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0QnJlYWtJdGVyYXRvcklDVS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0NEQjE1MTFFNTY2QkM1MDA2QzczQzAgLyog
Q0ZTdHJpbmdTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0ZTdHJpbmdT
UEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNGMThGMzkyNkJCNTc5RTAwNEIx
NzIyIC8qIExvZ0NoYW5uZWxzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvZ0NoYW5uZWxzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNGMThGM0EyNkJCNTc5RTAwNEIxNzIy
IC8qIExvZ0NoYW5uZWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvZ0NoYW5uZWxzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQTQ3Qzg4MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3Jl
VGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVU
aHJlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRkE0N0M4OTE1MjUwMkRB
MDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJDb3JlVGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI0RjFC
MjQ4NjE5RjQxMjI5NkQxQzE5QyAvKiBSYW5kb21EZXZpY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmFuZG9tRGV2aWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC01MTIsOCArNTE1LDggQEAKIAkJOUJCOTFGNTEyNjQ4RUE0RDAwQTU2MjE3IC8qIENoZWNr
ZWRQdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hlY2tlZFB0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5QkM3MEYwNDE3NkMzNzlEMDAxMDFERUMgLyogQXRvbVN0cmluZ1RhYmxlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF0b21TdHJpbmdUYWJsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRDhGNDBBMTc2QzJBRDgwMDAyRDg2
NSAvKiBBdG9tU3RyaW5nVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXRvbVN0cmluZ1RhYmxlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlCRjAwMTM0MjY3QzRDQ0YwMERDRkIzRiAv
KiBDaGVja2VkUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoZWNrZWRSZWYuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOUJFMTUzMzUyNjcxRjAwRjAwQzdEMDk2IC8qIFdlYWtIYXNoTWFw
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYWtIYXNoTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTlCRjAwMTM0MjY3QzRDQ0YwMERDRkIzRiAvKiBDaGVja2VkUmVmLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENoZWNrZWRSZWYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUM2N0M1
NDI1ODkzNDhFMjg1QjQ5Njk5IC8qIEluZGV4ZWRDb250YWluZXJJdGVyYXRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmRleGVkQ29udGFpbmVySXRlcmF0b3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFCODlCODcyMjFFMDAwRjAwRUI0Q0VBIC8qIFNE
S1ZhcmlhbnQueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gU0RLVmFy
aWFudC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMkMxRjBE
RTBCQTAwQjcxOTU0IC8qIFNvZnRMaW5raW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNvZnRMaW5raW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTIy
LDYgKzExMjUsOCBAQAogCQkJCTBGNjBGMzJFMURGQ0JEMUIwMDQxNkQ2QyAvKiBMb2NrZWRQcmlu
dFN0cmVhbS5oICovLAogCQkJCUE4QTQ3MkMzMTUxQTgyNUEwMDQxMjNGRiAvKiBMb2NrZXIuaCAq
LywKIAkJCQk1MzExQkQ1NTFFQTdFMTVBMDA1MjUyODEgLyogTG9ja2xlc3NCYWcuaCAqLywKKwkJ
CQkxQ0YxOEYzOTI2QkI1NzlFMDA0QjE3MjIgLyogTG9nQ2hhbm5lbHMuY3BwICovLAorCQkJCTFD
RjE4RjNBMjZCQjU3OUUwMDRCMTcyMiAvKiBMb2dDaGFubmVscy5oICovLAogCQkJCTkzQjVCNDUw
MjIxNzFFRTkwMDRCN0FBNyAvKiBMb2dnZXIuY3BwICovLAogCQkJCTA3N0NEODZBMUZEOUNGRDIw
MDgyODU4NyAvKiBMb2dnZXIuaCAqLywKIAkJCQkwNzdDRDg2QjFGRDlDRkQzMDA4Mjg1ODcgLyog
TG9nZ2VySGVscGVyLmggKi8sCkBAIC0xNzM4LDYgKzE3NDMsNyBAQAogCQkJCUMyQkNGQzU1MUY2
MjFGM0YwMEM5MjIyQyAvKiBMaW5lRW5kaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRTE2
NDZBMUI2RkZDOTYwMDQwMEU3QyAvKiBMb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjBG
MzJGMURGQ0JEMUIwMDQxNkQ2QyAvKiBMb2NrZWRQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkxQ0YxOEYzQjI2QkI1NzlFMDA0QjE3MjIgLyogTG9nQ2hhbm5lbHMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTNCNUI0NTEyMjE3MUVFQTAwNEI3QUE3IC8qIExvZ2dlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MzUzNEYyQTFFQzBFMTBFMDAxNDFCMkYgLyogTWFjaEV4Y2VwdGlv
bnMuZGVmcyBpbiBTb3VyY2VzICovLAogCQkJCTdBNkVCQTM0MjA3NDZDMzQwMDRGOUM0NCAvKiBN
YWNoU2VuZFJpZ2h0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAw
NTE3ZGRiZTNiZTdlYjE0MjE1OWNkMTE4NTE4ZmY1OWUxODU3ZjU5Li41MWFmMGFhMDE1YzYxMmVi
ZmI2OWIzOWNlYjY2NDIzMTQ2YTVlZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMTIzLDYg
KzEyMyw3IEBAIHNldChXVEZfUFVCTElDX0hFQURFUlMKICAgICBMb2NrZWRQcmludFN0cmVhbS5o
CiAgICAgTG9ja2VyLmgKICAgICBMb2NrbGVzc0JhZy5oCisgICAgTG9nQ2hhbm5lbHMuaAogICAg
IExvZ2dlci5oCiAgICAgTG9nZ2VySGVscGVyLmgKICAgICBMb2dnaW5nQWNjdW11bGF0b3IuaApA
QCAtNDIyLDYgKzQyMyw3IEBAIHNldChXVEZfU09VUkNFUwogICAgIExpa2VseURlbnNlVW5zaWdu
ZWRJbnRlZ2VyU2V0LmNwcAogICAgIExvY2suY3BwCiAgICAgTG9ja2VkUHJpbnRTdHJlYW0uY3Bw
CisgICAgTG9nQ2hhbm5lbHMuY3BwCiAgICAgTG9nZ2VyLmNwcAogICAgIE1haW5UaHJlYWQuY3Bw
CiAgICAgTWVkaWFUaW1lLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9nQ2hhbm5l
bHMuY3BwIGIvU291cmNlL1dURi93dGYvTG9nQ2hhbm5lbHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyZDcz
MmI4NGM3NDEzZGNmMjk3YjRmMmRlZjliOTQzNWRiMTBjNTEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9Mb2dDaGFubmVscy5jcHAKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiTG9nQ2hhbm5lbHMuaCIKKworI2luY2x1ZGUgPHd0Zi9Mb2dnaW5nQWNjdW11
bGF0b3IuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxF
QVNFX0xPR19ESVNBQkxFRAorCitib29sIExvZ0NoYW5uZWxzOjppc0xvZ0NoYW5uZWxFbmFibGVk
KGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICBXVEZMb2dDaGFubmVsKiBjaGFubmVsID0gZ2V0
TG9nQ2hhbm5lbChuYW1lKTsKKyAgICBpZiAoIWNoYW5uZWwpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gY2hhbm5lbC0+c3RhdGUgIT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmY7
Cit9CisKK3ZvaWQgTG9nQ2hhbm5lbHM6OnNldExvZ0NoYW5uZWxUb0FjY3VtdWxhdGUoY29uc3Qg
U3RyaW5nJiBuYW1lKQoreworICAgIFdURkxvZ0NoYW5uZWwqIGNoYW5uZWwgPSBnZXRMb2dDaGFu
bmVsKG5hbWUpOworICAgIGlmICghY2hhbm5lbCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY2hh
bm5lbC0+c3RhdGUgPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uV2l0aEFjY3VtdWxhdGlvbjsKKyAg
ICBtX2xvZ0NoYW5uZWxzTmVlZEluaXRpYWxpemF0aW9uID0gdHJ1ZTsKK30KKwordm9pZCBMb2dD
aGFubmVsczo6Y2xlYXJBbGxMb2dDaGFubmVsc1RvQWNjdW11bGF0ZSgpCit7CisgICAgcmVzZXRB
Y2N1bXVsYXRlZExvZ3MoKTsKKyAgICBmb3IgKGF1dG8qIGNoYW5uZWwgOiBtX2xvZ0NoYW5uZWxz
KSB7CisgICAgICAgIGlmIChjaGFubmVsLT5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9u
V2l0aEFjY3VtdWxhdGlvbikKKyAgICAgICAgICAgIGNoYW5uZWwtPnN0YXRlID0gV1RGTG9nQ2hh
bm5lbFN0YXRlOjpPZmY7CisgICAgfQorCisgICAgbV9sb2dDaGFubmVsc05lZWRJbml0aWFsaXph
dGlvbiA9IHRydWU7Cit9CisKK3ZvaWQgTG9nQ2hhbm5lbHM6OmluaXRpYWxpemVMb2dDaGFubmVs
c0lmTmVjZXNzYXJ5KHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBsb2dDaGFubmVsU3RyaW5nKQorewor
ICAgIGlmICghbV9sb2dDaGFubmVsc05lZWRJbml0aWFsaXphdGlvbiAmJiAhbG9nQ2hhbm5lbFN0
cmluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9sb2dDaGFubmVsc05lZWRJbml0aWFsaXph
dGlvbiA9IGZhbHNlOworCisgICAgU3RyaW5nIGVuYWJsZWRDaGFubmVsc1N0cmluZyA9IGxvZ0No
YW5uZWxTdHJpbmcgPyBsb2dDaGFubmVsU3RyaW5nLnZhbHVlKCkgOiBsb2dMZXZlbFN0cmluZygp
OworICAgIFdURkluaXRpYWxpemVMb2dDaGFubmVsU3RhdGVzRnJvbVN0cmluZyhtX2xvZ0NoYW5u
ZWxzLmRhdGEoKSwgbV9sb2dDaGFubmVscy5zaXplKCksIGVuYWJsZWRDaGFubmVsc1N0cmluZy51
dGY4KCkuZGF0YSgpKTsKK30KKworV1RGTG9nQ2hhbm5lbCogTG9nQ2hhbm5lbHM6OmdldExvZ0No
YW5uZWwoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIHJldHVybiBXVEZMb2dDaGFubmVsQnlO
YW1lKG1fbG9nQ2hhbm5lbHMuZGF0YSgpLCBtX2xvZ0NoYW5uZWxzLnNpemUoKSwgbmFtZS51dGY4
KCkuZGF0YSgpKTsKK30KKworI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvTG9nQ2hhbm5lbHMuaCBiL1NvdXJjZS9XVEYvd3RmL0xvZ0NoYW5uZWxzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjM2NGVhZTg1Yjk1NDU3ZmYyNmY5NTMxNDcxOWIxNTAxZmRhZWMyOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvZ0NoYW5uZWxzLmgKQEAgLTAsMCArMSw1NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdURiB7CisKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNB
QkxFRAorCitjbGFzcyBMb2dDaGFubmVscyB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TG9nQ2hh
bm5lbHMoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKSA9
IDA7CisKKyAgICBib29sIGlzTG9nQ2hhbm5lbEVuYWJsZWQoY29uc3QgU3RyaW5nJiBuYW1lKTsK
KyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRMb2dDaGFubmVsVG9BY2N1bXVsYXRlKGNv
bnN0IFN0cmluZyYgbmFtZSk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgY2xlYXJBbGxM
b2dDaGFubmVsc1RvQWNjdW11bGF0ZSgpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGlu
aXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiA9IHN0
ZDo6bnVsbG9wdCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIFdURkxvZ0NoYW5uZWwqIGdldExv
Z0NoYW5uZWwoY29uc3QgU3RyaW5nJiBuYW1lKTsKKworcHJvdGVjdGVkOgorICAgIFZlY3RvcjxX
VEZMb2dDaGFubmVsKj4gbV9sb2dDaGFubmVsczsKKyAgICBib29sIG1fbG9nQ2hhbm5lbHNOZWVk
SW5pdGlhbGl6YXRpb24geyB0cnVlIH07Cit9OworCisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8
fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5o
CmluZGV4IGNmYWU0MmE0NDE3YTAxNjcyMGIwM2NlNjNjMWQ3M2YyZGQ5OTMyZmUuLjE3OGY5ODA4
YzdlZjhlMjI2Y2E1MDJlZmZjZDI3YmJlM2YzNTlmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1RocmVhZGluZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5oCkBAIC02MSw2
ICs2MSwxMiBAQAogI2luY2x1ZGUgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+CiAjZW5kaWYKIAorLy8g
WDExIGhlYWRlcnMgZGVmaW5lIGEgYnVuY2ggb2YgbWFjcm9zIHdpdGggY29tbW9uIHRlcm1zLCBp
bnRlcmZlcmluZyB3aXRoIFdlYkNvcmUgYW5kIFdURiBlbnVtIHZhbHVlcy4KKy8vIEFzIGEgd29y
a2Fyb3VuZCwgd2UgZXhwbGljaXRseSB1bmRlZiB0aGVtIGhlcmUuCisjaWYgZGVmaW5lZChOb25l
KQorI3VuZGVmIE5vbmUKKyNlbmRpZgorCiBuYW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgQWJzdHJh
Y3RMb2NrZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDI2NjE0YTdkOTc1MzIwZGI2Yjg1ZDQzZDM5Yzlh
ZDMyNTNiNTIzY2YuLjA3NzI1YTQyODM5M2IyZGZhZjI3ZGU1MjI4MzNkYmEzOGY3ODA1MDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CkBAIC0xNzU1LDYgKzE3NTUsNyBAQCBwbGF0Zm9ybS9MZW5ndGhCb3guY3Bw
CiBwbGF0Zm9ybS9MZW5ndGhQb2ludC5jcHAKIHBsYXRmb3JtL0xlbmd0aFNpemUuY3BwCiBwbGF0
Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAorcGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uY3Bw
CiBwbGF0Zm9ybS9Mb2dnaW5nLmNwcAogcGxhdGZvcm0vTG93UG93ZXJNb2RlTm90aWZpZXIuY3Bw
CiBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdiZTQ4NzYzYTY0NzkzYjA4ZTRm
NzZmZTlkMDY0NmMzNTA4OTgwNTAuLmI2MzlhNWI4ZjEyNWQ4OGQ5NDY3ZmQyMjc4ZWM4MTg5MGQ1
Njk0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTY5NzcsNiArNjk3Nyw3IEBACiAJCTFDRThEMTJCMjYxODYxNjQwMEZDM0FF
RiAvKiBEaXNwbGF5TGlzdEl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlM
aXN0SXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0U4RDEyQzI2
MTg2MTY0MDBGQzNBRUYgLyogRGlzcGxheUxpc3RJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
aXNwbGF5TGlzdEl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDRjBC
RkQ0MjI5ODcwNjgwMEVEMjA3NCAvKiBUZXh0U2l6ZUFkanVzdG1lbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVGV4dFNpemVBZGp1c3RtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUNGMThGM0MyNkJCNUFGMjAwNEIxNzIyIC8qIExvZ0luaXRpYWxpemF0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IExvZ0luaXRpYWxpemF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGls
ZWQubWFjaC1vLmR5bGliIjsgbmFtZSA9IGxpYm9iamMuZHlsaWI7IHBhdGggPSAvdXNyL2xpYi9s
aWJvYmpjLmR5bGliOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQkxRDAwMjZBMjIz
NzRENjIzMDBDQTZDREYgLyogSlNQaWN0dXJlSW5QaWN0dXJlV2luZG93LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUGljdHVyZUluUGljdHVyZVdpbmRvdy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxRDAwMjZBMzIzNzRENjI0MDBDQTZDREYgLyogSlNQaWN0
dXJlSW5QaWN0dXJlV2luZG93LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTUGljdHVyZUluUGljdHVyZVdpbmRvdy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yNzU4Nyw2ICsyNzU4OCw3IEBACiAJCQkJOTM1MjA3QkQwOUJENDEwQTAwRjIwMzhE
IC8qIExvY2FsaXplZFN0cmluZ3MuaCAqLywKIAkJCQlBODIzOURGRTA5QjNDRjhBMDBCNjA2NDEg
LyogTG9nZ2luZy5jcHAgKi8sCiAJCQkJQTgyMzlERkYwOUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dp
bmcuaCAqLywKKwkJCQkxQ0YxOEYzQzI2QkI1QUYyMDA0QjE3MjIgLyogTG9nSW5pdGlhbGl6YXRp
b24uY3BwICovLAogCQkJCTBGRENEN0YyMUQ0N0U2NTUwMDlGMDhCQyAvKiBMb2dJbml0aWFsaXph
dGlvbi5oICovLAogCQkJCTQ2RUZBRjBGMUU1RkI5RTEwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVO
b3RpZmllci5jcHAgKi8sCiAJCQkJNDZFRkFGMTAxRTVGQjlFMTAwRTdGMzRCIC8qIExvd1Bvd2Vy
TW9kZU5vdGlmaWVyLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYTG9nZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIu
Y3BwCmluZGV4IDdiZjc5MWI3NjA3YjhiMDdjODVlOTJhODQxNTVhNzkyOTIxMDJkOTUuLjMwMzY2
NjYzN2IyMGY5MDBjZTk3ZTU5MTFhZmEyNTcyZmFjMjgyYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjZW5kaWYKICNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAi
TG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSA8d3Rm
L3RleHQvVGV4dFN0cmVhbS5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVBZ2VudC5jcHAKaW5kZXggNmUyZmQ2ZmEyMWQ4
MzE1MjU2M2QwNDNiMzBjZTE1NWRlZWFhMmJhMS4uOTE0NjYzZGMzZTk4NGY5NDkwNTA4ZTE5NDY2
ZGQxZmFmM2M5MjVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2lu
Y2x1ZGUgIkNvbW1hbmRMaW5lQVBJSG9zdC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRPTUFnZW50
LmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgorI2luY2x1ZGUgIkxvZ0luaXRp
YWxpemF0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNp
bmNsdWRlICJQYWdlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBmNzc4MDc3YTI5MDUzOWMxYTE2
YjE3MjFiYjA4MmJhNzk5NTBlZTFmLi5hM2I5ZmJkMzg5YjhmYzgyZGNiYmFlYWNiMzE4ZDk1YzZl
NGIzNjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTgzLDYgKzgzLDcgQEAKICNpbmNsdWRlICJM
ZWdhY3lTY2hlbWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgiCiAj
aW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKKyNpbmNsdWRlICJMb2dJbml0aWFsaXphdGlvbi5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJMb3dQb3dlck1vZGVOb3RpZmllci5o
IgogI2luY2x1ZGUgIk1lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1YjcwN2JhMGM3Mzdl
ZWYyZmRkN2Y4ZDVkNDMxYjQyNDdhYjRkMDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5jcHAKQEAgLTAsMCArMSw3MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJMb2dJbml0aWFsaXphdGlvbi5oIgorCisjaW5jbHVkZSAi
TG9nZ2luZy5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiAhTE9HX0RJ
U0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAorCitjbGFzcyBMb2dDaGFubmVscyBmaW5h
bCA6IHB1YmxpYyBXVEY6OkxvZ0NoYW5uZWxzIHsKK3B1YmxpYzoKKyAgICBMb2dDaGFubmVscygp
CisgICAgeworICAgICAgICBtX2xvZ0NoYW5uZWxzID0geworICAgICAgICAgICAgV0VCQ09SRV9M
T0dfQ0hBTk5FTFMoTE9HX0NIQU5ORUxfQUREUkVTUykKKyAgICAgICAgfTsKKyAgICB9CisKK3By
aXZhdGU6CisgICAgU3RyaW5nIGxvZ0xldmVsU3RyaW5nKCkgZmluYWwKKyAgICB7CisgICAgICAg
IHJldHVybiBXZWJDb3JlOjpsb2dMZXZlbFN0cmluZygpOworICAgIH0KK307CisKK1dURjo6TG9n
Q2hhbm5lbHMmIGxvZ0NoYW5uZWxzKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TG9n
Q2hhbm5lbHM+IGxvZ0NoYW5uZWxzOworICAgIHJldHVybiBsb2dDaGFubmVscy5nZXQoKTsKK30K
KworV1RGTG9nQ2hhbm5lbCogZ2V0TG9nQ2hhbm5lbChjb25zdCBTdHJpbmcmIG5hbWUpCit7Cisg
ICAgcmV0dXJuIGxvZ0NoYW5uZWxzKCkuZ2V0TG9nQ2hhbm5lbChuYW1lKTsKK30KKworI2Vsc2UK
KworV1RGTG9nQ2hhbm5lbCogZ2V0TG9nQ2hhbm5lbChjb25zdCBTdHJpbmcmIG5hbWUpCit7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxF
QVNFX0xPR19ESVNBQkxFRAorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaAppbmRleCAyMzhjMjVhMjExZmNjMWUxZGFm
MDdiNTgxNTkxOTM5ODMyMTIxOTYwLi40MGRhOTMwNjNjMWY5NmEzMTYwMTU0YzVmNjYwYWZjMjFm
MTYyMWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dJbml0aWFsaXph
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDEzLCAy
MDE1LCAyMDE2IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI1LDIwICsyNSwxOCBAQAogCiAjcHJhZ21hIG9uY2UK
IAotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KyNpbmNsdWRlIDx3dGYvTG9nQ2hhbm5lbHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKIAotV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGxvZ0xldmVsU3RyaW5n
KCk7Ci1ib29sIGlzTG9nQ2hhbm5lbEVuYWJsZWQoY29uc3QgU3RyaW5nJiBuYW1lKTsKLVdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0TG9nQ2hhbm5lbFRvQWNjdW11bGF0ZShjb25zdCBTdHJpbmcmIG5h
bWUpOwotV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhckFsbExvZ0NoYW5uZWxzVG9BY2N1bXVsYXRl
KCk7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkIGluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5
KHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiA9IHN0ZDo6bnVsbG9wdCk7CitXRUJDT1JFX0VYUE9SVCBX
VEY6OkxvZ0NoYW5uZWxzJiBsb2dDaGFubmVscygpOworU3RyaW5nIGxvZ0xldmVsU3RyaW5nKCk7
CiAKICNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCitX
RUJDT1JFX0VYUE9SVCBXVEZMb2dDaGFubmVsKiBnZXRMb2dDaGFubmVsKGNvbnN0IFN0cmluZyYg
bmFtZSk7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xvZ2dpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2lu
Zy5jcHAKaW5kZXggNjFmZThkMzc1MjE1ODNkMmQ0NjUxOTM4MDUwMjg1ZjNjNDM1Nzc3MC4uN2Fj
ZjZlN2QwN2MyNzE3Y2Y0YTllYzk0MWJkMmE4NWE0MDkwOGEzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9nZ2luZy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAz
LCAyMDA2LCAyMDEzIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDMtMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSwxNyArMjUsNiBAQAogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIkxvZ0luaXRpYWxpemF0
aW9uLmgiCi0KLSNpbmNsdWRlIDx3dGYvTG9nZ2luZ0FjY3VtdWxhdG9yLmg+Ci0jaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1
ZGUgPG5vdGlmeS5oPgotI2luY2x1ZGUgPHd0Zi9CbG9ja1B0ci5oPgotI2VuZGlmCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNDQsNjcgKzMzLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
I2RlZmluZSBERUZJTkVfV0VCQ09SRV9MT0dfQ0hBTk5FTChuYW1lKSBERUZJTkVfTE9HX0NIQU5O
RUwobmFtZSwgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSkKIFdFQkNPUkVfTE9HX0NIQU5O
RUxTKERFRklORV9XRUJDT1JFX0xPR19DSEFOTkVMKQogCi1zdGF0aWMgV1RGTG9nQ2hhbm5lbCog
bG9nQ2hhbm5lbHNbXSA9IHsKLSAgICBXRUJDT1JFX0xPR19DSEFOTkVMUyhMT0dfQ0hBTk5FTF9B
RERSRVNTKQotfTsKLQotc3RhdGljIGNvbnN0IHNpemVfdCBsb2dDaGFubmVsQ291bnQgPSBXVEZf
QVJSQVlfTEVOR1RIKGxvZ0NoYW5uZWxzKTsKLQotYm9vbCBpc0xvZ0NoYW5uZWxFbmFibGVkKGNv
bnN0IFN0cmluZyYgbmFtZSkKLXsKLSAgICBXVEZMb2dDaGFubmVsKiBjaGFubmVsID0gV1RGTG9n
Q2hhbm5lbEJ5TmFtZShsb2dDaGFubmVscywgbG9nQ2hhbm5lbENvdW50LCBuYW1lLnV0ZjgoKS5k
YXRhKCkpOwotICAgIGlmICghY2hhbm5lbCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJl
dHVybiBjaGFubmVsLT5zdGF0ZSAhPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZjsKLX0KLQotc3Rh
dGljIGJvb2wgbG9nQ2hhbm5lbHNOZWVkSW5pdGlhbGl6YXRpb24gPSB0cnVlOwotCi12b2lkIHNl
dExvZ0NoYW5uZWxUb0FjY3VtdWxhdGUoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIFdURkxv
Z0NoYW5uZWwqIGNoYW5uZWwgPSBXVEZMb2dDaGFubmVsQnlOYW1lKGxvZ0NoYW5uZWxzLCBsb2dD
aGFubmVsQ291bnQsIG5hbWUudXRmOCgpLmRhdGEoKSk7Ci0gICAgaWYgKCFjaGFubmVsKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBjaGFubmVsLT5zdGF0ZSA9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6
T25XaXRoQWNjdW11bGF0aW9uOwotICAgIGxvZ0NoYW5uZWxzTmVlZEluaXRpYWxpemF0aW9uID0g
dHJ1ZTsKLX0KLQotdm9pZCBjbGVhckFsbExvZ0NoYW5uZWxzVG9BY2N1bXVsYXRlKCkKLXsKLSAg
ICByZXNldEFjY3VtdWxhdGVkTG9ncygpOwotICAgIGZvciAoYXV0byogY2hhbm5lbCA6IGxvZ0No
YW5uZWxzKSB7Ci0gICAgICAgIGlmIChjaGFubmVsLT5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3Rh
dGU6Ok9uV2l0aEFjY3VtdWxhdGlvbikKLSAgICAgICAgICAgIGNoYW5uZWwtPnN0YXRlID0gV1RG
TG9nQ2hhbm5lbFN0YXRlOjpPZmY7Ci0gICAgfQotCi0gICAgbG9nQ2hhbm5lbHNOZWVkSW5pdGlh
bGl6YXRpb24gPSB0cnVlOwotfQotCi12b2lkIGluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNz
YXJ5KHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBsb2dDaGFubmVsU3RyaW5nKQotewotICAgIGlmICgh
bG9nQ2hhbm5lbHNOZWVkSW5pdGlhbGl6YXRpb24gJiYgIWxvZ0NoYW5uZWxTdHJpbmcpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGxvZ0NoYW5uZWxzTmVlZEluaXRpYWxpemF0aW9uID0gZmFsc2U7
Ci0KLSAgICBTdHJpbmcgZW5hYmxlZENoYW5uZWxzU3RyaW5nID0gbG9nQ2hhbm5lbFN0cmluZyA/
IGxvZ0NoYW5uZWxTdHJpbmcudmFsdWUoKSA6IGxvZ0xldmVsU3RyaW5nKCk7Ci0gICAgV1RGSW5p
dGlhbGl6ZUxvZ0NoYW5uZWxTdGF0ZXNGcm9tU3RyaW5nKGxvZ0NoYW5uZWxzLCBsb2dDaGFubmVs
Q291bnQsIGVuYWJsZWRDaGFubmVsc1N0cmluZy51dGY4KCkuZGF0YSgpKTsKLS8vICAgIExvZ0V2
ZW50TG9vcC5zdGF0ZSA9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T247Ci19Ci0KLVdURkxvZ0NoYW5u
ZWwqIGdldExvZ0NoYW5uZWwoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIHJldHVybiBXVEZM
b2dDaGFubmVsQnlOYW1lKGxvZ0NoYW5uZWxzLCBsb2dDaGFubmVsQ291bnQsIG5hbWUudXRmOCgp
LmRhdGEoKSk7Ci19Ci0KLSNlbHNlCi0KLVdURkxvZ0NoYW5uZWwqIGdldExvZ0NoYW5uZWwoY29u
c3QgU3RyaW5nJikKLXsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQogI2VuZGlmIC8vICFMT0df
RElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCA4MjM1ODQzZmE1MTI5NTVjN2NlYjVl
ZmRmY2RmOTNkZTRhNTllMjMyLi43NjRlZWY3YmIyZTFmNDc3ZmM0OGFlM2FhN2RhODgzYzZlOWNj
MTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCkBAIC0xMzMsNiArMTMzLDQgQEAgV0VC
Q09SRV9MT0dfQ0hBTk5FTFMoREVDTEFSRV9MT0dfQ0hBTk5FTCkKIAogI2VuZGlmIC8vICFMT0df
RElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKLVdFQkNPUkVfRVhQT1JUIFdURkxv
Z0NoYW5uZWwqIGdldExvZ0NoYW5uZWwoY29uc3QgU3RyaW5nJiBuYW1lKTsKLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJD
b3JlVGVzdFN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVz
dFN1cHBvcnQuY3BwCmluZGV4IDhkZGM0MGU1NzhmNWIxNmI2ZTBkZmJkNTk0NDJlZjdjYjA0MDBm
NDQuLjQzNDY1Yzk0OTMzMTBlODM1OWI0NzM0YWVhYjU4NmJmNDExNTFhNzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKQEAgLTM2LDYg
KzM2LDcgQEAKICNpbmNsdWRlICJKU1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuaCIKICNpbmNsdWRl
ICJKU1dvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiTG9nSW5pdGlhbGl6YXRpb24uaCIK
KyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTW9ja0dhbWVwYWRQcm92aWRlci5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTV0NvbnRleHRNYW5hZ2VyLmgiCkBAIC0xMjIs
NyArMTIzLDcgQEAgdm9pZCBjbGVhcldoZWVsRXZlbnRUZXN0TW9uaXRvcihXZWJDb3JlOjpGcmFt
ZSYgZnJhbWUpCiB2b2lkIHNldExvZ0NoYW5uZWxUb0FjY3VtdWxhdGUoY29uc3QgU3RyaW5nJiBu
YW1lKQogewogI2lmICFMT0dfRElTQUJMRUQKLSAgICBXZWJDb3JlOjpzZXRMb2dDaGFubmVsVG9B
Y2N1bXVsYXRlKG5hbWUpOworICAgIGxvZ0NoYW5uZWxzKCkuc2V0TG9nQ2hhbm5lbFRvQWNjdW11
bGF0ZShuYW1lKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG5hbWUpOwogI2VuZGlmCkBAIC0x
MzEsMTQgKzEzMiwxNCBAQCB2b2lkIHNldExvZ0NoYW5uZWxUb0FjY3VtdWxhdGUoY29uc3QgU3Ry
aW5nJiBuYW1lKQogdm9pZCBjbGVhckFsbExvZ0NoYW5uZWxzVG9BY2N1bXVsYXRlKCkKIHsKICNp
ZiAhTE9HX0RJU0FCTEVECi0gICAgV2ViQ29yZTo6Y2xlYXJBbGxMb2dDaGFubmVsc1RvQWNjdW11
bGF0ZSgpOworICAgIGxvZ0NoYW5uZWxzKCkuY2xlYXJBbGxMb2dDaGFubmVsc1RvQWNjdW11bGF0
ZSgpOwogI2VuZGlmCiB9CiAKIHZvaWQgaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnko
KQogewogI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgV2Vi
Q29yZTo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKKyAgICBsb2dDaGFubmVs
cygpLmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCk7CiAjZW5kaWYKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCmluZGV4IDdlZGQxNDg3OTlhOWViOWJmMjI1Y2E2ODdkYjVlMWM1MWM4NDAxMzAuLmFj
NzMyNWI0Y2UyYzQyM2Y2NjhjODRlNDE1NWM3NmM3NTA5ZTlhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAg
LTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNs
dWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dn
aW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTm93UGxheWluZ01hbmFnZXIuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAppbmRleCBiMmJiM2MwMDcwZThmNTZhOTc4NTE2OTg1ZDY4
NDRkNDFiMWIxZjMwLi5lZDdmMjllNmUwODA2Mjc4NTI4OWU0MTAwM2U2ODEzZmY5OGE1YTljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCkBAIC0yNDMsOCArMjQzLDgg
QEAgdm9pZCBHUFVQcm9jZXNzOjppbml0aWFsaXplR1BVUHJvY2VzcyhHUFVQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICNlbmRpZgogCiAjaWYgIUxPR19ESVNBQkxFRCB8
fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSAgICBXZWJDb3JlOjppbml0aWFsaXplTG9nQ2hhbm5l
bHNJZk5lY2Vzc2FyeShwYXJhbWV0ZXJzLndlYkNvcmVMb2dnaW5nQ2hhbm5lbHMpOwotICAgIFdl
YktpdDo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkocGFyYW1ldGVycy53ZWJLaXRM
b2dnaW5nQ2hhbm5lbHMpOworICAgIFdlYkNvcmU6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxv
Z0NoYW5uZWxzSWZOZWNlc3NhcnkocGFyYW1ldGVycy53ZWJDb3JlTG9nZ2luZ0NoYW5uZWxzKTsK
KyAgICBXZWJLaXQ6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nh
cnkocGFyYW1ldGVycy53ZWJLaXRMb2dnaW5nQ2hhbm5lbHMpOwogI2VuZGlmCiAKICAgICAvLyBN
YXRjaCB0aGUgUW9TIG9mIHRoZSBVSVByb2Nlc3Mgc2luY2UgdGhlIEdQVSBwcm9jZXNzIGlzIGRv
aW5nIHJlbmRlcmluZyBvbiBpdHMgYmVoYWxmLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xv
Z0luaXRpYWxpemF0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYzYzYTU0YjBjMWRhNTU4ODQxODA4YWFm
NzNjMDcxNmMwMjY1MGVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9Mb2dJbml0aWFsaXphdGlvbi5jcHAKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMb2dJbml0aWFsaXphdGlvbi5oIgorCisjaW5j
bHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxF
RAorCitjbGFzcyBMb2dDaGFubmVscyBmaW5hbCA6IHB1YmxpYyBXVEY6OkxvZ0NoYW5uZWxzIHsK
K3B1YmxpYzoKKyAgICBMb2dDaGFubmVscygpCisgICAgeworICAgICAgICBtX2xvZ0NoYW5uZWxz
ID0geworICAgICAgICAgICAgV0VCS0lUMl9MT0dfQ0hBTk5FTFMoTE9HX0NIQU5ORUxfQUREUkVT
UykKKyAgICAgICAgfTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgU3RyaW5nIGxvZ0xldmVsU3Ry
aW5nKCkgZmluYWwKKyAgICB7CisgICAgICAgIHJldHVybiBXZWJLaXQ6OmxvZ0xldmVsU3RyaW5n
KCk7CisgICAgfQorfTsKKworV1RGOjpMb2dDaGFubmVscyYgbG9nQ2hhbm5lbHMoKQoreworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMb2dDaGFubmVscz4gbG9nQ2hhbm5lbHM7CisgICAgcmV0
dXJuIGxvZ0NoYW5uZWxzLmdldCgpOworfQorCitXVEZMb2dDaGFubmVsKiBnZXRMb2dDaGFubmVs
KGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICByZXR1cm4gbG9nQ2hhbm5lbHMoKS5nZXRMb2dD
aGFubmVsKG5hbWUpOworfQorCisjZWxzZQorCitXVEZMb2dDaGFubmVsKiBnZXRMb2dDaGFubmVs
KGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworI2VuZGlm
IC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dJbml0aWFs
aXphdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5oCmlu
ZGV4IDI1NmE0NTk3MzE4ZDExYWRlZGUwNzViMWUxMjE1ZmQ2M2NmZWFmODEuLmY4NzZiZTdkYjNk
YWY3NmYyMjA0YjNkNGM3ODQyMjhhYjJiYTQ3OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0xvZ0luaXRpYWxpemF0aW9uLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEwLCAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSwxNSArMjUsMTggQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlIDx3dGYvTG9nQ2hhbm5lbHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAotI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIGluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVj
ZXNzYXJ5KHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiA9IHN0ZDo6bnVsbG9wdCk7Ci1TdHJpbmcgbG9n
TGV2ZWxTdHJpbmcoKTsKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxF
RAogCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKK1dURjo6TG9nQ2hhbm5lbHMmIGxvZ0NoYW5uZWxz
KCk7CitTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKTsKIAogI2VuZGlmIC8vICFMT0dfRElTQUJMRUQg
fHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisKK1dURkxvZ0NoYW5uZWwqIGdldExvZ0NoYW5uZWwo
Y29uc3QgU3RyaW5nJiBuYW1lKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9Mb2dnaW5nLmNwcAppbmRleCA4NTFmMjU2MzNlY2NhMDgyNWIwMmI0ZjhjNDc0ZTdiYjFi
YzZlZDU5Li41YTgyM2RlM2ZhNTllM2NjNjVjZmM5YjgyYzI1MGNjNDE3MTQwYWRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vTG9nZ2luZy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEwLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcwogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjYs
NDAgKzI2LDEwIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
Ci0jaW5jbHVkZSAiTG9nSW5pdGlhbGl6YXRpb24uaCIKLQotI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KIAogI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAK
ICNkZWZpbmUgREVGSU5FX1dFQktJVDJfTE9HX0NIQU5ORUwobmFtZSkgREVGSU5FX0xPR19DSEFO
TkVMKG5hbWUsIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0pCiBXRUJLSVQyX0xPR19DSEFO
TkVMUyhERUZJTkVfV0VCS0lUMl9MT0dfQ0hBTk5FTCkKIAotc3RhdGljIFdURkxvZ0NoYW5uZWwq
IGxvZ0NoYW5uZWxzW10gPSB7Ci0gICAgV0VCS0lUMl9MT0dfQ0hBTk5FTFMoTE9HX0NIQU5ORUxf
QUREUkVTUykKLX07Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1zdGF0aWMgY29uc3Qgc2l6ZV90
IGxvZ0NoYW5uZWxDb3VudCA9IFdURl9BUlJBWV9MRU5HVEgobG9nQ2hhbm5lbHMpOwotc3RhdGlj
IGJvb2wgbG9nQ2hhbm5lbHNOZWVkSW5pdGlhbGl6YXRpb24gPSB0cnVlOwotCi12b2lkIGluaXRp
YWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBsb2dDaGFu
bmVsU3RyaW5nKQotewotICAgIGlmICghbG9nQ2hhbm5lbHNOZWVkSW5pdGlhbGl6YXRpb24gJiYg
IWxvZ0NoYW5uZWxTdHJpbmcpCi0gICAgICAgIHJldHVybjsKLQotICAgIGxvZ0NoYW5uZWxzTmVl
ZEluaXRpYWxpemF0aW9uID0gZmFsc2U7Ci0KLSAgICBTdHJpbmcgZW5hYmxlZENoYW5uZWxzU3Ry
aW5nID0gbG9nQ2hhbm5lbFN0cmluZyA/IGxvZ0NoYW5uZWxTdHJpbmcudmFsdWUoKSA6IGxvZ0xl
dmVsU3RyaW5nKCk7Ci0gICAgV1RGSW5pdGlhbGl6ZUxvZ0NoYW5uZWxTdGF0ZXNGcm9tU3RyaW5n
KGxvZ0NoYW5uZWxzLCBsb2dDaGFubmVsQ291bnQsIGVuYWJsZWRDaGFubmVsc1N0cmluZy51dGY4
KCkuZGF0YSgpKTsKLX0KLQotV1RGTG9nQ2hhbm5lbCogZ2V0TG9nQ2hhbm5lbChjb25zdCBTdHJp
bmcmIG5hbWUpCi17Ci0gICAgcmV0dXJuIFdURkxvZ0NoYW5uZWxCeU5hbWUobG9nQ2hhbm5lbHMs
IGxvZ0NoYW5uZWxDb3VudCwgbmFtZS51dGY4KCkuZGF0YSgpKTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0Ci0KICNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNB
QkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmggYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCA5ODBhMjU5MTFkMGI4OGQ1NGJjNmZh
ZDdkMGIyODc2YmNjNzkyZDhiLi5kNGQzMjY1Y2MwN2MzMTc3YmRhNTAyYTlkMjQ4OTQ1YTM2ODRj
NjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaApAQCAtMTEyLDEzICsxMTIsOCBAQCBXRUJL
SVQyX0xPR19DSEFOTkVMUyhERUNMQVJFX0xPR19DSEFOTkVMKQogCiAjdW5kZWYgREVDTEFSRV9M
T0dfQ0hBTk5FTAogCi1uYW1lc3BhY2UgV2ViS2l0IHsKLVdURkxvZ0NoYW5uZWwqIGdldExvZ0No
YW5uZWwoY29uc3QgU3RyaW5nJik7Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQogI2lmZGVmIF9f
Y3BsdXNwbHVzCiB9CiAjZW5kaWYKIAogI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGls
aWFyeVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5j
cHAKaW5kZXggOTRmOTRlOTI2YzNlOTEzNjEwY2VkZWIyYjdlZDRjYTFhMzk1ZTRhMC4uMDk1Y2Y0
NTkxNDYyMWMxODgzMmJhYTk1NjY3NWYzYjBkODFkNzJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKQEAgLTgyLDggKzgyLDggQEAgdm9pZCBBdXhpbGlhcnlQ
cm9jZXNzOjppbml0aWFsaXplKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBh
cmFtZXRlcnMKICAgICBpbml0aWFsaXplU2FuZGJveChwYXJhbWV0ZXJzLCBzYW5kYm94UGFyYW1l
dGVycyk7CiAKICNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAotICAg
IFdlYkNvcmU6OmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCk7Ci0gICAgV2ViS2l0
Ojppbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOworICAgIFdlYkNvcmU6OmxvZ0No
YW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKKyAgICBXZWJLaXQ6
OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKICNlbmRp
ZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCiAgICAgaW5pdGlh
bGl6ZVByb2Nlc3NOYW1lKHBhcmFtZXRlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViS2l0MkluaXRpYWxpemUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2l0
MkluaXRpYWxpemUuY3BwCmluZGV4IDUyNjY4Zjk1M2E0YjM4NmM5YjdjYzM2ODM5OWJmOTQzMWRk
MDIzNjcuLjIzM2IzMGYyMmFkNjQxNmEwYTNlMDQ3YmRkOWVlMzlmMzUxYjczZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAKQEAgLTQ3LDggKzQ3LDggQEAg
dm9pZCBJbml0aWFsaXplV2ViS2l0MigpCiAgICAgV1RGOjpSZWZDb3VudGVkQmFzZTo6ZW5hYmxl
VGhyZWFkaW5nQ2hlY2tzR2xvYmFsbHkoKTsKIAogI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECi0gICAgV2ViQ29yZTo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNl
c3NhcnkoKTsKLSAgICBXZWJLaXQ6OmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCk7
CisgICAgV2ViQ29yZTo6bG9nQ2hhbm5lbHMoKS5pbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vz
c2FyeSgpOworICAgIFdlYktpdDo6bG9nQ2hhbm5lbHMoKS5pbml0aWFsaXplTG9nQ2hhbm5lbHNJ
Zk5lY2Vzc2FyeSgpOwogI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECiAKICAgICBXZWJDb3JlOjpwb3B1bGF0ZUpJVE9wZXJhdGlvbnMoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CmluZGV4IGYzMDMxZTc5MmJlYjQ1M2YxNjdkODgxM2U4OGFiZWNiYzJiNWNiN2IuLmI2OTI4MjFj
YjdlOTAyYzEwNGJhMDM4YTUyZDQzODJkOWMzY2E1ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMTM1LDYg
KzEzNSw3IEBAIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLmNwcAog
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5LmNw
cAogCiAvLyBUT0RPOiBXZSBzaG91bGQgdW5pZnkgdGhlc2UgZmlsZXMgb25jZSBHVEsncyBQbHVn
aW5Qcm9jZXNzMiBpcyByZW1vdmVkLgorUGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uY3BwIEBu
by11bmlmeQogUGxhdGZvcm0vTG9nZ2luZy5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9Nb2R1bGUu
Y3BwIEBuby11bmlmeQogUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmNwcCBAbm8tdW5pZnkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGU3ZTA0MGJiYWM3OTkzMmRj
NTA0Y2ZjODAwMGYyY2M1OGRlMGVkOWUuLmJhZjU2MmM1MTk4M2E0ZTQ3ZmRkZDI5Mjg0Yzk4OTBm
NzU3ZDYzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
NjgsNiArNjgsNyBAQAogI2luY2x1ZGUgIkZyYW1lSW5mb0RhdGEuaCIKICNpbmNsdWRlICJMZWdh
Y3lHbG9iYWxTZXR0aW5ncy5oIgogI2luY2x1ZGUgIkxvYWRQYXJhbWV0ZXJzLmgiCisjaW5jbHVk
ZSAiTG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAi
TmF0aXZlV2ViR2VzdHVyZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVu
dC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDJl
YWI2YmNiODliOGI3OWE3ZGNmM2NkY2Q0OWMwNmQ1YWNkMjEyYjMuLjgzNmIwNDAzZGE1N2IzNzQx
ZDExYjI2ZWE4M2MzNzVkZTVmOThmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAKQEAgLTI1MSw4ICsyNTEsOCBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJv
Y2Vzc1Bvb2woQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAg
ICAgcmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKTsKIAogI2lmICFMT0dfRElTQUJM
RUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgV2ViQ29yZTo6aW5pdGlhbGl6ZUxvZ0No
YW5uZWxzSWZOZWNlc3NhcnkoKTsKLSAgICBXZWJLaXQ6OmluaXRpYWxpemVMb2dDaGFubmVsc0lm
TmVjZXNzYXJ5KCk7CisgICAgV2ViQ29yZTo6bG9nQ2hhbm5lbHMoKS5pbml0aWFsaXplTG9nQ2hh
bm5lbHNJZk5lY2Vzc2FyeSgpOworICAgIFdlYktpdDo6bG9nQ2hhbm5lbHMoKS5pbml0aWFsaXpl
TG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwogI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzYzU4NmNiMDYzNjA3MTdiNGEy
NWRhMDQ1MmEwNTliODc3ODkyYzQ1Li42YzFkYzc1ZGExZmRlNzg5MGE5MTVlM2Q5MGRmZDM5OWM3
MzMzODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTMsNyArMyw3IEBACiAJYXJjaGl2ZVZlcnNpb24gPSAxOwogCWNsYXNzZXMgPSB7
CiAJfTsKLQlvYmplY3RWZXJzaW9uID0gNTI7CisJb2JqZWN0VmVyc2lvbiA9IDU0OwogCW9iamVj
dHMgPSB7CiAKIC8qIEJlZ2luIFBCWEFnZ3JlZ2F0ZVRhcmdldCBzZWN0aW9uICovCkBAIC00NDEs
NiArNDQxLDcgQEAKIAkJMUNBOEI5NDYxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclVJ
UHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclVJUHJveHlNZXNz
YWdlcy5oICovOyB9OwogCQkxQ0JCRTRBMDE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9y
VUlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUNCQkU0OUUxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMUNCQkU0QTExOUI2NkM1MzAwNkI3RDgxIC8qIFdl
Ykluc3BlY3RvclVJTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDQkJFNDlGMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1l
c3NhZ2VzLmggKi87IH07CisJCTFDRjE4RjNGMjZCQjVEOTUwMDRCMTcyMiAvKiBMb2dJbml0aWFs
aXphdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQ0YxOEYzRTI2QkI1RDkwMDA0QjE3MjIgLyogTG9nSW5pdGlhbGl6YXRpb24uY3BwICovOyB9
OwogCQkxRDRENzM3MDIzQTlFNTQ3MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMUQ0RDczNzEyM0E5RTU2MjAw
NzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3MzZDMjNBOURGNjAwMDcx
N0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CiAJCTFE
NEQ3Mzc2MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3Nh
Z2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXNSZXBsaWVzLmggKi87IH07CkBAIC0zMDQ5LDYgKzMwNTAsNyBAQAogCQkxQ0E4Qjk0
NDEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5o
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSVByb3h5TWVzc2Fn
ZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNCQkU0OUUxOUI2
NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNz
YWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkx
Q0JCRTQ5RjE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmg7IHBh
dGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJTWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUNGMThGM0UyNkJCNUQ5MDAwNEIx
NzIyIC8qIExvZ0luaXRpYWxpemF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvZ0luaXRp
YWxpemF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQwNTMwQzkyNThF
QUI0NDAwRTQzNkY3IC8qIGNvbWJpbmUtZmVhdHVyZS1mbGFncy1wbGlzdC5weSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhv
bjsgcGF0aCA9ICJjb21iaW5lLWZlYXR1cmUtZmxhZ3MtcGxpc3QucHkiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxRDA1MzBEMTI1OTE2MkM4MDBFNDM2RjcgLyogV2ViS2l0LWlvcy5w
bGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQucGxpc3QueG1sOyBwYXRoID0gIldlYktpdC1pb3MucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxRDA1MzBEMjI1OTE2MkM5MDBFNDM2RjcgLyogV2ViS2l0LWFwcGxldHZv
cy5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQucGxpc3QueG1sOyBwYXRoID0gIldlYktpdC1hcHBsZXR2b3MucGxpc3QiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjAwMCw3ICs2MDAyLDYgQEAKIAkJRjQwQkJCNDAyNTdG
RjQ2RTAwNjc0NjNBIC8qIEdQVVByb2Nlc3NXYWtldXBNZXNzYWdlQXJndW1lbnRzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdQVVByb2Nlc3NXYWtldXBNZXNzYWdlQXJndW1lbnRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0MEQxQjY4MjIwQkRDMEYwMEI0OUEwMSAvKiBXZWJBdXRvY29y
cmVjdGlvbkNvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViQXV0b2NvcnJlY3Rpb25Db250ZXh0
Lmg7IHBhdGggPSBpb3MvV2ViQXV0b2NvcnJlY3Rpb25Db250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0MTA1NjYxMjEzMDY5OUEwMDkyMjgxRCAvKiBBUElBdHRhY2htZW50
Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBUElBdHRhY2htZW50Q29jb2EubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0MTRDRTJBMjY5RERFRDEwMEJEMjE2QSAvKiBH
UFVQcm9jZXNzQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBHUFVQcm9jZXNzQ29jb2EubW07IHBhdGggPSBjb2NvYS9HUFVQcm9jZXNzQ29jb2EubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MTRDRTJDMjY5REU2RUEwMEJEMjE2QSAvKiBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MkQ2MzNG
MjJBMEVGRDMwMEQyRkIzQSAvKiBXZWJBdXRvY29ycmVjdGlvbkRhdGEuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViQXV0b2NvcnJlY3Rpb25EYXRhLmg7IHBhdGggPSBpb3Mv
V2ViQXV0b2NvcnJlY3Rpb25EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0
MkQ2MzQwMjJBMEVGRDMwMEQyRkIzQSAvKiBXZWJBdXRvY29ycmVjdGlvbkRhdGEubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJBdXRvY29ycmVjdGlvbkRhdGEu
bW07IHBhdGggPSBpb3MvV2ViQXV0b2NvcnJlY3Rpb25EYXRhLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTA2OTcsNiArMTA2OTgsNyBAQAogCQkJCUVDQkZDMURCMUU2QTRENjYw
MDAzMDBDNyAvKiBFeHRyYVB1YmxpY1N5bWJvbHNGb3JUQVBJLmggKi8sCiAJCQkJNTFBN0YyRjQx
MjVCRjhENDAwOEFFQjFEIC8qIExvZ2dpbmcuY3BwICovLAogCQkJCTUxQTdGMkYyMTI1QkY4MjAw
MDhBRUIxRCAvKiBMb2dnaW5nLmggKi8sCisJCQkJMUNGMThGM0UyNkJCNUQ5MDAwNEIxNzIyIC8q
IExvZ0luaXRpYWxpemF0aW9uLmNwcCAqLywKIAkJCQkwRkRDRDdGNjFENDdFOTJBMDA5RjA4QkMg
LyogTG9nSW5pdGlhbGl6YXRpb24uaCAqLywKIAkJCQlDMEUzQUE0NTEyMDlFMkJBMDBBNDlEMDEg
LyogTW9kdWxlLmNwcCAqLywKIAkJCQlDMEUzQUE0NDEyMDlFMkJBMDBBNDlEMDEgLyogTW9kdWxl
LmggKi8sCkBAIC0xMTcxNiwxNCArMTE3MTgsNiBAQAogCQkJcGF0aCA9IGNhY2hlOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJRjQxNENFMjcyNjlEREU4MDAwQkQyMTZBIC8q
IGNvY29hICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQlG
NDE0Q0UyQTI2OURERUQxMDBCRDIxNkEgLyogR1BVUHJvY2Vzc0NvY29hLm1tICovLAotCQkJKTsK
LQkJCW5hbWUgPSBjb2NvYTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCUY2
Mzg5NTVBMTMzQkY1N0QwMDg5NDFENSAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKApAQCAtMTQyMzUsNiArMTQyMjksNyBAQAogCQkJCTUxRjA2MEUxMTY1
NDMxODUwMEYzMjgxQyAvKiBMaWJXZWJSVENOZXR3b3JrTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTQ0OUQ5MERBMjFGREMzMEIwMEY2NzdDMCAvKiBMb2NhbEF1dGhlbnRp
Y2F0aW9uU29mdExpbmsubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc3OTIxMkI2QTYxMDBG
NDkzRkQgLyogTG9nZ2luZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQ0YxOEYzRjI2QkI1RDk1
MDA0QjE3MjIgLyogTG9nSW5pdGlhbGl6YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDdF
MTlFRkIyM0Q0MDFGMTAwOTRGRkI0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxREYyOUU2NDI1N0YzN0EzMDAzQzI4QUYg
LyogTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTlCNDc5MDkxMjUzMTU2MzIwMEVDMTFBQiAvKiBNZXNzYWdlQXJndW1lbnREZXNj
cmlwdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCBkZDFlZmY1YmFiYjZhNTRlZmE5N2M2
MDU3MjBlODVlYjAxYzg5NjcxLi5lNGVjMDYzYjcwZWU3YzYwZjcxOTY0M2YxN2VkNGE3NTkzYWE3
ZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0KQEAgLTI4MSw4ICsyODEsOCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5p
dGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAg
IH0KIAogI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgV2Vi
Q29yZTo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkocGFyYW1ldGVycy53ZWJDb3Jl
TG9nZ2luZ0NoYW5uZWxzKTsKLSAgICBXZWJLaXQ6OmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVj
ZXNzYXJ5KHBhcmFtZXRlcnMud2ViS2l0TG9nZ2luZ0NoYW5uZWxzKTsKKyAgICBXZWJDb3JlOjps
b2dDaGFubmVscygpLmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHBhcmFtZXRlcnMu
d2ViQ29yZUxvZ2dpbmdDaGFubmVscyk7CisgICAgV2ViS2l0Ojpsb2dDaGFubmVscygpLmluaXRp
YWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHBhcmFtZXRlcnMud2ViS2l0TG9nZ2luZ0NoYW5u
ZWxzKTsKICNlbmRpZgogCiAgICAgbV91aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyID0gcGFyYW1l
dGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9XZWJLaXRMZWdhY3kueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MWRiMDRiYmZiYjM1Mzg1ZjU4OTA2YTJmZGI3MjUxOWE2MTljMzI4Zi4uYTc4YTVjYzZmNzI2NGMx
YTA0YjQ3YTBjNTE2N2RjZjAyOWQ2MDlkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9XZWJLaXRMZWdhY3kueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTEs
NiArMTExLDcgQEAKIAkJMUM2OEY2NzIwOTVCNUZDMTAwQzI5ODRFIC8qIFdlYk5vZGVIaWdobGln
aHRWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUM2OEY2NjYwOTVCNUZDMTAwQzI5ODRFIC8qIFdlYk5vZGVIaWdobGlnaHRWaWV3Lm1tICovOyB9
OwogCQkxQzdCMEM2NjBFQjI0NjREMDBBMjg1MDIgLyogV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM3QjBDNjUw
RUIyNDY0RDAwQTI4NTAyIC8qIFdlYkluc3BlY3RvckNsaWVudENGLmNwcCAqLzsgfTsKIAkJMUM4
Q0IwN0EwQUU5ODMwQzAwQjFGNkU5IC8qIFdlYkVkaXRpbmdEZWxlZ2F0ZVByaXZhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOENCMDc5MEFFOTgz
MEMwMEIxRjZFOSAvKiBXZWJFZGl0aW5nRGVsZWdhdGVQcml2YXRlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUNGMThGNDEyNkJCNzFCNzAwNEIx
NzIyIC8qIFdlYktpdExvZ0luaXRpYWxpemF0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGMThGNDAyNkJCNzFCNzAwNEIxNzIyIC8qIFdlYktp
dExvZ0luaXRpYWxpemF0aW9uLm1tICovOyB9OwogCQkyMkYyMTlDQzA4RDIzNjczMDAzMEUwNzgg
LyogV2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMjJGMjE5Q0IwOEQyMzY3MzAwMzBFMDc4IC8qIFdlYkJhY2tG
b3J3YXJkTGlzdFByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkyOUFFRjk2MDEzNEM3NkZCMDBGRTUwOTYgLyogT3V0bG9va1F1aXJrc1Vz
ZXJTY3JpcHQuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI5QUVGOTVEMTM0Qzc1NTQwMEZFNTA5NiAvKiBPdXRsb29rUXVpcmtzVXNlclNjcmlwdC5q
cyAqLzsgfTsKIAkJMkQyNTM5NjYxOENFODVDMjAwMjcwMjIyIC8qIFdlYlNoYXJpbmdTZXJ2aWNl
UGlja2VyQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkQyNTM5NjQxOENFODVDMjAwMjcwMjIyIC8qIFdlYlNoYXJpbmdTZXJ2aWNlUGlj
a2VyQ29udHJvbGxlci5oICovOyB9OwpAQCAtODMxLDYgKzgzMiw4IEBACiAJCTFDOTA0RkQzMEJB
OUREMEYwMDgxRTlEMCAvKiBWZXJzaW9uLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZp
ZzsgcGF0aCA9IFZlcnNpb24ueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFDOTA0RkQ0MEJBOUREMEYwMDgxRTlEMCAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gRGVidWdSZWxlYXNlLnhjY29uZmlnOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQzkwNEZENTBCQTlERDBGMDA4MUU5RDAgLyogQmFzZS54
Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmlnOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0YxOEY0MDI2QkI3MUI3MDA0QjE3MjIgLyog
V2ViS2l0TG9nSW5pdGlhbGl6YXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJLaXRM
b2dJbml0aWFsaXphdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNGMThG
NDIyNkJCNzFEMzAwNEIxNzIyIC8qIFdlYktpdExvZ0luaXRpYWxpemF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYktpdExvZ0luaXRpYWxpemF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTIyRjIxOUNCMDhEMjM2NzMwMDMwRTA3OCAvKiBXZWJCYWNrRm9yd2FyZExpc3RQcml2
YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5k
ZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJMjU2OEM3MkMwMTc0OTEyRDBFQ0ExNDlFIC8q
IFdlYktpdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYktpdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNU
YWJzID0gMDsgfTsKIAkJMjlBRUY5NUQxMzRDNzU1NDAwRkU1MDk2IC8qIE91dGxvb2tRdWlya3NV
c2VyU2NyaXB0LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gT3V0
bG9va1F1aXJrc1VzZXJTY3JpcHQuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
Nzg3LDYgKzE3OTAsOCBAQAogCQkJCTUzNjVBRUQ5MjU2NjM0NTgwMDcwNDY3OSAvKiBXZWJLaXRM
ZWdhY3lfUHJpdmF0ZS5oICovLAogCQkJCTkzQUVCMTdEMDMyQzE3MzUwMDg2MzVDRSAvKiBXZWJL
aXRMb2dnaW5nLmggKi8sCiAJCQkJOTNBRUIxN0UwMzJDMTczNTAwODYzNUNFIC8qIFdlYktpdExv
Z2dpbmcubSAqLywKKwkJCQkxQ0YxOEY0MjI2QkI3MUQzMDA0QjE3MjIgLyogV2ViS2l0TG9nSW5p
dGlhbGl6YXRpb24uaCAqLywKKwkJCQkxQ0YxOEY0MDI2QkI3MUI3MDA0QjE3MjIgLyogV2ViS2l0
TG9nSW5pdGlhbGl6YXRpb24ubW0gKi8sCiAJCQkJNzA4MkY1NkYwMzhFQURBQTAwQTgwMTgwIC8q
IFdlYktpdE5TU3RyaW5nRXh0cmFzLmggKi8sCiAJCQkJNzA4MkY1NzAwMzhFQURBQTAwQTgwMTgw
IC8qIFdlYktpdE5TU3RyaW5nRXh0cmFzLm1tICovLAogCQkJCUY1MzQ0NENFMDJFODdDQkEwMTg2
MzVDQSAvKiBXZWJLaXRTdGF0aXN0aWNzLmggKi8sCkBAIC0zNjUxLDYgKzM2NTYsNyBAQAogCQkJ
CTkzOTgxMTAzMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJLaXRFcnJvcnMubSBpbiBTb3VyY2VzICov
LAogCQkJCUNEOEJGQ0U3MTU1MzEyMjQwMDVBRkIyNSAvKiBXZWJLaXRGdWxsU2NyZWVuTGlzdGVu
ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk5Mzk4MTBDMzA4MjRCRjAxMDA4REYwMzggLyogV2Vi
S2l0TG9nZ2luZy5tIGluIFNvdXJjZXMgKi8sCisJCQkJMUNGMThGNDEyNkJCNzFCNzAwNEIxNzIy
IC8qIFdlYktpdExvZ0luaXRpYWxpemF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5ODEw
QzQwODI0QkYwMTAwOERGMDM4IC8qIFdlYktpdE5TU3RyaW5nRXh0cmFzLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUFBRjVEMEYwRURERTdBNzAwOEQ4ODNEIC8qIFdlYktpdFBsdWdpbkFnZW50LmRl
ZnMgaW4gU291cmNlcyAqLywKIAkJCQkxQUFGNUQwMDBFRERFNjA0MDA4RDg4M0QgLyogV2ViS2l0
UGx1Z2luQ2xpZW50LmRlZnMgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0TG9nSW5pdGlhbGl6YXRpb24uaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0TG9nSW5pdGlhbGl6YXRpb24uaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
YzhkYTk3ZTk5M2NiODZhNjA5NTRhOTg2ZGMyYWU2M2E5N2E2N2VjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRMb2dJbml0aWFsaXphdGlvbi5o
CkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
IDx3dGYvTG9nQ2hhbm5lbHMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19E
SVNBQkxFRAorCitXVEY6OkxvZ0NoYW5uZWxzJiBsb2dDaGFubmVscygpOworCisjZW5kaWYgLy8g
IUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKworV1RGTG9nQ2hhbm5lbCog
Z2V0TG9nQ2hhbm5lbChjb25zdCBTdHJpbmcmIG5hbWUpOworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKwordm9pZCBSZXBvcnREaXNjYXJkZWREZWxlZ2F0ZUV4Y2VwdGlvbihTRUwgZGVsZWdhdGVT
ZWxlY3RvciwgaWQgZXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL01pc2MvV2ViS2l0TG9nSW5pdGlhbGl6YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9NaXNjL1dlYktpdExvZ0luaXRpYWxpemF0aW9uLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViNGRiOWM4
ZGY2OWEyNDBlOWU3Yzg1Y2FlNzEyNGVhNjA2MGUyMWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdExvZ0luaXRpYWxpemF0aW9uLm1tCkBAIC0w
LDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUg
bmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRz
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiV2ViS2l0TG9nSW5pdGlhbGl6YXRpb24uaCIKKworI2luY2x1ZGUg
IldlYktpdExvZ2dpbmcuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKKworY2xhc3MgTG9nQ2hhbm5lbHMgZmluYWwgOiBwdWJsaWMgV1RGOjpMb2dDaGFubmVscyB7
CitwdWJsaWM6CisgICAgTG9nQ2hhbm5lbHMoKQorICAgIHsKKyAgICAgICAgbV9sb2dDaGFubmVs
cyA9IHsKKyAgICAgICAgICAgIFdFQktJVF9MT0dfQ0hBTk5FTFMoTE9HX0NIQU5ORUxfQUREUkVT
UykKKyAgICAgICAgfTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgU3RyaW5nIGxvZ0xldmVsU3Ry
aW5nKCkgZmluYWwKKyAgICB7CisgICAgICAgIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGRlZmF1
bHRzRG9tYWluID0gQCJXZWJLaXRMb2dnaW5nIjsKKyAgICAgICAgcmV0dXJuIFtbTlNVc2VyRGVm
YXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHN0cmluZ0ZvcktleTpkZWZhdWx0c0RvbWFpbl07
CisgICAgfQorfTsKKworV1RGOjpMb2dDaGFubmVscyYgbG9nQ2hhbm5lbHMoKQoreworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxMb2dDaGFubmVscz4gbG9nQ2hhbm5lbHM7CisgICAgcmV0dXJu
IGxvZ0NoYW5uZWxzLmdldCgpOworfQorCisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKK3ZvaWQgUmVwb3J0
RGlzY2FyZGVkRGVsZWdhdGVFeGNlcHRpb24oU0VMIGRlbGVnYXRlU2VsZWN0b3IsIGlkIGV4Y2Vw
dGlvbikKK3sKKyAgICBpZiAoW2V4Y2VwdGlvbiBpc0tpbmRPZkNsYXNzOltOU0V4Y2VwdGlvbiBj
bGFzc11dKSB7CisgICAgICAgIE5TTG9nKEAiKioqIFdlYktpdCBkaXNjYXJkZWQgYW4gdW5jYXVn
aHQgZXhjZXB0aW9uIGluIHRoZSAlcyBkZWxlZ2F0ZTogPCVAPiAlQCIsCisgICAgICAgICAgICBz
ZWxfZ2V0TmFtZShkZWxlZ2F0ZVNlbGVjdG9yKSwgW2V4Y2VwdGlvbiBuYW1lXSwgW2V4Y2VwdGlv
biByZWFzb25dKTsKKyAgICB9IGVsc2UgeworICAgICAgICBOU0xvZyhAIioqKiBXZWJLaXQgZGlz
Y2FyZGVkIGFuIHVuY2F1Z2h0IGV4Y2VwdGlvbiBpbiB0aGUgJXMgZGVsZWdhdGU6ICVAIiwKKyAg
ICAgICAgICAgIHNlbF9nZXROYW1lKGRlbGVnYXRlU2VsZWN0b3IpLCBleGNlcHRpb24pOworICAg
IH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0TG9n
Z2luZy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRMb2dnaW5nLmgKaW5k
ZXggZjBkY2NmZjg2ZTQ0Njg5YzZkODJlNTIxZmFlNTIzODAwYjI3NTk5ZC4uOTEyY2Y3ODhmYTQz
OTk5OTBjYTgxOWQ3Yzc4ZGQzOTUyNDBiMzMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvTWlzYy9XZWJLaXRMb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvTWlzYy9XZWJLaXRMb2dnaW5nLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA1LCAyMDA3LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjgsMTEgKzY4LDggQEAg
V0VCS0lUX0xPR19DSEFOTkVMUyhERUNMQVJFX0xPR19DSEFOTkVMKQogCiAjdW5kZWYgREVDTEFS
RV9MT0dfQ0hBTk5FTAogCi12b2lkIFdlYktpdEluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNz
YXJ5KHZvaWQpOwogI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAKLXZvaWQgUmVwb3J0RGlzY2FyZGVkRGVsZWdhdGVFeGNlcHRpb24oU0VMIGRlbGVnYXRl
U2VsZWN0b3IsIGlkIGV4Y2VwdGlvbik7Ci0KICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdExvZ2dpbmcu
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0TG9nZ2luZy5tCmluZGV4IDlm
MmJkYjhhNzgxMGQzYTcwMTczZDBhYTQ1ZDZkNTExMTEzZTllMDguLjEwMjJjYTk5Yzk1ZWEyOTgy
MzE3MWQ4M2I3Nzc1YzUyMGZmYWQzYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL01pc2MvV2ViS2l0TG9nZ2luZy5tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01p
c2MvV2ViS2l0TG9nZ2luZy5tCkBAIC0zMywzNyArMzMsNCBAQAogI2RlZmluZSBERUZJTkVfV0VC
S0lUX0xPR19DSEFOTkVMKG5hbWUpIERFRklORV9MT0dfQ0hBTk5FTChuYW1lLCBMT0dfQ0hBTk5F
TF9XRUJLSVRfU1VCU1lTVEVNKQogV0VCS0lUX0xPR19DSEFOTkVMUyhERUZJTkVfV0VCS0lUX0xP
R19DSEFOTkVMKQogCi1zdGF0aWMgV1RGTG9nQ2hhbm5lbCogbG9nQ2hhbm5lbHNbXSA9IHsKLSAg
ICBXRUJLSVRfTE9HX0NIQU5ORUxTKExPR19DSEFOTkVMX0FERFJFU1MpCi19OwotCi1zdGF0aWMg
Y29uc3Qgc2l6ZV90IGxvZ0NoYW5uZWxDb3VudCA9IHNpemVvZihsb2dDaGFubmVscykgLyBzaXpl
b2YobG9nQ2hhbm5lbHNbMF0pOwotCi0KLXN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGRlZmF1bHRz
RG9tYWluID0gQCJXZWJLaXRMb2dnaW5nIjsKLQotdm9pZCBXZWJLaXRJbml0aWFsaXplTG9nQ2hh
bm5lbHNJZk5lY2Vzc2FyeSgpCi17Ci0gICAgc3RhdGljIGJvb2wgaGF2ZUluaXRpYWxpemVkTG9n
Z2luZ0NoYW5uZWxzID0gZmFsc2U7Ci0gICAgaWYgKGhhdmVJbml0aWFsaXplZExvZ2dpbmdDaGFu
bmVscykKLSAgICAgICAgcmV0dXJuOwotICAgIGhhdmVJbml0aWFsaXplZExvZ2dpbmdDaGFubmVs
cyA9IHRydWU7Ci0KLSAgICBOU1N0cmluZyAqbG9nTGV2ZWwgPSBbW05TVXNlckRlZmF1bHRzIHN0
YW5kYXJkVXNlckRlZmF1bHRzXSBzdHJpbmdGb3JLZXk6ZGVmYXVsdHNEb21haW5dOwotICAgIGlm
ICghbG9nTGV2ZWwpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBXVEZJbml0aWFsaXplTG9n
Q2hhbm5lbFN0YXRlc0Zyb21TdHJpbmcobG9nQ2hhbm5lbHMsIGxvZ0NoYW5uZWxDb3VudCwgW2xv
Z0xldmVsIFVURjhTdHJpbmddKTsKLX0KLQogI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECi0KLXZvaWQgUmVwb3J0RGlzY2FyZGVkRGVsZWdhdGVFeGNlcHRp
b24oU0VMIGRlbGVnYXRlU2VsZWN0b3IsIGlkIGV4Y2VwdGlvbikKLXsKLSAgICBpZiAoW2V4Y2Vw
dGlvbiBpc0tpbmRPZkNsYXNzOltOU0V4Y2VwdGlvbiBjbGFzc11dKQotICAgICAgICBOU0xvZyhA
IioqKiBXZWJLaXQgZGlzY2FyZGVkIGFuIHVuY2F1Z2h0IGV4Y2VwdGlvbiBpbiB0aGUgJXMgZGVs
ZWdhdGU6IDwlQD4gJUAiLAotICAgICAgICAgICAgc2VsX2dldE5hbWUoZGVsZWdhdGVTZWxlY3Rv
ciksIFtleGNlcHRpb24gbmFtZV0sIFtleGNlcHRpb24gcmVhc29uXSk7Ci0gICAgZWxzZQotICAg
ICAgICBOU0xvZyhAIioqKiBXZWJLaXQgZGlzY2FyZGVkIGFuIHVuY2F1Z2h0IGV4Y2VwdGlvbiBp
biB0aGUgJXMgZGVsZWdhdGU6ICVAIiwKLSAgICAgICAgICAgIHNlbF9nZXROYW1lKGRlbGVnYXRl
U2VsZWN0b3IpLCBleGNlcHRpb24pOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0KaW5kZXggNTU2NzQ5OTA0ZmQ1
MzZiMjUxNDgzMDY3OWRiOGY2NmM4ODJiZDYwYS4uZDBhOTVlYjc0YzU4YmZhMDkxYzExZDQwOTkx
M2Y4ZjdmMzQyNWViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0
ICJXZWJGcmFtZUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJGcmFtZVZpZXcuaCIKICNpbXBvcnQg
IldlYkhUTUxWaWV3SW50ZXJuYWwuaCIKKyNpbXBvcnQgIldlYktpdExvZ0luaXRpYWxpemF0aW9u
LmgiCiAjaW1wb3J0ICJXZWJLaXRMb2dnaW5nLmgiCiAjaW1wb3J0ICJXZWJLaXROU1N0cmluZ0V4
dHJhcy5oIgogI2ltcG9ydCAiV2ViTlNVUkxFeHRyYXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkRlbGVnYXRlSW1wbGVtZW50
YXRpb25DYWNoaW5nLm1tCmluZGV4IDQzZmIzMzQ1MzFmZmU3YjE3MWEzYzAyYzAwNmRmZDU3MDY3
NGNhOGIuLjQxMmVkNWJjNTc5M2M3MmExNWYwMThlOTUxNTU5MDYyMTZjYTFjNjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRGVsZWdhdGVJbXBsZW1lbnRh
dGlvbkNhY2hpbmcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJE
ZWxlZ2F0ZUltcGxlbWVudGF0aW9uQ2FjaGluZy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IERhdmlkIFNtaXRoIChj
YXRmaXNoLm1hbkBnbWFpbC5jb20pCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yOSw2ICsyOSw3IEBA
CiAKICNpbXBvcnQgIldlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLmgiCiAKKyNpbXBv
cnQgIldlYktpdExvZ0luaXRpYWxpemF0aW9uLmgiCiAjaW1wb3J0ICJXZWJLaXRMb2dnaW5nLmgi
CiAjaW1wb3J0ICJXZWJWaWV3LmgiCiAjaW1wb3J0ICJXZWJWaWV3RGF0YS5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDA2MDhkYTUxOTdkZGY3ZWM2
OTI1ZDcyYjA5MWFhYmQ4NmNlZTM4ZGYuLmEzZTE2Yjg4ODRiMmVhNzM1NTVlZTc2ZWM0Y2M4ODBk
NGJkZTFmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
QEAgLTgxLDYgKzgxLDcgQEAKICNpbXBvcnQgIldlYkluc3BlY3RvckNsaWVudC5oIgogI2ltcG9y
dCAiV2ViS2l0RXJyb3JzLmgiCiAjaW1wb3J0ICJXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIuaCIK
KyNpbXBvcnQgIldlYktpdExvZ0luaXRpYWxpemF0aW9uLmgiCiAjaW1wb3J0ICJXZWJLaXRMb2dn
aW5nLmgiCiAjaW1wb3J0ICJXZWJLaXROU1N0cmluZ0V4dHJhcy5oIgogI2ltcG9ydCAiV2ViS2l0
U3RhdGlzdGljc1ByaXZhdGUuaCIKQEAgLTE0ODAsOCArMTQ4MSw4IEBAIC0gKHZvaWQpX2NvbW1v
bkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTooTlNTdHJpbmcgKilmcmFtZU5hbWUgZ3JvdXBO
YW1lOihOU1N0CiAjZW5kaWYKICAgICBpZiAoIWRpZE9uZVRpbWVJbml0aWFsaXphdGlvbikgewog
I2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgICAgIFdlYktp
dEluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCk7Ci0gICAgICAgIFdlYkNvcmU6Omlu
aXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCk7CisgICAgICAgIFdlYkNvcmU6OmxvZ0No
YW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKKyAgICAgICAgV2Vi
S2l0Ojpsb2dDaGFubmVscygpLmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCk7CiAj
ZW5kaWYKIAogICAgICAgICAvLyBJbml0aWFsaXplIG91ciBwbGF0Zm9ybSBzdHJhdGVnaWVzIGZp
cnN0IGJlZm9yZSBpbnZva2luZyB0aGUgcmVzdAo=
</data>
<flag name="commit-queue"
          id="457818"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435119</attachid>
            <date>2021-08-06 23:40:08 -0700</date>
            <delta_ts>2021-08-07 11:50:26 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-228809-20210806234007.patch</filename>
            <type>text/plain</type>
            <size>66541</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRiMmExZGEyMDk2ZTExZDQ5NmRiNWEz
ZjI5NGQ0Zjg4MGJjOGU1YjMuLjc2MDc1MDY5NDVlY2VjMTcwNTUwYTU2OTI0NzFmYWEyNmUzMDVj
YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjEtMDgtMDYgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBEZWR1cGxpY2F0ZSBsb2dnaW5nIGNoYW5u
ZWwgYWxnb3JpdGhtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI4ODA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnVqaWkgSGlyb25vcmkuCisKKyAg
ICAgICAgVGhlIGN1cnJlbnQgaW5mcmFzdHJ1Y3R1cmUgKGJlZm9yZSB0aGlzIHBhdGNoKSBoYWQg
dGhlIGZvbGxvd2luZyBkdXBsaWNhdGVkIGZvciBlYWNoIGZyYW1ld29yazoKKyAgICAgICAgICAt
IEEgLmNwcCBmaWxlIGRlY2xhcmVkIHRoZSBsaXN0IG9mIGxvZ2dpbmcgY2hhbm5lbHMgZm9yIHRo
YXQgZnJhbWV3b3JrCisgICAgICAgICAgLSBUaGUgLmNwcCBmaWxlIGFsc28gaGFkIGFsZ29yaXRo
bXMgdG8gc2VhcmNoLCBtb2RpZnksIGFuZCBpbml0aWFsaXplIHRoZXNlIGxvZ2dpbmcgY2hhbm5l
bHMKKworICAgICAgICBFYWNoIGZyYW1ld29yaydzIC5jcHAgZmlsZSBoYWQgZHVwbGljYXRlIGFs
Z29yaXRobXMuIChUaGUgaW5pdGlhbGl6YXRpb24gYWxnb3JpdGhtIHdhcyBldmVuCisgICAgICAg
IGR1cGxpY2F0ZWQgMyB0aW1lcyEpCisKKyAgICAgICAgQmVjYXVzZSB0aGUgYWxnb3JpdGhtcyBk
aXJlY3RseSBuYW1lIHRoZWlyIHNwZWNpZmljIGxpc3Qgb2YgbG9nZ2luZyBjaGFubmVscywgYSBu
YWl2ZSBkZWR1cGxpY2F0aW9uCisgICAgICAgIHdvdWxkIGhhdmUgaGFkIHRvIGFkZCBuZXcgcGFy
YW1ldGVycyB0byB0aGVzZSBhbGdvcml0aG1zIHRvIHBhc3MgaW4gdGhlIGFwcHJvcHJpYXRlIGZy
YW1ld29yaydzCisgICAgICAgIGxpc3QuIFRoYXQncyBmaW5lLCBidXQgdGhpcyBpcyBleGFjdGx5
IHRoZSBzb3J0IG9mIHRoaW5nIGNsYXNzZXMgd2VyZSBkZXNpZ25lZCBmb3IgLSBjbGFzc2VzIGFy
ZQorICAgICAgICBhbiBhc3NvY2lhdGlvbiBvZiBhbGdvcml0aG1zIGFuZCBkYXRhLiBUaGUgYWxn
b3JpdGhtcyBhcmUgc2hhcmVkIGJ1dCB0aGUgZGF0YSBpc24ndCwgd2hpY2ggcmVhbGx5CisgICAg
ICAgIGp1c3QgbWVhbnMgd2Ugc2hvdWxkIGhhdmUgMyBpbnN0YW5jZXMgb2YgYSBzaGFyZWQgY2xh
c3MgLSBvbmUgZm9yIHRoZSAzIHNldHMgb2YgZGF0YS4KKworICAgICAgICBTbywgdGhpcyBwYXRj
aCBjcmVhdGVzIHRoZSBMb2dDaGFubmVscyBjbGFzcyB3aGljaCBjb250YWlucyB0aGUgZGVkdXBs
aWNhdGVkIGFsZ29yaXRobXMsIGFuZCBlYWNoCisgICAgICAgIGZyYW1ld29yayBoYXMgYSBOZXZl
ckRlc3Ryb3llZCBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhhdCBjbGFzcy4gVGhlcmUgaXMgYSBz
aW5nbGUgdmlydHVhbCBtZXRob2QKKyAgICAgICAgaW4gdGhlIGNsYXNzLCBzbyB0aGUgYXBwcm9w
cmlhdGUgImRlZmF1bHQgd3JpdGUiIHZhcmlhYmxlIGNhbiBiZSBxdWVyaWVkIGZvciBlYWNoIGZy
YW1ld29yay4KKworICAgICAgICBUaGUgaW5zdGFuY2VzIGNhbm5vdCBiZSBkZWNsYXJlZCBpbiB0
aGUgTG9nZ2luZy5oIGZpbGVzIGluIHRoZSBmcmFtZXdvcmtzLCBiZWNhdXNlIGNlcnRhaW4gV2Vi
S2l0MgorICAgICAgICBmaWxlcyB3YW50IHRvIGluaXRpYWxpemUgYWxsIDMgaW5zdGFuY2VzIG9m
IExvZ0NoYW5uZWxzLCBidXQgeW91IGNhbid0ICNpbmNsdWRlIG11bHRpcGxlIExvZ2dpbmcuaAor
ICAgICAgICBmaWxlcyBhdCB0aGUgc2FtZSB0aW1lIGJlY2F1c2UgdGhlaXIgTE9HX0NIQU5ORUxf
UFJFRklYICNkZWZpbmVzIHdpbGwgY29sbGlkZSB3aXRoIGVhY2ggb3RoZXIuCisgICAgICAgIEx1
Y2tpbHksIExvZ0luaXRpYWxpemF0aW9uLmggZmlsZXMgZXhpc3QgZXhhY3RseSB0byBzb2x2ZSB0
aGlzIHB1cnBvc2UsIHNvIHRoYXQncyB3aGVyZSB0aGUKKyAgICAgICAgTG9nQ2hhbm5lbHMgaW5z
dGFuY2VzIGFyZSBkZWNsYXJlZCBpbi4gQWZ0ZXIgdGhpcyBjaGFuZ2UsIHRoZSBMb2dnaW5nLmgg
ZmlsZXMgYXJlIGp1c3QgZm9yIHRoZQorICAgICAgICBkZWNsYXJhdGlvbnMgb2YgdGhlIGxvZ2dp
bmcgY2hhbm5lbHMgdGhlbXNlbHZlcywgYW5kIHRoZSBMb2dJbml0aWFsaXphdGlvbi5oIGZpbGVz
IGFyZSBmb3IgdGhlCisgICAgICAgIExvZ0NoYW5uZWxzIGluc3RhbmNlcyB3aGljaCBjb250YWlu
IHRoZSBzZWFyY2hpbmcvbW9kaWZ5aW5nL2luaXRpYWxpemluZyBhbGdvcml0aG1zIG9uIHRoZSBs
aXN0IG9mCisgICAgICAgIGxvZ2dpbmcgY2hhbm5lbHMuIElmIHlvdSBqdXN0IHdhbnQgdG8gTE9H
KC4uLikgc29tZXRoaW5nLCAjaW5jbHVkZSB0aGUgcmVsZXZhbnQgTG9nZ2luZy5oIGZpbGUsIGFu
ZAorICAgICAgICBpZiB5b3Ugd2FudCB0byBzZWFyY2gvbW9kaWZ5L2luaXRpYWxpemUgYWNyb3Nz
IHRoZSBlbnRpcmUgbGlzdCBvZiBjaGFubmVscywgdGhlbiAjaW5jbHVkZSB0aGUKKyAgICAgICAg
cmVsZXZhbnQgTG9nSW5pdGlhbGl6YXRpb24uaCBmaWxlLgorCisgICAgICAgICogV1RGLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIHd0Zi9Mb2dDaGFubmVscy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvZ2dpbmcuY3BwLgorICAgICAgICAoV1RGOjpMb2dDaGFubmVsczo6aXNMb2dDaGFu
bmVsRW5hYmxlZCk6CisgICAgICAgIChXVEY6OkxvZ0NoYW5uZWxzOjpzZXRMb2dDaGFubmVsVG9B
Y2N1bXVsYXRlKToKKyAgICAgICAgKFdURjo6TG9nQ2hhbm5lbHM6OmNsZWFyQWxsTG9nQ2hhbm5l
bHNUb0FjY3VtdWxhdGUpOgorICAgICAgICAoV1RGOjpMb2dDaGFubmVsczo6aW5pdGlhbGl6ZUxv
Z0NoYW5uZWxzSWZOZWNlc3NhcnkpOgorICAgICAgICAoV1RGOjpMb2dDaGFubmVsczo6Z2V0TG9n
Q2hhbm5lbCk6CisgICAgICAgICogd3RmL0xvZ0NoYW5uZWxzLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmguCisKIDIwMjEtMDgtMDUgIE1p
Y2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgR0NDIDEx
IGJ1aWxkcyBzaG91bGQgdXNlIC1Xbm8tYXJyYXktYm91bmRzLCAtV25vLW5vbm51bGwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA3OTA0N2I5MzU4NDcyOTVkMmY5NTVjNDlkZTQxZGQwNmZlNjAxNzUzLi4wZTdhNzYw
Y2Q5ZGY2Mzg4ZDVjM2IyZDU1NGZjMGZhODA3MWRkOWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzMgQEAKKzIwMjEtMDgtMDYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNv
bT4KKworICAgICAgICBEZWR1cGxpY2F0ZSBsb2dnaW5nIGNoYW5uZWwgYWxnb3JpdGhtcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4ODA5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRnVqaWkgSGlyb25vcmkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogU291cmNl
cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9h
Z2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmNwcDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaC4KKyAgICAgICAgKFdl
YkNvcmU6OmxvZ0NoYW5uZWxzKToKKyAgICAgICAgKFdlYkNvcmU6OmdldExvZ0NoYW5uZWwpOgor
ICAgICAgICAqIHBsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmg6CisgICAgICAgICogcGxhdGZv
cm0vTG9nZ2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0xvZ0NoYW5uZWxFbmFibGVkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNldExvZ0NoYW5uZWxUb0FjY3VtdWxhdGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y2xlYXJBbGxMb2dDaGFubmVsc1RvQWNjdW11bGF0
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5l
Y2Vzc2FyeSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpnZXRMb2dDaGFubmVsKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAgICogdGVzdGluZy9q
cy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRlc3RTdXBwb3J0Ojpz
ZXRMb2dDaGFubmVsVG9BY2N1bXVsYXRlKToKKyAgICAgICAgKFdlYkNvcmVUZXN0U3VwcG9ydDo6
Y2xlYXJBbGxMb2dDaGFubmVsc1RvQWNjdW11bGF0ZSk6CisgICAgICAgIChXZWJDb3JlVGVzdFN1
cHBvcnQ6OmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KToKKwogMjAyMS0wOC0wNiAg
S2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFz
aFRyYWNlcjogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50IGF0IGNvbS5hcHBsZS5XZWJDb3Jl
OiBXZWJDb3JlOjpDcnlwdG9LZXlSU0E6OmV4cG9ydEp3ayBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiZGNh
OWY1NTI3ODAxZTMwOTkxNWJlNGUyZjk5YjM1OWNiMGM2YmIxLi4xOTZmZmYyOTRkZDk3N2FmNTlj
ZDhiNDg5Y2I2NDk4NTkwYzQ2NWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA4
LTA2ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAg
RGVkdXBsaWNhdGUgbG9nZ2luZyBjaGFubmVsIGFsZ29yaXRobXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODgwOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IEZ1amlpIEhpcm9ub3JpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzOjppbml0aWFsaXplR1BVUHJvY2Vzcyk6CisgICAg
ICAgICogUGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAuCisgICAgICAgIChXZWJLaXQ6Omxv
Z0NoYW5uZWxzKToKKyAgICAgICAgKFdlYktpdDo6Z2V0TG9nQ2hhbm5lbCk6CisgICAgICAgICog
UGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Mb2dnaW5n
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnkp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpnZXRMb2dDaGFubmVsKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBQbGF0Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAgICogU2hhcmVkL0F1eGlsaWFyeVBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXpl
KToKKyAgICAgICAgKiBTaGFyZWQvV2ViS2l0MkluaXRpYWxpemUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpJbml0aWFsaXplV2ViS2l0Mik6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisK
IDIwMjEtMDgtMDYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgRGlzYWJsZSBXS0hvdmVyUGxhdHRlciBmb3Igbm93CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmlu
ZGV4IDhjZDFiNmNiZWQzYmQ2NmZkZjg3ZGZmNGExYzY3OWZjYTYyM2NjODQuLjhkNzU1MTI4NDdk
OGRkNjg1ODE2M2JlZTg4YjY4M2Y5OTkxOGYzMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMjEtMDgtMDYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFw
cGxlLmNvbT4KKworICAgICAgICBEZWR1cGxpY2F0ZSBsb2dnaW5nIGNoYW5uZWwgYWxnb3JpdGht
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4ODA5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnVqaWkgSGlyb25vcmkuCisKKyAgICAgICAgKiBXZWJL
aXRMZWdhY3kueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0wOC0wMiAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VibWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwvYmxvYnMuaHRtbCBpcyBh
IGZsYWt5IGZhaWx1cmUgc2luY2UgaW1wbGVtZW50aW5nIEJsb2JDaGFubmVsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKaW5kZXggZGZkZTk4MGMwY2I0MDRjYzA5MTQ4MGZhNTExYzYxZDFkMjc5
ZjAwNi4uNmQyYjIxNmNhZDE1NDkzNzM1MjBjNThhZjYyNzY0YWYzNDVjYzczMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA4LTA2ICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgRGVkdXBsaWNhdGUg
bG9nZ2luZyBjaGFubmVsIGFsZ29yaXRobXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyODgwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEZ1amlpIEhp
cm9ub3JpLgorCisgICAgICAgICogTWlzYy9XZWJLaXRMb2dJbml0aWFsaXphdGlvbi5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmguCisgICAg
ICAgICogTWlzYy9XZWJLaXRMb2dJbml0aWFsaXphdGlvbi5tbTogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRMb2dnaW5nLm0uCisgICAgICAgIChXZWJLaXQ6
OmxvZ0NoYW5uZWxzKToKKyAgICAgICAgKFJlcG9ydERpc2NhcmRlZERlbGVnYXRlRXhjZXB0aW9u
KToKKyAgICAgICAgKiBNaXNjL1dlYktpdExvZ2dpbmcuaDoKKyAgICAgICAgKiBNaXNjL1dlYktp
dExvZ2dpbmcubToKKyAgICAgICAgKFJlcG9ydERpc2NhcmRlZERlbGVnYXRlRXhjZXB0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcubW06CisgICAg
ICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0
aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0pOgorCiAyMDIxLTA4LTA2ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBDbGVhbiB1cCBG
ZWF0dXJlIEZsYWdzIHJlbGF0ZWQgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggOGI4MWQ4YmE3MDdjMTFmZmEzZjdjZTI3ZDdjMGQxZmM4ZjI4NDg4Yy4u
ZGYzMmNmZGZiMmI2MmVjOTczZjAyZjA0OWEwZDZkODc2ZWExYTExNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dU
Ri54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MSw2ICs2MSw3IEBACiAJCTFDMTgxQzk2
MUQzMDgwMEEwMEY1RkExNiAvKiBUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVQ29jb2EuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMxODFDOTUx
RDMwODAwQTAwRjVGQTE2IC8qIFRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VDb2NvYS5jcHAg
Ki87IH07CiAJCTFDNTAzQkU2MjNBQUUwQUUwMDcyRTY2QiAvKiBMYW5ndWFnZUNvY29hLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM1MDNCRTUyM0FB
RTBBRTAwNzJFNjZCIC8qIExhbmd1YWdlQ29jb2EubW0gKi87IH07CiAJCTFDQTg1Q0E5MjQxQjBC
MjYwMDcxQzJGNSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0E4NUNBODI0MUIwQjI2MDA3
MUMyRjUgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuY3BwICovOyB9OworCQkxQ0Yx
OEYzQjI2QkI1NzlFMDA0QjE3MjIgLyogTG9nQ2hhbm5lbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGMThGMzkyNkJCNTc5RTAwNEIxNzIyIC8q
IExvZ0NoYW5uZWxzLmNwcCAqLzsgfTsKIAkJMUZBNDdDOEExNTI1MDJEQTAwNTY4RDFCIC8qIFdl
YkNvcmVUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUZBNDdDODgxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICovOyB9
OwogCQkyQ0NEODkyQTE1QzAzOTAyMDAyODUwODMgLyogR3JlZ29yaWFuRGF0ZVRpbWUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNDRDg5MjkxNUMw
MzkwMjAwMjg1MDgzIC8qIEdyZWdvcmlhbkRhdGVUaW1lLmNwcCAqLzsgfTsKIAkJMkNERUQwRUYx
ODExNUMzODAwNERCQTcwIC8qIFJ1bkxvb3BDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0RFRDBFRTE4MTE1QzM4MDA0REJBNzAgLyogUnVuTG9v
cENGLmNwcCAqLzsgfTsKQEAgLTM1MSw2ICszNTIsOCBAQAogCQkxQ0NEQjE0OTFFNTY2NjI2MDA2
QzczQzAgLyogVGV4dEJyZWFrSXRlcmF0b3JDRi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBUZXh0QnJlYWtJdGVyYXRvckNGLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFDQ0RCMTREMUU1NjY4OTgwMDZDNzNDMCAvKiBUZXh0QnJlYWtJdGVyYXRvcklDVS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0QnJlYWtJdGVyYXRvcklDVS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0NEQjE1MTFFNTY2QkM1MDA2QzczQzAgLyog
Q0ZTdHJpbmdTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0ZTdHJpbmdT
UEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNGMThGMzkyNkJCNTc5RTAwNEIx
NzIyIC8qIExvZ0NoYW5uZWxzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvZ0NoYW5uZWxzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNGMThGM0EyNkJCNTc5RTAwNEIxNzIy
IC8qIExvZ0NoYW5uZWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvZ0NoYW5uZWxzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQTQ3Qzg4MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3Jl
VGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVU
aHJlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRkE0N0M4OTE1MjUwMkRB
MDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJDb3JlVGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI0RjFC
MjQ4NjE5RjQxMjI5NkQxQzE5QyAvKiBSYW5kb21EZXZpY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmFuZG9tRGV2aWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC01MTIsOCArNTE1LDggQEAKIAkJOUJCOTFGNTEyNjQ4RUE0RDAwQTU2MjE3IC8qIENoZWNr
ZWRQdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hlY2tlZFB0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5QkM3MEYwNDE3NkMzNzlEMDAxMDFERUMgLyogQXRvbVN0cmluZ1RhYmxlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF0b21TdHJpbmdUYWJsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRDhGNDBBMTc2QzJBRDgwMDAyRDg2
NSAvKiBBdG9tU3RyaW5nVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXRvbVN0cmluZ1RhYmxlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlCRjAwMTM0MjY3QzRDQ0YwMERDRkIzRiAv
KiBDaGVja2VkUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoZWNrZWRSZWYuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOUJFMTUzMzUyNjcxRjAwRjAwQzdEMDk2IC8qIFdlYWtIYXNoTWFw
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYWtIYXNoTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTlCRjAwMTM0MjY3QzRDQ0YwMERDRkIzRiAvKiBDaGVja2VkUmVmLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENoZWNrZWRSZWYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUM2N0M1
NDI1ODkzNDhFMjg1QjQ5Njk5IC8qIEluZGV4ZWRDb250YWluZXJJdGVyYXRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmRleGVkQ29udGFpbmVySXRlcmF0b3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFCODlCODcyMjFFMDAwRjAwRUI0Q0VBIC8qIFNE
S1ZhcmlhbnQueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gU0RLVmFy
aWFudC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMkMxRjBE
RTBCQTAwQjcxOTU0IC8qIFNvZnRMaW5raW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNvZnRMaW5raW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTIy
LDYgKzExMjUsOCBAQAogCQkJCTBGNjBGMzJFMURGQ0JEMUIwMDQxNkQ2QyAvKiBMb2NrZWRQcmlu
dFN0cmVhbS5oICovLAogCQkJCUE4QTQ3MkMzMTUxQTgyNUEwMDQxMjNGRiAvKiBMb2NrZXIuaCAq
LywKIAkJCQk1MzExQkQ1NTFFQTdFMTVBMDA1MjUyODEgLyogTG9ja2xlc3NCYWcuaCAqLywKKwkJ
CQkxQ0YxOEYzOTI2QkI1NzlFMDA0QjE3MjIgLyogTG9nQ2hhbm5lbHMuY3BwICovLAorCQkJCTFD
RjE4RjNBMjZCQjU3OUUwMDRCMTcyMiAvKiBMb2dDaGFubmVscy5oICovLAogCQkJCTkzQjVCNDUw
MjIxNzFFRTkwMDRCN0FBNyAvKiBMb2dnZXIuY3BwICovLAogCQkJCTA3N0NEODZBMUZEOUNGRDIw
MDgyODU4NyAvKiBMb2dnZXIuaCAqLywKIAkJCQkwNzdDRDg2QjFGRDlDRkQzMDA4Mjg1ODcgLyog
TG9nZ2VySGVscGVyLmggKi8sCkBAIC0xNzM4LDYgKzE3NDMsNyBAQAogCQkJCUMyQkNGQzU1MUY2
MjFGM0YwMEM5MjIyQyAvKiBMaW5lRW5kaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRTE2
NDZBMUI2RkZDOTYwMDQwMEU3QyAvKiBMb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjBG
MzJGMURGQ0JEMUIwMDQxNkQ2QyAvKiBMb2NrZWRQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkxQ0YxOEYzQjI2QkI1NzlFMDA0QjE3MjIgLyogTG9nQ2hhbm5lbHMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTNCNUI0NTEyMjE3MUVFQTAwNEI3QUE3IC8qIExvZ2dlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MzUzNEYyQTFFQzBFMTBFMDAxNDFCMkYgLyogTWFjaEV4Y2VwdGlv
bnMuZGVmcyBpbiBTb3VyY2VzICovLAogCQkJCTdBNkVCQTM0MjA3NDZDMzQwMDRGOUM0NCAvKiBN
YWNoU2VuZFJpZ2h0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAw
NTE3ZGRiZTNiZTdlYjE0MjE1OWNkMTE4NTE4ZmY1OWUxODU3ZjU5Li41MWFmMGFhMDE1YzYxMmVi
ZmI2OWIzOWNlYjY2NDIzMTQ2YTVlZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMTIzLDYg
KzEyMyw3IEBAIHNldChXVEZfUFVCTElDX0hFQURFUlMKICAgICBMb2NrZWRQcmludFN0cmVhbS5o
CiAgICAgTG9ja2VyLmgKICAgICBMb2NrbGVzc0JhZy5oCisgICAgTG9nQ2hhbm5lbHMuaAogICAg
IExvZ2dlci5oCiAgICAgTG9nZ2VySGVscGVyLmgKICAgICBMb2dnaW5nQWNjdW11bGF0b3IuaApA
QCAtNDIyLDYgKzQyMyw3IEBAIHNldChXVEZfU09VUkNFUwogICAgIExpa2VseURlbnNlVW5zaWdu
ZWRJbnRlZ2VyU2V0LmNwcAogICAgIExvY2suY3BwCiAgICAgTG9ja2VkUHJpbnRTdHJlYW0uY3Bw
CisgICAgTG9nQ2hhbm5lbHMuY3BwCiAgICAgTG9nZ2VyLmNwcAogICAgIE1haW5UaHJlYWQuY3Bw
CiAgICAgTWVkaWFUaW1lLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9nQ2hhbm5l
bHMuY3BwIGIvU291cmNlL1dURi93dGYvTG9nQ2hhbm5lbHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyZDcz
MmI4NGM3NDEzZGNmMjk3YjRmMmRlZjliOTQzNWRiMTBjNTEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9Mb2dDaGFubmVscy5jcHAKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiTG9nQ2hhbm5lbHMuaCIKKworI2luY2x1ZGUgPHd0Zi9Mb2dnaW5nQWNjdW11
bGF0b3IuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxF
QVNFX0xPR19ESVNBQkxFRAorCitib29sIExvZ0NoYW5uZWxzOjppc0xvZ0NoYW5uZWxFbmFibGVk
KGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICBXVEZMb2dDaGFubmVsKiBjaGFubmVsID0gZ2V0
TG9nQ2hhbm5lbChuYW1lKTsKKyAgICBpZiAoIWNoYW5uZWwpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gY2hhbm5lbC0+c3RhdGUgIT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmY7
Cit9CisKK3ZvaWQgTG9nQ2hhbm5lbHM6OnNldExvZ0NoYW5uZWxUb0FjY3VtdWxhdGUoY29uc3Qg
U3RyaW5nJiBuYW1lKQoreworICAgIFdURkxvZ0NoYW5uZWwqIGNoYW5uZWwgPSBnZXRMb2dDaGFu
bmVsKG5hbWUpOworICAgIGlmICghY2hhbm5lbCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY2hh
bm5lbC0+c3RhdGUgPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uV2l0aEFjY3VtdWxhdGlvbjsKKyAg
ICBtX2xvZ0NoYW5uZWxzTmVlZEluaXRpYWxpemF0aW9uID0gdHJ1ZTsKK30KKwordm9pZCBMb2dD
aGFubmVsczo6Y2xlYXJBbGxMb2dDaGFubmVsc1RvQWNjdW11bGF0ZSgpCit7CisgICAgcmVzZXRB
Y2N1bXVsYXRlZExvZ3MoKTsKKyAgICBmb3IgKGF1dG8qIGNoYW5uZWwgOiBtX2xvZ0NoYW5uZWxz
KSB7CisgICAgICAgIGlmIChjaGFubmVsLT5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9u
V2l0aEFjY3VtdWxhdGlvbikKKyAgICAgICAgICAgIGNoYW5uZWwtPnN0YXRlID0gV1RGTG9nQ2hh
bm5lbFN0YXRlOjpPZmY7CisgICAgfQorCisgICAgbV9sb2dDaGFubmVsc05lZWRJbml0aWFsaXph
dGlvbiA9IHRydWU7Cit9CisKK3ZvaWQgTG9nQ2hhbm5lbHM6OmluaXRpYWxpemVMb2dDaGFubmVs
c0lmTmVjZXNzYXJ5KHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBsb2dDaGFubmVsU3RyaW5nKQorewor
ICAgIGlmICghbV9sb2dDaGFubmVsc05lZWRJbml0aWFsaXphdGlvbiAmJiAhbG9nQ2hhbm5lbFN0
cmluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9sb2dDaGFubmVsc05lZWRJbml0aWFsaXph
dGlvbiA9IGZhbHNlOworCisgICAgU3RyaW5nIGVuYWJsZWRDaGFubmVsc1N0cmluZyA9IGxvZ0No
YW5uZWxTdHJpbmcgPyBsb2dDaGFubmVsU3RyaW5nLnZhbHVlKCkgOiBsb2dMZXZlbFN0cmluZygp
OworICAgIFdURkluaXRpYWxpemVMb2dDaGFubmVsU3RhdGVzRnJvbVN0cmluZyhtX2xvZ0NoYW5u
ZWxzLmRhdGEoKSwgbV9sb2dDaGFubmVscy5zaXplKCksIGVuYWJsZWRDaGFubmVsc1N0cmluZy51
dGY4KCkuZGF0YSgpKTsKK30KKworV1RGTG9nQ2hhbm5lbCogTG9nQ2hhbm5lbHM6OmdldExvZ0No
YW5uZWwoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIHJldHVybiBXVEZMb2dDaGFubmVsQnlO
YW1lKG1fbG9nQ2hhbm5lbHMuZGF0YSgpLCBtX2xvZ0NoYW5uZWxzLnNpemUoKSwgbmFtZS51dGY4
KCkuZGF0YSgpKTsKK30KKworI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvTG9nQ2hhbm5lbHMuaCBiL1NvdXJjZS9XVEYvd3RmL0xvZ0NoYW5uZWxzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjM2NGVhZTg1Yjk1NDU3ZmYyNmY5NTMxNDcxOWIxNTAxZmRhZWMyOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvZ0NoYW5uZWxzLmgKQEAgLTAsMCArMSw1NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdURiB7CisKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNB
QkxFRAorCitjbGFzcyBMb2dDaGFubmVscyB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TG9nQ2hh
bm5lbHMoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKSA9
IDA7CisKKyAgICBib29sIGlzTG9nQ2hhbm5lbEVuYWJsZWQoY29uc3QgU3RyaW5nJiBuYW1lKTsK
KyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRMb2dDaGFubmVsVG9BY2N1bXVsYXRlKGNv
bnN0IFN0cmluZyYgbmFtZSk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgY2xlYXJBbGxM
b2dDaGFubmVsc1RvQWNjdW11bGF0ZSgpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGlu
aXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiA9IHN0
ZDo6bnVsbG9wdCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIFdURkxvZ0NoYW5uZWwqIGdldExv
Z0NoYW5uZWwoY29uc3QgU3RyaW5nJiBuYW1lKTsKKworcHJvdGVjdGVkOgorICAgIFZlY3RvcjxX
VEZMb2dDaGFubmVsKj4gbV9sb2dDaGFubmVsczsKKyAgICBib29sIG1fbG9nQ2hhbm5lbHNOZWVk
SW5pdGlhbGl6YXRpb24geyB0cnVlIH07Cit9OworCisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8
fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRTcGVjaWZpYy5oIGIvU291cmNlL1dURi93dGYvVGhyZWFk
U3BlY2lmaWMuaAppbmRleCBkN2IwZTZmMWRkNTViZTJjNTlmZTY0NTg2YjNmM2U5MDQxZmVmZjM0
Li40MWU4Y2NjZWY4ZjBlNTM4YjFjMTA4YmEwMzY2ZTEwMDdjNzA1NzJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9UaHJlYWRTcGVjaWZpYy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVh
ZFNwZWNpZmljLmgKQEAgLTQ2LDYgKzQ2LDE1IEBACiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAorLy8gWDExIGhlYWRlcnMgZGVmaW5l
IGEgYnVuY2ggb2YgbWFjcm9zIHdpdGggY29tbW9uIHRlcm1zLCBpbnRlcmZlcmluZyB3aXRoIFdl
YkNvcmUgYW5kIFdURiBlbnVtIHZhbHVlcy4KKy8vIEFzIGEgd29ya2Fyb3VuZCwgd2UgZXhwbGlj
aXRseSB1bmRlZiB0aGVtIGhlcmUuCisjaWYgZGVmaW5lZChGYWxzZSkKKyN1bmRlZiBGYWxzZQor
I2VuZGlmCisjaWYgZGVmaW5lZChUcnVlKQorI3VuZGVmIFRydWUKKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV1RGIHsKIAogZW51bSBjbGFzcyBDYW5CZUdDVGhyZWFkIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1RocmVhZGluZy5oIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmgKaW5kZXgg
Y2ZhZTQyYTQ0MTdhMDE2NzIwYjAzY2U2M2MxZDczZjJkZDk5MzJmZS4uMTc4Zjk4MDhjN2VmOGUy
MjZjYTUwMmVmZmNkMjdiYmUzZjM1OWY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhy
ZWFkaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmgKQEAgLTYxLDYgKzYxLDEy
IEBACiAjaW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KICNlbmRpZgogCisvLyBYMTEgaGVh
ZGVycyBkZWZpbmUgYSBidW5jaCBvZiBtYWNyb3Mgd2l0aCBjb21tb24gdGVybXMsIGludGVyZmVy
aW5nIHdpdGggV2ViQ29yZSBhbmQgV1RGIGVudW0gdmFsdWVzLgorLy8gQXMgYSB3b3JrYXJvdW5k
LCB3ZSBleHBsaWNpdGx5IHVuZGVmIHRoZW0gaGVyZS4KKyNpZiBkZWZpbmVkKE5vbmUpCisjdW5k
ZWYgTm9uZQorI2VuZGlmCisKIG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBBYnN0cmFjdExvY2tl
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKaW5kZXggMjY2MTRhN2Q5NzUzMjBkYjZiODVkNDNkMzljOWFkMzI1M2I1
MjNjZi4uMDc3MjVhNDI4MzkzYjJkZmFmMjdkZTUyMjgzM2RiYTM4Zjc4MDUwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKQEAgLTE3NTUsNiArMTc1NSw3IEBAIHBsYXRmb3JtL0xlbmd0aEJveC5jcHAKIHBsYXRm
b3JtL0xlbmd0aFBvaW50LmNwcAogcGxhdGZvcm0vTGVuZ3RoU2l6ZS5jcHAKIHBsYXRmb3JtL0xv
Y2FsaXplZFN0cmluZ3MuY3BwCitwbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5jcHAKIHBsYXRm
b3JtL0xvZ2dpbmcuY3BwCiBwbGF0Zm9ybS9Mb3dQb3dlck1vZGVOb3RpZmllci5jcHAKIHBsYXRm
b3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2JlNDg3NjNhNjQ3OTNiMDhlNGY3NmZlOWQw
NjQ2YzM1MDg5ODA1MC4uYjYzOWE1YjhmMTI1ZDg4ZDk0NjdmZDIyNzhlYzgxODkwZDU2OTRkNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNjk3Nyw2ICs2OTc3LDcgQEAKIAkJMUNFOEQxMkIyNjE4NjE2NDAwRkMzQUVGIC8qIERp
c3BsYXlMaXN0SXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxheUxpc3RJdGVy
YXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDRThEMTJDMjYxODYxNjQw
MEZDM0FFRiAvKiBEaXNwbGF5TGlzdEl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlM
aXN0SXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNGMEJGRDQyMjk4
NzA2ODAwRUQyMDc0IC8qIFRleHRTaXplQWRqdXN0bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBUZXh0U2l6ZUFkanVzdG1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
Q0YxOEYzQzI2QkI1QUYyMDA0QjE3MjIgLyogTG9nSW5pdGlhbGl6YXRpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTG9nSW5pdGlhbGl6YXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQ0ZBRTMyMjBBNkQ2QTNGMDAzMjU5M0QgLyogbGlib2JqYy5keWxpYiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9ICJjb21waWxlZC5tYWNo
LW8uZHlsaWIiOyBuYW1lID0gbGlib2JqYy5keWxpYjsgcGF0aCA9IC91c3IvbGliL2xpYm9iamMu
ZHlsaWI7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CiAJCTFEMDAyNkEyMjM3NEQ2MjMw
MENBNkNERiAvKiBKU1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNQaWN0dXJlSW5QaWN0dXJlV2luZG93Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFEMDAyNkEzMjM3NEQ2MjQwMENBNkNERiAvKiBKU1BpY3R1cmVJblBp
Y3R1cmVXaW5kb3cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQ
aWN0dXJlSW5QaWN0dXJlV2luZG93LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTI3NTg3LDYgKzI3NTg4LDcgQEAKIAkJCQk5MzUyMDdCRDA5QkQ0MTBBMDBGMjAzOEQgLyogTG9j
YWxpemVkU3RyaW5ncy5oICovLAogCQkJCUE4MjM5REZFMDlCM0NGOEEwMEI2MDY0MSAvKiBMb2dn
aW5nLmNwcCAqLywKIAkJCQlBODIzOURGRjA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5oICov
LAorCQkJCTFDRjE4RjNDMjZCQjVBRjIwMDRCMTcyMiAvKiBMb2dJbml0aWFsaXphdGlvbi5jcHAg
Ki8sCiAJCQkJMEZEQ0Q3RjIxRDQ3RTY1NTAwOUYwOEJDIC8qIExvZ0luaXRpYWxpemF0aW9uLmgg
Ki8sCiAJCQkJNDZFRkFGMEYxRTVGQjlFMTAwRTdGMzRCIC8qIExvd1Bvd2VyTW9kZU5vdGlmaWVy
LmNwcCAqLywKIAkJCQk0NkVGQUYxMDFFNUZCOUUxMDBFN0YzNEIgLyogTG93UG93ZXJNb2RlTm90
aWZpZXIuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhM
b2dnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKaW5k
ZXggN2JmNzkxYjc2MDdiOGIwN2M4NWU5MmE4NDE1NWE3OTI5MjEwMmQ5NS4uMzAzNjY2NjM3YjIw
ZjkwMGNlOTdlNTkxMWFmYTI1NzJmYWMyODJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWExvZ2dlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNlbmRpZgogI2luY2x1ZGUgIkFY
T2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJMb2dJbml0
aWFsaXphdGlvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9U
ZXh0U3RyZWFtLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmNwcAppbmRleCA2ZTJmZDZmYTIxZDgzMTUyNTYz
ZDA0M2IzMGNlMTU1ZGVlYWEyYmExLi45MTQ2NjNkYzNlOTg0Zjk0OTA1MDhlMTk0NjZkZDFmYWYz
YzkyNWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2Uv
UGFnZUNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
Q29tbWFuZExpbmVBUElIb3N0LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NQWdlbnQuaCIKICNp
bmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCisjaW5jbHVkZSAiTG9nSW5pdGlhbGl6YXRp
b24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGY3NzgwNzdhMjkwNTM5YzFhMTZiMTcyMWJi
MDgyYmE3OTk1MGVlMWYuLmEzYjlmYmQzODliOGZjODJkY2JiYWVhY2IzMThkOTVjNmU0YjM2NWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtODMsNiArODMsNyBAQAogI2luY2x1ZGUgIkxlZ2FjeVNj
aGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRl
ICJMb2FkZXJTdHJhdGVneS5oIgorI2luY2x1ZGUgIkxvZ0luaXRpYWxpemF0aW9uLmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIkxvd1Bvd2VyTW9kZU5vdGlmaWVyLmgiCiAjaW5j
bHVkZSAiTWVkaWFDYW5TdGFydExpc3RlbmVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Mb2dJbml0aWFsaXphdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzViNzA3YmEwYzczN2VlZjJmZGQ3
ZjhkNWQ0MzFiNDI0N2FiNGQwNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmNwcApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDAzLTIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkxvZ0luaXRpYWxpemF0aW9uLmgiCisKKyNpbmNsdWRlICJMb2dnaW5n
LmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lmICFMT0dfRElTQUJMRUQg
fHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisKK2NsYXNzIExvZ0NoYW5uZWxzIGZpbmFsIDogcHVi
bGljIFdURjo6TG9nQ2hhbm5lbHMgeworcHVibGljOgorICAgIExvZ0NoYW5uZWxzKCkKKyAgICB7
CisgICAgICAgIG1fbG9nQ2hhbm5lbHMgPSB7CisgICAgICAgICAgICBXRUJDT1JFX0xPR19DSEFO
TkVMUyhMT0dfQ0hBTk5FTF9BRERSRVNTKQorICAgICAgICB9OworICAgIH0KKworcHJpdmF0ZToK
KyAgICBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKSBmaW5hbAorICAgIHsKKyAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OmxvZ0xldmVsU3RyaW5nKCk7CisgICAgfQorfTsKKworV1RGOjpMb2dDaGFubmVs
cyYgbG9nQ2hhbm5lbHMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMb2dDaGFubmVs
cz4gbG9nQ2hhbm5lbHM7CisgICAgcmV0dXJuIGxvZ0NoYW5uZWxzLmdldCgpOworfQorCitXVEZM
b2dDaGFubmVsKiBnZXRMb2dDaGFubmVsKGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICByZXR1
cm4gbG9nQ2hhbm5lbHMoKS5nZXRMb2dDaGFubmVsKG5hbWUpOworfQorCisjZWxzZQorCitXVEZM
b2dDaGFubmVsKiBnZXRMb2dDaGFubmVsKGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5oCmluZGV4IDIzOGMyNWEyMTFmY2MxZTFkYWYwN2I1ODE1
OTE5Mzk4MzIxMjE5NjAuLjQwZGE5MzA2M2MxZjk2YTMxNjAxNTRjNWY2NjBhZmMyMWYxNjIxZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMTMsIDIwMTUsIDIw
MTYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjUsMjAgKzI1LDE4IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1
ZGUgPHd0Zi9Mb2dDaGFubmVscy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xP
R19ESVNBQkxFRAogCi1XRUJDT1JFX0VYUE9SVCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKTsKLWJv
b2wgaXNMb2dDaGFubmVsRW5hYmxlZChjb25zdCBTdHJpbmcmIG5hbWUpOwotV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRMb2dDaGFubmVsVG9BY2N1bXVsYXRlKGNvbnN0IFN0cmluZyYgbmFtZSk7Ci1X
RUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyQWxsTG9nQ2hhbm5lbHNUb0FjY3VtdWxhdGUoKTsKLVdF
QkNPUkVfRVhQT1JUIHZvaWQgaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnkoc3RkOjpv
cHRpb25hbDxTdHJpbmc+ID0gc3RkOjpudWxsb3B0KTsKK1dFQkNPUkVfRVhQT1JUIFdURjo6TG9n
Q2hhbm5lbHMmIGxvZ0NoYW5uZWxzKCk7CitTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKTsKIAogI2Vu
ZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKK1dFQkNPUkVf
RVhQT1JUIFdURkxvZ0NoYW5uZWwqIGdldExvZ0NoYW5uZWwoY29uc3QgU3RyaW5nJiBuYW1lKTsK
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9nZ2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmNwcApp
bmRleCA2MWZlOGQzNzUyMTU4M2QyZDQ2NTE5MzgwNTAyODVmM2M0MzU3NzcwLi43YWNmNmU3ZDA3
YzI3MTdjZjRhOWVjOTQxYmQyYTg1YTQwOTA4YTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2dnaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dn
aW5nLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYs
IDIwMTMgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwMy0yMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI1LDE3ICsyNSw2IEBACiAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiTG9nSW5pdGlhbGl6YXRpb24uaCIK
LQotI2luY2x1ZGUgPHd0Zi9Mb2dnaW5nQWNjdW11bGF0b3IuaD4KLSNpbmNsdWRlIDx3dGYvU3Rk
TGliRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jaW5jbHVkZSA8bm90
aWZ5Lmg+Ci0jaW5jbHVkZSA8d3RmL0Jsb2NrUHRyLmg+Ci0jZW5kaWYKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC00NCw2NyArMzMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZGVmaW5l
IERFRklORV9XRUJDT1JFX0xPR19DSEFOTkVMKG5hbWUpIERFRklORV9MT0dfQ0hBTk5FTChuYW1l
LCBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNKQogV0VCQ09SRV9MT0dfQ0hBTk5FTFMoREVG
SU5FX1dFQkNPUkVfTE9HX0NIQU5ORUwpCiAKLXN0YXRpYyBXVEZMb2dDaGFubmVsKiBsb2dDaGFu
bmVsc1tdID0gewotICAgIFdFQkNPUkVfTE9HX0NIQU5ORUxTKExPR19DSEFOTkVMX0FERFJFU1Mp
Ci19OwotCi1zdGF0aWMgY29uc3Qgc2l6ZV90IGxvZ0NoYW5uZWxDb3VudCA9IFdURl9BUlJBWV9M
RU5HVEgobG9nQ2hhbm5lbHMpOwotCi1ib29sIGlzTG9nQ2hhbm5lbEVuYWJsZWQoY29uc3QgU3Ry
aW5nJiBuYW1lKQotewotICAgIFdURkxvZ0NoYW5uZWwqIGNoYW5uZWwgPSBXVEZMb2dDaGFubmVs
QnlOYW1lKGxvZ0NoYW5uZWxzLCBsb2dDaGFubmVsQ291bnQsIG5hbWUudXRmOCgpLmRhdGEoKSk7
Ci0gICAgaWYgKCFjaGFubmVsKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIGNo
YW5uZWwtPnN0YXRlICE9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2ZmOwotfQotCi1zdGF0aWMgYm9v
bCBsb2dDaGFubmVsc05lZWRJbml0aWFsaXphdGlvbiA9IHRydWU7Ci0KLXZvaWQgc2V0TG9nQ2hh
bm5lbFRvQWNjdW11bGF0ZShjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgV1RGTG9nQ2hhbm5l
bCogY2hhbm5lbCA9IFdURkxvZ0NoYW5uZWxCeU5hbWUobG9nQ2hhbm5lbHMsIGxvZ0NoYW5uZWxD
b3VudCwgbmFtZS51dGY4KCkuZGF0YSgpKTsKLSAgICBpZiAoIWNoYW5uZWwpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGNoYW5uZWwtPnN0YXRlID0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbldpdGhB
Y2N1bXVsYXRpb247Ci0gICAgbG9nQ2hhbm5lbHNOZWVkSW5pdGlhbGl6YXRpb24gPSB0cnVlOwot
fQotCi12b2lkIGNsZWFyQWxsTG9nQ2hhbm5lbHNUb0FjY3VtdWxhdGUoKQotewotICAgIHJlc2V0
QWNjdW11bGF0ZWRMb2dzKCk7Ci0gICAgZm9yIChhdXRvKiBjaGFubmVsIDogbG9nQ2hhbm5lbHMp
IHsKLSAgICAgICAgaWYgKGNoYW5uZWwtPnN0YXRlID09IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T25X
aXRoQWNjdW11bGF0aW9uKQotICAgICAgICAgICAgY2hhbm5lbC0+c3RhdGUgPSBXVEZMb2dDaGFu
bmVsU3RhdGU6Ok9mZjsKLSAgICB9Ci0KLSAgICBsb2dDaGFubmVsc05lZWRJbml0aWFsaXphdGlv
biA9IHRydWU7Ci19Ci0KLXZvaWQgaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnkoc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IGxvZ0NoYW5uZWxTdHJpbmcpCi17Ci0gICAgaWYgKCFsb2dDaGFu
bmVsc05lZWRJbml0aWFsaXphdGlvbiAmJiAhbG9nQ2hhbm5lbFN0cmluZykKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgbG9nQ2hhbm5lbHNOZWVkSW5pdGlhbGl6YXRpb24gPSBmYWxzZTsKLQotICAg
IFN0cmluZyBlbmFibGVkQ2hhbm5lbHNTdHJpbmcgPSBsb2dDaGFubmVsU3RyaW5nID8gbG9nQ2hh
bm5lbFN0cmluZy52YWx1ZSgpIDogbG9nTGV2ZWxTdHJpbmcoKTsKLSAgICBXVEZJbml0aWFsaXpl
TG9nQ2hhbm5lbFN0YXRlc0Zyb21TdHJpbmcobG9nQ2hhbm5lbHMsIGxvZ0NoYW5uZWxDb3VudCwg
ZW5hYmxlZENoYW5uZWxzU3RyaW5nLnV0ZjgoKS5kYXRhKCkpOwotLy8gICAgTG9nRXZlbnRMb29w
LnN0YXRlID0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbjsKLX0KLQotV1RGTG9nQ2hhbm5lbCogZ2V0
TG9nQ2hhbm5lbChjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgcmV0dXJuIFdURkxvZ0NoYW5u
ZWxCeU5hbWUobG9nQ2hhbm5lbHMsIGxvZ0NoYW5uZWxDb3VudCwgbmFtZS51dGY4KCkuZGF0YSgp
KTsKLX0KLQotI2Vsc2UKLQotV1RGTG9nQ2hhbm5lbCogZ2V0TG9nQ2hhbm5lbChjb25zdCBTdHJp
bmcmKQotewotICAgIHJldHVybiBudWxscHRyOwotfQotCiAjZW5kaWYgLy8gIUxPR19ESVNBQkxF
RCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDgyMzU4NDNmYTUxMjk1NWM3Y2ViNWVmZGZjZGY5
M2RlNGE1OWUyMzIuLjc2NGVlZjdiYjJlMWY0NzdmYzQ4YWUzYWE3ZGE4ODNjNmU5Y2MxNDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTEzMyw2ICsxMzMsNCBAQCBXRUJDT1JFX0xP
R19DSEFOTkVMUyhERUNMQVJFX0xPR19DSEFOTkVMKQogCiAjZW5kaWYgLy8gIUxPR19ESVNBQkxF
RCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAotV0VCQ09SRV9FWFBPUlQgV1RGTG9nQ2hhbm5l
bCogZ2V0TG9nQ2hhbm5lbChjb25zdCBTdHJpbmcmIG5hbWUpOwotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0
U3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9y
dC5jcHAKaW5kZXggOGRkYzQwZTU3OGY1YjE2YjZlMGRmYmQ1OTQ0MmVmN2NiMDQwMGY0NC4uNDM0
NjVjOTQ5MzMxMGU4MzU5YjQ3MzRhZWFiNTg2YmY0MTE1MWE3MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcApAQCAtMzYsNiArMzYsNyBA
QAogI2luY2x1ZGUgIkpTU2VydmljZVdvcmtlckludGVybmFscy5oIgogI2luY2x1ZGUgIkpTV29y
a2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJMb2dJbml0aWFsaXphdGlvbi5oIgorI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNb2NrR2FtZXBhZFByb3ZpZGVyLmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNXQ29udGV4dE1hbmFnZXIuaCIKQEAgLTEyMiw3ICsxMjMs
NyBAQCB2b2lkIGNsZWFyV2hlZWxFdmVudFRlc3RNb25pdG9yKFdlYkNvcmU6OkZyYW1lJiBmcmFt
ZSkKIHZvaWQgc2V0TG9nQ2hhbm5lbFRvQWNjdW11bGF0ZShjb25zdCBTdHJpbmcmIG5hbWUpCiB7
CiAjaWYgIUxPR19ESVNBQkxFRAotICAgIFdlYkNvcmU6OnNldExvZ0NoYW5uZWxUb0FjY3VtdWxh
dGUobmFtZSk7CisgICAgbG9nQ2hhbm5lbHMoKS5zZXRMb2dDaGFubmVsVG9BY2N1bXVsYXRlKG5h
bWUpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0obmFtZSk7CiAjZW5kaWYKQEAgLTEzMSwxNCAr
MTMyLDE0IEBAIHZvaWQgc2V0TG9nQ2hhbm5lbFRvQWNjdW11bGF0ZShjb25zdCBTdHJpbmcmIG5h
bWUpCiB2b2lkIGNsZWFyQWxsTG9nQ2hhbm5lbHNUb0FjY3VtdWxhdGUoKQogewogI2lmICFMT0df
RElTQUJMRUQKLSAgICBXZWJDb3JlOjpjbGVhckFsbExvZ0NoYW5uZWxzVG9BY2N1bXVsYXRlKCk7
CisgICAgbG9nQ2hhbm5lbHMoKS5jbGVhckFsbExvZ0NoYW5uZWxzVG9BY2N1bXVsYXRlKCk7CiAj
ZW5kaWYKIH0KIAogdm9pZCBpbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpCiB7CiAj
aWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSAgICBXZWJDb3JlOjpp
bml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOworICAgIGxvZ0NoYW5uZWxzKCkuaW5p
dGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
aW5kZXggN2VkZDE0ODc5OWE5ZWI5YmYyMjVjYTY4N2RiNWUxYzUxYzg0MDEzMC4uYWM3MzI1YjRj
ZTJjNDIzZjY2OGM4NGU0MTU1Yzc2Yzc1MDllOWE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNjQsNiAr
NjQsNyBAQAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldl
YkVycm9ycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Ob3dQbGF5aW5nTWFuYWdlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVVByb2Nlc3MuY3BwCmluZGV4IGIyYmIzYzAwNzBlOGY1NmE5Nzg1MTY5ODVkNjg0NGQ0MWIx
YjFmMzAuLmVkN2YyOWU2ZTA4MDYyNzg1Mjg5ZTQxMDAzZTY4MTNmZjk4YTVhOWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKQEAgLTI0Myw4ICsyNDMsOCBAQCB2b2lk
IEdQVVByb2Nlc3M6OmluaXRpYWxpemVHUFVQcm9jZXNzKEdQVVByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmJiBwYXJhbWV0ZXJzKQogI2VuZGlmCiAKICNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxF
QVNFX0xPR19ESVNBQkxFRAotICAgIFdlYkNvcmU6OmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVj
ZXNzYXJ5KHBhcmFtZXRlcnMud2ViQ29yZUxvZ2dpbmdDaGFubmVscyk7Ci0gICAgV2ViS2l0Ojpp
bml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeShwYXJhbWV0ZXJzLndlYktpdExvZ2dpbmdD
aGFubmVscyk7CisgICAgV2ViQ29yZTo6bG9nQ2hhbm5lbHMoKS5pbml0aWFsaXplTG9nQ2hhbm5l
bHNJZk5lY2Vzc2FyeShwYXJhbWV0ZXJzLndlYkNvcmVMb2dnaW5nQ2hhbm5lbHMpOworICAgIFdl
YktpdDo6bG9nQ2hhbm5lbHMoKS5pbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeShwYXJh
bWV0ZXJzLndlYktpdExvZ2dpbmdDaGFubmVscyk7CiAjZW5kaWYKIAogICAgIC8vIE1hdGNoIHRo
ZSBRb1Mgb2YgdGhlIFVJUHJvY2VzcyBzaW5jZSB0aGUgR1BVIHByb2Nlc3MgaXMgZG9pbmcgcmVu
ZGVyaW5nIG9uIGl0cyBiZWhhbGYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0xvZ0luaXRpYWxpemF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nSW5pdGlh
bGl6YXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjNjNhNTRiMGMxZGE1NTg4NDE4MDhhYWY3M2MwNzE2
YzAyNjUwZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ0lu
aXRpYWxpemF0aW9uLmNwcApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvZ0luaXRpYWxpemF0aW9uLmgiCisKKyNpbmNsdWRlICJM
b2dnaW5nLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisKK2Ns
YXNzIExvZ0NoYW5uZWxzIGZpbmFsIDogcHVibGljIFdURjo6TG9nQ2hhbm5lbHMgeworcHVibGlj
OgorICAgIExvZ0NoYW5uZWxzKCkKKyAgICB7CisgICAgICAgIG1fbG9nQ2hhbm5lbHMgPSB7Cisg
ICAgICAgICAgICBXRUJLSVQyX0xPR19DSEFOTkVMUyhMT0dfQ0hBTk5FTF9BRERSRVNTKQorICAg
ICAgICB9OworICAgIH0KKworcHJpdmF0ZToKKyAgICBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKSBm
aW5hbAorICAgIHsKKyAgICAgICAgcmV0dXJuIFdlYktpdDo6bG9nTGV2ZWxTdHJpbmcoKTsKKyAg
ICB9Cit9OworCitXVEY6OkxvZ0NoYW5uZWxzJiBsb2dDaGFubmVscygpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPExvZ0NoYW5uZWxzPiBsb2dDaGFubmVsczsKKyAgICByZXR1cm4gbG9n
Q2hhbm5lbHMuZ2V0KCk7Cit9CisKK1dURkxvZ0NoYW5uZWwqIGdldExvZ0NoYW5uZWwoY29uc3Qg
U3RyaW5nJiBuYW1lKQoreworICAgIHJldHVybiBsb2dDaGFubmVscygpLmdldExvZ0NoYW5uZWwo
bmFtZSk7Cit9CisKKyNlbHNlCisKK1dURkxvZ0NoYW5uZWwqIGdldExvZ0NoYW5uZWwoY29uc3Qg
U3RyaW5nJiBuYW1lKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCisjZW5kaWYgLy8gIUxP
R19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmgKaW5kZXggMjU2
YTQ1OTczMThkMTFhZGVkZTA3NWIxZTEyMTVmZDYzY2ZlYWY4MS4uZjg3NmJlN2RiM2RhZjc2ZjIy
MDRiM2Q0Yzc4NDIyOGFiMmJhNDc5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9Mb2dJbml0aWFsaXphdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nSW5p
dGlhbGl6YXRpb24uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAs
IDIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI1LDE1ICsyNSwxOCBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2luY2x1ZGUgPHd0Zi9Mb2dDaGFubmVscy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCi0jaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLQogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnko
c3RkOjpvcHRpb25hbDxTdHJpbmc+ID0gc3RkOjpudWxsb3B0KTsKLVN0cmluZyBsb2dMZXZlbFN0
cmluZygpOworI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdAorV1RGOjpMb2dDaGFubmVscyYgbG9nQ2hhbm5lbHMoKTsKK1N0
cmluZyBsb2dMZXZlbFN0cmluZygpOwogCiAjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKKworV1RGTG9nQ2hhbm5lbCogZ2V0TG9nQ2hhbm5lbChjb25zdCBT
dHJpbmcmIG5hbWUpOworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xv
Z2dpbmcuY3BwCmluZGV4IDg1MWYyNTYzM2VjY2EwODI1YjAyYjRmOGM0NzRlN2JiMWJjNmVkNTku
LjVhODIzZGUzZmE1OWUzY2M2NWNmYzliODJjMjUwY2M0MTcxNDBhZGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9Mb2dnaW5nLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTAsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykg
MjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yNiw0MCArMjYs
MTAgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNs
dWRlICJMb2dJbml0aWFsaXphdGlvbi5oIgotCi0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgogCiAjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogI2RlZmlu
ZSBERUZJTkVfV0VCS0lUMl9MT0dfQ0hBTk5FTChuYW1lKSBERUZJTkVfTE9HX0NIQU5ORUwobmFt
ZSwgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSkKIFdFQktJVDJfTE9HX0NIQU5ORUxTKERF
RklORV9XRUJLSVQyX0xPR19DSEFOTkVMKQogCi1zdGF0aWMgV1RGTG9nQ2hhbm5lbCogbG9nQ2hh
bm5lbHNbXSA9IHsKLSAgICBXRUJLSVQyX0xPR19DSEFOTkVMUyhMT0dfQ0hBTk5FTF9BRERSRVNT
KQotfTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0YXRpYyBjb25zdCBzaXplX3QgbG9nQ2hh
bm5lbENvdW50ID0gV1RGX0FSUkFZX0xFTkdUSChsb2dDaGFubmVscyk7Ci1zdGF0aWMgYm9vbCBs
b2dDaGFubmVsc05lZWRJbml0aWFsaXphdGlvbiA9IHRydWU7Ci0KLXZvaWQgaW5pdGlhbGl6ZUxv
Z0NoYW5uZWxzSWZOZWNlc3Nhcnkoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGxvZ0NoYW5uZWxTdHJp
bmcpCi17Ci0gICAgaWYgKCFsb2dDaGFubmVsc05lZWRJbml0aWFsaXphdGlvbiAmJiAhbG9nQ2hh
bm5lbFN0cmluZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbG9nQ2hhbm5lbHNOZWVkSW5pdGlh
bGl6YXRpb24gPSBmYWxzZTsKLQotICAgIFN0cmluZyBlbmFibGVkQ2hhbm5lbHNTdHJpbmcgPSBs
b2dDaGFubmVsU3RyaW5nID8gbG9nQ2hhbm5lbFN0cmluZy52YWx1ZSgpIDogbG9nTGV2ZWxTdHJp
bmcoKTsKLSAgICBXVEZJbml0aWFsaXplTG9nQ2hhbm5lbFN0YXRlc0Zyb21TdHJpbmcobG9nQ2hh
bm5lbHMsIGxvZ0NoYW5uZWxDb3VudCwgZW5hYmxlZENoYW5uZWxzU3RyaW5nLnV0ZjgoKS5kYXRh
KCkpOwotfQotCi1XVEZMb2dDaGFubmVsKiBnZXRMb2dDaGFubmVsKGNvbnN0IFN0cmluZyYgbmFt
ZSkKLXsKLSAgICByZXR1cm4gV1RGTG9nQ2hhbm5lbEJ5TmFtZShsb2dDaGFubmVscywgbG9nQ2hh
bm5lbENvdW50LCBuYW1lLnV0ZjgoKS5kYXRhKCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJL
aXQKLQogI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDk4MGEyNTkxMWQwYjg4ZDU0YmM2ZmFkN2QwYjI4
NzZiY2M3OTJkOGIuLmQ0ZDMyNjVjYzA3YzMxNzdiZGE1MDJhOWQyNDg5NDVhMzY4NGM2MmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCkBAIC0xMTIsMTMgKzExMiw4IEBAIFdFQktJVDJfTE9H
X0NIQU5ORUxTKERFQ0xBUkVfTE9HX0NIQU5ORUwpCiAKICN1bmRlZiBERUNMQVJFX0xPR19DSEFO
TkVMCiAKLW5hbWVzcGFjZSBXZWJLaXQgewotV1RGTG9nQ2hhbm5lbCogZ2V0TG9nQ2hhbm5lbChj
b25zdCBTdHJpbmcmKTsKLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCiAjaWZkZWYgX19jcGx1c3Bs
dXMKIH0KICNlbmRpZgogCiAjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0df
RElTQUJMRUQKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJv
Y2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmNwcAppbmRl
eCA5NGY5NGU5MjZjM2U5MTM2MTBjZWRlYjJiN2VkNGNhMWEzOTVlNGEwLi4wOTVjZjQ1OTE0NjIx
YzE4ODMyYmFhOTU2Njc1ZjNiMGQ4MWQ3MmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BdXhpbGlhcnlQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhp
bGlhcnlQcm9jZXNzLmNwcApAQCAtODIsOCArODIsOCBAQCB2b2lkIEF1eGlsaWFyeVByb2Nlc3M6
OmluaXRpYWxpemUoY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVy
cwogICAgIGluaXRpYWxpemVTYW5kYm94KHBhcmFtZXRlcnMsIHNhbmRib3hQYXJhbWV0ZXJzKTsK
IAogI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgV2ViQ29y
ZTo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKLSAgICBXZWJLaXQ6OmluaXRp
YWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCk7CisgICAgV2ViQ29yZTo6bG9nQ2hhbm5lbHMo
KS5pbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOworICAgIFdlYktpdDo6bG9nQ2hh
bm5lbHMoKS5pbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwogI2VuZGlmIC8vICFM
T0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKICAgICBpbml0aWFsaXplUHJv
Y2Vzc05hbWUocGFyYW1ldGVycyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJLaXQySW5pdGlhbGl6ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLaXQySW5pdGlh
bGl6ZS5jcHAKaW5kZXggNTI2NjhmOTUzYTRiMzg2YzliN2NjMzY4Mzk5YmY5NDMxZGQwMjM2Ny4u
MjMzYjMwZjIyYWQ2NDE2YTBhM2UwNDdiZGQ5ZWUzOWYzNTFiNzNmMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViS2l0MkluaXRpYWxpemUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcApAQCAtNDcsOCArNDcsOCBAQCB2b2lkIElu
aXRpYWxpemVXZWJLaXQyKCkKICAgICBXVEY6OlJlZkNvdW50ZWRCYXNlOjplbmFibGVUaHJlYWRp
bmdDaGVja3NHbG9iYWxseSgpOwogCiAjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0df
RElTQUJMRUQKLSAgICBXZWJDb3JlOjppbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgp
OwotICAgIFdlYktpdDo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKKyAgICBX
ZWJDb3JlOjpsb2dDaGFubmVscygpLmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCk7
CisgICAgV2ViS2l0Ojpsb2dDaGFubmVscygpLmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNz
YXJ5KCk7CiAjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
IAogICAgIFdlYkNvcmU6OnBvcHVsYXRlSklUT3BlcmF0aW9ucygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXgg
ZjMwMzFlNzkyYmViNDUzZjE2N2Q4ODEzZTg4YWJlY2JjMmI1Y2I3Yi4uYjY5MjgyMWNiN2U5MDJj
MTA0YmEwMzhhNTJkNDM4MmQ5YzNjYTVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0xMzUsNiArMTM1LDcg
QEAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIuY3BwCiBOZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkuY3BwCiAKIC8v
IFRPRE86IFdlIHNob3VsZCB1bmlmeSB0aGVzZSBmaWxlcyBvbmNlIEdUSydzIFBsdWdpblByb2Nl
c3MyIGlzIHJlbW92ZWQuCitQbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5jcHAgQG5vLXVuaWZ5
CiBQbGF0Zm9ybS9Mb2dnaW5nLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL01vZHVsZS5jcHAgQG5v
LXVuaWZ5CiBQbGF0Zm9ybS9TaGFyZWRNZW1vcnkuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZTdlMDQwYmJhYzc5OTMyZGM1MDRjZmM4
MDAwZjJjYzU4ZGUwZWQ5ZS4uYmFmNTYyYzUxOTgzYTRlNDdmZGRkMjkyODRjOTg5MGY3NTdkNjNj
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC02OCw2ICs2
OCw3IEBACiAjaW5jbHVkZSAiRnJhbWVJbmZvRGF0YS5oIgogI2luY2x1ZGUgIkxlZ2FjeUdsb2Jh
bFNldHRpbmdzLmgiCiAjaW5jbHVkZSAiTG9hZFBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJMb2dJ
bml0aWFsaXphdGlvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOYXRpdmVX
ZWJHZXN0dXJlRXZlbnQuaCIKICNpbmNsdWRlICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMmVhYjZiY2I4
OWI4Yjc5YTdkY2YzY2RjZDQ5YzA2ZDVhY2QyMTJiMy4uODM2YjA0MDNkYTU3YjM3NDFkMTFiMjZl
YTgzYzM3NWRlNWY5OGZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcApAQCAtMjUxLDggKzI1MSw4IEBAIFdlYlByb2Nlc3NQb29sOjpXZWJQcm9jZXNzUG9v
bChBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKICAgICByZXNv
bHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygpOwogCiAjaWYgIUxPR19ESVNBQkxFRCB8fCAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKLSAgICBXZWJDb3JlOjppbml0aWFsaXplTG9nQ2hhbm5lbHNJ
Zk5lY2Vzc2FyeSgpOwotICAgIFdlYktpdDo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nh
cnkoKTsKKyAgICBXZWJDb3JlOjpsb2dDaGFubmVscygpLmluaXRpYWxpemVMb2dDaGFubmVsc0lm
TmVjZXNzYXJ5KCk7CisgICAgV2ViS2l0Ojpsb2dDaGFubmVscygpLmluaXRpYWxpemVMb2dDaGFu
bmVsc0lmTmVjZXNzYXJ5KCk7CiAjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNjNTg2Y2IwNjM2MDcxN2I0YTI1ZGEwNDUy
YTA1OWI4Nzc4OTJjNDUuLjZjMWRjNzVkYTFmZGU3ODkwYTkxNWUzZDkwZGZkMzk5YzczMzM4MTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMyw3ICszLDcgQEAKIAlhcmNoaXZlVmVyc2lvbiA9IDE7CiAJY2xhc3NlcyA9IHsKIAl9Owot
CW9iamVjdFZlcnNpb24gPSA1MjsKKwlvYmplY3RWZXJzaW9uID0gNTQ7CiAJb2JqZWN0cyA9IHsK
IAogLyogQmVnaW4gUEJYQWdncmVnYXRlVGFyZ2V0IHNlY3Rpb24gKi8KQEAgLTQ0MSw2ICs0NDEs
NyBAQAogCQkxQ0E4Qjk0NjEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlQcm94eU1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmgg
Ki87IH07CiAJCTFDQkJFNEEwMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQ0JCRTQ5RTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OwogCQkxQ0JCRTRBMTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVj
dG9yVUlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUNCQkU0OUYxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZXMu
aCAqLzsgfTsKKwkJMUNGMThGM0YyNkJCNUQ5NTAwNEIxNzIyIC8qIExvZ0luaXRpYWxpemF0aW9u
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRjE4
RjNFMjZCQjVEOTAwMDRCMTcyMiAvKiBMb2dJbml0aWFsaXphdGlvbi5jcHAgKi87IH07CiAJCTFE
NEQ3MzcwMjNBOUU1NDcwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxRDRENzM2QjIzQTlERjU1MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkxRDRENzM3MTIzQTlFNTYyMDA3MTdBMjUg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNkMyM0E5REY2MDAwNzE3QTI1IC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKIAkJMUQ0RDczNzYy
M0E5RUQxODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBs
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRE
NzM3NTIzQTlFQjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdl
c1JlcGxpZXMuaCAqLzsgfTsKQEAgLTMwNDksNiArMzA1MCw3IEBACiAJCTFDQThCOTQ0MTI3Qzg4
MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmg7IHBhdGgg
PSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0JCRTQ5RTE5QjY2QzUzMDA2
QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQkJFNDlG
MTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaDsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxQ0YxOEYzRTI2QkI1RDkwMDA0QjE3MjIgLyog
TG9nSW5pdGlhbGl6YXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9nSW5pdGlhbGl6YXRp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDA1MzBDOTI1OEVBQjQ0MDBF
NDM2RjcgLyogY29tYmluZS1mZWF0dXJlLWZsYWdzLXBsaXN0LnB5ICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRo
ID0gImNvbWJpbmUtZmVhdHVyZS1mbGFncy1wbGlzdC5weSI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFEMDUzMEQxMjU5MTYyQzgwMEU0MzZGNyAvKiBXZWJLaXQtaW9zLnBsaXN0ICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlz
dC54bWw7IHBhdGggPSAiV2ViS2l0LWlvcy5wbGlzdCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFEMDUzMEQyMjU5MTYyQzkwMEU0MzZGNyAvKiBXZWJLaXQtYXBwbGV0dm9zLnBsaXN0
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5w
bGlzdC54bWw7IHBhdGggPSAiV2ViS2l0LWFwcGxldHZvcy5wbGlzdCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC02MDAwLDcgKzYwMDIsNiBAQAogCQlGNDBCQkI0MDI1N0ZGNDZFMDA2
NzQ2M0EgLyogR1BVUHJvY2Vzc1dha2V1cE1lc3NhZ2VBcmd1bWVudHMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gR1BVUHJvY2Vzc1dha2V1cE1lc3NhZ2VBcmd1bWVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjQwRDFCNjgyMjBCREMwRjAwQjQ5QTAxIC8qIFdlYkF1dG9jb3JyZWN0aW9u
Q29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJBdXRvY29ycmVjdGlvbkNvbnRleHQuaDsgcGF0
aCA9IGlvcy9XZWJBdXRvY29ycmVjdGlvbkNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjQxMDU2NjEyMTMwNjk5QTAwOTIyODFEIC8qIEFQSUF0dGFjaG1lbnRDb2NvYS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFQSUF0dGFjaG1lbnRDb2NvYS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjQxNENFMkEyNjlEREVEMTAwQkQyMTZBIC8qIEdQVVByb2Nl
c3NDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEdQVVBy
b2Nlc3NDb2NvYS5tbTsgcGF0aCA9IGNvY29hL0dQVVByb2Nlc3NDb2NvYS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQxNENFMkMyNjlERTZFQTAwQkQyMTZBIC8qIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQyRDYzM0YyMkEwRUZE
MzAwRDJGQjNBIC8qIFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBXZWJBdXRvY29ycmVjdGlvbkRhdGEuaDsgcGF0aCA9IGlvcy9XZWJBdXRv
Y29ycmVjdGlvbkRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQyRDYzNDAy
MkEwRUZEMzAwRDJGQjNBIC8qIFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5tbTsgcGF0
aCA9IGlvcy9XZWJBdXRvY29ycmVjdGlvbkRhdGEubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMDY5Nyw2ICsxMDY5OCw3IEBACiAJCQkJRUNCRkMxREIxRTZBNEQ2NjAwMDMwMEM3
IC8qIEV4dHJhUHVibGljU3ltYm9sc0ZvclRBUEkuaCAqLywKIAkJCQk1MUE3RjJGNDEyNUJGOEQ0
MDA4QUVCMUQgLyogTG9nZ2luZy5jcHAgKi8sCiAJCQkJNTFBN0YyRjIxMjVCRjgyMDAwOEFFQjFE
IC8qIExvZ2dpbmcuaCAqLywKKwkJCQkxQ0YxOEYzRTI2QkI1RDkwMDA0QjE3MjIgLyogTG9nSW5p
dGlhbGl6YXRpb24uY3BwICovLAogCQkJCTBGRENEN0Y2MUQ0N0U5MkEwMDlGMDhCQyAvKiBMb2dJ
bml0aWFsaXphdGlvbi5oICovLAogCQkJCUMwRTNBQTQ1MTIwOUUyQkEwMEE0OUQwMSAvKiBNb2R1
bGUuY3BwICovLAogCQkJCUMwRTNBQTQ0MTIwOUUyQkEwMEE0OUQwMSAvKiBNb2R1bGUuaCAqLywK
QEAgLTExNzE2LDE0ICsxMTcxOCw2IEBACiAJCQlwYXRoID0gY2FjaGU7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwogCQl9OwotCQlGNDE0Q0UyNzI2OURERTgwMDBCRDIxNkEgLyogY29jb2Eg
Ki8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCUY0MTRDRTJB
MjY5RERFRDEwMEJEMjE2QSAvKiBHUFVQcm9jZXNzQ29jb2EubW0gKi8sCi0JCQkpOwotCQkJbmFt
ZSA9IGNvY29hOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKIAkJRjYzODk1NUEx
MzNCRjU3RDAwODk0MUQ1IC8qIG1hYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCkBAIC0xNDIzNSw2ICsxNDIyOSw3IEBACiAJCQkJNTFGMDYwRTExNjU0MzE4NTAw
RjMyODFDIC8qIExpYldlYlJUQ05ldHdvcmtNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDQ5RDkwREEyMUZEQzMwQjAwRjY3N0MwIC8qIExvY2FsQXV0aGVudGljYXRpb25T
b2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzc5MjEyQjZBNjEwMEY0OTNGRCAv
KiBMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDRjE4RjNGMjZCQjVEOTUwMDRCMTcy
MiAvKiBMb2dJbml0aWFsaXphdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwN0UxOUVGQjIz
RDQwMUYxMDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFERjI5RTY0MjU3RjM3QTMwMDNDMjhBRiAvKiBNZWRp
YVNvdXJjZVByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOUI0NzkwOTEyNTMxNTYzMjAwRUMxMUFCIC8qIE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9u
cy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IGRkMWVmZjViYWJiNmE1NGVmYTk3YzYwNTcyMGU4
NWViMDFjODk2NzEuLmU0ZWMwNjNiNzBlZTdjNjBmNzE5NjQzZjE3ZWQ0YTc1OTNhYTdlMzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bQpAQCAtMjgxLDggKzI4MSw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAgICAgfQogCiAj
aWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSAgICBXZWJDb3JlOjpp
bml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeShwYXJhbWV0ZXJzLndlYkNvcmVMb2dnaW5n
Q2hhbm5lbHMpOwotICAgIFdlYktpdDo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnko
cGFyYW1ldGVycy53ZWJLaXRMb2dnaW5nQ2hhbm5lbHMpOworICAgIFdlYkNvcmU6OmxvZ0NoYW5u
ZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkocGFyYW1ldGVycy53ZWJDb3Jl
TG9nZ2luZ0NoYW5uZWxzKTsKKyAgICBXZWJLaXQ6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxv
Z0NoYW5uZWxzSWZOZWNlc3NhcnkocGFyYW1ldGVycy53ZWJLaXRMb2dnaW5nQ2hhbm5lbHMpOwog
I2VuZGlmCiAKICAgICBtX3VpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIgPSBwYXJhbWV0ZXJzLnVp
UHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L1dlYktpdExlZ2FjeS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdExl
Z2FjeS9XZWJLaXRMZWdhY3kueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxZGIwNGJi
ZmJiMzUzODVmNTg5MDZhMmZkYjcyNTE5YTYxOWMzMjhmLi5hNzhhNWNjNmY3MjY0YzFhMDRiNDdh
MGM1MTY3ZGNmMDI5ZDYwOWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktp
dExlZ2FjeS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExMSw2ICsxMTEs
NyBAQAogCQkxQzY4RjY3MjA5NUI1RkMxMDBDMjk4NEUgLyogV2ViTm9kZUhpZ2hsaWdodFZpZXcu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzY4RjY2
NjA5NUI1RkMxMDBDMjk4NEUgLyogV2ViTm9kZUhpZ2hsaWdodFZpZXcubW0gKi87IH07CiAJCTFD
N0IwQzY2MEVCMjQ2NEQwMEEyODUwMiAvKiBXZWJJbnNwZWN0b3JDbGllbnRDRi5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzdCMEM2NTBFQjI0NjRE
MDBBMjg1MDIgLyogV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwICovOyB9OwogCQkxQzhDQjA3QTBB
RTk4MzBDMDBCMUY2RTkgLyogV2ViRWRpdGluZ0RlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4Q0IwNzkwQUU5ODMwQzAwQjFG
NkU5IC8qIFdlYkVkaXRpbmdEZWxlZ2F0ZVByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxQ0YxOEY0MTI2QkI3MUI3MDA0QjE3MjIgLyog
V2ViS2l0TG9nSW5pdGlhbGl6YXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQ0YxOEY0MDI2QkI3MUI3MDA0QjE3MjIgLyogV2ViS2l0TG9nSW5p
dGlhbGl6YXRpb24ubW0gKi87IH07CiAJCTIyRjIxOUNDMDhEMjM2NzMwMDMwRTA3OCAvKiBXZWJC
YWNrRm9yd2FyZExpc3RQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyMkYyMTlDQjA4RDIzNjczMDAzMEUwNzggLyogV2ViQmFja0ZvcndhcmRM
aXN0UHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTI5QUVGOTYwMTM0Qzc2RkIwMEZFNTA5NiAvKiBPdXRsb29rUXVpcmtzVXNlclNjcmlw
dC5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlB
RUY5NUQxMzRDNzU1NDAwRkU1MDk2IC8qIE91dGxvb2tRdWlya3NVc2VyU2NyaXB0LmpzICovOyB9
OwogCQkyRDI1Mzk2NjE4Q0U4NUMyMDAyNzAyMjIgLyogV2ViU2hhcmluZ1NlcnZpY2VQaWNrZXJD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRDI1Mzk2NDE4Q0U4NUMyMDAyNzAyMjIgLyogV2ViU2hhcmluZ1NlcnZpY2VQaWNrZXJDb250
cm9sbGVyLmggKi87IH07CkBAIC04MzEsNiArODMyLDggQEAKIAkJMUM5MDRGRDMwQkE5REQwRjAw
ODFFOUQwIC8qIFZlcnNpb24ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRo
ID0gVmVyc2lvbi54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM5MDRG
RDQwQkE5REQwRjAwODFFOUQwIC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQueGNjb25maWc7IHBhdGggPSBEZWJ1Z1JlbGVhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFDOTA0RkQ1MEJBOUREMEYwMDgxRTlEMCAvKiBCYXNlLnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRjE4RjQwMjZCQjcxQjcwMDRCMTcyMiAvKiBXZWJLaXRM
b2dJbml0aWFsaXphdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYktpdExvZ0luaXRp
YWxpemF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0YxOEY0MjI2QkI3
MUQzMDA0QjE3MjIgLyogV2ViS2l0TG9nSW5pdGlhbGl6YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViS2l0TG9nSW5pdGlhbGl6YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MjJGMjE5Q0IwOEQyMzY3MzAwMzBFMDc4IC8qIFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJCYWNr
Rm9yd2FyZExpc3RQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwogCQkyNTY4QzcyQzAxNzQ5MTJEMEVDQTE0OUUgLyogV2ViS2l0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
S2l0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwogCQkyOUFFRjk1RDEzNEM3NTU0MDBGRTUwOTYgLyogT3V0bG9va1F1aXJrc1VzZXJTY3Jp
cHQuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBPdXRsb29rUXVp
cmtzVXNlclNjcmlwdC5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3ODcsNiAr
MTc5MCw4IEBACiAJCQkJNTM2NUFFRDkyNTY2MzQ1ODAwNzA0Njc5IC8qIFdlYktpdExlZ2FjeV9Q
cml2YXRlLmggKi8sCiAJCQkJOTNBRUIxN0QwMzJDMTczNTAwODYzNUNFIC8qIFdlYktpdExvZ2dp
bmcuaCAqLywKIAkJCQk5M0FFQjE3RTAzMkMxNzM1MDA4NjM1Q0UgLyogV2ViS2l0TG9nZ2luZy5t
ICovLAorCQkJCTFDRjE4RjQyMjZCQjcxRDMwMDRCMTcyMiAvKiBXZWJLaXRMb2dJbml0aWFsaXph
dGlvbi5oICovLAorCQkJCTFDRjE4RjQwMjZCQjcxQjcwMDRCMTcyMiAvKiBXZWJLaXRMb2dJbml0
aWFsaXphdGlvbi5tbSAqLywKIAkJCQk3MDgyRjU2RjAzOEVBREFBMDBBODAxODAgLyogV2ViS2l0
TlNTdHJpbmdFeHRyYXMuaCAqLywKIAkJCQk3MDgyRjU3MDAzOEVBREFBMDBBODAxODAgLyogV2Vi
S2l0TlNTdHJpbmdFeHRyYXMubW0gKi8sCiAJCQkJRjUzNDQ0Q0UwMkU4N0NCQTAxODYzNUNBIC8q
IFdlYktpdFN0YXRpc3RpY3MuaCAqLywKQEAgLTM2NTEsNiArMzY1Niw3IEBACiAJCQkJOTM5ODEx
MDMwODI0QkYwMTAwOERGMDM4IC8qIFdlYktpdEVycm9ycy5tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
Q0Q4QkZDRTcxNTUzMTIyNDAwNUFGQjI1IC8qIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5tbSBp
biBTb3VyY2VzICovLAogCQkJCTkzOTgxMEMzMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJLaXRMb2dn
aW5nLm0gaW4gU291cmNlcyAqLywKKwkJCQkxQ0YxOEY0MTI2QkI3MUI3MDA0QjE3MjIgLyogV2Vi
S2l0TG9nSW5pdGlhbGl6YXRpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQk5Mzk4MTBDNDA4MjRC
RjAxMDA4REYwMzggLyogV2ViS2l0TlNTdHJpbmdFeHRyYXMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkxQUFGNUQwRjBFRERFN0E3MDA4RDg4M0QgLyogV2ViS2l0UGx1Z2luQWdlbnQuZGVmcyBpbiBT
b3VyY2VzICovLAogCQkJCTFBQUY1RDAwMEVEREU2MDQwMDhEODgzRCAvKiBXZWJLaXRQbHVnaW5D
bGllbnQuZGVmcyBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvTWlzYy9XZWJLaXRMb2dJbml0aWFsaXphdGlvbi5oIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvTWlzYy9XZWJLaXRMb2dJbml0aWFsaXphdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjOGRhOTdl
OTkzY2I4NmE2MDk1NGE5ODZkYzJhZTYzYTk3YTY3ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdExvZ0luaXRpYWxpemF0aW9uLmgKQEAgLTAs
MCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9M
b2dDaGFubmVscy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CisKK1dURjo6TG9nQ2hhbm5lbHMmIGxvZ0NoYW5uZWxzKCk7CisKKyNlbmRpZiAvLyAhTE9HX0RJ
U0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAorCitXVEZMb2dDaGFubmVsKiBnZXRMb2dD
aGFubmVsKGNvbnN0IFN0cmluZyYgbmFtZSk7CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCit2
b2lkIFJlcG9ydERpc2NhcmRlZERlbGVnYXRlRXhjZXB0aW9uKFNFTCBkZWxlZ2F0ZVNlbGVjdG9y
LCBpZCBleGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlz
Yy9XZWJLaXRMb2dJbml0aWFsaXphdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01p
c2MvV2ViS2l0TG9nSW5pdGlhbGl6YXRpb24ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWI0ZGI5YzhkZjY5YTI0
MGU5ZTdjODVjYWU3MTI0ZWE2MDYwZTIxZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0TG9nSW5pdGlhbGl6YXRpb24ubW0KQEAgLTAsMCArMSw3
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
CisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJXZWJLaXRMb2dJbml0aWFsaXphdGlvbi5oIgorCisjaW5jbHVkZSAiV2ViS2l0
TG9nZ2luZy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAorCitj
bGFzcyBMb2dDaGFubmVscyBmaW5hbCA6IHB1YmxpYyBXVEY6OkxvZ0NoYW5uZWxzIHsKK3B1Ymxp
YzoKKyAgICBMb2dDaGFubmVscygpCisgICAgeworICAgICAgICBtX2xvZ0NoYW5uZWxzID0gewor
ICAgICAgICAgICAgV0VCS0lUX0xPR19DSEFOTkVMUyhMT0dfQ0hBTk5FTF9BRERSRVNTKQorICAg
ICAgICB9OworICAgIH0KKworcHJpdmF0ZToKKyAgICBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKSBm
aW5hbAorICAgIHsKKyAgICAgICAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgZGVmYXVsdHNEb21h
aW4gPSBAIldlYktpdExvZ2dpbmciOworICAgICAgICByZXR1cm4gW1tOU1VzZXJEZWZhdWx0cyBz
dGFuZGFyZFVzZXJEZWZhdWx0c10gc3RyaW5nRm9yS2V5OmRlZmF1bHRzRG9tYWluXTsKKyAgICB9
Cit9OworCitXVEY6OkxvZ0NoYW5uZWxzJiBsb2dDaGFubmVscygpCit7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPExvZ0NoYW5uZWxzPiBsb2dDaGFubmVsczsKKyAgICByZXR1cm4gbG9nQ2hh
bm5lbHMuZ2V0KCk7Cit9CisKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xP
R19ESVNBQkxFRAorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwordm9pZCBSZXBvcnREaXNjYXJk
ZWREZWxlZ2F0ZUV4Y2VwdGlvbihTRUwgZGVsZWdhdGVTZWxlY3RvciwgaWQgZXhjZXB0aW9uKQor
eworICAgIGlmIChbZXhjZXB0aW9uIGlzS2luZE9mQ2xhc3M6W05TRXhjZXB0aW9uIGNsYXNzXV0p
IHsKKyAgICAgICAgTlNMb2coQCIqKiogV2ViS2l0IGRpc2NhcmRlZCBhbiB1bmNhdWdodCBleGNl
cHRpb24gaW4gdGhlICVzIGRlbGVnYXRlOiA8JUA+ICVAIiwKKyAgICAgICAgICAgIHNlbF9nZXRO
YW1lKGRlbGVnYXRlU2VsZWN0b3IpLCBbZXhjZXB0aW9uIG5hbWVdLCBbZXhjZXB0aW9uIHJlYXNv
bl0pOworICAgIH0gZWxzZSB7CisgICAgICAgIE5TTG9nKEAiKioqIFdlYktpdCBkaXNjYXJkZWQg
YW4gdW5jYXVnaHQgZXhjZXB0aW9uIGluIHRoZSAlcyBkZWxlZ2F0ZTogJUAiLAorICAgICAgICAg
ICAgc2VsX2dldE5hbWUoZGVsZWdhdGVTZWxlY3RvciksIGV4Y2VwdGlvbik7CisgICAgfQorfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRMb2dnaW5nLmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdExvZ2dpbmcuaAppbmRleCBmMGRj
Y2ZmODZlNDQ2ODljNmQ4MmU1MjFmYWU1MjM4MDBiMjc1OTlkLi45MTJjZjc4OGZhNDM5OTk5MGNh
ODE5ZDdjNzhkZDM5NTI0MGIzMzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9NaXNjL1dlYktpdExvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNj
L1dlYktpdExvZ2dpbmcuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDUsIDIwMDcsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA1LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02OCwxMSArNjgsOCBAQCBXRUJLSVRf
TE9HX0NIQU5ORUxTKERFQ0xBUkVfTE9HX0NIQU5ORUwpCiAKICN1bmRlZiBERUNMQVJFX0xPR19D
SEFOTkVMCiAKLXZvaWQgV2ViS2l0SW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnkodm9p
ZCk7CiAjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAot
dm9pZCBSZXBvcnREaXNjYXJkZWREZWxlZ2F0ZUV4Y2VwdGlvbihTRUwgZGVsZWdhdGVTZWxlY3Rv
ciwgaWQgZXhjZXB0aW9uKTsKLQogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0TG9nZ2luZy5tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRMb2dnaW5nLm0KaW5kZXggOWYyYmRiOGE3
ODEwZDNhNzAxNzNkMGFhNDVkNmQ1MTExMTNlOWUwOC4uMTAyMmNhOTljOTVlYTI5ODIzMTcxZDgz
Yjc3NzVjNTIwZmZhZDNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlz
Yy9XZWJLaXRMb2dnaW5nLm0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJL
aXRMb2dnaW5nLm0KQEAgLTMzLDM3ICszMyw0IEBACiAjZGVmaW5lIERFRklORV9XRUJLSVRfTE9H
X0NIQU5ORUwobmFtZSkgREVGSU5FX0xPR19DSEFOTkVMKG5hbWUsIExPR19DSEFOTkVMX1dFQktJ
VF9TVUJTWVNURU0pCiBXRUJLSVRfTE9HX0NIQU5ORUxTKERFRklORV9XRUJLSVRfTE9HX0NIQU5O
RUwpCiAKLXN0YXRpYyBXVEZMb2dDaGFubmVsKiBsb2dDaGFubmVsc1tdID0gewotICAgIFdFQktJ
VF9MT0dfQ0hBTk5FTFMoTE9HX0NIQU5ORUxfQUREUkVTUykKLX07Ci0KLXN0YXRpYyBjb25zdCBz
aXplX3QgbG9nQ2hhbm5lbENvdW50ID0gc2l6ZW9mKGxvZ0NoYW5uZWxzKSAvIHNpemVvZihsb2dD
aGFubmVsc1swXSk7Ci0KLQotc3RhdGljIE5TU3RyaW5nICogY29uc3QgZGVmYXVsdHNEb21haW4g
PSBAIldlYktpdExvZ2dpbmciOwotCi12b2lkIFdlYktpdEluaXRpYWxpemVMb2dDaGFubmVsc0lm
TmVjZXNzYXJ5KCkKLXsKLSAgICBzdGF0aWMgYm9vbCBoYXZlSW5pdGlhbGl6ZWRMb2dnaW5nQ2hh
bm5lbHMgPSBmYWxzZTsKLSAgICBpZiAoaGF2ZUluaXRpYWxpemVkTG9nZ2luZ0NoYW5uZWxzKQot
ICAgICAgICByZXR1cm47Ci0gICAgaGF2ZUluaXRpYWxpemVkTG9nZ2luZ0NoYW5uZWxzID0gdHJ1
ZTsKLQotICAgIE5TU3RyaW5nICpsb2dMZXZlbCA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRV
c2VyRGVmYXVsdHNdIHN0cmluZ0ZvcktleTpkZWZhdWx0c0RvbWFpbl07Ci0gICAgaWYgKCFsb2dM
ZXZlbCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIFdURkluaXRpYWxpemVMb2dDaGFubmVs
U3RhdGVzRnJvbVN0cmluZyhsb2dDaGFubmVscywgbG9nQ2hhbm5lbENvdW50LCBbbG9nTGV2ZWwg
VVRGOFN0cmluZ10pOwotfQotCiAjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKLQotdm9pZCBSZXBvcnREaXNjYXJkZWREZWxlZ2F0ZUV4Y2VwdGlvbihTRUwg
ZGVsZWdhdGVTZWxlY3RvciwgaWQgZXhjZXB0aW9uKQotewotICAgIGlmIChbZXhjZXB0aW9uIGlz
S2luZE9mQ2xhc3M6W05TRXhjZXB0aW9uIGNsYXNzXV0pCi0gICAgICAgIE5TTG9nKEAiKioqIFdl
YktpdCBkaXNjYXJkZWQgYW4gdW5jYXVnaHQgZXhjZXB0aW9uIGluIHRoZSAlcyBkZWxlZ2F0ZTog
PCVAPiAlQCIsCi0gICAgICAgICAgICBzZWxfZ2V0TmFtZShkZWxlZ2F0ZVNlbGVjdG9yKSwgW2V4
Y2VwdGlvbiBuYW1lXSwgW2V4Y2VwdGlvbiByZWFzb25dKTsKLSAgICBlbHNlCi0gICAgICAgIE5T
TG9nKEAiKioqIFdlYktpdCBkaXNjYXJkZWQgYW4gdW5jYXVnaHQgZXhjZXB0aW9uIGluIHRoZSAl
cyBkZWxlZ2F0ZTogJUAiLAotICAgICAgICAgICAgc2VsX2dldE5hbWUoZGVsZWdhdGVTZWxlY3Rv
ciksIGV4Y2VwdGlvbik7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbQppbmRleCA1NTY3NDk5MDRmZDUzNmIyNTE0
ODMwNjc5ZGI4ZjY2Yzg4MmJkNjBhLi5kMGE5NWViNzRjNThiZmEwOTFjMTFkNDA5OTEzZjhmN2Yz
NDI1ZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJEcmFnQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkRyYWdDbGllbnQubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgIldlYkZy
YW1lSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkZyYW1lVmlldy5oIgogI2ltcG9ydCAiV2ViSFRN
TFZpZXdJbnRlcm5hbC5oIgorI2ltcG9ydCAiV2ViS2l0TG9nSW5pdGlhbGl6YXRpb24uaCIKICNp
bXBvcnQgIldlYktpdExvZ2dpbmcuaCIKICNpbXBvcnQgIldlYktpdE5TU3RyaW5nRXh0cmFzLmgi
CiAjaW1wb3J0ICJXZWJOU1VSTEV4dHJhcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJEZWxlZ2F0ZUltcGxlbWVudGF0aW9uQ2FjaGluZy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNh
Y2hpbmcubW0KaW5kZXggNDNmYjMzNDUzMWZmZTdiMTcxYTNjMDJjMDA2ZGZkNTcwNjc0Y2E4Yi4u
NDEyZWQ1YmM1NzkzYzcyYTE1ZjAxOGU5NTE1NTkwNjIxNmNhMWM2MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJEZWxlZ2F0ZUltcGxlbWVudGF0aW9uQ2Fj
aGluZy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkRlbGVnYXRl
SW1wbGVtZW50YXRpb25DYWNoaW5nLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgRGF2aWQgU21pdGggKGNhdGZpc2gu
bWFuQGdtYWlsLmNvbSkKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2lt
cG9ydCAiV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcuaCIKIAorI2ltcG9ydCAiV2Vi
S2l0TG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbXBvcnQgIldlYktpdExvZ2dpbmcuaCIKICNpbXBv
cnQgIldlYlZpZXcuaCIKICNpbXBvcnQgIldlYlZpZXdEYXRhLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggMDYwOGRhNTE5N2RkZjdlYzY5MjVkNzJi
MDkxYWFiZDg2Y2VlMzhkZi4uYTNlMTZiODg4NGIyZWE3MzU1NWVlNzZlYzRjYzg4MGQ0YmRlMWZh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtODEs
NiArODEsNyBAQAogI2ltcG9ydCAiV2ViSW5zcGVjdG9yQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJL
aXRFcnJvcnMuaCIKICNpbXBvcnQgIldlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5oIgorI2ltcG9y
dCAiV2ViS2l0TG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbXBvcnQgIldlYktpdExvZ2dpbmcuaCIK
ICNpbXBvcnQgIldlYktpdE5TU3RyaW5nRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJLaXRTdGF0aXN0
aWNzUHJpdmF0ZS5oIgpAQCAtMTQ4MCw4ICsxNDgxLDggQEAgLSAodm9pZClfY29tbW9uSW5pdGlh
bGl6YXRpb25XaXRoRnJhbWVOYW1lOihOU1N0cmluZyAqKWZyYW1lTmFtZSBncm91cE5hbWU6KE5T
U3QKICNlbmRpZgogICAgIGlmICghZGlkT25lVGltZUluaXRpYWxpemF0aW9uKSB7CiAjaWYgIUxP
R19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSAgICAgICAgV2ViS2l0SW5pdGlh
bGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKLSAgICAgICAgV2ViQ29yZTo6aW5pdGlhbGl6
ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKKyAgICAgICAgV2ViQ29yZTo6bG9nQ2hhbm5lbHMo
KS5pbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOworICAgICAgICBXZWJLaXQ6Omxv
Z0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKICNlbmRpZgog
CiAgICAgICAgIC8vIEluaXRpYWxpemUgb3VyIHBsYXRmb3JtIHN0cmF0ZWdpZXMgZmlyc3QgYmVm
b3JlIGludm9raW5nIHRoZSByZXN0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>