<?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>198318</bug_id>
          
          <creation_ts>2019-05-28 17:56:42 -0700</creation_ts>
          <short_desc>Optionally respect device management restrictions when loading from the network</short_desc>
          <delta_ts>2022-06-26 06:17:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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>200897</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yogottiitzrealzyo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1539837</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-05-28 17:56:42 -0700</bug_when>
    <thetext>Optionally respect device management restrictions when loading from the network</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539838</commentid>
    <comment_count>1</comment_count>
      <attachid>370816</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-05-28 17:57:57 -0700</bug_when>
    <thetext>Created attachment 370816
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539839</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-05-28 17:57:59 -0700</bug_when>
    <thetext>&lt;rdar://problem/44263806&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539840</commentid>
    <comment_count>3</comment_count>
      <attachid>370816</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-05-28 17:58:14 -0700</bug_when>
    <thetext>Comment on attachment 370816
Patch

Not for review yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540031</commentid>
    <comment_count>4</comment_count>
      <attachid>370816</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-05-29 11:31:23 -0700</bug_when>
    <thetext>Comment on attachment 370816
Patch

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

&gt; Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:501
&gt; +        [cocoaSession.deviceManagementPolicyMonitor() requestPoliciesForWebsites:@[ urlToCheck.get() ] completionHandler:[protectedThis = makeRefPtr(*this), urlToCheck] (NSDictionary&lt;NSURL *, NSNumber *&gt; *policies, NSError *error) {

makeBlockPtr([protectedThis = makeRef(*this), ...

&gt; Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:64
&gt; +SOFT_LINK_PRIVATE_FRAMEWORK(DeviceManagement);

Could you make a soft link header and cpp?  I think we&apos;re encouraging that these days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540079</commentid>
    <comment_count>5</comment_count>
      <attachid>370880</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-05-29 13:24:56 -0700</bug_when>
    <thetext>Created attachment 370880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540083</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-05-29 13:26:46 -0700</bug_when>
    <thetext>Gotta write some API tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540084</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-05-29 13:27:11 -0700</bug_when>
    <thetext>Attachment 370880 did not pass style-queue:


ERROR: Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:500:  Extra space in capture list.  [whitespace/brackets] [4]
Total errors found: 1 in 38 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540195</commentid>
    <comment_count>8</comment_count>
      <attachid>370904</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-05-29 17:57:16 -0700</bug_when>
    <thetext>Created attachment 370904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540196</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-05-29 18:00:00 -0700</bug_when>
    <thetext>Attachment 370904 did not pass style-queue:


ERROR: Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:500:  Extra space in capture list.  [whitespace/brackets] [4]
Total errors found: 1 in 47 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540454</commentid>
    <comment_count>10</comment_count>
      <attachid>370977</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-05-30 13:51:16 -0700</bug_when>
    <thetext>Created attachment 370977
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540455</commentid>
    <comment_count>11</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-05-30 13:54:10 -0700</bug_when>
    <thetext>Attachment 370977 did not pass style-queue:


ERROR: Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:500:  Extra space in capture list.  [whitespace/brackets] [4]
Total errors found: 1 in 43 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540518</commentid>
    <comment_count>12</comment_count>
      <attachid>370977</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-05-30 16:50:51 -0700</bug_when>
    <thetext>Comment on attachment 370977
Patch

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

There are no tests that synthesize device management blocking and make sure an error is reported correctly.  Please write such a test.

&gt; Source/WebKit/NetworkProcess/NetworkDataTask.h:135
&gt;      enum FailureType {

Ideally this would be an enum class : uint8_t.  Maybe not in this patch, though.

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:36
&gt; +- (instancetype)initWithNonPersistentConfiguration WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));

&quot;With&quot; is a little misleading.  You&apos;re not initializing with anything.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:459
&gt; +    [[[webView configuration] processPool] _syncNetworkProcessCookies];

Should we try setting a cookie then look at the cookie file, instead of looking at the ResourceLoadStatistics file?

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:470
&gt; +    EXPECT_TRUE([[NSFileManager defaultManager] fileExistsAtPath:defaultResourceLoadStatisticsPath.path]);

Should we remove this when we&apos;re done with the test to not leave state behind?  You remove it at the beginning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540519</commentid>
    <comment_count>13</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-05-30 16:56:52 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #12)
&gt; Comment on attachment 370977 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=370977&amp;action=review
&gt; 
&gt; There are no tests that synthesize device management blocking and make sure
&gt; an error is reported correctly.  Please write such a test.

There is no such test because the framework is nonfunctional in the simulator and thus the #define is not defined there, so none of the code is built in the only place we run tests.

I don&apos;t know what to do about this.

&gt; &gt; Source/WebKit/NetworkProcess/NetworkDataTask.h:135
&gt; &gt;      enum FailureType {
&gt; 
&gt; Ideally this would be an enum class : uint8_t.  Maybe not in this patch,
&gt; though.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:36
&gt; &gt; +- (instancetype)initWithNonPersistentConfiguration WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
&gt; 
&gt; &quot;With&quot; is a little misleading.  You&apos;re not initializing with anything.

I agree. Do you have thoughts about a better name?

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:459
&gt; &gt; +    [[[webView configuration] processPool] _syncNetworkProcessCookies];
&gt; 
&gt; Should we try setting a cookie then look at the cookie file, instead of
&gt; looking at the ResourceLoadStatistics file?

Maybe? I just borrowed an existing test.

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:470
&gt; &gt; +    EXPECT_TRUE([[NSFileManager defaultManager] fileExistsAtPath:defaultResourceLoadStatisticsPath.path]);
&gt; 
&gt; Should we remove this when we&apos;re done with the test to not leave state
&gt; behind?  You remove it at the beginning.

Maybe? I just borrowed an existing test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540562</commentid>
    <comment_count>14</comment_count>
      <attachid>371010</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-05-30 18:33:09 -0700</bug_when>
    <thetext>Created attachment 371010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540565</commentid>
    <comment_count>15</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-05-30 18:34:59 -0700</bug_when>
    <thetext>Attachment 371010 did not pass style-queue:


ERROR: Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:500:  Extra space in capture list.  [whitespace/brackets] [4]
Total errors found: 1 in 43 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540579</commentid>
    <comment_count>16</comment_count>
      <attachid>371016</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-05-30 19:06:21 -0700</bug_when>
    <thetext>Created attachment 371016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540580</commentid>
    <comment_count>17</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-05-30 19:09:05 -0700</bug_when>
    <thetext>Attachment 371016 did not pass style-queue:


ERROR: Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:514:  Extra space in capture list.  [whitespace/brackets] [4]
Total errors found: 1 in 45 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540593</commentid>
    <comment_count>18</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-05-30 19:39:05 -0700</bug_when>
    <thetext>&gt; There is no such test because the framework is nonfunctional in the
&gt; simulator and thus the #define is not defined there, so none of the code is
&gt; built in the only place we run tests.

Make a boolean configuration to enable pretending everything is blocked.

&gt; I agree. Do you have thoughts about a better name?

+ (_WKWebsiteDataStoreConfiguration *)nonPersistentConfiguration;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540596</commentid>
    <comment_count>19</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-05-30 19:45:59 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #18)
&gt; &gt; There is no such test because the framework is nonfunctional in the
&gt; &gt; simulator and thus the #define is not defined there, so none of the code is
&gt; &gt; built in the only place we run tests.
&gt; 
&gt; Make a boolean configuration to enable pretending everything is blocked.

The current version of the patch does this, yes.

&gt; &gt; I agree. Do you have thoughts about a better name?
&gt; 
&gt; + (_WKWebsiteDataStoreConfiguration *)nonPersistentConfiguration;

I changed it to -initNonPersistentConfiguration in the last patch or two, but we could do a class method instead...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540597</commentid>
    <comment_count>20</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-05-30 19:46:23 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #19)
&gt; (In reply to Alex Christensen from comment #18)
&gt; &gt; &gt; There is no such test because the framework is nonfunctional in the
&gt; &gt; &gt; simulator and thus the #define is not defined there, so none of the code is
&gt; &gt; &gt; built in the only place we run tests.
&gt; &gt; 
&gt; &gt; Make a boolean configuration to enable pretending everything is blocked.
&gt; 
&gt; The current version of the patch does this, yes.

(this also involved making a lot less of the code conditionally enabled, but that is fine)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540784</commentid>
    <comment_count>21</comment_count>
      <attachid>371016</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-05-31 11:41:14 -0700</bug_when>
    <thetext>Comment on attachment 371016
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/DeviceManagementRestrictions.mm:54
&gt; +        EXPECT_EQ(kWKErrorCodeFrameLoadBlockedByRestrictions, error.code);

This should be a value from WKErrorPrivate.h instead of from the C API.  Also check the domain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540796</commentid>
    <comment_count>22</comment_count>
      <attachid>371074</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-05-31 12:16:26 -0700</bug_when>
    <thetext>Created attachment 371074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540797</commentid>
    <comment_count>23</comment_count>
      <attachid>371075</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-05-31 12:17:02 -0700</bug_when>
    <thetext>Created attachment 371075
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540798</commentid>
    <comment_count>24</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-05-31 12:19:21 -0700</bug_when>
    <thetext>Attachment 371075 did not pass style-queue:


ERROR: Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:514:  Extra space in capture list.  [whitespace/brackets] [4]
Total errors found: 1 in 46 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540807</commentid>
    <comment_count>25</comment_count>
      <attachid>371075</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-31 13:00:13 -0700</bug_when>
    <thetext>Comment on attachment 371075
Patch

Clearing flags on attachment: 371075

Committed r245979: &lt;https://trac.webkit.org/changeset/245979&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540808</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-31 13:00:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370816</attachid>
            <date>2019-05-28 17:57:57 -0700</date>
            <delta_ts>2019-05-29 13:24:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198318-20190528175756.patch</filename>
            <type>text/plain</type>
            <size>36952</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NzUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGMyNjVhYmRkMGVkYTI2ZTdmMWEyZDlk
NGZjNGVmMTJhYjVhM2M5OTguLjQzMTI2ZTZhZDdiZDJlNWFlODBjY2YzYzI3Y2E4ZWI3MTBkNjE2
NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTktMDUtMjggIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgT3B0aW9uYWxseSByZXNwZWN0IGRldmljZSBt
YW5hZ2VtZW50IHJlc3RyaWN0aW9ucyB3aGVuIGxvYWRpbmcgZnJvbSB0aGUgbmV0d29yaworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MzE4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NDI2MzgwNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDE5LTA1LTIzICBE
b24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBV
c2UgdGFyZ2V0IG9yaWVudGVkIGRlc2lnbiBmb3IgYm1hbGxvYwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzZGJiNWMy
YTdkYjdkYTcyYzQyMDAzMmIyM2E1YWExODFlMDRjZGE1Li40NmFlZDA4OGFmOGI2ODNiYmM5NzM3
NzliOWY5MWQ1MDA2Y2Q5NDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE5LTA1LTI4
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIE9wdGlv
bmFsbHkgcmVzcGVjdCBkZXZpY2UgbWFuYWdlbWVudCByZXN0cmljdGlvbnMgd2hlbiBsb2FkaW5n
IGZyb20gdGhlIG5ldHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5ODMxOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQyNjM4MDY+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0
aW9ucy9OZXR3b3JrLWlPUy5lbnRpdGxlbWVudHM6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0RhdGFUYXNrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpj
cmVhdGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVh
dGlvblBhcmFtZXRlcnM6OnByaXZhdGVTZXNzaW9uUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29h
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRh
c2tDb2NvYSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpyZXN1bWUp
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgor
ICAgICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgVVJMU2Vzc2lvbjpkYXRhVGFzazpk
aWRSZWNlaXZlUmVzcG9uc2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hOjpkZXZpY2VNYW5hZ2VtZW50UG9saWN5TW9uaXRvcik6
CisgICAgICAgICogUGxhdGZvcm0vc3BpL0NvY29hL0RldmljZU1hbmFnZW1lbnRTUEkuaDogQWRk
ZWQuCisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldl
YktpdC5OZXR3b3JraW5nLnNiOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2luaXRXaXRo
Q29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0Vu
YWJsZWRdKToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0
RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQ6XSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6ZGV2aWNl
TWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0
aW9uc0VuYWJsZWQpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29y
a1Byb2Nlc3MpOgorCiAyMDE5LTA1LTI0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBVcGRhdGUgbWVzc2FnZXNfdW5pdHRlc3QucHkgYWZ0ZXIgcjI0NTcxNQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmgKaW5kZXggNDQ3YmIxOGE4ZjAyOGMyOTUwMWQzOTMxZmI5NTU3YThkNTNhMjYwNy4u
Nzk1ZjMzYzU3ZjVhNDYyMDRlNmFhOTJhZjczMjI0ZTRjMTBhOWEzNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBA
IC0xNTQ3LDYgKzE1NDcsMTAgQEAKICNkZWZpbmUgSEFWRV9ST1VURV9TSEFSSU5HX1BPTElDWV9M
T05HX0ZPUk1fVklERU8gMQogI2VuZGlmCiAKKyNpZiAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9O
RV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApCisjZGVmaW5lIEhBVkVfREVWSUNF
X01BTkFHRU1FTlQgMQorI2VuZGlmCisKICNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NQVhfQUxMT1dFRCA8IDEwMTUwMAogI2RlZmluZSBVU0VfUkVBTFBBVEhfRk9SX0RM
T1BFTl9QUkVGTElHSFQgMQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL05ldHdvcmstaU9TLmVudGl0bGVtZW50cyBiL1NvdXJjZS9XZWJLaXQvQ29uZmln
dXJhdGlvbnMvTmV0d29yay1pT1MuZW50aXRsZW1lbnRzCmluZGV4IDJlZTY5NjYzOGY2NzJlNjIz
N2RhMGI3NDc4YWZlOTkzNmI0ODg2M2EuLjUzZGZkNTYzNTQwOTllZjAzMDkxZDFkNWM1OTRiM2Yx
NzNiMjg1OTEgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgMjQ0CnpjbVhAYUB8e1U0c1VS
bl94V3ZIVkl3S1BeM285RXQyTH40aTVYMXs7UGdaOHN3dWwjeU9VfT5MT0RyaEpOITJTVAp6JH1D
R1BOITgwdSZDTV5XRUd8aGJESl9sezVHK25qRUo7ZXVEYlh6YCUxX0o4TmQ9MEBPI0NScjk1MHxi
Yz9QNFYKejV8RTImTW9NbXFVT3wzTldeIWVgZlkhdX5UNHxofDMlVFAzcSFCOF5RPEo8aU9aNUN3
T1VtPCR2TlFBMkllfnpJCnhnRiYzWmxfOEN4aWVWPGhRSENkc2Z7YTNwIWk9SmYjKjhNNnJpXjlg
VjhGeChwJjEwQUc/WmRBMkxRcipLMnJieQoKbGl0ZXJhbCA1NzgKemNtYSkoLSVHPFY1WFlhbHph
cituaU4xKys5bEF7emojO29HSzQjNTFMKD9XQypWWD5fVWJsalohaEFpeEtSJFB0CnomT2Q2KTRp
S1ZvJjVVMShPVXxHdm9pQCNXIy1FRyg8ZUphM1g/bjRJVG9rWVFpZ3t9eXZpJGpPdnRCVHNOT3xr
TQp6MXUyKXNsSTVIQVFeNj1oJUdIKUx7KkxIeHIwbHYqczZpITRSfWFEe15XWiFMPl5Cc2FrVT9u
Rm9ONysjS1g3UU8Kek9eTWxibDIqYFg2ZnVVP3R3bjw+Uilpe0k5fSNNNVE4N3w1RWZaNVk9KmZu
bTFeTF9XUmJOQWNMUnApcnZWP2Z2Cno1eklqJDJ2V1BZITY8ZlpxYihSNnk+b0FiYWtnPntzRylY
Jmghd1d+RV5Qb2k3YisyNVNwZzsqRWJJeTlANSVAWQp5Y1ZJRWBmeHMrJHdXdHUoYUZ0MEtGJWFe
JWdUQkQtIUp5Y2xpak0xeThha3BKamoyMytCYkNRcld6JGFxMG0zdUAKCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKaW5kZXggZjFmMDExMTVk
MjMxYWFiZDdkZTBlZDAwYzA3ODRmMTg4ZjA5Y2M1NC4uNWM4NDljNjkyMDE3YjgzODAzMzkwYjcz
MzNhOWRhOTI2NTYxMzM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrRGF0YVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0RhdGFUYXNrLmNwcApAQCAtNTAsNyArNTAsNyBAQCBSZWY8TmV0d29ya0RhdGFUYXNr
PiBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29y
a0RhdAogewogICAgIEFTU0VSVCghcGFyYW1ldGVycy5yZXF1ZXN0LnVybCgpLnByb3RvY29sSXNC
bG9iKCkpOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tD
b2NvYTo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0
ZXJzLndlYkZyYW1lSUQsIHBhcmFtZXRlcnMud2ViUGFnZUlELCBwYXJhbWV0ZXJzLnN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1l
dGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLnNob3VsZFByZWNvbm5l
Y3RPbmx5LCBwYXJhbWV0ZXJzLmlzTWFpbkZyYW1lTmF2aWdhdGlvbiwgcGFyYW1ldGVycy5uZXR3
b3JrQWN0aXZpdHlUcmFja2VyKTsKKyAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmNy
ZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy53ZWJG
cmFtZUlELCBwYXJhbWV0ZXJzLndlYlBhZ2VJRCwgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFs
c1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuY29u
dGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSwg
cGFyYW1ldGVycy5pc01haW5GcmFtZU5hdmlnYXRpb24sIHBhcmFtZXRlcnMuaXNNYWluUmVzb3Vy
Y2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIHBhcmFtZXRlcnMubmV0d29ya0FjdGl2aXR5VHJhY2tl
cik7CiAjZW5kaWYKICNpZiBVU0UoU09VUCkKICAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrU291
cDo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJz
LnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGlj
eSwgcGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5z
aG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLmlzTWFp
bkZyYW1lTmF2aWdhdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAppbmRleCA4OTYzOTlkMTMzMjVkMDE0YTE3NGJmNzdi
NGNhNjM2Y2FmMmUwYzQ2Li45ZDU5YTljZjJjMzFiNTE3YmRjNWI5MmI5MTJiM2YxZjk5M2ExYmNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQ
YXJhbWV0ZXJzLmgKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCB7IHRydWUgfTsKICAgICBib29sIG5lZWRz
Q2VydGlmaWNhdGVJbmZvIHsgZmFsc2UgfTsKICAgICBib29sIGlzTWFpbkZyYW1lTmF2aWdhdGlv
biB7IGZhbHNlIH07CisgICAgYm9vbCBpc01haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFt
ZSB7IGZhbHNlIH07CiAgICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZl
cmVuY2U+PiBibG9iRmlsZVJlZmVyZW5jZXM7CiAgICAgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJl
Y29ubmVjdE9ubHkgeyBQcmVjb25uZWN0T25seTo6Tm8gfTsKICAgICBPcHRpb25hbDxOZXR3b3Jr
QWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzLmNwcAppbmRleCA1OGFhY2I5OTNkYjk4YWNjZGE2NTIyZDk1NjRjOWVhYTg5NGJkYTgx
Li5hMGFjNGFmMmU0NTA0NTVmYzk0ODg4ZjQ0NjNlNjhlMzdmODM3ZDZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzLmNwcApAQCAtNzgsNiArNzgsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVu
Y29kZXIgPDwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdDsKICAgICBl
bmNvZGVyIDw8IG5lZWRzQ2VydGlmaWNhdGVJbmZvOwogICAgIGVuY29kZXIgPDwgaXNNYWluRnJh
bWVOYXZpZ2F0aW9uOworICAgIGVuY29kZXIgPDwgaXNNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9y
QW55RnJhbWU7CiAgICAgZW5jb2RlciA8PCBtYXhpbXVtQnVmZmVyaW5nVGltZTsKIAogICAgIGVu
Y29kZXIgPDwgc3RhdGljX2Nhc3Q8Ym9vbD4oc291cmNlT3JpZ2luKTsKQEAgLTE2Niw2ICsxNjcs
OCBAQCBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyLCBOZXR3b3JrUmVzb3VyYwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNNYWluRnJhbWVOYXZpZ2F0aW9uKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzTWFpblJl
c291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1heGltdW1CdWZmZXJpbmdUaW1lKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4
IDI2YmYxOWQ5YWNjYjk5M2IwYWY1MzE5YjExYjI3NWMxZTIzZTQ4NzIuLjA1NDAyOWJiNjVhNGFj
MGFmNzA0MjdhNjJmMDljNGYyYjIwZTU1MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRl
cnMuY3BwCkBAIC01MCw3ICs1MCw3IEBAIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpwcml2YXRlU2Vzc2lvCiAjaWYgVVNF
KENVUkwpCiAgICAgICAgICwgeyB9LCB7IH0KICNlbmRpZgotICAgICAgICAsIHsgfSwgeyB9LCBm
YWxzZSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0KKyAgICAgICAgLCB7IH0sIHsgfSwgZmFsc2Us
IHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0KICAgICB9OwogfQogCkBAIC04NCw3ICs4NCw5
IEBAIHZvaWQgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBlbmFibGVSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGVidWdNb2RlOwogICAgIGVuY29kZXIgPDwgcmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01hbnVhbFByZXZhbGVudFJlc291cmNlOwogCi0gICAgZW5jb2RlciA8PCBsb2NhbFN0b3JhZ2VE
aXJlY3RvcnkgPDwgIGxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBl
bmNvZGVyIDw8IGxvY2FsU3RvcmFnZURpcmVjdG9yeSA8PCBsb2NhbFN0b3JhZ2VEaXJlY3RvcnlF
eHRlbnNpb25IYW5kbGU7CisKKyAgICBlbmNvZGVyIDw8IGRldmljZU1hbmFnZW1lbnRSZXN0cmlj
dGlvbnNFbmFibGVkOwogfQogCiBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1l
dGVycz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29k
ZXImIGRlY29kZXIpCkBAIC0yMDgsNiArMjEwLDExIEBAIE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9u
Q3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
CiAgICAgaWYgKCFsb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCiAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CiAKKyAgICBPcHRpb25hbDxib29sPiBkZXZpY2VNYW5hZ2Vt
ZW50UmVzdHJpY3Rpb25zRW5hYmxlZDsKKyAgICBkZWNvZGVyID4+IGRldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNFbmFibGVkOworICAgIGlmICghZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9u
c0VuYWJsZWQpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKICAgICByZXR1cm4ge3sK
ICAgICAgICAgc2Vzc2lvbklECiAgICAgICAgICwgV1RGTW92ZSgqYm91bmRJbnRlcmZhY2VJZGVu
dGlmaWVyKQpAQCAtMjM1LDYgKzI0Miw3IEBAIE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjCiAgICAg
ICAgICwgV1RGTW92ZSgqZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcykKICAgICAgICAgLCBX
VEZNb3ZlKCpzaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzKQog
ICAgICAgICAsIFdURk1vdmUoKmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUp
CisgICAgICAgICwgV1RGTW92ZSgqZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQp
CiAgICAgICAgICwgV1RGTW92ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVu
dFJlc291cmNlKQogICAgICAgICAsIFdURk1vdmUoKmxvY2FsU3RvcmFnZURpcmVjdG9yeSkKICAg
ICAgICAgLCBXVEZNb3ZlKCpsb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNmZjMDdhZWQyNGI0MGE2N2RhZjRjMTc2
ZTRmN2RiZjE1YjBiNzBjNS4uMTc1MjVmZWM2OWJhMGM3Y2I0NTlmZmY1YWViMTdiZGVjNzM2MDll
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtODYsNiArODYsNyBAQCBzdHJ1
Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgZW5hYmxlUmVz
b3VyY2VMb2FkU3RhdGlzdGljcyB7IGZhbHNlIH07CiAgICAgYm9vbCBzaG91bGRJbmNsdWRlTG9j
YWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHsgdHJ1ZSB9OwogICAgIGJvb2wgZW5hYmxl
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSB7IGZhbHNlIH07CisgICAgYm9vbCBkZXZp
Y2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJl
c291cmNlIHsgfTsKIAogICAgIFN0cmluZyBsb2NhbFN0b3JhZ2VEaXJlY3Rvcnk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0Nv
Y29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFz
a0NvY29hLmgKaW5kZXggOTY1YzZmYTY2NGJjZDE1NWY3NmNkYjNiNGQ3MzI2ZWVlMDNlOTE4OC4u
M2ZkMDY1MDFkNjcwZWM5YmFlOTYxZDRkMjlhNDQ4Yzk0MThiYTBmYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29j
b2EuaApAQCAtNDIsOSArNDIsOSBAQCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogY2xhc3Mg
TmV0d29ya0RhdGFUYXNrQ29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya0RhdGFUYXNrIHsKICAg
ICBmcmllbmQgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3
b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpD
b250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50
RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBz
aG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBz
aG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlv
biwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJhY2tl
cikKKyAgICBzdGF0aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9u
JiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdl
SUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBX
ZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2Rp
bmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQ
cmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFp
bkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlv
bkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0
aXZpdHlUcmFja2VyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29y
a0RhdGFUYXNrQ29jb2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBmcmFtZUlELCBwYWdlSUQs
IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRl
bnRFbmNvZGluZ1NuaWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
LCBzaG91bGRQcmVjb25uZWN0T25seSwgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24s
IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
TmV0d29ya0RhdGFUYXNrQ29jb2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBmcmFtZUlELCBw
YWdlSUQsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3Vs
ZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJl
ZGlyZWN0LCBzaG91bGRQcmVjb25uZWN0T25seSwgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmln
YXRpb24sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIG5l
dHdvcmtBY3Rpdml0eVRyYWNrZXIpKTsKICAgICB9CiAKICAgICB+TmV0d29ya0RhdGFUYXNrQ29j
b2EoKTsKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBkZXNjcmlwdGlvbigp
IGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5l
dHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5
LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSwgYm9vbCBkYXRh
VGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJh
Y2tlcj4pOworICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29y
a0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgdWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBXZWJDb3JlOjpDb250ZW50RW5j
b2RpbmdTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2
aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZy
YW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPik7CiAKICAgICBib29sIHRyeVBh
c3N3b3JkQmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7CiAgICAgdm9pZCBhcHBseVNu
aWZmaW5nUG9saWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVkZWQoX19zdHJvbmcg
TlNVUkxSZXF1ZXN0KiYsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRl
bnRFbmNvZGluZ1NuaWZmKTsKQEAgLTk4LDYgKzk4LDEwIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBib29sIG1faGFzQmVlblNldFRvVXNlU3Rh
dGVsZXNzQ29va2llU3RvcmFnZSB7IGZhbHNlIH07CiAjZW5kaWYKKworI2lmIEhBVkUoREVWSUNF
X01BTkFHRU1FTlQpCisgICAgYm9vbCBtX2lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFu
eUZyYW1lIHsgZmFsc2UgfTsKKyNlbmRpZgogfTsKIAogV2ViQ29yZTo6Q3JlZGVudGlhbCBzZXJ2
ZXJUcnVzdENyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4IDM1ZTQ0M2I5ZWU5MTgwNTdhZDM0ZGVmMDY4YTg5
OWJlYTA2N2FkZjYuLmIzOWRhOTE3YTBiMTUwMTVjNzVkMTU4YWY0YTQ4ODMxNDgxZWViMTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFU
YXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW1wb3J0ICJBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uLmgiCiAjaW1wb3J0ICJBdXRoZW50aWNhdGlvbk1h
bmFnZXIuaCIKKyNpbXBvcnQgIkRldmljZU1hbmFnZW1lbnRTUEkuaCIKICNpbXBvcnQgIkRvd25s
b2FkLmgiCiAjaW1wb3J0ICJEb3dubG9hZFByb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIkxvZ2dp
bmcuaCIKQEAgLTE2MCwxMCArMTYxLDEzIEBAIHN0YXRpYyB2b2lkIHVwZGF0ZVRhc2tXaXRoRmly
c3RQYXJ0eUZvclNhbWVTaXRlQ29va2llcyhOU1VSTFNlc3Npb25EYXRhVGFzayogdGFzCiAjZW5k
aWYKIH0KIAotTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdv
cmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCB1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xp
Y3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1Bv
bGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25s
eSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgT3B0aW9uYWw8TmV0d29y
a0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJhY2tlcikKK05ldHdvcmtEYXRhVGFz
a0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0
d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFn
ZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwg
V2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29k
aW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwg
UHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1h
aW5GcmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRp
b25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0Fj
dGl2aXR5VHJhY2tlcikKICAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJl
cXVlc3RXaXRoQ3JlZGVudGlhbHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2
aWdhdGlvbikKICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQogICAgICwgbV9wYWdlSUQocGFnZUlE
KQorI2lmIEhBVkUoREVWSUNFX01BTkFHRU1FTlQpCisgICAgLCBtX2lzRm9yTWFpblJlc291cmNl
TmF2aWdhdGlvbkZvckFueUZyYW1lKGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9u
Rm9yQW55RnJhbWUpCisjZW5kaWYKIHsKICAgICBpZiAobV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAh
PSBOb0ZhaWx1cmUpCiAgICAgICAgIHJldHVybjsKQEAgLTQ4OSw2ICs0OTMsMjcgQEAgdm9pZCBO
ZXR3b3JrRGF0YVRhc2tDb2NvYTo6cmVzdW1lKCkKIHsKICAgICBpZiAobV9zY2hlZHVsZWRGYWls
dXJlVHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAgICAgIG1fZmFpbHVyZVRpbWVyLnN0YXJ0T25lU2hv
dCgwX3MpOworCisjaWYgSEFWRShERVZJQ0VfTUFOQUdFTUVOVCkKKyAgICBhdXRvJiBjb2NvYVNl
c3Npb24gPSBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29hJj4obV9zZXNzaW9uLmdldCgp
KTsKKyAgICBpZiAoY29jb2FTZXNzaW9uLmRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFi
bGVkKCkgJiYgbV9pc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSkgeworICAg
ICAgICBSZXRhaW5QdHI8TlNVUkw+IHVybFRvQ2hlY2sgPSBbbV90YXNrIGN1cnJlbnRSZXF1ZXN0
XS5VUkw7CisgICAgICAgIFtjb2NvYVNlc3Npb24uZGV2aWNlTWFuYWdlbWVudFBvbGljeU1vbml0
b3IoKSByZXF1ZXN0UG9saWNpZXNGb3JXZWJzaXRlczpAWyB1cmxUb0NoZWNrLmdldCgpIF0gY29t
cGxldGlvbkhhbmRsZXI6W3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlzKSwgdXJsVG9D
aGVja10gKE5TRGljdGlvbmFyeTxOU1VSTCAqLCBOU051bWJlciAqPiAqcG9saWNpZXMsIE5TRXJy
b3IgKmVycm9yKSB7CisgICAgICAgICAgICBib29sIGlzQmxvY2tlZCA9IGVycm9yIHx8IHBvbGlj
aWVzW3VybFRvQ2hlY2suZ2V0KCldLmludGVnZXJWYWx1ZSAhPSBETUZQb2xpY3lPSzsKKyAgICAg
ICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW2lzQmxvY2tlZCwgcHJvdGVjdGVkVGhpc10geworICAg
ICAgICAgICAgICAgIGlmIChpc0Jsb2NrZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJvdGVj
dGVkVGhpcy0+c2NoZWR1bGVGYWlsdXJlKEJsb2NrZWRGYWlsdXJlKTsKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIFtwcm90
ZWN0ZWRUaGlzLT5tX3Rhc2sgcmVzdW1lXTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9XTsK
KworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKICAgICBbbV90YXNrIHJlc3VtZV07
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Nlc3Npb25Db2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrU2Vzc2lvbkNvY29hLmgKaW5kZXggM2QxYTQ5ZjI3MzI1ZjQ5Njc1NDEyNTQwMDU3ZWYx
MTA2NjIxNDBiMi4uMTEyMWEzNGMyY2E0N2NkMGE3MTU5NGE2NGM0ZjYxYjE1Mjg1MjljNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lv
bkNvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
U2Vzc2lvbkNvY29hLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKK09CSkNf
Q0xBU1MgRE1GV2Vic2l0ZVBvbGljeU1vbml0b3I7CiBPQkpDX0NMQVNTIE5TRGF0YTsKIE9CSkNf
Q0xBU1MgTlNVUkxTZXNzaW9uOwogT0JKQ19DTEFTUyBOU1VSTFNlc3Npb25Eb3dubG9hZFRhc2s7
CkBAIC02OSw2ICs3MCwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2
ZUNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIE5ldHdv
cmtEYXRhVGFza0NvY29hOjpUYXNrSWRlbnRpZmllciwgTmV0d29ya0RhdGFUYXNrQ29jb2EqLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNw
b3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYpPiYmKTsKIAorI2lmIEhBVkUoREVW
SUNFX01BTkFHRU1FTlQpCisgICAgYm9vbCBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJs
ZWQ7IH0KKyAgICBETUZXZWJzaXRlUG9saWN5TW9uaXRvciAqZGV2aWNlTWFuYWdlbWVudFBvbGlj
eU1vbml0b3IoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIE5ldHdvcmtTZXNzaW9uQ29jb2Eo
TmV0d29ya1Byb2Nlc3MmLCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmKTsKIApA
QCAtOTMsNiArOTksMTAgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9zb3VyY2VBcHBsaWNhdGlv
bkJ1bmRsZUlkZW50aWZpZXI7CiAgICAgU3RyaW5nIG1fc291cmNlQXBwbGljYXRpb25TZWNvbmRh
cnlJZGVudGlmaWVyOwogICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IG1fcHJveHlDb25m
aWd1cmF0aW9uOworI2lmIEhBVkUoREVWSUNFX01BTkFHRU1FTlQpCisgICAgUmV0YWluUHRyPERN
RldlYnNpdGVQb2xpY3lNb25pdG9yPiBtX2RldmljZU1hbmFnZW1lbnRQb2xpY3lNb25pdG9yOwor
ICAgIGJvb2wgbV9kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCB7IGZhbHNlIH07
CisjZW5kaWYKICAgICBib29sIG1fc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24geyBmYWxzZSB9
OwogICAgIFNlY29uZHMgbV9sb2FkVGhyb3R0bGVMYXRlbmN5OwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5t
bQppbmRleCBjNGNhMzkxZGY3ZWI4MTlhNjg2ZGJiY2YwMWZiY2Q2NDdjZWU3MWRiLi4zZGE2MjZl
NGNmMDg0YWY4OTczMWRmNTExZWU2ZjRjOWRjYjk0ZWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCkBA
IC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0
aW9uLmgiCiAjaW1wb3J0ICJBdXRoZW50aWNhdGlvbk1hbmFnZXIuaCIKICNpbXBvcnQgIkRhdGFS
ZWZlcmVuY2UuaCIKKyNpbXBvcnQgIkRldmljZU1hbmFnZW1lbnRTUEkuaCIKICNpbXBvcnQgIkRv
d25sb2FkLmgiCiAjaW1wb3J0ICJMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIuaCIKICNpbXBv
cnQgIkxvZ2dpbmcuaCIKQEAgLTUxLDYgKzUyLDcgQEAKICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogI2ltcG9ydCA8d3RmL09iakNSdW50aW1lRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYv
UHJvY2Vzc1ByaXZpbGVnZS5oPgorI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0
IDx3dGYvVVJMLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTgsNiAr
NjAsMTEgQEAKICNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvTmV0d29ya1Nlc3Npb25Db2NvYUFk
ZGl0aW9ucy5oPgogI2VuZGlmCiAKKyNpZiBIQVZFKERFVklDRV9NQU5BR0VNRU5UKQorU09GVF9M
SU5LX1BSSVZBVEVfRlJBTUVXT1JLKERldmljZU1hbmFnZW1lbnQpOworU09GVF9MSU5LX0NMQVNT
KERldmljZU1hbmFnZW1lbnQsIERNRldlYnNpdGVQb2xpY3lNb25pdG9yKTsKKyNlbmRpZgorCiB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBDRlN0cmluZ1JlZiBjb25zdCBXZWJLaXQySFRUUFBy
b3h5RGVmYXVsdHNLZXkgPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQCJXZWJLaXQySFRUUFBy
b3h5Iik7CkBAIC03MTMsNyArNzIwLDcgQEAgLSAodm9pZClVUkxTZXNzaW9uOihOU1VSTFNlc3Np
b24gKilzZXNzaW9uIGRhdGFUYXNrOihOU1VSTFNlc3Npb25EYXRhVGFzayAqKWRhdGEKICAgICAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgCiAgICAgICAgIC8vIEF2b2lk
IE1JTUUgdHlwZSBzbmlmZmluZyBpZiB0aGUgcmVzcG9uc2UgY29tZXMgYmFjayBhcyAzMDQgTm90
IE1vZGlmaWVkLgotICAgICAgICBpbnQgc3RhdHVzQ29kZSA9IFtyZXNwb25zZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKHN0YXR1c0NvZGUpXSA/IFsoaWQpcmVzcG9uc2Ugc3RhdHVzQ29k
ZV0gOiAwOworICAgICAgICBpbnQgc3RhdHVzQ29kZSA9IFtyZXNwb25zZSBpc0tpbmRPZkNsYXNz
Ok5TSFRUUFVSTFJlc3BvbnNlLmNsYXNzXSA/IFsoTlNIVFRQVVJMUmVzcG9uc2UgKilyZXNwb25z
ZSBzdGF0dXNDb2RlXSA6IDA7CiAgICAgICAgIGlmIChzdGF0dXNDb2RlICE9IDMwNCkgewogICAg
ICAgICAgICAgYm9vbCBpc01haW5SZXNvdXJjZUxvYWQgPSBuZXR3b3JrRGF0YVRhc2stPmZpcnN0
UmVxdWVzdCgpLnJlcXVlc3RlcigpID09IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6UmVxdWVz
dGVyOjpNYWluOwogICAgICAgICAgICAgV2ViQ29yZTo6YWRqdXN0TUlNRVR5cGVJZk5lY2Vzc2Fy
eShyZXNwb25zZS5fQ0ZVUkxSZXNwb25zZSwgaXNNYWluUmVzb3VyY2VMb2FkKTsKQEAgLTk4MSw2
ICs5ODgsOCBAQCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKE5ldHdv
cmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29yawogICAgIG1fc3RhdGVsZXNzU2Vzc2lv
bkRlbGVnYXRlID0gYWRvcHROUyhbW1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSBhbGxvY10gaW5p
dFdpdGhOZXR3b3JrU2Vzc2lvbjoqdGhpcyB3aXRoQ3JlZGVudGlhbHM6ZmFsc2VdKTsKICAgICBt
X3N0YXRlbGVzc1Nlc3Npb24gPSBbTlNVUkxTZXNzaW9uIHNlc3Npb25XaXRoQ29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uIGRlbGVnYXRlOnN0YXRpY19jYXN0PGlkPihtX3N0YXRlbGVzc1Nlc3Np
b25EZWxlZ2F0ZS5nZXQoKSkgZGVsZWdhdGVRdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBtYWluUXVl
dWVdXTsKIAorICAgIG1fZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgPSBwYXJh
bWV0ZXJzLmRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkOworCiAjaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NE
aXJlY3RvcnkgPSBwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7CiAg
ICAgbV9zaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gcGFy
YW1ldGVycy5zaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzID8g
U2hvdWxkSW5jbHVkZUxvY2FsaG9zdDo6WWVzIDogU2hvdWxkSW5jbHVkZUxvY2FsaG9zdDo6Tm87
CkBAIC0xMTY3LDQgKzExNzYsMTQgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjb250aW51
ZURpZFJlY2VpdmVDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXQKICAgICBuZXR3
b3JrRGF0YVRhc2stPmRpZFJlY2VpdmVDaGFsbGVuZ2UoV1RGTW92ZShhdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSksIFdURk1vdmUoY2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAorI2lm
IEhBVkUoREVWSUNFX01BTkFHRU1FTlQpCitETUZXZWJzaXRlUG9saWN5TW9uaXRvciAqTmV0d29y
a1Nlc3Npb25Db2NvYTo6ZGV2aWNlTWFuYWdlbWVudFBvbGljeU1vbml0b3IoKQoreworICAgIEFT
U0VSVChtX2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKTsKKyAgICBpZiAoIW1f
ZGV2aWNlTWFuYWdlbWVudFBvbGljeU1vbml0b3IpCisgICAgICAgIG1fZGV2aWNlTWFuYWdlbWVu
dFBvbGljeU1vbml0b3IgPSBhZG9wdE5TKFthbGxvY0RNRldlYnNpdGVQb2xpY3lNb25pdG9ySW5z
dGFuY2UoKSBpbml0V2l0aFBvbGljeUNoYW5nZUhhbmRsZXI6bmlsXSk7CisgICAgcmV0dXJuIG1f
ZGV2aWNlTWFuYWdlbWVudFBvbGljeU1vbml0b3IuZ2V0KCk7Cit9CisjZW5kaWYKKwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvRGV2aWNlTWFuYWdlbWVu
dFNQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvRGV2aWNlTWFuYWdlbWVu
dFNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA4Y2M0OTRlZGE0MTJjYjY1MmYxNWFkMGMwZmJkYTVlZjU2NDJk
MWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9E
ZXZpY2VNYW5hZ2VtZW50U1BJLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgSEFWRShERVZJQ0VfTUFOQUdFTUVOVCkKKworI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCisKKyNpbXBvcnQgPERldmljZU1hbmFnZW1lbnQvRGV2aWNlTWFuYWdlbWVu
dC5oPgorCisjZWxzZQorCitAaW50ZXJmYWNlIERNRldlYnNpdGVQb2xpY3lNb25pdG9yIDogTlNP
YmplY3QKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUG9saWN5Q2hhbmdlSGFuZGxlcjooRE1G
UG9saWN5Q2hhbmdlSGFuZGxlciljaGFuZ2VIYW5kbGVyOworLSAodm9pZClyZXF1ZXN0UG9saWNp
ZXNGb3JXZWJzaXRlczooTlNBcnJheTxOU1VSTCAqPiAqKXdlYnNpdGVVUkxzIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKShOU0RpY3Rpb25hcnk8TlNVUkwgKiwgTlNOdW1iZXIgKj4gKnBvbGlj
aWVzLCBOU0Vycm9yICplcnJvcikpY29tcGxldGlvbkhhbmRsZXI7CisKK0BlbmQKKwordHlwZWRl
ZiBOU19FTlVNKE5TSW50ZWdlciwgRE1GUG9saWN5KSB7CisgICAgRE1GUG9saWN5T0sgPSAwLAor
fTsKKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNlbmRpZiAvLyBIQVZF
KERFVklDRV9NQU5BR0VNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9SZXNvdXJjZXMv
U2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IgYi9Tb3Vy
Y2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQu
TmV0d29ya2luZy5zYgppbmRleCBkYTYwYjFiYmZlMmM5NjBjMGFiODhlMzJiODJhMDJkNTcwMDcw
NTJhLi44MDcxNmVjNjQzNDhiZmI0NDhlZGU2NzYyZDRjMGRkOWMxOWNkZjdmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5X
ZWJLaXQuTmV0d29ya2luZy5zYgorKysgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYgpAQCAtODIsNiArODIs
MTEgQEAKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5wYXNzZC5pbi1hcHAtcGF5bWVudCIp
CiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUucGFzc2QubGlicmFyeSIpKQogCisoYWxsb3cg
bWFjaC1sb29rdXAKKyAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5kbWQucG9saWN5IikKKyAg
ICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5zaXJpLmNvbnRleHQuc2VydmljZSIpCisgICAgKGds
b2JhbC1uYW1lICJjb20uYXBwbGUuY3RjYXRlZ29yaWVzLnNlcnZpY2UiKSkKKwogKGRlbnkgZmls
ZS13cml0ZS1jcmVhdGUKICAgICAgICAodm5vZGUtdHlwZSBTWU1MSU5LKSkKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUu
bW0KaW5kZXggMjYyOThlYmNlYzU3NzRlMzQwNjYxZWE5ZmIxYTRiMjhlYTUwYTM0My4uOGU3NTRj
NDM4NmY3NzhiMjhkZDhlZjc0ZmYzNTY1NjRhZWY1NmRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC0y
NTMsNiArMjUzLDcgQEAgLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aENvbmZpZ3VyYXRpb246KF9X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uICopY29uZmkKICAgICAgICAgY29uZmlnLT5z
ZXRIVFRQUHJveHkoY29uZmlndXJhdGlvbi5odHRwUHJveHkpOwogICAgIGlmIChjb25maWd1cmF0
aW9uLmh0dHBzUHJveHkpCiAgICAgICAgIGNvbmZpZy0+c2V0SFRUUFNQcm94eShjb25maWd1cmF0
aW9uLmh0dHBzUHJveHkpOworICAgIGNvbmZpZy0+c2V0RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0
aW9uc0VuYWJsZWQoY29uZmlndXJhdGlvbi5kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5h
YmxlZCk7CiAKICAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6V2Vic2l0
ZURhdGFTdG9yZT4oc2VsZiwgV1RGTW92ZShjb25maWcpLCBQQUw6OlNlc3Npb25JRDo6Z2VuZXJh
dGVQZXJzaXN0ZW50U2Vzc2lvbklEKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5oCmluZGV4IDU5Zjk4NGU0ODdhZGYzZjA0MmQ5NjczN2E5YjQ3ZGE3OWUyMmQzYjAu
LmNlYmYyZDYxNzA2MTY0ODdmZDg5YTVkZjViOWZiZjc0NDI3ZWViYmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCkBAIC00Myw2ICs0Myw3IEBAIFdLX0NMQVNTX0FW
QUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBu
dWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRp
ZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogQHByb3Bl
cnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFByb3h5OikgTlNV
UkwgKmh0dHBQcm94eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikp
OwogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFNQ
cm94eTopIE5TVVJMICpodHRwc1Byb3h5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCks
IGlvcygxMi4yKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBkZXZpY2VNYW5hZ2VtZW50
UmVzdHJpY3Rpb25zRW5hYmxlZCAgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24ubW0KaW5kZXggMmEwNTEwZWM4OWY1ZWFiODFjNTNmMjdlMmUwZDAwMzZmNjBiYTAy
OS4uODU2ZWM2ODgwY2Y2ZTdjYWI1NTc3ODQxYjk5NzQyMTFmYWMwNGRlMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQpAQCAtMTU2LDYgKzE1NiwxNiBAQCAtICh2
b2lkKXNldFNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjooTlNTdHJpbmcgKilp
ZGVudGlmaWVyCiAgICAgX2NvbmZpZ3VyYXRpb24tPnNldFNvdXJjZUFwcGxpY2F0aW9uU2Vjb25k
YXJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTsKIH0KIAorLSAoQk9PTClkZXZpY2VNYW5hZ2VtZW50
UmVzdHJpY3Rpb25zRW5hYmxlZAoreworICAgIHJldHVybiBfY29uZmlndXJhdGlvbi0+ZGV2aWNl
TWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoKTsKK30KKworLSAodm9pZClzZXREZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDooQk9PTCllbmFibGVkCit7CisgICAgX2NvbmZp
Z3VyYXRpb24tPnNldERldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKGVuYWJsZWQp
OworfQorCiAtIChBUEk6Ok9iamVjdCYpX2FwaU9iamVjdAogewogICAgIHJldHVybiAqX2NvbmZp
Z3VyYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KaW5kZXggMDU0MjVj
MDc1MWUyMzhlZTE5MjU5YjNkMDI1NGYwNjkxY2EzNDdkYS4uMzI2ZmZhZTcwYzE1ZmJjZjVhZDc3
ZmJhNTI5MThlNWVhZGQ4ZmU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5t
bQpAQCAtMTMxLDYgKzEzMSw3IEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVE
YXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogICAgICAgICBmYWxzZSwKICAgICAgICAgc2hvdWxkSW5j
bHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcywKICAgICAgICAgZW5hYmxlUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSwKKyAgICAgICAgbV9jb25maWd1cmF0aW9uLT5k
ZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCgpLAogICAgICAgICBXVEZNb3ZlKHJl
c291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZSksCiAgICAgICAgIFdU
Rk1vdmUobG9jYWxTdG9yYWdlRGlyZWN0b3J5KSwKICAgICAgICAgV1RGTW92ZShsb2NhbFN0b3Jh
Z2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5jcHAKaW5kZXggOTlmNTdlNGFlM2E0ZTE0MzdiNTRiMjUyNTBmNzIxN2EzMTIwYTJl
ZS4uOTcxOWUzZWI1ZDMxNmM3ZDNkOTI5ZDhhZTIyMGY3OTg4YzRjMWU4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcApAQCAtNTksNiArNTksNyBAQCBSZWY8V2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
Ojpjb3B5KCkKICAgICBjb3B5LT5tX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmll
ciA9IHRoaXMtPm1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOwogICAgIGNv
cHktPm1faHR0cFByb3h5ID0gdGhpcy0+bV9odHRwUHJveHk7CiAgICAgY29weS0+bV9odHRwc1By
b3h5ID0gdGhpcy0+bV9odHRwc1Byb3h5OworICAgIGNvcHktPm1fZGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0VuYWJsZWQgPSB0aGlzLT5tX2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNF
bmFibGVkOwogCiAgICAgcmV0dXJuIGNvcHk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uaAppbmRleCBkZjE3YWRjNWU0ZDMyZDAyMTU1OGU2NDk0YTNlMzY5Nzg3ZjU5Zjcw
Li44NWExM2M2NzJhYTQxMDM2NGYyNzFmYjFlNDBmY2MxNmVhMTc0ZDZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTk4LDYgKzk4LDkgQEAgcHVibGljOgogICAg
IGNvbnN0IFVSTCYgaHR0cHNQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1faHR0cHNQcm94eTsgfQog
ICAgIHZvaWQgc2V0SFRUUFNQcm94eShVUkwmJiBwcm94eSkgeyBtX2h0dHBzUHJveHkgPSBXVEZN
b3ZlKHByb3h5KTsgfQogCisgICAgYm9vbCBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJs
ZWQ7IH0KKyAgICB2b2lkIHNldERldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKGJv
b2wgZW5hYmxlZCkgeyBtX2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkID0gZW5h
YmxlZDsgfQorCiBwcml2YXRlOgogICAgIFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uKCk7
CiAKQEAgLTEyMSw2ICsxMjQsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3NvdXJjZUFwcGxp
Y2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjsKICAgICBVUkwgbV9odHRwUHJveHk7CiAgICAgVVJM
IG1faHR0cHNQcm94eTsKKyAgICBib29sIG1fZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0Vu
YWJsZWQgeyBmYWxzZSB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGRiM2EzMDAwY2FlZjcyMzVjMjY0NmNkMGY0MDQ4
Y2JjZWI1NjBhMi4uOGZhYjA3MDFjMjg5MGJjZTBhMDNmMTlkOWM0YTZjYWI1MWJhYTEyNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03
MDIsNiArNzAyLDcgQEAKIAkJMkRBNjczMUEyMEM3NTRCMTAwM0NCNDAxIC8qIER5bmFtaWNWaWV3
cG9ydFNpemVVcGRhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJEQTY3MzE5MjBDNzU0QjEwMDNDQjQwMSAvKiBEeW5hbWljVmlld3BvcnRTaXplVXBk
YXRlLmggKi87IH07CiAJCTJEQTk0NEEwMTg4NEU0RjAwMEVEODZEQiAvKiBXZWJJT1NFdmVudEZh
Y3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJE
QTk0NDk5MTg4NEU0RjAwMEVEODZEQiAvKiBXZWJJT1NFdmVudEZhY3RvcnkuaCAqLzsgfTsKIAkJ
MkRBOTQ0QTQxODg0RTRGMDAwRUQ4NkRCIC8qIEdlc3R1cmVUeXBlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBOTQ0OUQxODg0RTRGMDAwRUQ4NkRC
IC8qIEdlc3R1cmVUeXBlcy5oICovOyB9OworCQkyREFBREE4RjIyOThDMjEwMDBFMzZCMEMgLyog
RGV2aWNlTWFuYWdlbWVudFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkRBQURBOEUyMjk4QzIxMDAwRTM2QjBDIC8qIERldmljZU1hbmFnZW1lbnRT
UEkuaCAqLzsgfTsKIAkJMkRBQkE3NzIxQTgxN0IxNzAwRUYwRjFBIC8qIFdLUGFnZVJlbmRlcmlu
Z1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJEQUJBNzcxMUE4MTdCMTcwMEVGMEYxQSAvKiBXS1BhZ2VSZW5kZXJp
bmdQcm9ncmVzc0V2ZW50c0ludGVybmFsLmggKi87IH07CiAJCTJEQUJBNzc0MUE4MTdFRTYwMEVG
MEYxQSAvKiBXS1BsdWdpbkxvYWRQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJEQUJBNzczMUE4MTdFRTYwMEVGMEYxQSAvKiBXS1BsdWdpbkxv
YWRQb2xpY3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkyREFCQTc3NjFBODJCNDIxMDBFRjBGMUEgLyogQVBJSGlzdG9yeUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBQkE3NzUxQTgyQjQy
MTAwRUYwRjFBIC8qIEFQSUhpc3RvcnlDbGllbnQuaCAqLzsgfTsKQEAgLTI3OTgsNiArMjc5OSw3
IEBACiAJCTJEQTk0NEFDMTg4NEU5QkEwMEVEODZEQiAvKiBXZWJQcm9jZXNzUHJveHlJT1MubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJQcm9jZXNzUHJveHlJ
T1MubW07IHBhdGggPSBpb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyREE5NDRCNjE4ODRFQTM1MDBFRDg2REIgLyogV2ViUGFnZUlPUy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYlBhZ2VJT1MubW07IHBh
dGggPSBpb3MvV2ViUGFnZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRB
OTQ0QkMxODg1MTFFNzAwRUQ4NkRCIC8qIE5ldHdvcmtQcm9jZXNzSU9TLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NJT1MubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEQUFEQThFMjI5OEMyMTAwMEUzNkIwQyAvKiBEZXZp
Y2VNYW5hZ2VtZW50U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmlj
ZU1hbmFnZW1lbnRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRBQkE3NzEx
QTgxN0IxNzAwRUYwRjFBIC8qIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdlUmVuZGVyaW5nUHJvZ3Jl
c3NFdmVudHNJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREFCQTc3
MzFBODE3RUU2MDBFRjBGMUEgLyogV0tQbHVnaW5Mb2FkUG9saWN5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGx1Z2luTG9hZFBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyREFCQTc3NTFBODJCNDIxMDBFRjBGMUEgLyogQVBJSGlzdG9yeUNsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElIaXN0b3J5Q2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MTA1LDYgKzYxMDcsNyBAQAogCQkJCTM3
QzIxQ0FEMUU5OTRDMEMwMDI5RDVGOSAvKiBDb3JlUHJlZGljdGlvblNQSS5oICovLAogCQkJCUEx
RkI2ODI2MUY2RTUxQzEwMEM0M0Y5RiAvKiBDcmFzaFJlcG9ydGVyQ2xpZW50U1BJLmggKi8sCiAJ
CQkJNTdEQ0VEQUEyMTRCOUI0MzAwMTZCODQ3IC8qIERldmljZUlkZW50aXR5U1BJLmggKi8sCisJ
CQkJMkRBQURBOEUyMjk4QzIxMDAwRTM2QjBDIC8qIERldmljZU1hbmFnZW1lbnRTUEkuaCAqLywK
IAkJCQkzNzU0RDU0NDFCM0EyOUZEMDAzQTRDN0YgLyogTlNJbnZvY2F0aW9uU1BJLmggKi8sCiAJ
CQkJMzdCNDdFMkMxRDY0REI3NjAwNUY0RUZGIC8qIG9iamNTUEkuaCAqLywKIAkJCQkwRTk3RDc0
QzIwMEU4RkYzMDBCRjY2NDMgLyogU2FmZUJyb3dzaW5nU1BJLmggKi8sCkBAIC05MjIzLDYgKzky
MjYsNyBAQAogCQkJCUJDMDMyREE2MTBGNDM3RDEwMDU4QzE1QSAvKiBEZWNvZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1N0RDRURBQjIxNEM2MDA5MDAxNkI4NDcgLyogRGV2aWNlSWRlbnRpdHlT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Mjk3RjlGMUMxN0JCRUEwMTVGMDczNSAvKiBEZXZp
Y2VJZEhhc2hTYWx0U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkRBQURBOEYyMjk4QzIx
MDAwRTM2QjBDIC8qIERldmljZU1hbmFnZW1lbnRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTgz
ODkxQjZDMUE2OEMzMEIwMDMwRjM4NiAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQzE4MTczNjEyMDU4NDI0NzAwREZEQTY1IC8qIERpc3BsYXlMaW5rLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1QzE0MjcwMjFDMjNGODRDMDBENDExODMgLyogRG93bmxvYWQu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDA0YWUwZTQ1ZDVlOWQyOWNhMGYyNzBh
MDY0MThhNmFiMmQ1MDFmY2IuLjA1ZjNmMGU0N2NiOWNiOGIxNTM3YmVlODFjMjlhOTA2NTA0Yzg4
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRl
clN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJM
b2FkZXJTdHJhdGVneS5jcHAKQEAgLTMzNSw2ICszMzUsOCBAQCB2b2lkIFdlYkxvYWRlclN0cmF0
ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJlc291
cmNlTAogCiAgICAgbG9hZFBhcmFtZXRlcnMuaXNNYWluRnJhbWVOYXZpZ2F0aW9uID0gcmVzb3Vy
Y2VMb2FkZXIuZnJhbWUoKSAmJiByZXNvdXJjZUxvYWRlci5mcmFtZSgpLT5pc01haW5GcmFtZSgp
ICYmIHJlc291cmNlTG9hZGVyLm9wdGlvbnMoKS5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6
TmF2aWdhdGU7CiAKKyAgICBsb2FkUGFyYW1ldGVycy5pc01haW5SZXNvdXJjZU5hdmlnYXRpb25G
b3JBbnlGcmFtZSA9IHJlc291cmNlTG9hZGVyLmZyYW1lKCkgJiYgcmVzb3VyY2VMb2FkZXIub3B0
aW9ucygpLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZTsKKwogICAgIGxvYWRQ
YXJhbWV0ZXJzLnNob3VsZEVuYWJsZUNyb3NzT3JpZ2luUmVzb3VyY2VQb2xpY3kgPSBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmNyb3NzT3JpZ2luUmVzb3VyY2VQb2xp
Y3lFbmFibGVkKCkgJiYgIWxvYWRQYXJhbWV0ZXJzLmlzTWFpbkZyYW1lTmF2aWdhdGlvbjsKIAog
ICAgIGlmIChyZXNvdXJjZUxvYWRlci5vcHRpb25zKCkubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1v
ZGU6Ok5hdmlnYXRlKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370880</attachid>
            <date>2019-05-29 13:24:56 -0700</date>
            <delta_ts>2019-05-29 17:57:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198318-20190529132455.patch</filename>
            <type>text/plain</type>
            <size>66268</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDgxMGUxOGQ0ZDkyMGFlYmYxZWVjYWM1
OWZmY2U5YjA0NmFmOTEyM2QuLjBkNWZmYjVmNDNhZjMzMmRiYTAxMWJlM2VhODZjZjg2OTc1YmY3
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTktMDUtMjggIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgT3B0aW9uYWxseSByZXNwZWN0IGRldmljZSBt
YW5hZ2VtZW50IHJlc3RyaWN0aW9ucyB3aGVuIGxvYWRpbmcgZnJvbSB0aGUgbmV0d29yaworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MzE4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NDI2MzgwNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDE5LTA1LTI5ICBS
eWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIyNDU4NTcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE1ZDE5OTc0YmU3Nzk3ZTNmNzZhNDc4
MzYxN2NjZGU0Y2U5Njk2YWMuLjg1NTdjY2MxNzI0NDRkZjJhODhhYmNlZjI5MDdhM2M3NjVhYzNi
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTktMDUtMjggIFRpbSBIb3J0b24gIDx0
aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgT3B0aW9uYWxseSByZXNwZWN0IGRl
dmljZSBtYW5hZ2VtZW50IHJlc3RyaWN0aW9ucyB3aGVuIGxvYWRpbmcgZnJvbSB0aGUgbmV0d29y
aworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MzE4
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NDI2MzgwNj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL05ldHdvcmstaU9T
LmVudGl0bGVtZW50czoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2su
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZSk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6
cHJpdmF0ZVNlc3Npb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6OnJlc3VtZSk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgICgtW1dLTmV0
d29ya1Nlc3Npb25EZWxlZ2F0ZSBVUkxTZXNzaW9uOmRhdGFUYXNrOmRpZFJlY2VpdmVSZXNwb25z
ZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25D
b2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNz
aW9uQ29jb2E6OmRldmljZU1hbmFnZW1lbnRQb2xpY3lNb25pdG9yKToKKyAgICAgICAgKiBQbGF0
Zm9ybS9zcGkvQ29jb2EvRGV2aWNlTWFuYWdlbWVudFNQSS5oOiBBZGRlZC4KKyAgICAgICAgKiBS
ZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcu
c2I6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06
CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOl0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbiBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZF0pOgorICAgICAg
ICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBzZXREZXZpY2VNYW5hZ2VtZW50
UmVzdHJpY3Rpb25zRW5hYmxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEv
Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlOjpwYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6Y29weSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpkZXZpY2VNYW5hZ2VtZW50UmVzdHJp
Y3Rpb25zRW5hYmxlZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uOjpzZXREZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCk6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6CisKIDIw
MTktMDUtMjkgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI0NTg1Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDQ0N2JiMThh
OGYwMjhjMjk1MDFkMzkzMWZiOTU1N2E4ZDUzYTI2MDcuLjc5NWYzM2M1N2Y1YTQ2MjA0ZTZhYTky
YWY3MzIyNGU0YzEwYTlhMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgK
KysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtMTU0Nyw2ICsxNTQ3LDEwIEBACiAj
ZGVmaW5lIEhBVkVfUk9VVEVfU0hBUklOR19QT0xJQ1lfTE9OR19GT1JNX1ZJREVPIDEKICNlbmRp
ZgogCisjaWYgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTIwMDAwKQorI2RlZmluZSBIQVZFX0RFVklDRV9NQU5BR0VNRU5UIDEKKyNlbmRpZgor
CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPCAx
MDE1MDAKICNkZWZpbmUgVVNFX1JFQUxQQVRIX0ZPUl9ETE9QRU5fUFJFRkxJR0hUIDEKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5n
cyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKaW5kZXggZjM1
OTdhMzhmY2EzNGM4MWNkZTY3NThlMTM2NDM2OGY1NzU3YWY5MS4uYTM4MTA2OTczNjIzMWVjN2U4
ZDdjZWI3ZWFlYzRmMjYzMGMwZmMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZW4ubHBy
b2ovTG9jYWxpemFibGUuc3RyaW5ncworKysgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2Nh
bGl6YWJsZS5zdHJpbmdzCkBAIC04MDIsNiArODAyLDkgQEAKIC8qIFdlYktpdEVycm9yRnJhbWVM
b2FkQmxvY2tlZEJ5Q29udGVudEZpbHRlciBkZXNjcmlwdGlvbiAqLwogIlRoZSBVUkwgd2FzIGJs
b2NrZWQgYnkgYSBjb250ZW50IGZpbHRlciIgPSAiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBhIGNv
bnRlbnQgZmlsdGVyIjsKIAorLyogV2ViS2l0RXJyb3JGcmFtZUxvYWRCbG9ja2VkQnlSZXN0cmlj
dGlvbnMgZGVzY3JpcHRpb24gKi8KKyJUaGUgVVJMIHdhcyBibG9ja2VkIGJ5IGRldmljZSByZXN0
cmljdGlvbnMiID0gIlRoZSBVUkwgd2FzIGJsb2NrZWQgYnkgZGV2aWNlIHJlc3RyaWN0aW9ucyI7
CisKIC8qIFdLRXJyb3JXZWJWaWV3SW52YWxpZGF0ZWQgZGVzY3JpcHRpb24gKi8KICJUaGUgV0tX
ZWJWaWV3IHdhcyBpbnZhbGlkYXRlZCIgPSAiVGhlIFdLV2ViVmlldyB3YXMgaW52YWxpZGF0ZWQi
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL05ldHdvcmstaU9T
LmVudGl0bGVtZW50cyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvTmV0d29yay1pT1Mu
ZW50aXRsZW1lbnRzCmluZGV4IDJlZTY5NjYzOGY2NzJlNjIzN2RhMGI3NDc4YWZlOTkzNmI0ODg2
M2EuLjUzZGZkNTYzNTQwOTllZjAzMDkxZDFkNWM1OTRiM2YxNzNiMjg1OTEgMTAwNjQ0CkdJVCBi
aW5hcnkgcGF0Y2gKZGVsdGEgMjQ0CnpjbVhAYUB8e1U0c1VSbl94V3ZIVkl3S1BeM285RXQyTH40
aTVYMXs7UGdaOHN3dWwjeU9VfT5MT0RyaEpOITJTVAp6JH1DR1BOITgwdSZDTV5XRUd8aGJESl9s
ezVHK25qRUo7ZXVEYlh6YCUxX0o4TmQ9MEBPI0NScjk1MHxiYz9QNFYKejV8RTImTW9NbXFVT3wz
TldeIWVgZlkhdX5UNHxofDMlVFAzcSFCOF5RPEo8aU9aNUN3T1VtPCR2TlFBMkllfnpJCnhnRiYz
WmxfOEN4aWVWPGhRSENkc2Z7YTNwIWk9SmYjKjhNNnJpXjlgVjhGeChwJjEwQUc/WmRBMkxRcipL
MnJieQoKbGl0ZXJhbCA1NzgKemNtYSkoLSVHPFY1WFlhbHphcituaU4xKys5bEF7emojO29HSzQj
NTFMKD9XQypWWD5fVWJsalohaEFpeEtSJFB0CnomT2Q2KTRpS1ZvJjVVMShPVXxHdm9pQCNXIy1F
Ryg8ZUphM1g/bjRJVG9rWVFpZ3t9eXZpJGpPdnRCVHNOT3xrTQp6MXUyKXNsSTVIQVFeNj1oJUdI
KUx7KkxIeHIwbHYqczZpITRSfWFEe15XWiFMPl5Cc2FrVT9uRm9ONysjS1g3UU8Kek9eTWxibDIq
YFg2ZnVVP3R3bjw+Uilpe0k5fSNNNVE4N3w1RWZaNVk9KmZubTFeTF9XUmJOQWNMUnApcnZWP2Z2
Cno1eklqJDJ2V1BZITY8ZlpxYihSNnk+b0FiYWtnPntzRylYJmghd1d+RV5Qb2k3YisyNVNwZzsq
RWJJeTlANSVAWQp5Y1ZJRWBmeHMrJHdXdHUoYUZ0MEtGJWFeJWdUQkQtIUp5Y2xpak0xeThha3BK
amoyMytCYkNRcld6JGFxMG0zdUAKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKaW5kZXggMmIwYTFj
Mzc5ZWNkODY2MmIwMDgxZjRkYjJlZTUxNzkwNWE5NTVjNC4uOTRmMTI3NzI4MmI5NTMyMWY2NjY1
Y2Q0ZmI2NmI3OTJkYzgzNDliZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcApAQCAtMTYzLDYg
KzE2MywxMiBAQCB2b2lkIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6Y2Fubm90U2hvd1VS
TCgpCiAgICAgbV9jb21wbGV0aW9uQ2FsbGJhY2soUmVzb3VyY2VFcnJvciB7IGVycm9yRG9tYWlu
V2ViS2l0SW50ZXJuYWwsIDAsIG1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3QudXJsKCksICJQ
cmVmbGlnaHQgcmVzcG9uc2Ugd2FzIGJsb2NrZWQiX3MsIFJlc291cmNlRXJyb3I6OlR5cGU6OkFj
Y2Vzc0NvbnRyb2wgfSk7CiB9CiAKK3ZvaWQgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjp3
YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMoKQoreworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
Indhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucyIpOworICAgIG1fY29tcGxldGlvbkNhbGxiYWNrKFJl
c291cmNlRXJyb3IgeyBlcnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCBtX3BhcmFtZXRlcnMu
b3JpZ2luYWxSZXF1ZXN0LnVybCgpLCAiUHJlZmxpZ2h0IHJlc3BvbnNlIHdhcyBibG9ja2VkIl9z
LCBSZXNvdXJjZUVycm9yOjpUeXBlOjpBY2Nlc3NDb250cm9sIH0pOworfQorCiBOZXR3b3JrVHJh
bnNhY3Rpb25JbmZvcm1hdGlvbiBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OnRha2VJbmZv
cm1hdGlvbigpCiB7CiAgICAgQVNTRVJUKG1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRN
ZXRyaWNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0NPUlNQcmVmbGlnaHRDaGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCmluZGV4IDRkM2QxNjlmNmFmOWY0M2I3NjEwODFj
ZmJmZTYwYWZjNWEzOTNmZDQuLjg3MjQ4ZjBlMGUxMjg0OTNhNTU2ZTVjZmIxYzM1YmQ1MzRkOTFl
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQ
cmVmbGlnaHRDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaApAQCAtNzIsNiArNzIsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGlkU2VuZERhdGEodWludDY0X3QgdG90YWxCeXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFs
Qnl0ZXNFeHBlY3RlZFRvU2VuZCkgZmluYWw7CiAgICAgdm9pZCB3YXNCbG9ja2VkKCkgZmluYWw7
CiAgICAgdm9pZCBjYW5ub3RTaG93VVJMKCkgZmluYWw7CisgICAgdm9pZCB3YXNCbG9ja2VkQnlS
ZXN0cmljdGlvbnMoKSBmaW5hbDsKIAogICAgIFBhcmFtZXRlcnMgbV9wYXJhbWV0ZXJzOwogICAg
IFJlZjxOZXR3b3JrUHJvY2Vzcz4gbV9uZXR3b3JrUHJvY2VzczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAppbmRleCBmMWYwMTExNWQyMzFh
YWJkN2RlMGVkMDBjMDc4NGYxODhmMDljYzU0Li5iY2JhZTlkMzFmYmY4ZTc2MGU0ZDZmZjY2MDAx
Mjg2ZDAyNTRhYTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtEYXRhVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrRGF0YVRhc2suY3BwCkBAIC01MCw3ICs1MCw3IEBAIFJlZjxOZXR3b3JrRGF0YVRhc2s+IE5l
dHdvcmtEYXRhVGFzazo6Y3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0
CiB7CiAgICAgQVNTRVJUKCFwYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0Jsb2Io
KSk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza0NvY29h
OjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMu
d2ViRnJhbWVJRCwgcGFyYW1ldGVycy53ZWJQYWdlSUQsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJz
LmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9u
bHksIHBhcmFtZXRlcnMuaXNNYWluRnJhbWVOYXZpZ2F0aW9uLCBwYXJhbWV0ZXJzLm5ldHdvcmtB
Y3Rpdml0eVRyYWNrZXIpOworICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6Y3JlYXRl
KHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLndlYkZyYW1l
SUQsIHBhcmFtZXRlcnMud2ViUGFnZUlELCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50
RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5LCBwYXJh
bWV0ZXJzLmlzTWFpbkZyYW1lTmF2aWdhdGlvbiwgcGFyYW1ldGVycy5pc01haW5SZXNvdXJjZU5h
dmlnYXRpb25Gb3JBbnlGcmFtZSwgcGFyYW1ldGVycy5uZXR3b3JrQWN0aXZpdHlUcmFja2VyKTsK
ICNlbmRpZgogI2lmIFVTRShTT1VQKQogICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tTb3VwOjpj
cmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBw
YXJhbWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFtZXRlcnMuaXNNYWluRnJh
bWVOYXZpZ2F0aW9uKTsKQEAgLTEzMyw2ICsxMzMsMTEgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2s6
OmZhaWx1cmVUaW1lckZpcmVkKCkKICAgICAgICAgaWYgKG1fY2xpZW50KQogICAgICAgICAgICAg
bV9jbGllbnQtPmNhbm5vdFNob3dVUkwoKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgUmVz
dHJpY3RlZFVSTEZhaWx1cmU6CisgICAgICAgIG1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgPSBOb0Zh
aWx1cmU7CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT53YXNC
bG9ja2VkQnlSZXN0cmljdGlvbnMoKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTm9GYWls
dXJlOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaAppbmRleCBjZTdi
MmFkNTA2MzY1YTQzMjhiYTU3M2FmMTYxNzA5NjBiYWJmYmNhLi45ZjVmZTFmNGIzODM5NjQ5MGNj
YjRmNDMxNWM0MmUxMmJlYjY3ZDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtEYXRhVGFzay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0RhdGFUYXNrLmgKQEAgLTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5dGVzU2VudCwgdWludDY0X3QgdG90
YWxCeXRlc0V4cGVjdGVkVG9TZW5kKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHdhc0Jsb2NrZWQo
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNhbm5vdFNob3dVUkwoKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHdhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucygpID0gMDsKIAogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCkBAIC0xMzQsNyArMTM1LDggQEAgcHJvdGVjdGVkOgogICAgIGVudW0gRmFpbHVy
ZVR5cGUgewogICAgICAgICBOb0ZhaWx1cmUsCiAgICAgICAgIEJsb2NrZWRGYWlsdXJlLAotICAg
ICAgICBJbnZhbGlkVVJMRmFpbHVyZQorICAgICAgICBJbnZhbGlkVVJMRmFpbHVyZSwKKyAgICAg
ICAgUmVzdHJpY3RlZFVSTEZhaWx1cmUKICAgICB9OwogICAgIHZvaWQgZmFpbHVyZVRpbWVyRmly
ZWQoKTsKICAgICB2b2lkIHNjaGVkdWxlRmFpbHVyZShGYWlsdXJlVHlwZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCmluZGV4IDczNWYzNjlhMWNhMDZj
MjdjNjFhODMwZTY4MTc3Mjk4MjM5ZGM2YmMuLjkxMDdmZWMxZTM0ZGI0NDg4MTYyMjg2ODYyMmM4
ZmJlYjViMzg4M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWQuY3BwCkBAIC0yNzYsNiArMjc2LDEwIEBAIHZvaWQgTmV0d29ya0xvYWQ6OmNhbm5vdFNob3dV
UkwoKQogICAgIG1fY2xpZW50LmdldCgpLmRpZEZhaWxMb2FkaW5nKGNhbm5vdFNob3dVUkxFcnJv
cihtX2N1cnJlbnRSZXF1ZXN0KSk7CiB9CiAKK3ZvaWQgTmV0d29ya0xvYWQ6Ondhc0Jsb2NrZWRC
eVJlc3RyaWN0aW9ucygpCit7CisgICAgbV9jbGllbnQuZ2V0KCkuZGlkRmFpbExvYWRpbmcod2Fz
QmxvY2tlZEJ5UmVzdHJpY3Rpb25zRXJyb3IobV9jdXJyZW50UmVxdWVzdCkpOworfQogCiBTdHJp
bmcgTmV0d29ya0xvYWQ6OmRlc2NyaXB0aW9uKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaAppbmRleCBhNWViYWI2MGY3MmVlYTNmNzE5MWE1NTg2
ZTNhNjIwYzI0ZjEwNmNjLi5kNDE1ZDA0YTI5YmYyM2Y3YjVjY2YzM2I4NDgwNDA1OTgzNjc0YjZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCkBAIC04MCw2
ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5
dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc0V4cGVjdGVkVG9TZW5kKSBmaW5hbDsKICAgICB2
b2lkIHdhc0Jsb2NrZWQoKSBmaW5hbDsKICAgICB2b2lkIGNhbm5vdFNob3dVUkwoKSBmaW5hbDsK
KyAgICB2b2lkIHdhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucygpIGZpbmFsOwogCiAgICAgdm9pZCBu
b3RpZnlEaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBSZXNw
b25zZUNvbXBsZXRpb25IYW5kbGVyJiYpOwogICAgIHZvaWQgdGhyb3R0bGVEZWxheUNvbXBsZXRl
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQ
YXJhbWV0ZXJzLmgKaW5kZXggODk3MzBjZjlmZDI2OTliY2ZkMzJkZGMzOGVmOGNlMDM3NDZhMzAz
NC4uY2ZiMmM3NWMwY2Q3OTJhMDBhNTA1YzgwYjY5OGMxNjBhODAyMTM1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCkBA
IC01MSw2ICs1MSw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3QgeyB0cnVlIH07CiAgICAgYm9vbCBuZWVkc0NlcnRpZmljYXRlSW5m
byB7IGZhbHNlIH07CiAgICAgYm9vbCBpc01haW5GcmFtZU5hdmlnYXRpb24geyBmYWxzZSB9Owor
ICAgIGJvb2wgaXNNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUgeyBmYWxzZSB9Owog
ICAgIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlPj4gYmxvYkZp
bGVSZWZlcmVuY2VzOwogICAgIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5IHsg
UHJlY29ubmVjdE9ubHk6Ok5vIH07CiAgICAgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tl
cj4gbmV0d29ya0FjdGl2aXR5VHJhY2tlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKaW5k
ZXggMzNjZGM0ZDE3ZGJlMmUwODY2ZTM2MTJlZjIyNzYxYTM4MjM4MDU5Yi4uMGU0NDU5NGI4OWU2
NjY0ODlhZmYxMjhmOGM1MWMwYzZjMWFjZTI0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5j
cHAKQEAgLTc4LDYgKzc4LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6
ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7CiAgICAgZW5jb2RlciA8PCBuZWVk
c0NlcnRpZmljYXRlSW5mbzsKICAgICBlbmNvZGVyIDw8IGlzTWFpbkZyYW1lTmF2aWdhdGlvbjsK
KyAgICBlbmNvZGVyIDw8IGlzTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lOwogICAg
IGVuY29kZXIgPDwgbWF4aW11bUJ1ZmZlcmluZ1RpbWU7CiAKICAgICBlbmNvZGVyIDw8IHN0YXRp
Y19jYXN0PGJvb2w+KHNvdXJjZU9yaWdpbik7CkBAIC0xNjksNiArMTcwLDggQEAgYm9vbCBOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
TmV0d29ya1Jlc291cmMKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzdWx0LmlzTWFpbkZyYW1lTmF2aWdhdGlvbikpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc01haW5SZXNvdXJjZU5hdmlnYXRp
b25Gb3JBbnlGcmFtZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc3VsdC5tYXhpbXVtQnVmZmVyaW5nVGltZSkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCAyNmJmMTlkOWFjY2I5
OTNiMGFmNTMxOWIxMWIyNzVjMWUyM2U0ODcyLi4wNTQwMjliYjY1YTRhYzBhZjcwNDI3YTYyZjA5
YzRmMmIyMGU1NTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNTAs
NyArNTAsNyBAQCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyBOZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVyczo6cHJpdmF0ZVNlc3NpbwogI2lmIFVTRShDVVJMKQogICAgICAg
ICAsIHsgfSwgeyB9CiAjZW5kaWYKLSAgICAgICAgLCB7IH0sIHsgfSwgZmFsc2UsIHsgfSwgeyB9
LCB7IH0sIHsgfSwgeyB9CisgICAgICAgICwgeyB9LCB7IH0sIGZhbHNlLCB7IH0sIHsgfSwgeyB9
LCB7IH0sIHsgfSwgeyB9CiAgICAgfTsKIH0KIApAQCAtODQsNyArODQsOSBAQCB2b2lkIE5ldHdv
cmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogICAgIGVuY29kZXIgPDwgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVn
TW9kZTsKICAgICBlbmNvZGVyIDw8IHJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxl
bnRSZXNvdXJjZTsKIAotICAgIGVuY29kZXIgPDwgbG9jYWxTdG9yYWdlRGlyZWN0b3J5IDw8ICBs
b2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZW5jb2RlciA8PCBsb2Nh
bFN0b3JhZ2VEaXJlY3RvcnkgPDwgbG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
OworCisgICAgZW5jb2RlciA8PCBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDsK
IH0KIAogT3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpA
QCAtMjA4LDYgKzIxMCwxMSBAQCBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1l
dGVycz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlYwogICAgIGlmICghbG9j
YWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQogICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwogCisgICAgT3B0aW9uYWw8Ym9vbD4gZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9u
c0VuYWJsZWQ7CisgICAgZGVjb2RlciA+PiBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5h
YmxlZDsKKyAgICBpZiAoIWRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAgcmV0dXJuIHt7CiAgICAgICAgIHNlc3Np
b25JRAogICAgICAgICAsIFdURk1vdmUoKmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcikKQEAgLTIz
NSw2ICsyNDIsNyBAQCBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycz4g
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlYwogICAgICAgICAsIFdURk1vdmUo
KmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3MpCiAgICAgICAgICwgV1RGTW92ZSgqc2hvdWxk
SW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcykKICAgICAgICAgLCBXVEZN
b3ZlKCplbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKQorICAgICAgICAsIFdU
Rk1vdmUoKmRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKQogICAgICAgICAsIFdU
Rk1vdmUoKnJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZSkKICAg
ICAgICAgLCBXVEZNb3ZlKCpsb2NhbFN0b3JhZ2VEaXJlY3RvcnkpCiAgICAgICAgICwgV1RGTW92
ZSgqbG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycy5oCmluZGV4IDZmYzA3YWVkMjRiNDBhNjdkYWY0YzE3NmU0ZjdkYmYxNWIwYjcw
YzUuLjE3NTI1ZmVjNjliYTBjN2NiNDU5ZmZmNWFlYjE3YmRlYzczNjA5ZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTg2LDYgKzg2LDcgQEAgc3RydWN0IE5ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29sIGVuYWJsZVJlc291cmNlTG9hZFN0YXRp
c3RpY3MgeyBmYWxzZSB9OwogICAgIGJvb2wgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyB7IHRydWUgfTsKICAgICBib29sIGVuYWJsZVJlc291cmNlTG9hZFN0
YXRpc3RpY3NEZWJ1Z01vZGUgeyBmYWxzZSB9OworICAgIGJvb2wgZGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0VuYWJsZWQgeyBmYWxzZSB9OwogICAgIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZSB7IH07CiAK
ICAgICBTdHJpbmcgbG9jYWxTdG9yYWdlRGlyZWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1BpbmdMb2FkLmNwcAppbmRleCAyMWJjN2E0ZTliMjNlMjI3MTUxZDAxMGU0OTU1NGQ5
Y2NjNWY0YjJlLi5mZThmMDNhYmY5OWRiY2RkYWVlMGRiMmU1NmEyYzJhNzNjMDEzYWM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcApAQCAtMjAwLDYgKzIwMCwx
MiBAQCB2b2lkIFBpbmdMb2FkOjpjYW5ub3RTaG93VVJMKCkKICAgICBkaWRGaW5pc2goY2Fubm90
U2hvd1VSTEVycm9yKFJlc291cmNlUmVxdWVzdCB7IGN1cnJlbnRVUkwoKSB9KSk7CiB9CiAKK3Zv
aWQgUGluZ0xvYWQ6Ondhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucygpCit7CisgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgid2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zIik7CisgICAgZGlkRmluaXNo
KHdhc0Jsb2NrZWRCeVJlc3RyaWN0aW9uc0Vycm9yKFJlc291cmNlUmVxdWVzdCB7IGN1cnJlbnRV
UkwoKSB9KSk7Cit9CisKIHZvaWQgUGluZ0xvYWQ6OnRpbWVvdXRUaW1lckZpcmVkKCkKIHsKICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ0aW1lb3V0VGltZXJGaXJlZCIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5oCmluZGV4IGM3ZTEyYmIxMzBkMDQ5YzVkMGE1OTdj
MDFmZTViZmZjOGIyMjFiZjkuLjUwNTkyYjc1Mjk4ZTJkZDM1MjFjY2U2ODAwOTA1ZmI4YWFmNWNi
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmgKQEAgLTU4LDYgKzU4
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFNlbmREYXRhKHVpbnQ2NF90IHRvdGFsQnl0ZXNT
ZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1NlbmQpIGZpbmFsOwogICAgIHZvaWQg
d2FzQmxvY2tlZCgpIGZpbmFsOwogICAgIHZvaWQgY2Fubm90U2hvd1VSTCgpIGZpbmFsOworICAg
IHZvaWQgd2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zKCkgZmluYWw7CiAgICAgdm9pZCB0aW1lb3V0
VGltZXJGaXJlZCgpOwogCiAgICAgdm9pZCBsb2FkUmVxdWVzdChOZXR3b3JrUHJvY2VzcyYsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL0RldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAzODM3YTZiYWY4M2Y4YzU0NzQxZDdmMmFjZDAyYzY4YmIwNzlmODcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL0RldmljZU1hbmFn
ZW1lbnRTb2Z0TGluay5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEhBVkUoREVWSUNFX01BTkFHRU1FTlQpCisKKyNpbXBvcnQgIkRldmljZU1hbmFn
ZW1lbnRTUEkuaCIKKyNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfRlJB
TUVXT1JLX0ZPUl9IRUFERVIoV2ViS2l0LCBEZXZpY2VNYW5hZ2VtZW50KTsKK1NPRlRfTElOS19D
TEFTU19GT1JfSEVBREVSKFdlYktpdCwgRE1GV2Vic2l0ZVBvbGljeU1vbml0b3IpOworCisjZW5k
aWYgLy8gSEFWRShERVZJQ0VfTUFOQUdFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1tIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9EZXZpY2VNYW5hZ2VtZW50U29mdExpbmsubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzk3YzVlMGQ5MDcxYjdlNzc0NjAyMWZhODkzOGZlMjUxMjFlODBlMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvRGV2aWNl
TWFuYWdlbWVudFNvZnRMaW5rLm1tCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKworI2lmIEhBVkUoREVWSUNFX01BTkFHRU1FTlQpCisKKyNpbXBvcnQg
IkRldmljZU1hbmFnZW1lbnRTUEkuaCIKKyNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgorCitT
T0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfRk9SX1NPVVJDRShXZWJLaXQsIERldmljZU1hbmFn
ZW1lbnQpOworU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0UoV2ViS2l0LCBEZXZpY2VNYW5hZ2Vt
ZW50LCBETUZXZWJzaXRlUG9saWN5TW9uaXRvcik7CisKKyNlbmRpZiAvLyBIQVZFKERFVklDRV9N
QU5BR0VNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCmluZGV4IDJkZDBlN2Q0NmJjNzE5ZTk2ZmExNTA3
NGZlZDAwYjFjODg2NjU2NTguLjc3MWIzYWI1OTExM2UzNTE5N2JiOWVkMjg0ZDBlY2IwZTIzMGM2
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtEYXRhVGFza0NvY29hLmgKQEAgLTQyLDkgKzQyLDkgQEAgY2xhc3MgTmV0d29ya1Nl
c3Npb25Db2NvYTsKIGNsYXNzIE5ldHdvcmtEYXRhVGFza0NvY29hIGZpbmFsIDogcHVibGljIE5l
dHdvcmtEYXRhVGFzayB7CiAgICAgZnJpZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vz
c2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBz
dG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNo
b3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kg
c2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRU
UFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIGJv
b2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIE9wdGlvbmFsPE5ldHdvcmtBY3Rp
dml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCisgICAgc3RhdGljIFJlZjxOZXR3
b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFU
YXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJD
b3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2Vi
Q29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6
Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYs
IGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVj
dE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5h
dmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlG
cmFtZSwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJh
Y2tlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFz
a0NvY29hKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdCwgZnJhbWVJRCwgcGFnZUlELCBzdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2Rp
bmdTbmlmZiwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxk
UHJlY29ubmVjdE9ubHksIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBuZXR3b3Jr
QWN0aXZpdHlUcmFja2VyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtE
YXRhVGFza0NvY29hKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdCwgZnJhbWVJRCwgcGFnZUlELCBz
dG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50
RW5jb2RpbmdTbmlmZiwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwg
c2hvdWxkUHJlY29ubmVjdE9ubHksIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBk
YXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBuZXR3b3JrQWN0
aXZpdHlUcmFja2VyKSk7CiAgICAgfQogCiAgICAgfk5ldHdvcmtEYXRhVGFza0NvY29hKCk7CkBA
IC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgZGVzY3JpcHRpb24oKSBjb25zdCBv
dmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vz
c2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5
LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSwgYm9vbCBkYXRh
VGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJh
Y2tlcj4pOworICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29y
a0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgdWludDY0
X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JlZENyZWRl
bnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6OkNv
bnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWlu
RnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9u
Rm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+KTsKIAogICAgIGJv
b2wgdHJ5UGFzc3dvcmRCYXNlZEF1dGhlbnRpY2F0aW9uKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImKTsKICAgICB2b2lk
IGFwcGx5U25pZmZpbmdQb2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRlZChf
X3N0cm9uZyBOU1VSTFJlcXVlc3QqJiwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hv
dWxkQ29udGVudEVuY29kaW5nU25pZmYpOwpAQCAtOTgsNiArOTgsOCBAQCBwcml2YXRlOgogI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgYm9vbCBtX2hhc0JlZW5TZXRU
b1VzZVN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UgeyBmYWxzZSB9OwogI2VuZGlmCisKKyAgICBib29s
IG1faXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUgeyBmYWxzZSB9OwogfTsK
IAogV2ViQ29yZTo6Q3JlZGVudGlhbCBzZXJ2ZXJUcnVzdENyZWRlbnRpYWwoY29uc3QgV2ViQ29y
ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4IDI4
YTA1ZTgwZGI2ODVhZjY3YjI4NGM4NDIzMTcxOTRmOTdlODdlM2UuLjNmNTFiN2Q5ZmE0OTU5MTFl
MDVmMjkyMmU0N2JiM2IzZWJmOGYxMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtMjgsNiAr
MjgsNyBAQAogCiAjaW1wb3J0ICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uLmgi
CiAjaW1wb3J0ICJBdXRoZW50aWNhdGlvbk1hbmFnZXIuaCIKKyNpbXBvcnQgIkRldmljZU1hbmFn
ZW1lbnRTUEkuaCIKICNpbXBvcnQgIkRvd25sb2FkLmgiCiAjaW1wb3J0ICJEb3dubG9hZFByb3h5
TWVzc2FnZXMuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKQEAgLTM5LDYgKzQwLDcgQEAKICNpbXBv
cnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VS
ZXF1ZXN0Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgorI2ltcG9ydCA8
d3RmL0Jsb2NrUHRyLmg+CiAjaW1wb3J0IDx3dGYvRmlsZVN5c3RlbS5oPgogI2ltcG9ydCA8d3Rm
L01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CkBAIC0xNjAs
MTAgKzE2MiwxMSBAQCBzdGF0aWMgdm9pZCB1cGRhdGVUYXNrV2l0aEZpcnN0UGFydHlGb3JTYW1l
U2l0ZUNvb2tpZXMoTlNVUkxTZXNzaW9uRGF0YVRhc2sqIHRhcwogI2VuZGlmCiB9CiAKLU5ldHdv
cmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vz
c2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgdWludDY0X3QgZnJhbWVJRCwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9s
aWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQ
b2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9u
bHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIE9wdGlvbmFsPE5ldHdv
cmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCitOZXR3b3JrRGF0YVRh
c2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5l
dHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91
bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNo
b3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29s
IGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWlu
UmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRy
YWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCiAgICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vz
c2lvbiwgY2xpZW50LCByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgZGF0YVRhc2tJ
c0Zvck1haW5GcmFtZU5hdmlnYXRpb24pCiAgICAgLCBtX2ZyYW1lSUQoZnJhbWVJRCkKICAgICAs
IG1fcGFnZUlEKHBhZ2VJRCkKKyAgICAsIG1faXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9y
QW55RnJhbWUoZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSkK
IHsKICAgICBpZiAobV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAgICAg
IHJldHVybjsKQEAgLTQ4OSw2ICs0OTIsMjkgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6
cmVzdW1lKCkKIHsKICAgICBpZiAobV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUp
CiAgICAgICAgIG1fZmFpbHVyZVRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOworCisjaWYgSEFWRShE
RVZJQ0VfTUFOQUdFTUVOVCkKKyAgICBhdXRvJiBjb2NvYVNlc3Npb24gPSBzdGF0aWNfY2FzdDxO
ZXR3b3JrU2Vzc2lvbkNvY29hJj4obV9zZXNzaW9uLmdldCgpKTsKKyAgICBpZiAoY29jb2FTZXNz
aW9uLmRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKCkgJiYgbV9pc0Zvck1haW5S
ZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSkgeworICAgICAgICBSZXRhaW5QdHI8TlNVUkw+
IHVybFRvQ2hlY2sgPSBbbV90YXNrIGN1cnJlbnRSZXF1ZXN0XS5VUkw7CisgICAgICAgIFtjb2Nv
YVNlc3Npb24uZGV2aWNlTWFuYWdlbWVudFBvbGljeU1vbml0b3IoKSByZXF1ZXN0UG9saWNpZXNG
b3JXZWJzaXRlczpAWyB1cmxUb0NoZWNrLmdldCgpIF0gY29tcGxldGlvbkhhbmRsZXI6bWFrZUJs
b2NrUHRyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHVybFRvQ2hlY2td
IChOU0RpY3Rpb25hcnk8TlNVUkwgKiwgTlNOdW1iZXIgKj4gKnBvbGljaWVzLCBOU0Vycm9yICpl
cnJvcikgeworICAgICAgICAgICAgYm9vbCBpc0Jsb2NrZWQgPSBlcnJvciB8fCBwb2xpY2llc1t1
cmxUb0NoZWNrLmdldCgpXS5pbnRlZ2VyVmFsdWUgIT0gRE1GUG9saWN5T0s7CisgICAgICAgICAg
ICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IGlzQmxvY2tlZF0geworICAgICAgICAgICAgICAgIGlmIChpc0Jsb2NrZWQpIHsKKyAgICAgICAg
ICAgICAgICAgICAgc2NoZWR1bGVGYWlsdXJlKFJlc3RyaWN0ZWRVUkxGYWlsdXJlKTsKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgIFttX3Rhc2sgcmVzdW1lXTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KS5nZXQoKV07
CisKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1ZBUklBQkxFKG1f
aXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUpOworI2VuZGlmCisKICAgICBb
bV90YXNrIHJlc3VtZV07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKaW5kZXggM2QxYTQ5ZjI3MzI1ZjQ5
Njc1NDEyNTQwMDU3ZWYxMTA2NjIxNDBiMi4uMTEyMWEzNGMyY2E0N2NkMGE3MTU5NGE2NGM0ZjYx
YjE1Mjg1MjljNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdt
YSBvbmNlCiAKK09CSkNfQ0xBU1MgRE1GV2Vic2l0ZVBvbGljeU1vbml0b3I7CiBPQkpDX0NMQVNT
IE5TRGF0YTsKIE9CSkNfQ0xBU1MgTlNVUkxTZXNzaW9uOwogT0JKQ19DTEFTUyBOU1VSTFNlc3Np
b25Eb3dubG9hZFRhc2s7CkBAIC02OSw2ICs3MCwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNv
bnRpbnVlRGlkUmVjZWl2ZUNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYsIE5ldHdvcmtEYXRhVGFza0NvY29hOjpUYXNrSWRlbnRpZmllciwgTmV0d29ya0Rh
dGFUYXNrQ29jb2EqLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYktpdDo6QXV0aGVudGljYXRp
b25DaGFsbGVuZ2VEaXNwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYpPiYmKTsK
IAorI2lmIEhBVkUoREVWSUNFX01BTkFHRU1FTlQpCisgICAgYm9vbCBkZXZpY2VNYW5hZ2VtZW50
UmVzdHJpY3Rpb25zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0VuYWJsZWQ7IH0KKyAgICBETUZXZWJzaXRlUG9saWN5TW9uaXRvciAqZGV2aWNl
TWFuYWdlbWVudFBvbGljeU1vbml0b3IoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIE5ldHdv
cmtTZXNzaW9uQ29jb2EoTmV0d29ya1Byb2Nlc3MmLCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFy
YW1ldGVycyYmKTsKIApAQCAtOTMsNiArOTksMTAgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9z
b3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI7CiAgICAgU3RyaW5nIG1fc291cmNlQXBw
bGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOwogICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlS
ZWY+IG1fcHJveHlDb25maWd1cmF0aW9uOworI2lmIEhBVkUoREVWSUNFX01BTkFHRU1FTlQpCisg
ICAgUmV0YWluUHRyPERNRldlYnNpdGVQb2xpY3lNb25pdG9yPiBtX2RldmljZU1hbmFnZW1lbnRQ
b2xpY3lNb25pdG9yOworICAgIGJvb2wgbV9kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5h
YmxlZCB7IGZhbHNlIH07CisjZW5kaWYKICAgICBib29sIG1fc2hvdWxkTG9nQ29va2llSW5mb3Jt
YXRpb24geyBmYWxzZSB9OwogICAgIFNlY29uZHMgbV9sb2FkVGhyb3R0bGVMYXRlbmN5OwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a1Nlc3Npb25Db2NvYS5tbQppbmRleCBjNGNhMzkxZGY3ZWI4MTlhNjg2ZGJiY2YwMWZiY2Q2NDdj
ZWU3MWRiLi5mODJkZmUzMjkyZmE4YTJhYmRjZmY1ZDQ2ZjBmZGIzNzdiNjg1NDk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vz
c2lvbkNvY29hLm1tCkBAIC01MSw2ICs1MSw3IEBACiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KICNpbXBvcnQgPHd0Zi9PYmpDUnVudGltZUV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1By
b2Nlc3NQcml2aWxlZ2UuaD4KKyNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8
d3RmL1VSTC5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTU4LDYgKzU5
LDggQEAKICNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvTmV0d29ya1Nlc3Npb25Db2NvYUFkZGl0
aW9ucy5oPgogI2VuZGlmCiAKKyNpbXBvcnQgIkRldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oIgor
CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBDRlN0cmluZ1JlZiBjb25zdCBXZWJLaXQySFRU
UFByb3h5RGVmYXVsdHNLZXkgPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQCJXZWJLaXQySFRU
UFByb3h5Iik7CkBAIC03MTMsNyArNzE2LDcgQEAgLSAodm9pZClVUkxTZXNzaW9uOihOU1VSTFNl
c3Npb24gKilzZXNzaW9uIGRhdGFUYXNrOihOU1VSTFNlc3Npb25EYXRhVGFzayAqKWRhdGEKICAg
ICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgCiAgICAgICAgIC8vIEF2
b2lkIE1JTUUgdHlwZSBzbmlmZmluZyBpZiB0aGUgcmVzcG9uc2UgY29tZXMgYmFjayBhcyAzMDQg
Tm90IE1vZGlmaWVkLgotICAgICAgICBpbnQgc3RhdHVzQ29kZSA9IFtyZXNwb25zZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKHN0YXR1c0NvZGUpXSA/IFsoaWQpcmVzcG9uc2Ugc3RhdHVz
Q29kZV0gOiAwOworICAgICAgICBpbnQgc3RhdHVzQ29kZSA9IFtyZXNwb25zZSBpc0tpbmRPZkNs
YXNzOk5TSFRUUFVSTFJlc3BvbnNlLmNsYXNzXSA/IFsoTlNIVFRQVVJMUmVzcG9uc2UgKilyZXNw
b25zZSBzdGF0dXNDb2RlXSA6IDA7CiAgICAgICAgIGlmIChzdGF0dXNDb2RlICE9IDMwNCkgewog
ICAgICAgICAgICAgYm9vbCBpc01haW5SZXNvdXJjZUxvYWQgPSBuZXR3b3JrRGF0YVRhc2stPmZp
cnN0UmVxdWVzdCgpLnJlcXVlc3RlcigpID09IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6UmVx
dWVzdGVyOjpNYWluOwogICAgICAgICAgICAgV2ViQ29yZTo6YWRqdXN0TUlNRVR5cGVJZk5lY2Vz
c2FyeShyZXNwb25zZS5fQ0ZVUkxSZXNwb25zZSwgaXNNYWluUmVzb3VyY2VMb2FkKTsKQEAgLTk4
MSw2ICs5ODQsOCBAQCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKE5l
dHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29yawogICAgIG1fc3RhdGVsZXNzU2Vz
c2lvbkRlbGVnYXRlID0gYWRvcHROUyhbW1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSBhbGxvY10g
aW5pdFdpdGhOZXR3b3JrU2Vzc2lvbjoqdGhpcyB3aXRoQ3JlZGVudGlhbHM6ZmFsc2VdKTsKICAg
ICBtX3N0YXRlbGVzc1Nlc3Npb24gPSBbTlNVUkxTZXNzaW9uIHNlc3Npb25XaXRoQ29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uIGRlbGVnYXRlOnN0YXRpY19jYXN0PGlkPihtX3N0YXRlbGVzc1Nl
c3Npb25EZWxlZ2F0ZS5nZXQoKSkgZGVsZWdhdGVRdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBtYWlu
UXVldWVdXTsKIAorICAgIG1fZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgPSBw
YXJhbWV0ZXJzLmRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkOworCiAjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnkgPSBwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7
CiAgICAgbV9zaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0g
cGFyYW1ldGVycy5zaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
ID8gU2hvdWxkSW5jbHVkZUxvY2FsaG9zdDo6WWVzIDogU2hvdWxkSW5jbHVkZUxvY2FsaG9zdDo6
Tm87CkBAIC0xMTY3LDQgKzExNzIsMTQgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjb250
aW51ZURpZFJlY2VpdmVDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXQKICAgICBu
ZXR3b3JrRGF0YVRhc2stPmRpZFJlY2VpdmVDaGFsbGVuZ2UoV1RGTW92ZShhdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSksIFdURk1vdmUoY2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAor
I2lmIEhBVkUoREVWSUNFX01BTkFHRU1FTlQpCitETUZXZWJzaXRlUG9saWN5TW9uaXRvciAqTmV0
d29ya1Nlc3Npb25Db2NvYTo6ZGV2aWNlTWFuYWdlbWVudFBvbGljeU1vbml0b3IoKQoreworICAg
IEFTU0VSVChtX2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKTsKKyAgICBpZiAo
IW1fZGV2aWNlTWFuYWdlbWVudFBvbGljeU1vbml0b3IpCisgICAgICAgIG1fZGV2aWNlTWFuYWdl
bWVudFBvbGljeU1vbml0b3IgPSBhZG9wdE5TKFthbGxvY0RNRldlYnNpdGVQb2xpY3lNb25pdG9y
SW5zdGFuY2UoKSBpbml0V2l0aFBvbGljeUNoYW5nZUhhbmRsZXI6bmlsXSk7CisgICAgcmV0dXJu
IG1fZGV2aWNlTWFuYWdlbWVudFBvbGljeU1vbml0b3IuZ2V0KCk7Cit9CisjZW5kaWYKKwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvRGV2aWNlTWFuYWdl
bWVudFNQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvRGV2aWNlTWFuYWdl
bWVudFNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4Y2M0OTRlZGE0MTJjYjY1MmYxNWFkMGMwZmJkYTVlZjU2
NDJkMWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2Nv
YS9EZXZpY2VNYW5hZ2VtZW50U1BJLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgSEFWRShERVZJQ0VfTUFOQUdFTUVOVCkKKworI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPERldmljZU1hbmFnZW1lbnQvRGV2aWNlTWFuYWdl
bWVudC5oPgorCisjZWxzZQorCitAaW50ZXJmYWNlIERNRldlYnNpdGVQb2xpY3lNb25pdG9yIDog
TlNPYmplY3QKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUG9saWN5Q2hhbmdlSGFuZGxlcjoo
RE1GUG9saWN5Q2hhbmdlSGFuZGxlciljaGFuZ2VIYW5kbGVyOworLSAodm9pZClyZXF1ZXN0UG9s
aWNpZXNGb3JXZWJzaXRlczooTlNBcnJheTxOU1VSTCAqPiAqKXdlYnNpdGVVUkxzIGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKShOU0RpY3Rpb25hcnk8TlNVUkwgKiwgTlNOdW1iZXIgKj4gKnBv
bGljaWVzLCBOU0Vycm9yICplcnJvcikpY29tcGxldGlvbkhhbmRsZXI7CisKK0BlbmQKKwordHlw
ZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgRE1GUG9saWN5KSB7CisgICAgRE1GUG9saWN5T0sgPSAw
LAorfTsKKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNlbmRpZiAvLyBI
QVZFKERFVklDRV9NQU5BR0VNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9SZXNvdXJj
ZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IgYi9T
b3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJL
aXQuTmV0d29ya2luZy5zYgppbmRleCBkYTYwYjFiYmZlMmM5NjBjMGFiODhlMzJiODJhMDJkNTcw
MDcwNTJhLi44MDcxNmVjNjQzNDhiZmI0NDhlZGU2NzYyZDRjMGRkOWMxOWNkZjdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBs
ZS5XZWJLaXQuTmV0d29ya2luZy5zYgorKysgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5k
Ym94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYgpAQCAtODIsNiAr
ODIsMTEgQEAKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5wYXNzZC5pbi1hcHAtcGF5bWVu
dCIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUucGFzc2QubGlicmFyeSIpKQogCisoYWxs
b3cgbWFjaC1sb29rdXAKKyAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5kbWQucG9saWN5IikK
KyAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5zaXJpLmNvbnRleHQuc2VydmljZSIpCisgICAg
KGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY3RjYXRlZ29yaWVzLnNlcnZpY2UiKSkKKwogKGRlbnkg
ZmlsZS13cml0ZS1jcmVhdGUKICAgICAgICAodm5vZGUtdHlwZSBTWU1MSU5LKSkKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUVycm9yLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvQVBJRXJyb3IuaAppbmRleCA0NDJkNjc2ZWQyNzQ5OWYwZjJhMmJkNGNkNTQ3
MmQ3NDEzOWRkM2RkLi44NzM2N2NkMjQzMTU4ZjEwN2RjYzNiMDNhYjJhODA2Yjc5ZDBkMDdlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRXJyb3IuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRXJyb3IuaApAQCAtNjUsNyArNjUsOCBAQCBwdWJsaWM6
CiAgICAgICAgIEZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgPSAxMDIsCiAgICAg
ICAgIENhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0ID0gMTAzLAogICAgICAgICBGcmFtZUxvYWRCbG9j
a2VkQnlDb250ZW50QmxvY2tlciA9IDEwNCwKLSAgICAgICAgRnJhbWVMb2FkQmxvY2tlZEJ5Q29u
dGVudEZpbHRlciA9IDEwNQorICAgICAgICBGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50RmlsdGVy
ID0gMTA1LAorICAgICAgICBGcmFtZUxvYWRCbG9ja2VkQnlSZXN0cmljdGlvbnMgPSAxMDYsCiAg
ICAgfTsKICAgICBzdGF0aWMgY29uc3QgV1RGOjpTdHJpbmcmIHdlYktpdFBvbGljeUVycm9yRG9t
YWluKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLRXJyb3JS
ZWYuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tFcnJvclJlZi5jcHAKaW5kZXgg
NDc5M2E1N2ZkMmYxNTRmZWM3MWQ5ODRiNzhmYjQ4YWQ4NDkyOTEyZS4uZTZjZTZkOTRhMTM3ODI2
OTA4OTZlYzdiMzA3MjIzNDAwYjNmZTM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQVBJL2MvV0tFcnJvclJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2Mv
V0tFcnJvclJlZi5jcHAKQEAgLTU4LDYgKzU4LDggQEAgaW50IFdLRXJyb3JHZXRFcnJvckNvZGUo
V0tFcnJvclJlZiBlcnJvclJlZikKICAgICAgICAgcmV0dXJuIGtXS0Vycm9yQ29kZUNhbm5vdFVz
ZVJlc3RyaWN0ZWRQb3J0OwogICAgIGNhc2UgQVBJOjpFcnJvcjo6UG9saWN5OjpGcmFtZUxvYWRC
bG9ja2VkQnlDb250ZW50QmxvY2tlcjoKICAgICAgICAgcmV0dXJuIGtXS0Vycm9yQ29kZUZyYW1l
TG9hZEJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyOworICAgIGNhc2UgQVBJOjpFcnJvcjo6UG9saWN5
OjpGcmFtZUxvYWRCbG9ja2VkQnlSZXN0cmljdGlvbnM6CisgICAgICAgIHJldHVybiBrV0tFcnJv
ckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlSZXN0cmljdGlvbnM7CiAgICAgY2FzZSBBUEk6OkVycm9y
OjpQb2xpY3k6OkZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRGaWx0ZXI6CiAgICAgICAgIHJldHVy
biBrV0tFcnJvckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50RmlsdGVyOwogICAgIGNhc2Ug
QVBJOjpFcnJvcjo6UGx1Z2luOjpDYW5ub3RGaW5kUGx1Z0luOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQVBJL2MvV0tFcnJvclJlZi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL2MvV0tFcnJvclJlZi5oCmluZGV4IDBkNzYzODRkMzQ0YTAxMDVhNzc4YTVlNWQ3Yjc4ZmM0
NjgzMDM2OGQuLjI5YmMwY2ZjYTcyMGVhZTlmMmMxZDdjNjljY2FhNDAzOWNkMTYwOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Vycm9yUmVmLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgZW51
bSB7CiAgICAga1dLRXJyb3JDb2RlUGx1Z0luQ2FuY2VsbGVkQ29ubmVjdGlvbiA9ICAgICAgICAg
ICAgICAgICAgICAgIDIwMywKICAgICBrV0tFcnJvckNvZGVQbHVnSW5XaWxsSGFuZGxlTG9hZCA9
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMjA0LAogICAgIGtXS0Vycm9yQ29kZUluc2VjdXJl
UGx1Z0luVmVyc2lvbiA9ICAgICAgICAgICAgICAgICAgICAgICAgICAyMDUsCisgICAga1dLRXJy
b3JDb2RlRnJhbWVMb2FkQmxvY2tlZEJ5UmVzdHJpY3Rpb25zID0gICAgICAgICAgICAgICAgIDIw
NiwKICAgICBrV0tFcnJvckludGVybmFsID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMzAwLAogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViRXJyb3JzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkVycm9ycy5jcHAKaW5kZXgg
YjZkYzUwY2ViNTVjYWY2NWJiZTE5YWY2ZTMyN2Q1MTIwMDlhM2ZhOC4uNmNmYTI1YzY2YWRkMTdh
ZDdiMzE0ZWVhYjc1ZWZiNDFjZTdjNTI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViRXJyb3JzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFcnJvcnMuY3Bw
CkBAIC01Miw2ICs1MiwxMSBAQCBSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJ
OjpFcnJvcjo6d2ViS2l0UG9saWN5RXJyb3JEb21haW4oKSwgQVBJOjpFcnJvcjo6UG9saWN5OjpD
YW5ub3RTaG93VVJMLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIGNhbuKA
mXQgYmUgc2hvd24iLCAiV2ViS2l0RXJyb3JDYW5ub3RTaG93VVJMIGRlc2NyaXB0aW9uIikpOwog
fQogCitSZXNvdXJjZUVycm9yIHdhc0Jsb2NrZWRCeVJlc3RyaWN0aW9uc0Vycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6
OkVycm9yOjp3ZWJLaXRQb2xpY3lFcnJvckRvbWFpbigpLCBBUEk6OkVycm9yOjpQb2xpY3k6OkZy
YW1lTG9hZEJsb2NrZWRCeVJlc3RyaWN0aW9ucywgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklO
RygiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBkZXZpY2UgcmVzdHJpY3Rpb25zIiwgIldlYktpdEVy
cm9yRnJhbWVMb2FkQmxvY2tlZEJ5UmVzdHJpY3Rpb25zIGRlc2NyaXB0aW9uIikpOworfQorCiBS
ZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJy
b3I6OndlYktpdFBvbGljeUVycm9yRG9tYWluKCksIEFQSTo6RXJyb3I6OlBvbGljeTo6RnJhbWVM
b2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklO
RygiRnJhbWUgbG9hZCBpbnRlcnJ1cHRlZCIsICJXZWJLaXRFcnJvckZyYW1lTG9hZEludGVycnVw
dGVkQnlQb2xpY3lDaGFuZ2UgZGVzY3JpcHRpb24iKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJFcnJvcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkVycm9ycy5o
CmluZGV4IDdkNjAwYzZkMjNiNTVkY2MzOTYzMDk5MDQwN2NlNzQ0NDQ2Y2I0ODYuLjlmMGEwMDJi
NmNiMWE2MTUyYTFkODgzN2FlYTliNGMyZjhhMmFiMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkVycm9ycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkVycm9y
cy5oCkBAIC0zOSw2ICszOSw3IEBAIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJy
b3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fubm90U2hv
d1VSTEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciB3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnNFcnJvcihjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmKTsKIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQ
b2xpY3lDaGFuZ2VFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgZmFpbGVkQ3VzdG9tUHJvdG9jb2xTeW5jTG9hZChjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5j
cHAKaW5kZXggZjc0YjJjNWRiOTdmMTJkODI1MDYyMDZlNzg5NmVjYmIyOTYwZGY1Zi4uOTQ5OTc0
MDI0ODAwZmIyMzdmNTNjYWY4ZGY4ZGMxYjJhNjk4Yzc0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMTQ1LDYgKzE0
NSw4IEBAIFJlZjxXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiBXZWJzaXRl
RGF0YVN0b3JlOjpkZWZhdWx0RGF0YVN0b3JlQ29uCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9u
ID0gV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6Y3JlYXRlKCk7CiAKKyAg
ICBjb25maWd1cmF0aW9uLT5zZXRQZXJzaXN0ZW50KHRydWUpOworCiAgICAgY29uZmlndXJhdGlv
bi0+c2V0QXBwbGljYXRpb25DYWNoZURpcmVjdG9yeShkZWZhdWx0QXBwbGljYXRpb25DYWNoZURp
cmVjdG9yeSgpKTsKICAgICBjb25maWd1cmF0aW9uLT5zZXRBcHBsaWNhdGlvbkNhY2hlRmxhdEZp
bGVTdWJkaXJlY3RvcnlOYW1lKCJGaWxlcyIpOwogICAgIGNvbmZpZ3VyYXRpb24tPnNldENhY2hl
U3RvcmFnZURpcmVjdG9yeShkZWZhdWx0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5KCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3Rv
cmUubW0KaW5kZXggMjYyOThlYmNlYzU3NzRlMzQwNjYxZWE5ZmIxYTRiMjhlYTUwYTM0My4uZmNi
ZmI1NDdlNjk2M2Q5NDc0MmIwYmJkYTY4N2E4NDYxOGZkNzg0MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBA
IC0yMjksMjIgKzIyOSwzNSBAQCAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoQ29uZmlndXJhdGlv
bjooX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gKiljb25maQogICAgIGlmICghKHNl
bGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgYXV0byBjb25m
aWcgPSBBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHREYXRhU3RvcmVDb25maWd1cmF0aW9u
KCk7Ci0KLSAgICBpZiAoY29uZmlndXJhdGlvbi5fd2ViU3RvcmFnZURpcmVjdG9yeSkKLSAgICAg
ICAgY29uZmlnLT5zZXRMb2NhbFN0b3JhZ2VEaXJlY3RvcnkoY29uZmlndXJhdGlvbi5fd2ViU3Rv
cmFnZURpcmVjdG9yeS5wYXRoKTsKLSAgICBpZiAoY29uZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJh
c2VEaXJlY3RvcnkpCi0gICAgICAgIGNvbmZpZy0+c2V0V2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnko
Y29uZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkucGF0aCk7Ci0gICAgaWYgKGNv
bmZpZ3VyYXRpb24uX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KQotICAgICAgICBjb25maWct
PnNldEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uX2luZGV4ZWREQkRh
dGFiYXNlRGlyZWN0b3J5LnBhdGgpOwotICAgIGlmIChjb25maWd1cmF0aW9uLl9jb29raWVTdG9y
YWdlRmlsZSkKLSAgICAgICAgY29uZmlnLT5zZXRDb29raWVTdG9yYWdlRmlsZShjb25maWd1cmF0
aW9uLl9jb29raWVTdG9yYWdlRmlsZS5wYXRoKTsKLSAgICBpZiAoY29uZmlndXJhdGlvbi5fcmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSkKLSAgICAgICAgY29uZmlnLT5zZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uX3Jlc291cmNlTG9hZFN0YXRp
c3RpY3NEaXJlY3RvcnkucGF0aCk7Ci0gICAgaWYgKGNvbmZpZ3VyYXRpb24uX2NhY2hlU3RvcmFn
ZURpcmVjdG9yeSkKLSAgICAgICAgY29uZmlnLT5zZXRDYWNoZVN0b3JhZ2VEaXJlY3RvcnkoY29u
ZmlndXJhdGlvbi5fY2FjaGVTdG9yYWdlRGlyZWN0b3J5LnBhdGgpOwotICAgIGlmIChjb25maWd1
cmF0aW9uLl9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KQotICAgICAgICBjb25m
aWctPnNldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoY29uZmlndXJhdGlvbi5f
c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeS5wYXRoKTsKKyAgICBhdXRvIGNvbmZp
ZyA9IGNvbmZpZ3VyYXRpb24uaXNQZXJzaXN0ZW50ID8gQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpk
ZWZhdWx0RGF0YVN0b3JlQ29uZmlndXJhdGlvbigpIDogV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbjo6Y3JlYXRlKCk7CisKKyAgICBSRUxFQVNFX0FTU0VSVChjb25maWctPmlz
UGVyc2lzdGVudCgpID09IGNvbmZpZ3VyYXRpb24uaXNQZXJzaXN0ZW50KTsKKworICAgIGlmIChj
b25maWd1cmF0aW9uLmlzUGVyc2lzdGVudCkgeworICAgICAgICBpZiAoY29uZmlndXJhdGlvbi5f
d2ViU3RvcmFnZURpcmVjdG9yeSkKKyAgICAgICAgICAgIGNvbmZpZy0+c2V0TG9jYWxTdG9yYWdl
RGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uX3dlYlN0b3JhZ2VEaXJlY3RvcnkucGF0aCk7CisgICAg
ICAgIGlmIChjb25maWd1cmF0aW9uLl93ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSkKKyAgICAgICAg
ICAgIGNvbmZpZy0+c2V0V2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoY29uZmlndXJhdGlvbi5fd2Vi
U1FMRGF0YWJhc2VEaXJlY3RvcnkucGF0aCk7CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uLl9p
bmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSkKKyAgICAgICAgICAgIGNvbmZpZy0+c2V0SW5kZXhl
ZERCRGF0YWJhc2VEaXJlY3RvcnkoY29uZmlndXJhdGlvbi5faW5kZXhlZERCRGF0YWJhc2VEaXJl
Y3RvcnkucGF0aCk7CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uLl9jb29raWVTdG9yYWdlRmls
ZSkKKyAgICAgICAgICAgIGNvbmZpZy0+c2V0Q29va2llU3RvcmFnZUZpbGUoY29uZmlndXJhdGlv
bi5fY29va2llU3RvcmFnZUZpbGUucGF0aCk7CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uLl9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KQorICAgICAgICAgICAgY29uZmlnLT5zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uX3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEaXJlY3RvcnkucGF0aCk7CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uLl9j
YWNoZVN0b3JhZ2VEaXJlY3RvcnkpCisgICAgICAgICAgICBjb25maWctPnNldENhY2hlU3RvcmFn
ZURpcmVjdG9yeShjb25maWd1cmF0aW9uLl9jYWNoZVN0b3JhZ2VEaXJlY3RvcnkucGF0aCk7Cisg
ICAgICAgIGlmIChjb25maWd1cmF0aW9uLl9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0
b3J5KQorICAgICAgICAgICAgY29uZmlnLT5zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGly
ZWN0b3J5KGNvbmZpZ3VyYXRpb24uX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnku
cGF0aCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNvbmZpZ3VyYXRp
b24uX3dlYlN0b3JhZ2VEaXJlY3RvcnkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmln
dXJhdGlvbi5fd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkpOworICAgICAgICBSRUxFQVNFX0FTU0VS
VCghY29uZmlndXJhdGlvbi5faW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkpOworICAgICAgICBS
RUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5fY29va2llU3RvcmFnZUZpbGUpOworICAgICAg
ICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rp
cmVjdG9yeSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFjb25maWd1cmF0aW9uLl9jYWNoZVN0
b3JhZ2VEaXJlY3RvcnkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5f
c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSk7CisgICAgfQorCiAgICAgaWYgKGNv
bmZpZ3VyYXRpb24uc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQogICAgICAgICBj
b25maWctPnNldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcihjb25maWd1cmF0aW9u
LnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcik7CiAgICAgaWYgKGNvbmZpZ3VyYXRp
b24uc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKQpAQCAtMjUzLDYgKzI2Niw3
IEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhDb25maWd1cmF0aW9uOihfV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbiAqKWNvbmZpCiAgICAgICAgIGNvbmZpZy0+c2V0SFRUUFByb3h5
KGNvbmZpZ3VyYXRpb24uaHR0cFByb3h5KTsKICAgICBpZiAoY29uZmlndXJhdGlvbi5odHRwc1By
b3h5KQogICAgICAgICBjb25maWctPnNldEhUVFBTUHJveHkoY29uZmlndXJhdGlvbi5odHRwc1By
b3h5KTsKKyAgICBjb25maWctPnNldERldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVk
KGNvbmZpZ3VyYXRpb24uZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQpOwogCiAg
ICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OldlYnNpdGVEYXRhU3RvcmU+
KHNlbGYsIFdURk1vdmUoY29uZmlnKSwgUEFMOjpTZXNzaW9uSUQ6OmdlbmVyYXRlUGVyc2lzdGVu
dFNlc3Npb25JRCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApp
bmRleCA1OWY5ODRlNDg3YWRmM2YwNDJkOTY3MzdhOWI0N2RhNzllMjJkM2IwLi5jNmQ2ZTk0N2Nm
NjI1MmJlZWI4MmRkMDM1ZTg2ZjhiMWYxYTZiYjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uaApAQCAtMzIsNiArMzIsMjAgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVH
SU4KIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSkKIEBpbnRlcmZh
Y2UgX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gOiBOU09iamVjdAogCistIChpbnN0
YW5jZXR5cGUpaW5pdDsgLy8gQ3JlYXRlcyBhIHBlcnNpc3RlbnQgY29uZmlndXJhdGlvbi4KKy0g
KGluc3RhbmNldHlwZSlpbml0V2l0aE5vblBlcnNpc3RlbnRDb25maWd1cmF0aW9uOworCitAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc1BlcnNpc3RlbnQpIEJPT0wgcGVy
c2lzdGVudDsKKworLy8gVGhlc2UgcHJvcGVydGllcyBhcHBseSB0byBib3RoIHBlcnNpc3RlbnQg
YW5kIG5vbi1wZXJzaXN0ZW50IGRhdGEgc3RvcmVzLgorQHByb3BlcnR5IChub25hdG9taWMsIG51
bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpzb3VyY2VBcHBsaWNhdGlvblNl
Y29uZGFyeUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEy
LjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhU
VFBQcm94eTopIE5TVVJMICpodHRwUHJveHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40
KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0
dGVyPXNldEhUVFBTUHJveHk6KSBOU1VSTCAqaHR0cHNQcm94eSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgZGV2
aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKKy8vIFRoZXNlIHByb3BlcnRpZXMgb25s
eSBtYWtlIHNlbnNlIGZvciBwZXJzaXN0ZW50IGRhdGEgc3RvcmVzLCBhbmQgd2lsbCB0aHJvdwor
Ly8gYW4gZXhjZXB0aW9uIGlmIHNldCBmb3Igbm9uLXBlcnNpc3RlbnQgc3RvcmVzLgogQHByb3Bl
cnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0V2ViU3RvcmFnZURpcmVjdG9yeTopIE5T
VVJMICpfd2ViU3RvcmFnZURpcmVjdG9yeTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBz
ZXR0ZXI9X3NldEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5OikgTlNVUkwgKl9pbmRleGVkREJE
YXRhYmFzZURpcmVjdG9yeTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3Nl
dFdlYlNRTERhdGFiYXNlRGlyZWN0b3J5OikgTlNVUkwgKl93ZWJTUUxEYXRhYmFzZURpcmVjdG9y
eTsKQEAgLTM5LDEwICs1Myw2IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlv
cygxMS4wKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk6KSBOU1VSTCAqX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NE
aXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldENhY2hlU3RvcmFnZURpcmVjdG9y
eTopIE5TVVJMICpfY2FjaGVTdG9yYWdlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTMuNCksIGlvcygxMS4zKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVy
PV9zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5OikgTlNVUkwgKl9zZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5T
U3RyaW5nICpzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxs
YWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmll
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwotQHByb3BlcnR5
IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFByb3h5OikgTlNVUkwg
Kmh0dHBQcm94eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwot
QHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFNQcm94
eTopIE5TVVJMICpodHRwc1Byb3h5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlv
cygxMi4yKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
Lm1tCmluZGV4IDJhMDUxMGVjODlmNWVhYjgxYzUzZjI3ZTJlMGQwMDM2ZjYwYmEwMjkuLjVmZTY1
Mzk1YmNlYjYyODRkNDE3MmY0YWM4OTQ5MmE2MDQyYjdmOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KQEAgLTM2LDYgKzM2LDMzIEBAIHN0YXRpYyB2b2lkIGNo
ZWNrVVJMQXJndW1lbnQoTlNVUkwgKnVybCkKIAogQGltcGxlbWVudGF0aW9uIF9XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uCiAKKy0gKGluc3RhbmNldHlwZSlpbml0Cit7CisgICAgc2Vs
ZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisK
KyAgICBfY29uZmlndXJhdGlvbi0+c2V0UGVyc2lzdGVudCh0cnVlKTsKKworICAgIHJldHVybiBz
ZWxmOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhOb25QZXJzaXN0ZW50Q29uZmlndXJh
dGlvbgoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAgICAg
ICByZXR1cm4gbmlsOworCisgICAgX2NvbmZpZ3VyYXRpb24tPnNldFBlcnNpc3RlbnQoZmFsc2Up
OworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKEJPT0wpaXNQZXJzaXN0ZW50Cit7CisgICAg
cmV0dXJuIF9jb25maWd1cmF0aW9uLT5pc1BlcnNpc3RlbnQoKTsKK30KKwogLSAoTlNVUkwgKilf
d2ViU3RvcmFnZURpcmVjdG9yeQogewogICAgIHJldHVybiBbTlNVUkwgZmlsZVVSTFdpdGhQYXRo
Ol9jb25maWd1cmF0aW9uLT53ZWJTdG9yYWdlRGlyZWN0b3J5KCkgaXNEaXJlY3Rvcnk6WUVTXTsK
QEAgLTQzLDYgKzcwLDggQEAgLSAoTlNVUkwgKilfd2ViU3RvcmFnZURpcmVjdG9yeQogCiAtICh2
b2lkKV9zZXRXZWJTdG9yYWdlRGlyZWN0b3J5OihOU1VSTCAqKXVybAogeworICAgIGlmICghX2Nv
bmZpZ3VyYXRpb24tPmlzUGVyc2lzdGVudCgpKQorICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6
TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiQ2Fubm90IHNldCBfd2ViU3RvcmFn
ZURpcmVjdG9yeSBvbiBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLiJdOwogICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKICAgICBfY29uZmlndXJhdGlv
bi0+c2V0V2ViU3RvcmFnZURpcmVjdG9yeSh1cmwucGF0aCk7CiB9CkBAIC01NCw2ICs4Myw4IEBA
IC0gKE5TVVJMICopX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5CiAKIC0gKHZvaWQpX3NldElu
ZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5OihOU1VSTCAqKXVybAogeworICAgIGlmICghX2NvbmZp
Z3VyYXRpb24tPmlzUGVyc2lzdGVudCgpKQorICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJ
bnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiQ2Fubm90IHNldCBfaW5kZXhlZERCRGF0
YWJhc2VEaXJlY3Rvcnkgb24gYSBub24tcGVyc2lzdGVudCBfV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi4iXTsKICAgICBjaGVja1VSTEFyZ3VtZW50KHVybCk7CiAgICAgX2NvbmZpZ3Vy
YXRpb24tPnNldEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KHVybC5wYXRoKTsKIH0KQEAgLTY1
LDYgKzk2LDggQEAgLSAoTlNVUkwgKilfd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkKIAogLSAodm9p
ZClfc2V0V2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk6KE5TVVJMICopdXJsCiB7CisgICAgaWYgKCFf
Y29uZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50KCkpCisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlz
ZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJDYW5ub3Qgc2V0IF93ZWJTUUxE
YXRhYmFzZURpcmVjdG9yeSBvbiBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLiJdOwogICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKICAgICBfY29uZmln
dXJhdGlvbi0+c2V0V2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkodXJsLnBhdGgpOwogfQpAQCAtOTYs
NiArMTI5LDggQEAgLSAoTlNVUkwgKilfY29va2llU3RvcmFnZUZpbGUKIAogLSAodm9pZClfc2V0
Q29va2llU3RvcmFnZUZpbGU6KE5TVVJMICopdXJsCiB7CisgICAgaWYgKCFfY29uZmlndXJhdGlv
bi0+aXNQZXJzaXN0ZW50KCkpCisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRB
cmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJDYW5ub3Qgc2V0IF9jb29raWVTdG9yYWdlRmlsZSBv
biBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLiJdOwog
ICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKICAgICBpZiAoW3VybCBoYXNEaXJlY3RvcnlQYXRo
XSkKICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9u
IGZvcm1hdDpAIlRoZSBjb29raWUgc3RvcmFnZSBwYXRoIG11c3QgcG9pbnQgdG8gYSBmaWxlLCBu
b3QgYSBkaXJlY3RvcnkuIl07CkBAIC0xMTAsNiArMTQ1LDggQEAgLSAoTlNVUkwgKilfcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeQogCiAtICh2b2lkKV9zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGlyZWN0b3J5OihOU1VSTCAqKXVybAogeworICAgIGlmICghX2NvbmZpZ3VyYXRpb24t
PmlzUGVyc2lzdGVudCgpKQorICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJn
dW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiQ2Fubm90IHNldCBfcmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RpcmVjdG9yeSBvbiBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLiJdOwogICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKICAgICBfY29uZmlndXJhdGlv
bi0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSh1cmwucGF0aCk7CiB9CkBAIC0x
MjEsNiArMTU4LDggQEAgLSAoTlNVUkwgKilfY2FjaGVTdG9yYWdlRGlyZWN0b3J5CiAKIC0gKHZv
aWQpX3NldENhY2hlU3RvcmFnZURpcmVjdG9yeTooTlNVUkwgKil1cmwKIHsKKyAgICBpZiAoIV9j
b25maWd1cmF0aW9uLT5pc1BlcnNpc3RlbnQoKSkKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNl
Ok5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIkNhbm5vdCBzZXQgX2NhY2hlU3Rv
cmFnZURpcmVjdG9yeSBvbiBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLiJdOwogICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKICAgICBfY29uZmlndXJh
dGlvbi0+c2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5KHVybC5wYXRoKTsKIH0KQEAgLTEzMiw2ICsx
NzEsOCBAQCAtIChOU1VSTCAqKV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5CiAK
IC0gKHZvaWQpX3NldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnk6KE5TVVJMICop
dXJsCiB7CisgICAgaWYgKCFfY29uZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50KCkpCisgICAgICAg
IFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJD
YW5ub3Qgc2V0IF9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IG9uIGEgbm9uLXBl
cnNpc3RlbnQgX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uIl07CiAgICAgY2hlY2tV
UkxBcmd1bWVudCh1cmwpOwogICAgIF9jb25maWd1cmF0aW9uLT5zZXRTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGlyZWN0b3J5KHVybC5wYXRoKTsKIH0KQEAgLTE1Niw2ICsxOTcsMTYgQEAgLSAo
dm9pZClzZXRTb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI6KE5TU3RyaW5nICop
aWRlbnRpZmllcgogICAgIF9jb25maWd1cmF0aW9uLT5zZXRTb3VyY2VBcHBsaWNhdGlvblNlY29u
ZGFyeUlkZW50aWZpZXIoaWRlbnRpZmllcik7CiB9CiAKKy0gKEJPT0wpZGV2aWNlTWFuYWdlbWVu
dFJlc3RyaWN0aW9uc0VuYWJsZWQKK3sKKyAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPmRldmlj
ZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKCk7Cit9CisKKy0gKHZvaWQpc2V0RGV2aWNl
TWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQ6KEJPT0wpZW5hYmxlZAoreworICAgIF9jb25m
aWd1cmF0aW9uLT5zZXREZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZChlbmFibGVk
KTsKK30KKwogLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKIHsKICAgICByZXR1cm4gKl9jb25m
aWd1cmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCmluZGV4IDA1NDI1
YzA3NTFlMjM4ZWUxOTI1OWIzZDAyNTRmMDY5MWNhMzQ3ZGEuLjMyNmZmYWU3MGMxNWZiY2Y1YWQ3
N2ZiYTUyOTE4ZTVlYWRkOGZlOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2Eu
bW0KQEAgLTEzMSw2ICsxMzEsNyBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRl
RGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICAgICAgZmFsc2UsCiAgICAgICAgIHNob3VsZElu
Y2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MsCiAgICAgICAgIGVuYWJsZVJl
c291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUsCisgICAgICAgIG1fY29uZmlndXJhdGlvbi0+
ZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoKSwKICAgICAgICAgV1RGTW92ZShy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UpLAogICAgICAgICBX
VEZNb3ZlKGxvY2FsU3RvcmFnZURpcmVjdG9yeSksCiAgICAgICAgIFdURk1vdmUobG9jYWxTdG9y
YWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uY3BwCmluZGV4IDk5ZjU3ZTRhZTNhNGUxNDM3YjU0YjI1MjUwZjcyMTdhMzEyMGEy
ZWUuLjhlMTJkYjlhMWRjYmQwOGI3YjFjNDNmMDllM2EzYmI0ZmViZjYyOTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTM5LDYgKzM5LDggQEAgUmVmPFdl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bjo6Y29weSgpCiB7CiAgICAgYXV0byBjb3B5ID0gV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b246OmNyZWF0ZSgpOwogCisgICAgY29weS0+bV9pc1BlcnNpc3RlbnQgPSB0aGlzLT5tX2lzUGVy
c2lzdGVudDsKKwogICAgIGNvcHktPm1fY2FjaGVTdG9yYWdlRGlyZWN0b3J5ID0gdGhpcy0+bV9j
YWNoZVN0b3JhZ2VEaXJlY3Rvcnk7CiAgICAgY29weS0+bV9wZXJPcmlnaW5TdG9yYWdlUXVvdGEg
PSB0aGlzLT5tX3Blck9yaWdpblN0b3JhZ2VRdW90YTsKICAgICBjb3B5LT5tX25ldHdvcmtDYWNo
ZURpcmVjdG9yeSA9IHRoaXMtPm1fbmV0d29ya0NhY2hlRGlyZWN0b3J5OwpAQCAtNTksNiArNjEs
NyBAQCBSZWY8V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IFdlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uOjpjb3B5KCkKICAgICBjb3B5LT5tX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25k
YXJ5SWRlbnRpZmllciA9IHRoaXMtPm1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlm
aWVyOwogICAgIGNvcHktPm1faHR0cFByb3h5ID0gdGhpcy0+bV9odHRwUHJveHk7CiAgICAgY29w
eS0+bV9odHRwc1Byb3h5ID0gdGhpcy0+bV9odHRwc1Byb3h5OworICAgIGNvcHktPm1fZGV2aWNl
TWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgPSB0aGlzLT5tX2RldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNFbmFibGVkOwogCiAgICAgcmV0dXJuIGNvcHk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uaAppbmRleCBkZjE3YWRjNWU0ZDMyZDAyMTU1OGU2NDk0YTNl
MzY5Nzg3ZjU5ZjcwLi5iMGQ3MDdkOTg1MjAzZGJjYWFmM2YxMDQzMWRmZTJkZjNlZWEwNzQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTM4LDcgKzM4LDEwIEBA
IHB1YmxpYzoKIAogICAgIFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4gY29weSgp
OwogCi0gICAgdWludDY0X3QgcGVyT3JpZ2luU3RvcmFnZVF1b3RhKCkgeyByZXR1cm4gbV9wZXJP
cmlnaW5TdG9yYWdlUXVvdGE7IH0KKyAgICBib29sIGlzUGVyc2lzdGVudCgpIGNvbnN0IHsgcmV0
dXJuIG1faXNQZXJzaXN0ZW50OyB9CisgICAgdm9pZCBzZXRQZXJzaXN0ZW50KGJvb2wgaXNQZXJz
aXN0ZW50KSB7IG1faXNQZXJzaXN0ZW50ID0gaXNQZXJzaXN0ZW50OyB9CisKKyAgICB1aW50NjRf
dCBwZXJPcmlnaW5TdG9yYWdlUXVvdGEoKSBjb25zdCB7IHJldHVybiBtX3Blck9yaWdpblN0b3Jh
Z2VRdW90YTsgfQogICAgIHZvaWQgc2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhKHVpbnQ2NF90IHF1
b3RhKSB7IG1fcGVyT3JpZ2luU3RvcmFnZVF1b3RhID0gcXVvdGE7IH0KIAogICAgIGNvbnN0IFN0
cmluZyYgYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbGlj
YXRpb25DYWNoZURpcmVjdG9yeTsgfQpAQCAtOTgsOSArMTAxLDE0IEBAIHB1YmxpYzoKICAgICBj
b25zdCBVUkwmIGh0dHBzUHJveHkoKSBjb25zdCB7IHJldHVybiBtX2h0dHBzUHJveHk7IH0KICAg
ICB2b2lkIHNldEhUVFBTUHJveHkoVVJMJiYgcHJveHkpIHsgbV9odHRwc1Byb3h5ID0gV1RGTW92
ZShwcm94eSk7IH0KIAorICAgIGJvb2wgZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVk
OyB9CisgICAgdm9pZCBzZXREZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZChib29s
IGVuYWJsZWQpIHsgbV9kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCA9IGVuYWJs
ZWQ7IH0KKwogcHJpdmF0ZToKICAgICBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbigpOwog
CisgICAgYm9vbCBtX2lzUGVyc2lzdGVudCB7IGZhbHNlIH07CisKICAgICBTdHJpbmcgbV9jYWNo
ZVN0b3JhZ2VEaXJlY3Rvcnk7CiAgICAgdWludDY0X3QgbV9wZXJPcmlnaW5TdG9yYWdlUXVvdGEg
eyBXZWJDb3JlOjpTdG9yYWdlUXVvdGFNYW5hZ2VyOjpkZWZhdWx0UXVvdGEoKSB9OwogICAgIFN0
cmluZyBtX25ldHdvcmtDYWNoZURpcmVjdG9yeTsKQEAgLTEyMSw2ICsxMjksNyBAQCBwcml2YXRl
OgogICAgIFN0cmluZyBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjsKICAg
ICBVUkwgbV9odHRwUHJveHk7CiAgICAgVVJMIG1faHR0cHNQcm94eTsKKyAgICBib29sIG1fZGV2
aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgeyBmYWxzZSB9OwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGRi
M2EzMDAwY2FlZjcyMzVjMjY0NmNkMGY0MDQ4Y2JjZWI1NjBhMi4uOTU3MzI4YzAxOTg2NmQwZWRj
NjdjNDY0MzA5ZTAzYmMxMzc3YzVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MzAsNiArNDMwLDggQEAKIAkJMjk4NEY1ODkxNjRC
QTA5NTAwNEJDMEM2IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlck1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTg0RjU4NzE2NEJB
MDk1MDA0QkMwQzYgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZXMuaCAqLzsg
fTsKIAkJMjlBRDMwOTMxNjRCNEM1RDAwNzJERUE5IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFu
YWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyOUFEMzA5MjE2NEI0QzVEMDA3MkRFQTkgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
UHJveHkuaCAqLzsgfTsKIAkJMjlDRDU1QUExMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJp
bGl0eVdlYlBhZ2VPYmplY3RCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyOUNENTVBODEyOEUyOTRGMDAxMzNDODUgLyogV0tBY2Nlc3NpYmlsaXR5
V2ViUGFnZU9iamVjdEJhc2UuaCAqLzsgfTsKKwkJMkQwQzU2RkQyMjlGMURFQTAwQkQzM0U3IC8q
IERldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkQwQzU2RkIyMjlGMURFQTAwQkQzM0U3IC8qIERldmljZU1hbmFn
ZW1lbnRTb2Z0TGluay5oICovOyB9OworCQkyRDBDNTZGRTIyOUYxREVBMDBCRDMzRTcgLyogRGV2
aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkQwQzU2RkMyMjlGMURFQTAwQkQzM0U3IC8qIERldmljZU1hbmFnZW1l
bnRTb2Z0TGluay5tbSAqLzsgfTsKIAkJMkQxMDg3NjExRDJDNTczRTAwQjg1RjgyIC8qIExvYWRQ
YXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRDEwODc1RjFEMkM1NzNFMDBCODVGODIgLyogTG9hZFBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJ
MkQxMUI3NTEyMTI2QTI4MjAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2UxLW1tLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ3REVDOTQyMTI2OUU0QzAw
QjlGNzNDIC8qIFVuaWZpZWRTb3VyY2UxLW1tLm1tICovOyB9OwogCQkyRDExQjc1MjIxMjZBMjgy
MDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ3REVENUIyMTI2OUU0RDAwQjlGNzNDIC8qIFVuaWZpZWRT
b3VyY2UxLmNwcCAqLzsgfTsKQEAgLTcwMiw2ICs3MDQsNyBAQAogCQkyREE2NzMxQTIwQzc1NEIx
MDAzQ0I0MDEgLyogRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBNjczMTkyMEM3NTRCMTAwM0NCNDAxIC8q
IER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUuaCAqLzsgfTsKIAkJMkRBOTQ0QTAxODg0RTRGMDAw
RUQ4NkRCIC8qIFdlYklPU0V2ZW50RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBOTQ0OTkxODg0RTRGMDAwRUQ4NkRCIC8qIFdlYklPU0V2
ZW50RmFjdG9yeS5oICovOyB9OwogCQkyREE5NDRBNDE4ODRFNEYwMDBFRDg2REIgLyogR2VzdHVy
ZVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
REE5NDQ5RDE4ODRFNEYwMDBFRDg2REIgLyogR2VzdHVyZVR5cGVzLmggKi87IH07CisJCTJEQUFE
QThGMjI5OEMyMTAwMEUzNkIwQyAvKiBEZXZpY2VNYW5hZ2VtZW50U1BJLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREFBREE4RTIyOThDMjEwMDBFMzZC
MEMgLyogRGV2aWNlTWFuYWdlbWVudFNQSS5oICovOyB9OwogCQkyREFCQTc3MjFBODE3QjE3MDBF
RjBGMUEgLyogV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBQkE3NzExQTgxN0IxNzAw
RUYwRjFBIC8qIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaCAqLzsgfTsK
IAkJMkRBQkE3NzQxQTgxN0VFNjAwRUYwRjFBIC8qIFdLUGx1Z2luTG9hZFBvbGljeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBQkE3NzMxQTgxN0VF
NjAwRUYwRjFBIC8qIFdLUGx1Z2luTG9hZFBvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJEQUJBNzc2MUE4MkI0MjEwMEVGMEYxQSAvKiBB
UElIaXN0b3J5Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyREFCQTc3NTFBODJCNDIxMDBFRjBGMUEgLyogQVBJSGlzdG9yeUNsaWVudC5oICov
OyB9OwpAQCAtMjUwNiw2ICsyNTA5LDggQEAKIAkJMjlEMDRFMjgyMUY3QzczRDAwNzY3NDFEIC8q
IEFjY2Vzc2liaWxpdHlQcml2U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlQcml2
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMDAzNTIyMUJDNzQxNDgwMERB
ODcxNiAvKiBQREZQbHVnaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUERG
UGx1Z2luLmg7IHBhdGggPSBQREYvUERGUGx1Z2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTJEMDAzNTIzMUJDNzQxNDgwMERBODcxNiAvKiBQREZQbHVnaW4ubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBQREZQbHVnaW4ubW07IHBhdGggPSBQREYv
UERGUGx1Z2luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDBDNTZGQjIyOUYx
REVBMDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyRDBDNTZGQzIyOUYxREVBMDBCRDMzRTcgLyogRGV2aWNlTWFu
YWdlbWVudFNvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyRDBDRjY0QjIxRjJBODAzMDA3ODc1NjYgLyogVGV4dENoZWNraW5nQ29udHJvbGxlci5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFRleHRDaGVja2luZ0NvbnRyb2xsZXIubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMENGNjRDMjFGMkE4MDMwMDc4NzU2NiAvKiBUZXh0
Q2hlY2tpbmdDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRDaGVja2luZ0NvbnRyb2xs
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQxMDg3NUUxRDJDNTczRTAwQjg1
RjgyIC8qIExvYWRQYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IExvYWRQYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTI3OTgsNiArMjgwMyw3IEBACiAJCTJEQTk0NEFDMTg4NEU5QkEwMEVEODZEQiAvKiBXZWJQcm9j
ZXNzUHJveHlJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBX
ZWJQcm9jZXNzUHJveHlJT1MubW07IHBhdGggPSBpb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREE5NDRCNjE4ODRFQTM1MDBFRDg2REIgLyog
V2ViUGFnZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdl
YlBhZ2VJT1MubW07IHBhdGggPSBpb3MvV2ViUGFnZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMkRBOTQ0QkMxODg1MTFFNzAwRUQ4NkRCIC8qIE5ldHdvcmtQcm9jZXNzSU9T
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nl
c3NJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEQUFEQThFMjI5OEMyMTAw
MEUzNkIwQyAvKiBEZXZpY2VNYW5hZ2VtZW50U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERldmljZU1hbmFnZW1lbnRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMkRBQkE3NzExQTgxN0IxNzAwRUYwRjFBIC8qIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNz
RXZlbnRzSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdl
UmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyREFCQTc3MzFBODE3RUU2MDBFRjBGMUEgLyogV0tQbHVnaW5Mb2FkUG9saWN5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGx1Z2luTG9hZFBvbGljeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREFCQTc3NTFBODJCNDIxMDBFRjBGMUEgLyog
QVBJSGlzdG9yeUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElI
aXN0b3J5Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MTA1LDYgKzYx
MTEsNyBAQAogCQkJCTM3QzIxQ0FEMUU5OTRDMEMwMDI5RDVGOSAvKiBDb3JlUHJlZGljdGlvblNQ
SS5oICovLAogCQkJCUExRkI2ODI2MUY2RTUxQzEwMEM0M0Y5RiAvKiBDcmFzaFJlcG9ydGVyQ2xp
ZW50U1BJLmggKi8sCiAJCQkJNTdEQ0VEQUEyMTRCOUI0MzAwMTZCODQ3IC8qIERldmljZUlkZW50
aXR5U1BJLmggKi8sCisJCQkJMkRBQURBOEUyMjk4QzIxMDAwRTM2QjBDIC8qIERldmljZU1hbmFn
ZW1lbnRTUEkuaCAqLywKIAkJCQkzNzU0RDU0NDFCM0EyOUZEMDAzQTRDN0YgLyogTlNJbnZvY2F0
aW9uU1BJLmggKi8sCiAJCQkJMzdCNDdFMkMxRDY0REI3NjAwNUY0RUZGIC8qIG9iamNTUEkuaCAq
LywKIAkJCQkwRTk3RDc0QzIwMEU4RkYzMDBCRjY2NDMgLyogU2FmZUJyb3dzaW5nU1BJLmggKi8s
CkBAIC03MTM2LDYgKzcxNDMsOCBAQAogCQk3RUM0RjBGODE4RTRBOTIyMDA4MDU2QUYgLyogY29j
b2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJEMEM1
NkZCMjI5RjFERUEwMEJEMzNFNyAvKiBEZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaCAqLywKKwkJ
CQkyRDBDNTZGQzIyOUYxREVBMDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1t
ICovLAogCQkJCTUzMTU4NzZCMjA3NkI3MTMwMDRCRjlGMyAvKiBOZXR3b3JrQWN0aXZpdHlUcmFj
a2VyQ29jb2EubW0gKi8sCiAJCQkJNTMyMTU5NEYxREJBRTZENzAwNTRBQTNDIC8qIE5ldHdvcmtE
YXRhVGFza0NvY29hLmggKi8sCiAJCQkJNUNCQzlCOEIxQzY1MjU3MzAwQThGRENGIC8qIE5ldHdv
cmtEYXRhVGFza0NvY29hLm1tICovLApAQCAtOTIyMyw2ICs5MjMyLDggQEAKIAkJCQlCQzAzMkRB
NjEwRjQzN0QxMDA1OEMxNUEgLyogRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdEQ0VE
QUIyMTRDNjAwOTAwMTZCODQ3IC8qIERldmljZUlkZW50aXR5U1BJLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwNzI5N0Y5RjFDMTdCQkVBMDE1RjA3MzUgLyogRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2Uu
aCBpbiBIZWFkZXJzICovLAorCQkJCTJEMEM1NkZEMjI5RjFERUEwMEJEMzNFNyAvKiBEZXZpY2VN
YW5hZ2VtZW50U29mdExpbmsuaCBpbiBIZWFkZXJzICovLAorCQkJCTJEQUFEQThGMjI5OEMyMTAw
MEUzNkIwQyAvKiBEZXZpY2VNYW5hZ2VtZW50U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mzg5
MUI2QzFBNjhDMzBCMDAzMEYzODYgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUMxODE3MzYxMjA1ODQyNDcwMERGREE2NSAvKiBEaXNwbGF5TGluay5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUMxNDI3MDIxQzIzRjg0QzAwRDQxMTgzIC8qIERvd25sb2FkLmgg
aW4gSGVhZGVycyAqLywKQEAgLTEwOTgyLDYgKzEwOTkzLDcgQEAKIAkJCQkyRDkyQTc3RDIxMkI2
QTcxMDBGNDkzRkQgLyogQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc3
RTIxMkI2QTcxMDBGNDkzRkQgLyogRGF0YVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyRDkyQTc3RjIxMkI2QTcxMDBGNDkzRkQgLyogRGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkyRDBDNTZGRTIyOUYxREVBMDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5r
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFCN0Q2MTkxMjg4QjlEOTAwQ0ZEMDhDIC8qIERvd25s
b2FkUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2NDIyOTkx
MkREMDI5MjAwQ0FBRTJDIC8qIERyYXdpbmdBcmVhTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBNjQyMzA4MTJERDA5RUIwMENBQUUyQyAvKiBEcmF3aW5nQXJlYVByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDI3OGI2
MDE4NDc5ZjM2NTkwMzQ4Yzg5NTE4NTVhY2Y0M2RjYjU5ZjguLjE1MjU2NzMzYjVkMmI5ODE4MGZj
ZjUzYjZmYmM3MjMyY2IzMTY3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTMzNSw2ICszMzUsOCBAQCB2
b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVz
b3VyY2VMb2FkZXImIHJlc291cmNlTAogCiAgICAgbG9hZFBhcmFtZXRlcnMuaXNNYWluRnJhbWVO
YXZpZ2F0aW9uID0gcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSAmJiByZXNvdXJjZUxvYWRlci5mcmFt
ZSgpLT5pc01haW5GcmFtZSgpICYmIHJlc291cmNlTG9hZGVyLm9wdGlvbnMoKS5tb2RlID09IEZl
dGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGU7CiAKKyAgICBsb2FkUGFyYW1ldGVycy5pc01haW5S
ZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSA9IHJlc291cmNlTG9hZGVyLmZyYW1lKCkgJiYg
cmVzb3VyY2VMb2FkZXIub3B0aW9ucygpLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZp
Z2F0ZTsKKwogICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZEVuYWJsZUNyb3NzT3JpZ2luUmVzb3Vy
Y2VQb2xpY3kgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmNyb3Nz
T3JpZ2luUmVzb3VyY2VQb2xpY3lFbmFibGVkKCkgJiYgIWxvYWRQYXJhbWV0ZXJzLmlzTWFpbkZy
YW1lTmF2aWdhdGlvbjsKIAogICAgIGlmIChyZXNvdXJjZUxvYWRlci5vcHRpb25zKCkubW9kZSA9
PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmlnYXRlKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370904</attachid>
            <date>2019-05-29 17:57:16 -0700</date>
            <delta_ts>2019-05-30 13:51:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198318-20190529175715.patch</filename>
            <type>text/plain</type>
            <size>89337</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDgxMGUxOGQ0ZDkyMGFlYmYxZWVjYWM1
OWZmY2U5YjA0NmFmOTEyM2QuLmRlMGNmMWZmZTZhNmZmNmYzMTVjOGQ2MDgwOWI1ZGNmZjI2Mzhl
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTktMDUtMjkgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgT3B0aW9uYWxseSByZXNwZWN0IGRldmljZSBt
YW5hZ2VtZW50IHJlc3RyaWN0aW9ucyB3aGVuIGxvYWRpbmcgZnJvbSB0aGUgbmV0d29yaworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MzE4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NDI2MzgwNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDE5LTA1LTI5ICBS
eWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIyNDU4NTcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjljYWNlZWVjNjE2ZjBmNzgzNjIy
ODU2NjQzN2M0MTRmNmM2YTUxOC4uMGIwNjA1NGYwNDhiNmNjNWI0ZTZhMjI3MmE0YjU0NDRhZGVk
NTkwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTA1LTI5ICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIE9wdGlvbmFsbHkgcmVzcGVj
dCBkZXZpY2UgbWFuYWdlbWVudCByZXN0cmljdGlvbnMgd2hlbiBsb2FkaW5nIGZyb20gdGhlIG5l
dHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
ODMxOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQyNjM4MDY+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBlbi5scHJvai9Mb2NhbGl6YWJsZS5z
dHJpbmdzOgorCiAyMDE5LTA1LTI5ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDU4NTcuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IGE1ZDE5OTc0YmU3Nzk3ZTNmNzZhNDc4MzYxN2NjZGU0Y2U5Njk2YWMuLjY4ODc3YjNhZjAyMzE2
ZjhmZWFkMjFjZmQyODA2NDhhMzI4NDVmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTMgQEAKKzIw
MTktMDUtMjkgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgT3B0aW9uYWxseSByZXNwZWN0IGRldmljZSBtYW5hZ2VtZW50IHJlc3RyaWN0aW9ucyB3aGVu
IGxvYWRpbmcgZnJvbSB0aGUgbmV0d29yaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MzE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NDI2Mzgw
Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENv
bmZpZ3VyYXRpb25zL05ldHdvcmstaU9TLmVudGl0bGVtZW50czoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6Ondhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucyk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrRGF0YVRhc2s6OmZhaWx1cmVUaW1lckZpcmVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrRGF0YVRhc2suaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjp3YXNCbG9ja2VkQnlSZXN0cmlj
dGlvbnMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6
cHJpdmF0ZVNlc3Npb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpQaW5nTG9hZDo6
d2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9QaW5n
TG9hZC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL0RldmljZU1hbmFnZW1lbnRT
b2Z0TGluay5oOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9EZXZpY2VN
YW5hZ2VtZW50U29mdExpbmsubW06IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtEYXRhVGFza0NvY29hLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRh
VGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtEYXRhVGFza0NvY29hOjpyZXN1bWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdh
dGUgVVJMU2Vzc2lvbjpkYXRhVGFzazpkaWRSZWNlaXZlUmVzcG9uc2U6Y29tcGxldGlvbkhhbmRs
ZXI6XSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNz
aW9uQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hOjpkZXZpY2VN
YW5hZ2VtZW50UG9saWN5TW9uaXRvcik6CisgICAgICAgICogUGxhdGZvcm0vc3BpL0NvY29hL0Rl
dmljZU1hbmFnZW1lbnRTUEkuaDogQWRkZWQuCisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQ
cm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiOgorICAgICAgICAqIFNo
YXJlZC9BUEkvQVBJRXJyb3IuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tFcnJvclJlZi5j
cHA6CisgICAgICAgIChXS0Vycm9yR2V0RXJyb3JDb2RlKToKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L2MvV0tFcnJvclJlZi5oOgorICAgICAgICAqIFNoYXJlZC9XZWJFcnJvcnMuY3BwOgorICAgICAg
ICAoV2ViS2l0Ojp3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnNFcnJvcik6CisgICAgICAgICogU2hh
cmVkL1dlYkVycm9ycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFT
dG9yZS5jcHA6CisgICAgICAgIChBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHREYXRhU3Rv
cmVDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c1Bvb2wubW06CisgICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX3NldEFsbG93c0FueVNTTENlcnRp
ZmljYXRlRm9yU2VydmljZVdvcmtlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9p
bml0V2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgt
W19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGluaXRdKToKKyAgICAgICAgKC1bX1dL
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gaW5pdFdpdGhOb25QZXJzaXN0ZW50Q29uZmln
dXJhdGlvbl0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBp
c1BlcnNpc3RlbnRdKToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24gX3NldFdlYlN0b3JhZ2VEaXJlY3Rvcnk6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uIF9zZXRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeTpdKToKKyAg
ICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gX3NldFdlYlNRTERhdGFi
YXNlRGlyZWN0b3J5Ol0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbiBfc2V0Q29va2llU3RvcmFnZUZpbGU6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uIF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5Ol0p
OgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBfc2V0Q2FjaGVT
dG9yYWdlRGlyZWN0b3J5Ol0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbiBfc2V0U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeTpdKToKKyAgICAg
ICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gZGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0VuYWJsZWRdKToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24gc2V0RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQ6XSk6CisgICAg
ICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIF9hbGxMb2Fkc0Jsb2NrZWRC
eURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nXSk6CisgICAgICAgICgtW19X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIF9zZXRBbGxMb2Fkc0Jsb2NrZWRCeURldmlj
ZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nOl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpjb3B5KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaDoK
KyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmlzUGVyc2lz
dGVudCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uOjpzZXRQZXJzaXN0ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb246OnBlck9yaWdpblN0b3JhZ2VRdW90YSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpkZXZpY2VNYW5hZ2VtZW50UmVzdHJp
Y3Rpb25zRW5hYmxlZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uOjpzZXREZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjphbGxMb2Fkc0Js
b2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OnNldEFsbExvYWRz
QmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6cGVyT3JpZ2luU3RvcmFn
ZVF1b3RhKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJvbU5l
dHdvcmtQcm9jZXNzKToKKwogMjAxOS0wNS0yOSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ1ODU3LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtLmgKaW5kZXggNDQ3YmIxOGE4ZjAyOGMyOTUwMWQzOTMxZmI5NTU3YThkNTNhMjYwNy4uNzk1
ZjMzYzU3ZjVhNDYyMDRlNmFhOTJhZjczMjI0ZTRjMTBhOWEzNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC0x
NTQ3LDYgKzE1NDcsMTAgQEAKICNkZWZpbmUgSEFWRV9ST1VURV9TSEFSSU5HX1BPTElDWV9MT05H
X0ZPUk1fVklERU8gMQogI2VuZGlmCiAKKyNpZiAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9P
U19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApCisjZGVmaW5lIEhBVkVfREVWSUNFX01B
TkFHRU1FTlQgMQorI2VuZGlmCisKICNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NQVhfQUxMT1dFRCA8IDEwMTUwMAogI2RlZmluZSBVU0VfUkVBTFBBVEhfRk9SX0RMT1BF
Tl9QUkVGTElHSFQgMQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFi
bGUuc3RyaW5ncwppbmRleCBmMzU5N2EzOGZjYTM0YzgxY2RlNjc1OGUxMzY0MzY4ZjU3NTdhZjkx
Li5hMzgxMDY5NzM2MjMxZWM3ZThkN2NlYjdlYWVjNGYyNjMwYzBmYzMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTgwMiw2ICs4MDIsOSBAQAog
LyogV2ViS2l0RXJyb3JGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50RmlsdGVyIGRlc2NyaXB0aW9u
ICovCiAiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBhIGNvbnRlbnQgZmlsdGVyIiA9ICJUaGUgVVJM
IHdhcyBibG9ja2VkIGJ5IGEgY29udGVudCBmaWx0ZXIiOwogCisvKiBXZWJLaXRFcnJvckZyYW1l
TG9hZEJsb2NrZWRCeVJlc3RyaWN0aW9ucyBkZXNjcmlwdGlvbiAqLworIlRoZSBVUkwgd2FzIGJs
b2NrZWQgYnkgZGV2aWNlIHJlc3RyaWN0aW9ucyIgPSAiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBk
ZXZpY2UgcmVzdHJpY3Rpb25zIjsKKwogLyogV0tFcnJvcldlYlZpZXdJbnZhbGlkYXRlZCBkZXNj
cmlwdGlvbiAqLwogIlRoZSBXS1dlYlZpZXcgd2FzIGludmFsaWRhdGVkIiA9ICJUaGUgV0tXZWJW
aWV3IHdhcyBpbnZhbGlkYXRlZCI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmln
dXJhdGlvbnMvTmV0d29yay1pT1MuZW50aXRsZW1lbnRzIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9OZXR3b3JrLWlPUy5lbnRpdGxlbWVudHMKaW5kZXggMmVlNjk2NjM4ZjY3MmU2MjM3
ZGEwYjc0NzhhZmU5OTM2YjQ4ODYzYS4uNTNkZmQ1NjM1NDA5OWVmMDMwOTFkMWQ1YzU5NGIzZjE3
M2IyODU5MSAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSAyNDQKemNtWEBhQHx7VTRzVVJu
X3hXdkhWSXdLUF4zbzlFdDJMfjRpNVgxeztQZ1o4c3d1bCN5T1V9PkxPRHJoSk4hMlNUCnokfUNH
UE4hODB1JkNNXldFR3xoYkRKX2x7NUcrbmpFSjtldURiWHpgJTFfSjhOZD0wQE8jQ1JyOTUwfGJj
P1A0Vgp6NXxFMiZNb01tcVVPfDNOV14hZWBmWSF1flQ0fGh8MyVUUDNxIUI4XlE8SjxpT1o1Q3dP
VW08JHZOUUEySWV+ekkKeGdGJjNabF84Q3hpZVY8aFFIQ2RzZnthM3AhaT1KZiMqOE02cmleOWBW
OEZ4KHAmMTBBRz9aZEEyTFFyKksycmJ5CgpsaXRlcmFsIDU3OAp6Y21hKSgtJUc8VjVYWWFsemFy
K25pTjErKzlsQXt6aiM7b0dLNCM1MUwoP1dDKlZYPl9VYmxqWiFoQWl4S1IkUHQKeiZPZDYpNGlL
Vm8mNVUxKE9VfEd2b2lAI1cjLUVHKDxlSmEzWD9uNElUb2tZUWlne315dmkkak92dEJUc05PfGtN
CnoxdTIpc2xJNUhBUV42PWglR0gpTHsqTEh4cjBsdipzNmkhNFJ9YUR7XldaIUw+XkJzYWtVP25G
b043KyNLWDdRTwp6T15NbGJsMipgWDZmdVU/dHduPD5SKWl7STl9I001UTg3fDVFZlo1WT0qZm5t
MV5MX1dSYk5BY0xScClydlY/ZnYKejV6SWokMnZXUFkhNjxmWnFiKFI2eT5vQWJha2c+e3NHKVgm
aCF3V35FXlBvaTdiKzI1U3BnOypFYkl5OUA1JUBZCnljVklFYGZ4cyskd1d0dShhRnQwS0YlYV4l
Z1RCRC0hSnljbGlqTTF5OGFrcEpqajIzK0JiQ1FyV3okYXEwbTN1QAoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVj
a2VyLmNwcAppbmRleCAyYjBhMWMzNzllY2Q4NjYyYjAwODFmNGRiMmVlNTE3OTA1YTk1NWM0Li45
NGYxMjc3MjgyYjk1MzIxZjY2NjVjZDRmYjY2Yjc5MmRjODM0OWJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENo
ZWNrZXIuY3BwCkBAIC0xNjMsNiArMTYzLDEyIEBAIHZvaWQgTmV0d29ya0NPUlNQcmVmbGlnaHRD
aGVja2VyOjpjYW5ub3RTaG93VVJMKCkKICAgICBtX2NvbXBsZXRpb25DYWxsYmFjayhSZXNvdXJj
ZUVycm9yIHsgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgbV9wYXJhbWV0ZXJzLm9yaWdp
bmFsUmVxdWVzdC51cmwoKSwgIlByZWZsaWdodCByZXNwb25zZSB3YXMgYmxvY2tlZCJfcywgUmVz
b3VyY2VFcnJvcjo6VHlwZTo6QWNjZXNzQ29udHJvbCB9KTsKIH0KIAordm9pZCBOZXR3b3JrQ09S
U1ByZWZsaWdodENoZWNrZXI6Ondhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucygpCit7CisgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgid2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zIik7CisgICAgbV9j
b21wbGV0aW9uQ2FsbGJhY2soUmVzb3VyY2VFcnJvciB7IGVycm9yRG9tYWluV2ViS2l0SW50ZXJu
YWwsIDAsIG1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3QudXJsKCksICJQcmVmbGlnaHQgcmVz
cG9uc2Ugd2FzIGJsb2NrZWQiX3MsIFJlc291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRyb2wg
fSk7Cit9CisKIE5ldHdvcmtUcmFuc2FjdGlvbkluZm9ybWF0aW9uIE5ldHdvcmtDT1JTUHJlZmxp
Z2h0Q2hlY2tlcjo6dGFrZUluZm9ybWF0aW9uKCkKIHsKICAgICBBU1NFUlQobV9zaG91bGRDYXB0
dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmgKaW5kZXggNGQz
ZDE2OWY2YWY5ZjQzYjc2MTA4MWNmYmZlNjBhZmM1YTM5M2ZkNC4uODcyNDhmMGUwZTEyODQ5M2E1
NTZlNWNmYjFjMzViZDUzNGQ5MWVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCkBAIC03Miw2ICs3
Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5dGVz
U2VudCwgdWludDY0X3QgdG90YWxCeXRlc0V4cGVjdGVkVG9TZW5kKSBmaW5hbDsKICAgICB2b2lk
IHdhc0Jsb2NrZWQoKSBmaW5hbDsKICAgICB2b2lkIGNhbm5vdFNob3dVUkwoKSBmaW5hbDsKKyAg
ICB2b2lkIHdhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucygpIGZpbmFsOwogCiAgICAgUGFyYW1ldGVy
cyBtX3BhcmFtZXRlcnM7CiAgICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9jZXNz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRh
c2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3Bw
CmluZGV4IGYxZjAxMTE1ZDIzMWFhYmQ3ZGUwZWQwMGMwNzg0ZjE4OGYwOWNjNTQuLmJjYmFlOWQz
MWZiZjhlNzYwZTRkNmZmNjYwMDEyODZkMDI1NGFhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgUmVm
PE5ldHdvcmtEYXRhVGFzaz4gTmV0d29ya0RhdGFUYXNrOjpjcmVhdGUoTmV0d29ya1Nlc3Npb24m
IHNlc3Npb24sIE5ldHdvcmtEYXQKIHsKICAgICBBU1NFUlQoIXBhcmFtZXRlcnMucmVxdWVzdC51
cmwoKS5wcm90b2NvbElzQmxvYigpKTsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICByZXR1cm4g
TmV0d29ya0RhdGFUYXNrQ29jb2E6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMu
cmVxdWVzdCwgcGFyYW1ldGVycy53ZWJGcmFtZUlELCBwYXJhbWV0ZXJzLndlYlBhZ2VJRCwgcGFy
YW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZp
bmdQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIHBhcmFt
ZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgcGFyYW1ldGVy
cy5zaG91bGRQcmVjb25uZWN0T25seSwgcGFyYW1ldGVycy5pc01haW5GcmFtZU5hdmlnYXRpb24s
IHBhcmFtZXRlcnMubmV0d29ya0FjdGl2aXR5VHJhY2tlcik7CisgICAgcmV0dXJuIE5ldHdvcmtE
YXRhVGFza0NvY29hOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3Qs
IHBhcmFtZXRlcnMud2ViRnJhbWVJRCwgcGFyYW1ldGVycy53ZWJQYWdlSUQsIHBhcmFtZXRlcnMu
c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5
LCBwYXJhbWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFtZXRlcnMuc2hvdWxk
UHJlY29ubmVjdE9ubHksIHBhcmFtZXRlcnMuaXNNYWluRnJhbWVOYXZpZ2F0aW9uLCBwYXJhbWV0
ZXJzLmlzTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBwYXJhbWV0ZXJzLm5ldHdv
cmtBY3Rpdml0eVRyYWNrZXIpOwogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgcmV0dXJuIE5l
dHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVx
dWVzdCwgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250
ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xp
Y3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwg
cGFyYW1ldGVycy5pc01haW5GcmFtZU5hdmlnYXRpb24pOwpAQCAtMTMzLDYgKzEzMywxMSBAQCB2
b2lkIE5ldHdvcmtEYXRhVGFzazo6ZmFpbHVyZVRpbWVyRmlyZWQoKQogICAgICAgICBpZiAobV9j
bGllbnQpCiAgICAgICAgICAgICBtX2NsaWVudC0+Y2Fubm90U2hvd1VSTCgpOwogICAgICAgICBy
ZXR1cm47CisgICAgY2FzZSBSZXN0cmljdGVkVVJMRmFpbHVyZToKKyAgICAgICAgbV9zY2hlZHVs
ZWRGYWlsdXJlVHlwZSA9IE5vRmFpbHVyZTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAg
ICAgICAgbV9jbGllbnQtPndhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucygpOworICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBOb0ZhaWx1cmU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0RhdGFUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtE
YXRhVGFzay5oCmluZGV4IGNlN2IyYWQ1MDYzNjVhNDMyOGJhNTczYWYxNjE3MDk2MGJhYmZiY2Eu
LjlmNWZlMWY0YjM4Mzk2NDkwY2NiNGY0MzE1YzQyZTEyYmViNjdkMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaApAQCAtNjUsNiArNjUsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFNlbmREYXRhKHVpbnQ2NF90IHRvdGFsQnl0
ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1NlbmQpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgd2FzQmxvY2tlZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hvd1VS
TCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zKCkgPSAw
OwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmlj
cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKQEAgLTEzNCw3ICsxMzUsOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgZW51bSBGYWlsdXJlVHlwZSB7CiAgICAgICAgIE5vRmFpbHVyZSwKICAgICAgICAg
QmxvY2tlZEZhaWx1cmUsCi0gICAgICAgIEludmFsaWRVUkxGYWlsdXJlCisgICAgICAgIEludmFs
aWRVUkxGYWlsdXJlLAorICAgICAgICBSZXN0cmljdGVkVVJMRmFpbHVyZQogICAgIH07CiAgICAg
dm9pZCBmYWlsdXJlVGltZXJGaXJlZCgpOwogICAgIHZvaWQgc2NoZWR1bGVGYWlsdXJlKEZhaWx1
cmVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAK
aW5kZXggNzM1ZjM2OWExY2EwNmMyN2M2MWE4MzBlNjgxNzcyOTgyMzlkYzZiYy4uOTEwN2ZlYzFl
MzRkYjQ0ODgxNjIyODY4NjIyYzhmYmViNWIzODgzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTI3Niw2ICsyNzYsMTAgQEAgdm9pZCBOZXR3
b3JrTG9hZDo6Y2Fubm90U2hvd1VSTCgpCiAgICAgbV9jbGllbnQuZ2V0KCkuZGlkRmFpbExvYWRp
bmcoY2Fubm90U2hvd1VSTEVycm9yKG1fY3VycmVudFJlcXVlc3QpKTsKIH0KIAordm9pZCBOZXR3
b3JrTG9hZDo6d2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zKCkKK3sKKyAgICBtX2NsaWVudC5nZXQo
KS5kaWRGYWlsTG9hZGluZyh3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnNFcnJvcihtX2N1cnJlbnRS
ZXF1ZXN0KSk7Cit9CiAKIFN0cmluZyBOZXR3b3JrTG9hZDo6ZGVzY3JpcHRpb24oKSBjb25zdAog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCmluZGV4IGE1ZWJh
YjYwZjcyZWVhM2Y3MTkxYTU1ODZlM2E2MjBjMjRmMTA2Y2MuLmQ0MTVkMDRhMjliZjIzZjdiNWNj
ZjMzYjg0ODA0MDU5ODM2NzRiNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkLmgKQEAgLTgwLDYgKzgwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFNlbmRE
YXRhKHVpbnQ2NF90IHRvdGFsQnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzRXhwZWN0ZWRU
b1NlbmQpIGZpbmFsOwogICAgIHZvaWQgd2FzQmxvY2tlZCgpIGZpbmFsOwogICAgIHZvaWQgY2Fu
bm90U2hvd1VSTCgpIGZpbmFsOworICAgIHZvaWQgd2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zKCkg
ZmluYWw7CiAKICAgICB2b2lkIG5vdGlmeURpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiYsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCB0
aHJvdHRsZURlbGF5Q29tcGxldGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAppbmRleCA4OTczMGNmOWZkMjY5OWJjZmQz
MmRkYzM4ZWY4Y2UwMzc0NmEzMDM0Li5jZmIyYzc1YzBjZDc5MmEwMGE1MDVjODBiNjk4YzE2MGE4
MDIxMzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCB7IHRydWUgfTsKICAgICBib29s
IG5lZWRzQ2VydGlmaWNhdGVJbmZvIHsgZmFsc2UgfTsKICAgICBib29sIGlzTWFpbkZyYW1lTmF2
aWdhdGlvbiB7IGZhbHNlIH07CisgICAgYm9vbCBpc01haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JB
bnlGcmFtZSB7IGZhbHNlIH07CiAgICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0YUZp
bGVSZWZlcmVuY2U+PiBibG9iRmlsZVJlZmVyZW5jZXM7CiAgICAgUHJlY29ubmVjdE9ubHkgc2hv
dWxkUHJlY29ubmVjdE9ubHkgeyBQcmVjb25uZWN0T25seTo6Tm8gfTsKICAgICBPcHRpb25hbDxO
ZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzLmNwcAppbmRleCAzM2NkYzRkMTdkYmUyZTA4NjZlMzYxMmVmMjI3NjFhMzgy
MzgwNTliLi4wZTQ0NTk0Yjg5ZTY2NjQ4OWFmZjEyOGY4YzUxYzBjNmMxYWNlMjQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzLmNwcApAQCAtNzgsNiArNzgsNyBAQCB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ICAgIGVuY29kZXIgPDwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdDsK
ICAgICBlbmNvZGVyIDw8IG5lZWRzQ2VydGlmaWNhdGVJbmZvOwogICAgIGVuY29kZXIgPDwgaXNN
YWluRnJhbWVOYXZpZ2F0aW9uOworICAgIGVuY29kZXIgPDwgaXNNYWluUmVzb3VyY2VOYXZpZ2F0
aW9uRm9yQW55RnJhbWU7CiAgICAgZW5jb2RlciA8PCBtYXhpbXVtQnVmZmVyaW5nVGltZTsKIAog
ICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Ym9vbD4oc291cmNlT3JpZ2luKTsKQEAgLTE2OSw2
ICsxNzAsOCBAQCBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUoSVBD
OjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUmVzb3VyYwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNNYWluRnJhbWVOYXZpZ2F0aW9uKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lmlz
TWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1heGltdW1CdWZmZXJpbmdUaW1lKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CmluZGV4IDI2YmYxOWQ5YWNjYjk5M2IwYWY1MzE5YjExYjI3NWMxZTIzZTQ4NzIuLjkwZGVkYTQy
MTA5NTk3YjM5MDFkMjYyMGNkNTJmYTAyZmUzNGYwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBh
cmFtZXRlcnMuY3BwCkBAIC01MCw3ICs1MCw3IEBAIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpwcml2YXRlU2Vzc2lvCiAj
aWYgVVNFKENVUkwpCiAgICAgICAgICwgeyB9LCB7IH0KICNlbmRpZgotICAgICAgICAsIHsgfSwg
eyB9LCBmYWxzZSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0KKyAgICAgICAgLCB7IH0sIHsgfSwg
ZmFsc2UsIHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfQogICAgIH07CiB9CiAKQEAg
LTg0LDcgKzg0LDEwIEBAIHZvaWQgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVu
Y29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBlbmFibGVS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOwogICAgIGVuY29kZXIgPDwgcmVzb3VyY2VM
b2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJlc291cmNlOwogCi0gICAgZW5jb2RlciA8PCBs
b2NhbFN0b3JhZ2VEaXJlY3RvcnkgPDwgIGxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZTsKKyAgICBlbmNvZGVyIDw8IGxvY2FsU3RvcmFnZURpcmVjdG9yeSA8PCBsb2NhbFN0b3Jh
Z2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisKKyAgICBlbmNvZGVyIDw8IGRldmljZU1hbmFn
ZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkOworICAgIGVuY29kZXIgPDwgYWxsTG9hZHNCbG9ja2Vk
QnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzsKIH0KIAogT3B0aW9uYWw8
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpAQCAtMjA4LDYgKzIxMSwx
NiBAQCBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlYwogICAgIGlmICghbG9jYWxTdG9yYWdlRGlyZWN0
b3J5RXh0ZW5zaW9uSGFuZGxlKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCisgICAg
T3B0aW9uYWw8Ym9vbD4gZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQ7CisgICAg
ZGVjb2RlciA+PiBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDsKKyAgICBpZiAo
IWRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4gYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzsKKyAgICBkZWNvZGVyID4+IGFsbExvYWRz
QmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rpbmc7CisgICAgaWYg
KCFhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5n
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAgcmV0dXJuIHt7CiAgICAgICAg
IHNlc3Npb25JRAogICAgICAgICAsIFdURk1vdmUoKmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcikK
QEAgLTIzNSw2ICsyNDgsOCBAQCBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1l
dGVycz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlYwogICAgICAgICAsIFdU
Rk1vdmUoKmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3MpCiAgICAgICAgICwgV1RGTW92ZSgq
c2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcykKICAgICAgICAg
LCBXVEZNb3ZlKCplbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKQorICAgICAg
ICAsIFdURk1vdmUoKmRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKQorICAgICAg
ICAsIFdURk1vdmUoKmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9u
c0ZvclRlc3RpbmcpCiAgICAgICAgICwgV1RGTW92ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc01h
bnVhbFByZXZhbGVudFJlc291cmNlKQogICAgICAgICAsIFdURk1vdmUoKmxvY2FsU3RvcmFnZURp
cmVjdG9yeSkKICAgICAgICAgLCBXVEZNb3ZlKCpsb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNmZjMDdhZWQyNGI0
MGE2N2RhZjRjMTc2ZTRmN2RiZjE1YjBiNzBjNS4uNjU1OTk0N2YwMGRiNTc2ZmE0MTg0YTU2OTc1
ODZhM2Q1YWQyODAyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtODYsNiAr
ODYsOCBAQCBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJv
b2wgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcyB7IGZhbHNlIH07CiAgICAgYm9vbCBzaG91
bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHsgdHJ1ZSB9OwogICAg
IGJvb2wgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSB7IGZhbHNlIH07Cisg
ICAgYm9vbCBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCB7IGZhbHNlIH07Cisg
ICAgYm9vbCBhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JU
ZXN0aW5nIHsgZmFsc2UgfTsKICAgICBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UgeyB9OwogCiAgICAgU3RyaW5n
IGxvY2FsU3RvcmFnZURpcmVjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUGluZ0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5n
TG9hZC5jcHAKaW5kZXggMjFiYzdhNGU5YjIzZTIyNzE1MWQwMTBlNDk1NTRkOWNjYzVmNGIyZS4u
ZmU4ZjAzYWJmOTlkYmNkZGFlZTBkYjJlNTZhMmMyYTczYzAxM2FjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKQEAgLTIwMCw2ICsyMDAsMTIgQEAgdm9pZCBQ
aW5nTG9hZDo6Y2Fubm90U2hvd1VSTCgpCiAgICAgZGlkRmluaXNoKGNhbm5vdFNob3dVUkxFcnJv
cihSZXNvdXJjZVJlcXVlc3QgeyBjdXJyZW50VVJMKCkgfSkpOwogfQogCit2b2lkIFBpbmdMb2Fk
Ojp3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMoKQoreworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoIndhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucyIpOworICAgIGRpZEZpbmlzaCh3YXNCbG9ja2Vk
QnlSZXN0cmljdGlvbnNFcnJvcihSZXNvdXJjZVJlcXVlc3QgeyBjdXJyZW50VVJMKCkgfSkpOwor
fQorCiB2b2lkIFBpbmdMb2FkOjp0aW1lb3V0VGltZXJGaXJlZCgpCiB7CiAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgidGltZW91dFRpbWVyRmlyZWQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUGluZ0xvYWQuaAppbmRleCBjN2UxMmJiMTMwZDA0OWM1ZDBhNTk3YzAxZmU1YmZmYzhi
MjIxYmY5Li41MDU5MmI3NTI5OGUyZGQzNTIxY2NlNjgwMDkwNWZiOGFhZjVjYjFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5oCkBAIC01OCw2ICs1OCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5dGVzU2VudCwgdWludDY0
X3QgdG90YWxCeXRlc0V4cGVjdGVkVG9TZW5kKSBmaW5hbDsKICAgICB2b2lkIHdhc0Jsb2NrZWQo
KSBmaW5hbDsKICAgICB2b2lkIGNhbm5vdFNob3dVUkwoKSBmaW5hbDsKKyAgICB2b2lkIHdhc0Js
b2NrZWRCeVJlc3RyaWN0aW9ucygpIGZpbmFsOwogICAgIHZvaWQgdGltZW91dFRpbWVyRmlyZWQo
KTsKIAogICAgIHZvaWQgbG9hZFJlcXVlc3QoTmV0d29ya1Byb2Nlc3MmLCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL0RldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9EZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzgz
N2E2YmFmODNmOGM1NDc0MWQ3ZjJhY2QwMmM2OGJiMDc5Zjg3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9EZXZpY2VNYW5hZ2VtZW50U29mdExp
bmsuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBI
QVZFKERFVklDRV9NQU5BR0VNRU5UKQorCisjaW1wb3J0ICJEZXZpY2VNYW5hZ2VtZW50U1BJLmgi
CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SS19GT1Jf
SEVBREVSKFdlYktpdCwgRGV2aWNlTWFuYWdlbWVudCk7CitTT0ZUX0xJTktfQ0xBU1NfRk9SX0hF
QURFUihXZWJLaXQsIERNRldlYnNpdGVQb2xpY3lNb25pdG9yKTsKKworI2VuZGlmIC8vIEhBVkUo
REVWSUNFX01BTkFHRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL0RldmljZU1hbmFnZW1lbnRTb2Z0TGluay5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc5N2M1ZTBkOTA3MWI3ZTc3NDYwMjFmYTg5MzhmZTI1MTIxZTgwZTAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL0RldmljZU1hbmFnZW1lbnRT
b2Z0TGluay5tbQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisKKyNpZiBIQVZFKERFVklDRV9NQU5BR0VNRU5UKQorCisjaW1wb3J0ICJEZXZpY2VNYW5h
Z2VtZW50U1BJLmgiCisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX1BS
SVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViS2l0LCBEZXZpY2VNYW5hZ2VtZW50KTsKK1NP
RlRfTElOS19DTEFTU19GT1JfU09VUkNFKFdlYktpdCwgRGV2aWNlTWFuYWdlbWVudCwgRE1GV2Vi
c2l0ZVBvbGljeU1vbml0b3IpOworCisjZW5kaWYgLy8gSEFWRShERVZJQ0VfTUFOQUdFTUVOVCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0Rh
dGFUYXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EuaAppbmRleCAyZGQwZTdkNDZiYzcxOWU5NmZhMTUwNzRmZWQwMGIxYzg4
NjY1NjU4Li43NzFiM2FiNTkxMTNlMzUxOTdiYjllZDI4NGQwZWNiMGUyMzBjNmUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0Nv
Y29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0
YVRhc2tDb2NvYS5oCkBAIC00Miw5ICs0Miw5IEBAIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7
CiBjbGFzcyBOZXR3b3JrRGF0YVRhc2tDb2NvYSBmaW5hbCA6IHB1YmxpYyBOZXR3b3JrRGF0YVRh
c2sgewogICAgIGZyaWVuZCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50
U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRl
bnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVk
aXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNr
SXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2Vy
PiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQorICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNr
PiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYg
Y2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIHVpbnQ2NF90
IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRl
bnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNv
ZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3Vs
ZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBi
b29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlv
bmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNz
aW9uLCBjbGllbnQsIHJlcXVlc3QsIGZyYW1lSUQsIHBhZ2VJRCwgc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIHNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNvbm5lY3RP
bmx5LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgbmV0d29ya0FjdGl2aXR5VHJh
Y2tlcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2tDb2Nv
YShzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIGZyYW1lSUQsIHBhZ2VJRCwgc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25p
ZmYsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNv
bm5lY3RPbmx5LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgZGF0YVRhc2tJc0Zv
ck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgbmV0d29ya0FjdGl2aXR5VHJhY2tl
cikpOwogICAgIH0KIAogICAgIH5OZXR3b3JrRGF0YVRhc2tDb2NvYSgpOwpAQCAtNzUsNyArNzUs
NyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAK
IHByaXZhdGU6Ci0gICAgTmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3
b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50
NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2ViQ29yZTo6
Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1h
aW5GcmFtZU5hdmlnYXRpb24sIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+KTsKKyAg
ICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0Ns
aWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIHVpbnQ2NF90IGZyYW1lSUQs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBXZWJDb3JlOjpDb250ZW50RW5jb2Rp
bmdTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJl
ZGlyZWN0LCBQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdh
dGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1l
LCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPik7CiAKICAgICBib29sIHRyeVBhc3N3
b3JkQmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7CiAgICAgdm9pZCBhcHBseVNuaWZm
aW5nUG9saWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVkZWQoX19zdHJvbmcgTlNV
UkxSZXF1ZXN0KiYsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRF
bmNvZGluZ1NuaWZmKTsKQEAgLTk4LDYgKzk4LDggQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGJvb2wgbV9oYXNCZWVuU2V0VG9Vc2VTdGF0ZWxl
c3NDb29raWVTdG9yYWdlIHsgZmFsc2UgfTsKICNlbmRpZgorCisgICAgYm9vbCBtX2lzRm9yTWFp
blJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lIHsgZmFsc2UgfTsKIH07CiAKIFdlYkNvcmU6
OkNyZWRlbnRpYWwgc2VydmVyVHJ1c3RDcmVkZW50aWFsKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQppbmRleCAyOGEwNWU4MGRiNjg1
YWY2N2IyODRjODQyMzE3MTk0Zjk3ZTg3ZTNlLi4yZTM3OGZkOTM5NjE1YThhNjNkYzQ2NmUxN2Nj
YTk1OTgyZGExYTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAog
I2ltcG9ydCAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbi5oIgogI2ltcG9ydCAi
QXV0aGVudGljYXRpb25NYW5hZ2VyLmgiCisjaW1wb3J0ICJEZXZpY2VNYW5hZ2VtZW50U1BJLmgi
CiAjaW1wb3J0ICJEb3dubG9hZC5oIgogI2ltcG9ydCAiRG93bmxvYWRQcm94eU1lc3NhZ2VzLmgi
CiAjaW1wb3J0ICJMb2dnaW5nLmgiCkBAIC0zOSw2ICs0MCw3IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgog
I2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KKyNpbXBvcnQgPHd0Zi9CbG9ja1B0
ci5oPgogI2ltcG9ydCA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFk
Lmg+CiAjaW1wb3J0IDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgpAQCAtMTYwLDEwICsxNjIsMTEg
QEAgc3RhdGljIHZvaWQgdXBkYXRlVGFza1dpdGhGaXJzdFBhcnR5Rm9yU2FtZVNpdGVDb29raWVz
KE5TVVJMU2Vzc2lvbkRhdGFUYXNrKiB0YXMKICNlbmRpZgogfQogCi1OZXR3b3JrRGF0YVRhc2tD
b2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdv
cmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRD
b250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3Vs
ZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRh
dGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlU
cmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQorTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5l
dHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRh
c2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
V2l0aENyZWRlbnRpYWxzLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRp
YWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNu
aWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50
RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lz
Rm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2
aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3
b3JrQWN0aXZpdHlUcmFja2VyKQogICAgIDogTmV0d29ya0RhdGFUYXNrKHNlc3Npb24sIGNsaWVu
dCwgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIGRhdGFUYXNrSXNGb3JNYWluRnJh
bWVOYXZpZ2F0aW9uKQogICAgICwgbV9mcmFtZUlEKGZyYW1lSUQpCiAgICAgLCBtX3BhZ2VJRChw
YWdlSUQpCisgICAgLCBtX2lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lKGRh
dGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUpCiB7CiAgICAgaWYg
KG1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAgICAgICByZXR1cm47CkBA
IC00ODksNiArNDkyLDI5IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQ29jb2E6OnJlc3VtZSgpCiB7
CiAgICAgaWYgKG1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAgICAgICBt
X2ZhaWx1cmVUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKKworI2lmIEhBVkUoREVWSUNFX01BTkFH
RU1FTlQpCisgICAgYXV0byYgY29jb2FTZXNzaW9uID0gc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Np
b25Db2NvYSY+KG1fc2Vzc2lvbi5nZXQoKSk7CisgICAgaWYgKGNvY29hU2Vzc2lvbi5kZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCgpICYmIG1faXNGb3JNYWluUmVzb3VyY2VOYXZp
Z2F0aW9uRm9yQW55RnJhbWUpIHsKKyAgICAgICAgUmV0YWluUHRyPE5TVVJMPiB1cmxUb0NoZWNr
ID0gW21fdGFzayBjdXJyZW50UmVxdWVzdF0uVVJMOworICAgICAgICBbY29jb2FTZXNzaW9uLmRl
dmljZU1hbmFnZW1lbnRQb2xpY3lNb25pdG9yKCkgcmVxdWVzdFBvbGljaWVzRm9yV2Vic2l0ZXM6
QFsgdXJsVG9DaGVjay5nZXQoKSBdIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB1cmxUb0NoZWNrXSAoTlNEaWN0aW9u
YXJ5PE5TVVJMICosIE5TTnVtYmVyICo+ICpwb2xpY2llcywgTlNFcnJvciAqZXJyb3IpIHsKKyAg
ICAgICAgICAgIGJvb2wgaXNCbG9ja2VkID0gZXJyb3IgfHwgcG9saWNpZXNbdXJsVG9DaGVjay5n
ZXQoKV0uaW50ZWdlclZhbHVlICE9IERNRlBvbGljeU9LIHx8IHN0YXRpY19jYXN0PE5ldHdvcmtT
ZXNzaW9uQ29jb2EmPihtX3Nlc3Npb24uZ2V0KCkpLmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFu
YWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoKTsKKyAgICAgICAgICAgIGNhbGxPbk1haW5U
aHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaXNCbG9ja2VkXSB7
CisgICAgICAgICAgICAgICAgaWYgKGlzQmxvY2tlZCkgeworICAgICAgICAgICAgICAgICAgICBz
Y2hlZHVsZUZhaWx1cmUoUmVzdHJpY3RlZFVSTEZhaWx1cmUpOworICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgW21fdGFzayBy
ZXN1bWVdOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pLmdldCgpXTsKKworICAgICAgICBy
ZXR1cm47CisgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfVkFSSUFCTEUobV9pc0Zvck1haW5SZXNv
dXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSk7CisjZW5kaWYKKwogICAgIFttX3Rhc2sgcmVzdW1l
XTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrU2Vzc2lvbkNvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EuaAppbmRleCAzZDFhNDlmMjczMjVmNDk2NzU0MTI1NDAwNTdl
ZjExMDY2MjE0MGIyLi4xZTczOGY2NjZiMTlhMDYzZmJkNDk1OWEyNzYwOWEzZGU5ZDg1MzE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtTZXNzaW9uQ29jb2EuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorT0JK
Q19DTEFTUyBETUZXZWJzaXRlUG9saWN5TW9uaXRvcjsKIE9CSkNfQ0xBU1MgTlNEYXRhOwogT0JK
Q19DTEFTUyBOU1VSTFNlc3Npb247CiBPQkpDX0NMQVNTIE5TVVJMU2Vzc2lvbkRvd25sb2FkVGFz
azsKQEAgLTY5LDYgKzcwLDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29udGludWVEaWRSZWNl
aXZlQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgTmV0
d29ya0RhdGFUYXNrQ29jb2E6OlRhc2tJZGVudGlmaWVyLCBOZXR3b3JrRGF0YVRhc2tDb2NvYSos
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViS2l0OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURp
c3Bvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJik+JiYpOwogCisjaWYgSEFWRShE
RVZJQ0VfTUFOQUdFTUVOVCkKKyAgICBib29sIGRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNF
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5h
YmxlZDsgfQorICAgIGJvb2wgYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJp
Y3Rpb25zRm9yVGVzdGluZygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsTG9hZHNCbG9ja2VkQnlEZXZp
Y2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzsgfQorICAgIERNRldlYnNpdGVQb2xp
Y3lNb25pdG9yICpkZXZpY2VNYW5hZ2VtZW50UG9saWN5TW9uaXRvcigpOworI2VuZGlmCisKIHBy
aXZhdGU6CiAgICAgTmV0d29ya1Nlc3Npb25Db2NvYShOZXR3b3JrUHJvY2VzcyYsIE5ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogCkBAIC05Myw2ICsxMDAsMTEgQEAgcHJpdmF0
ZToKICAgICBTdHJpbmcgbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI7CiAgICAg
U3RyaW5nIG1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOwogICAgIFJldGFp
blB0cjxDRkRpY3Rpb25hcnlSZWY+IG1fcHJveHlDb25maWd1cmF0aW9uOworI2lmIEhBVkUoREVW
SUNFX01BTkFHRU1FTlQpCisgICAgUmV0YWluUHRyPERNRldlYnNpdGVQb2xpY3lNb25pdG9yPiBt
X2RldmljZU1hbmFnZW1lbnRQb2xpY3lNb25pdG9yOworICAgIGJvb2wgbV9kZXZpY2VNYW5hZ2Vt
ZW50UmVzdHJpY3Rpb25zRW5hYmxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2FsbExvYWRzQmxv
Y2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcgeyBmYWxzZSB9Owor
I2VuZGlmCiAgICAgYm9vbCBtX3Nob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uIHsgZmFsc2UgfTsK
ICAgICBTZWNvbmRzIG1fbG9hZFRocm90dGxlTGF0ZW5jeTsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0K
aW5kZXggYzRjYTM5MWRmN2ViODE5YTY4NmRiYmNmMDFmYmNkNjQ3Y2VlNzFkYi4uMzQyZDYzZjNl
ZGJiM2RhNDRiZGU1ZWFmMTVlOWVlNWFhNmFkODM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAt
NTEsNiArNTEsNyBAQAogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3
dGYvT2JqQ1J1bnRpbWVFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+
CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9VUkwuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01OCw2ICs1OSw4IEBACiAjaW5jbHVkZSA8
V2ViS2l0QWRkaXRpb25zL05ldHdvcmtTZXNzaW9uQ29jb2FBZGRpdGlvbnMuaD4KICNlbmRpZgog
CisjaW1wb3J0ICJEZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaCIKKwogdXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKIAogQ0ZTdHJpbmdSZWYgY29uc3QgV2ViS2l0MkhUVFBQcm94eURlZmF1bHRzS2V5
ID0gc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KEAiV2ViS2l0MkhUVFBQcm94eSIpOwpAQCAtNzEz
LDcgKzcxNiw3IEBAIC0gKHZvaWQpVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiBk
YXRhVGFzazooTlNVUkxTZXNzaW9uRGF0YVRhc2sgKilkYXRhCiAgICAgICAgIEFTU0VSVChSdW5M
b29wOjppc01haW4oKSk7CiAgICAgICAgIAogICAgICAgICAvLyBBdm9pZCBNSU1FIHR5cGUgc25p
ZmZpbmcgaWYgdGhlIHJlc3BvbnNlIGNvbWVzIGJhY2sgYXMgMzA0IE5vdCBNb2RpZmllZC4KLSAg
ICAgICAgaW50IHN0YXR1c0NvZGUgPSBbcmVzcG9uc2UgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3RvcihzdGF0dXNDb2RlKV0gPyBbKGlkKXJlc3BvbnNlIHN0YXR1c0NvZGVdIDogMDsKKyAgICAg
ICAgaW50IHN0YXR1c0NvZGUgPSBbcmVzcG9uc2UgaXNLaW5kT2ZDbGFzczpOU0hUVFBVUkxSZXNw
b25zZS5jbGFzc10gPyBbKE5TSFRUUFVSTFJlc3BvbnNlICopcmVzcG9uc2Ugc3RhdHVzQ29kZV0g
OiAwOwogICAgICAgICBpZiAoc3RhdHVzQ29kZSAhPSAzMDQpIHsKICAgICAgICAgICAgIGJvb2wg
aXNNYWluUmVzb3VyY2VMb2FkID0gbmV0d29ya0RhdGFUYXNrLT5maXJzdFJlcXVlc3QoKS5yZXF1
ZXN0ZXIoKSA9PSBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbjsKICAg
ICAgICAgICAgIFdlYkNvcmU6OmFkanVzdE1JTUVUeXBlSWZOZWNlc3NhcnkocmVzcG9uc2UuX0NG
VVJMUmVzcG9uc2UsIGlzTWFpblJlc291cmNlTG9hZCk7CkBAIC05ODEsNiArOTg0LDkgQEAgTmV0
d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYShOZXR3b3JrUHJvY2VzcyYgbmV0
d29ya1Byb2Nlc3MsIE5ldHdvcmsKICAgICBtX3N0YXRlbGVzc1Nlc3Npb25EZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoTmV0d29ya1Nl
c3Npb246KnRoaXMgd2l0aENyZWRlbnRpYWxzOmZhbHNlXSk7CiAgICAgbV9zdGF0ZWxlc3NTZXNz
aW9uID0gW05TVVJMU2Vzc2lvbiBzZXNzaW9uV2l0aENvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
biBkZWxlZ2F0ZTpzdGF0aWNfY2FzdDxpZD4obV9zdGF0ZWxlc3NTZXNzaW9uRGVsZWdhdGUuZ2V0
KCkpIGRlbGVnYXRlUXVldWU6W05TT3BlcmF0aW9uUXVldWUgbWFpblF1ZXVlXV07CiAKKyAgICBt
X2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkID0gcGFyYW1ldGVycy5kZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDsKKyAgICBtX2FsbExvYWRzQmxvY2tlZEJ5RGV2
aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcgPSBwYXJhbWV0ZXJzLmFsbExvYWRz
QmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rpbmc7CisKICNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RpcmVjdG9yeSA9IHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9y
eTsKICAgICBtX3Nob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
PSBwYXJhbWV0ZXJzLnNob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MgPyBTaG91bGRJbmNsdWRlTG9jYWxob3N0OjpZZXMgOiBTaG91bGRJbmNsdWRlTG9jYWxob3N0
OjpObzsKQEAgLTExNjcsNCArMTE3MywxNCBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ29jb2E6OmNv
bnRpbnVlRGlkUmVjZWl2ZUNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdAogICAg
IG5ldHdvcmtEYXRhVGFzay0+ZGlkUmVjZWl2ZUNoYWxsZW5nZShXVEZNb3ZlKGF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKSwgV1RGTW92ZShjaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlcikpOwogfQog
CisjaWYgSEFWRShERVZJQ0VfTUFOQUdFTUVOVCkKK0RNRldlYnNpdGVQb2xpY3lNb25pdG9yICpO
ZXR3b3JrU2Vzc2lvbkNvY29hOjpkZXZpY2VNYW5hZ2VtZW50UG9saWN5TW9uaXRvcigpCit7Cisg
ICAgQVNTRVJUKG1fZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQpOworICAgIGlm
ICghbV9kZXZpY2VNYW5hZ2VtZW50UG9saWN5TW9uaXRvcikKKyAgICAgICAgbV9kZXZpY2VNYW5h
Z2VtZW50UG9saWN5TW9uaXRvciA9IGFkb3B0TlMoW2FsbG9jRE1GV2Vic2l0ZVBvbGljeU1vbml0
b3JJbnN0YW5jZSgpIGluaXRXaXRoUG9saWN5Q2hhbmdlSGFuZGxlcjpuaWxdKTsKKyAgICByZXR1
cm4gbV9kZXZpY2VNYW5hZ2VtZW50UG9saWN5TW9uaXRvci5nZXQoKTsKK30KKyNlbmRpZgorCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9EZXZpY2VNYW5h
Z2VtZW50U1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9EZXZpY2VNYW5h
Z2VtZW50U1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjIyOTMwZDRiYTBkYmViMDk2MmFkNDE0MjYzYzhlZTZh
ODk5N2Q2YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0Nv
Y29hL0RldmljZU1hbmFnZW1lbnRTUEkuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBIQVZFKERFVklDRV9NQU5BR0VNRU5UKQorCisjaWYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8RGV2aWNlTWFuYWdlbWVudC9EZXZpY2VNYW5h
Z2VtZW50Lmg+CisKKyNlbHNlCisKK0BpbnRlcmZhY2UgRE1GV2Vic2l0ZVBvbGljeU1vbml0b3Ig
OiBOU09iamVjdAorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQb2xpY3lDaGFuZ2VIYW5kbGVy
Oih2b2lkKF4pKHZvaWQpKWNoYW5nZUhhbmRsZXI7CistICh2b2lkKXJlcXVlc3RQb2xpY2llc0Zv
cldlYnNpdGVzOihOU0FycmF5PE5TVVJMICo+ICopd2Vic2l0ZVVSTHMgY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQgKF4pKE5TRGljdGlvbmFyeTxOU1VSTCAqLCBOU051bWJlciAqPiAqcG9saWNpZXMs
IE5TRXJyb3IgKmVycm9yKSljb21wbGV0aW9uSGFuZGxlcjsKKworQGVuZAorCit0eXBlZGVmIE5T
X0VOVU0oTlNJbnRlZ2VyLCBETUZQb2xpY3kpIHsKKyAgICBETUZQb2xpY3lPSyA9IDAsCit9Owor
CisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2VuZGlmIC8vIEhBVkUoREVW
SUNFX01BTkFHRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5k
Ym94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYiBiL1NvdXJjZS9X
ZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5OZXR3
b3JraW5nLnNiCmluZGV4IGRhNjBiMWJiZmUyYzk2MGMwYWI4OGUzMmI4MmEwMmQ1NzAwNzA1MmEu
LjgwNzE2ZWM2NDM0OGJmYjQ0OGVkZTY3NjJkNGMwZGQ5YzE5Y2RmN2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktp
dC5OZXR3b3JraW5nLnNiCisrKyBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9m
aWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiCkBAIC04Miw2ICs4MiwxMSBA
QAogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnBhc3NkLmluLWFwcC1wYXltZW50IikKICAg
ICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5wYXNzZC5saWJyYXJ5IikpCiAKKyhhbGxvdyBtYWNo
LWxvb2t1cAorICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmRtZC5wb2xpY3kiKQorICAgIChn
bG9iYWwtbmFtZSAiY29tLmFwcGxlLnNpcmkuY29udGV4dC5zZXJ2aWNlIikKKyAgICAoZ2xvYmFs
LW5hbWUgImNvbS5hcHBsZS5jdGNhdGVnb3JpZXMuc2VydmljZSIpKQorCiAoZGVueSBmaWxlLXdy
aXRlLWNyZWF0ZQogICAgICAgICh2bm9kZS10eXBlIFNZTUxJTkspKQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRXJyb3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9BUElFcnJvci5oCmluZGV4IDQ0MmQ2NzZlZDI3NDk5ZjBmMmEyYmQ0Y2Q1NDcyZDc0MTM5
ZGQzZGQuLjg3MzY3Y2QyNDMxNThmMTA3ZGNjM2IwM2FiMmE4MDZiNzlkMGQwN2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9BUElFcnJvci5oCkBAIC02NSw3ICs2NSw4IEBAIHB1YmxpYzoKICAgICAg
ICAgRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSA9IDEwMiwKICAgICAgICAgQ2Fu
bm90VXNlUmVzdHJpY3RlZFBvcnQgPSAxMDMsCiAgICAgICAgIEZyYW1lTG9hZEJsb2NrZWRCeUNv
bnRlbnRCbG9ja2VyID0gMTA0LAotICAgICAgICBGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50Rmls
dGVyID0gMTA1CisgICAgICAgIEZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRGaWx0ZXIgPSAxMDUs
CisgICAgICAgIEZyYW1lTG9hZEJsb2NrZWRCeVJlc3RyaWN0aW9ucyA9IDEwNiwKICAgICB9Owog
ICAgIHN0YXRpYyBjb25zdCBXVEY6OlN0cmluZyYgd2ViS2l0UG9saWN5RXJyb3JEb21haW4oKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tFcnJvclJlZi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Vycm9yUmVmLmNwcAppbmRleCA0NzkzYTU3
ZmQyZjE1NGZlYzcxZDk4NGI3OGZiNDhhZDg0OTI5MTJlLi5lNmNlNmQ5NGExMzc4MjY5MDg5NmVj
N2IzMDcyMjM0MDBiM2ZlMzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
Yy9XS0Vycm9yUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Vycm9y
UmVmLmNwcApAQCAtNTgsNiArNTgsOCBAQCBpbnQgV0tFcnJvckdldEVycm9yQ29kZShXS0Vycm9y
UmVmIGVycm9yUmVmKQogICAgICAgICByZXR1cm4ga1dLRXJyb3JDb2RlQ2Fubm90VXNlUmVzdHJp
Y3RlZFBvcnQ7CiAgICAgY2FzZSBBUEk6OkVycm9yOjpQb2xpY3k6OkZyYW1lTG9hZEJsb2NrZWRC
eUNvbnRlbnRCbG9ja2VyOgogICAgICAgICByZXR1cm4ga1dLRXJyb3JDb2RlRnJhbWVMb2FkQmxv
Y2tlZEJ5Q29udGVudEJsb2NrZXI7CisgICAgY2FzZSBBUEk6OkVycm9yOjpQb2xpY3k6OkZyYW1l
TG9hZEJsb2NrZWRCeVJlc3RyaWN0aW9uczoKKyAgICAgICAgcmV0dXJuIGtXS0Vycm9yQ29kZUZy
YW1lTG9hZEJsb2NrZWRCeVJlc3RyaWN0aW9uczsKICAgICBjYXNlIEFQSTo6RXJyb3I6OlBvbGlj
eTo6RnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEZpbHRlcjoKICAgICAgICAgcmV0dXJuIGtXS0Vy
cm9yQ29kZUZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRGaWx0ZXI7CiAgICAgY2FzZSBBUEk6OkVy
cm9yOjpQbHVnaW46OkNhbm5vdEZpbmRQbHVnSW46CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvYy9XS0Vycm9yUmVmLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9X
S0Vycm9yUmVmLmgKaW5kZXggMGQ3NjM4NGQzNDRhMDEwNWE3NzhhNWU1ZDdiNzhmYzQ2ODMwMzY4
ZC4uMjliYzBjZmNhNzIwZWFlOWYyYzFkN2M2OWNjYWE0MDM5Y2QxNjA5NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tFcnJvclJlZi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYuaApAQCAtNDUsNiArNDUsNyBAQCBlbnVtIHsKICAg
ICBrV0tFcnJvckNvZGVQbHVnSW5DYW5jZWxsZWRDb25uZWN0aW9uID0gICAgICAgICAgICAgICAg
ICAgICAgMjAzLAogICAgIGtXS0Vycm9yQ29kZVBsdWdJbldpbGxIYW5kbGVMb2FkID0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAyMDQsCiAgICAga1dLRXJyb3JDb2RlSW5zZWN1cmVQbHVnSW5W
ZXJzaW9uID0gICAgICAgICAgICAgICAgICAgICAgICAgIDIwNSwKKyAgICBrV0tFcnJvckNvZGVG
cmFtZUxvYWRCbG9ja2VkQnlSZXN0cmljdGlvbnMgPSAgICAgICAgICAgICAgICAgMjA2LAogICAg
IGtXS0Vycm9ySW50ZXJuYWwgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAzMDAsCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFcnJv
cnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXJyb3JzLmNwcAppbmRleCBiNmRjNTBj
ZWI1NWNhZjY1YmJlMTlhZjZlMzI3ZDUxMjAwOWEzZmE4Li42Y2ZhMjVjNjZhZGQxN2FkN2IzMTRl
ZWFiNzVlZmI0MWNlN2M1MjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJF
cnJvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkVycm9ycy5jcHAKQEAgLTUy
LDYgKzUyLDExIEBAIFJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9y
Ojp3ZWJLaXRQb2xpY3lFcnJvckRvbWFpbigpLCBBUEk6OkVycm9yOjpQb2xpY3k6OkNhbm5vdFNo
b3dVUkwsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwgY2Fu4oCZdCBiZSBz
aG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dVUkwgZGVzY3JpcHRpb24iKSk7CiB9CiAKK1Jl
c291cmNlRXJyb3Igd2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6
OndlYktpdFBvbGljeUVycm9yRG9tYWluKCksIEFQSTo6RXJyb3I6OlBvbGljeTo6RnJhbWVMb2Fk
QmxvY2tlZEJ5UmVzdHJpY3Rpb25zLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUg
VVJMIHdhcyBibG9ja2VkIGJ5IGRldmljZSByZXN0cmljdGlvbnMiLCAiV2ViS2l0RXJyb3JGcmFt
ZUxvYWRCbG9ja2VkQnlSZXN0cmljdGlvbnMgZGVzY3JpcHRpb24iKSk7Cit9CisKIFJlc291cmNl
RXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QpCiB7CiAgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2Vi
S2l0UG9saWN5RXJyb3JEb21haW4oKSwgQVBJOjpFcnJvcjo6UG9saWN5OjpGcmFtZUxvYWRJbnRl
cnJ1cHRlZEJ5UG9saWN5Q2hhbmdlLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJGcmFt
ZSBsb2FkIGludGVycnVwdGVkIiwgIldlYktpdEVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBv
bGljeUNoYW5nZSBkZXNjcmlwdGlvbiIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkVycm9ycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXJyb3JzLmgKaW5kZXgg
N2Q2MDBjNmQyM2I1NWRjYzM5NjMwOTkwNDA3Y2U3NDQ0NDZjYjQ4Ni4uOWYwYTAwMmI2Y2IxYTYx
NTJhMWQ4ODM3YWVhOWI0YzJmOGEyYWIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViRXJyb3JzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXJyb3JzLmgKQEAg
LTM5LDYgKzM5LDcgQEAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxv
Y2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYpOwogV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJy
b3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CitXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yIHdhc0Jsb2NrZWRCeVJlc3RyaWN0aW9uc0Vycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYpOwogV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNo
YW5nZUVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciBmYWlsZWRDdXN0b21Qcm90b2NvbFN5bmNMb2FkKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYpOwogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRl
eCBmNzRiMmM1ZGI5N2YxMmQ4MjUwNjIwNmU3ODk2ZWNiYjI5NjBkZjVmLi45NDk5NzQwMjQ4MDBm
YjIzN2Y1M2NhZjhkZjhkYzFiMmE2OThjNzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xNDUsNiArMTQ1LDggQEAg
UmVmPFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IFdlYnNpdGVEYXRhU3Rv
cmU6OmRlZmF1bHREYXRhU3RvcmVDb24KIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpjcmVhdGUoKTsKIAorICAgIGNvbmZp
Z3VyYXRpb24tPnNldFBlcnNpc3RlbnQodHJ1ZSk7CisKICAgICBjb25maWd1cmF0aW9uLT5zZXRB
cHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KGRlZmF1bHRBcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5
KCkpOwogICAgIGNvbmZpZ3VyYXRpb24tPnNldEFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRp
cmVjdG9yeU5hbWUoIkZpbGVzIik7CiAgICAgY29uZmlndXJhdGlvbi0+c2V0Q2FjaGVTdG9yYWdl
RGlyZWN0b3J5KGRlZmF1bHRDYWNoZVN0b3JhZ2VEaXJlY3RvcnkoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IDE2ODhh
MGFjYTgxOTYwNDRlNjZmMmUxNDc1MTM2ZGE2ODVhMDc0YjYuLmIwYWM3NmJlZjEyMjlkMGIzZjA3
ZmU4NmY5NzFhYjMxYzYwNDYxYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC01ODQsNyArNTg0LDcgQEAgLSAodm9pZClf
c3ludGhlc2l6ZUFwcElzQmFja2dyb3VuZDooQk9PTCliYWNrZ3JvdW5kCiAgICAgX3Byb2Nlc3NQ
b29sLT5zeW50aGVzaXplQXBwSXNCYWNrZ3JvdW5kKGJhY2tncm91bmQpOwogfQogCi0tICh2b2lk
KV9zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXI6KEJPT0wpIGFsbG93
cworLSAodm9pZClfc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyOihC
T09MKWFsbG93cwogewogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBfcHJvY2Vzc1Bv
b2wtPnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yU2VydmljZVdvcmtlcihhbGxvd3MpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhU3RvcmUubW0KaW5kZXggMjYyOThlYmNlYzU3NzRlMzQwNjYxZWE5ZmIxYTRiMjhlYTUwYTM0
My4uM2RiYTk4NDc1NDcwNDVlYzBjZDgxNTkzMjY2MjMzYmEyYWE1NGUwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
Lm1tCkBAIC0yMjksMjIgKzIyOSwzNSBAQCAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoQ29uZmln
dXJhdGlvbjooX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gKiljb25maQogICAgIGlm
ICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgYXV0
byBjb25maWcgPSBBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHREYXRhU3RvcmVDb25maWd1
cmF0aW9uKCk7Ci0KLSAgICBpZiAoY29uZmlndXJhdGlvbi5fd2ViU3RvcmFnZURpcmVjdG9yeSkK
LSAgICAgICAgY29uZmlnLT5zZXRMb2NhbFN0b3JhZ2VEaXJlY3RvcnkoY29uZmlndXJhdGlvbi5f
d2ViU3RvcmFnZURpcmVjdG9yeS5wYXRoKTsKLSAgICBpZiAoY29uZmlndXJhdGlvbi5fd2ViU1FM
RGF0YWJhc2VEaXJlY3RvcnkpCi0gICAgICAgIGNvbmZpZy0+c2V0V2ViU1FMRGF0YWJhc2VEaXJl
Y3RvcnkoY29uZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkucGF0aCk7Ci0gICAg
aWYgKGNvbmZpZ3VyYXRpb24uX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KQotICAgICAgICBj
b25maWctPnNldEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uX2luZGV4
ZWREQkRhdGFiYXNlRGlyZWN0b3J5LnBhdGgpOwotICAgIGlmIChjb25maWd1cmF0aW9uLl9jb29r
aWVTdG9yYWdlRmlsZSkKLSAgICAgICAgY29uZmlnLT5zZXRDb29raWVTdG9yYWdlRmlsZShjb25m
aWd1cmF0aW9uLl9jb29raWVTdG9yYWdlRmlsZS5wYXRoKTsKLSAgICBpZiAoY29uZmlndXJhdGlv
bi5fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSkKLSAgICAgICAgY29uZmlnLT5zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uX3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEaXJlY3RvcnkucGF0aCk7Ci0gICAgaWYgKGNvbmZpZ3VyYXRpb24uX2NhY2hl
U3RvcmFnZURpcmVjdG9yeSkKLSAgICAgICAgY29uZmlnLT5zZXRDYWNoZVN0b3JhZ2VEaXJlY3Rv
cnkoY29uZmlndXJhdGlvbi5fY2FjaGVTdG9yYWdlRGlyZWN0b3J5LnBhdGgpOwotICAgIGlmIChj
b25maWd1cmF0aW9uLl9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KQotICAgICAg
ICBjb25maWctPnNldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoY29uZmlndXJh
dGlvbi5fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeS5wYXRoKTsKKyAgICBhdXRv
IGNvbmZpZyA9IGNvbmZpZ3VyYXRpb24uaXNQZXJzaXN0ZW50ID8gQVBJOjpXZWJzaXRlRGF0YVN0
b3JlOjpkZWZhdWx0RGF0YVN0b3JlQ29uZmlndXJhdGlvbigpIDogV2ViS2l0OjpXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbjo6Y3JlYXRlKCk7CisKKyAgICBSRUxFQVNFX0FTU0VSVChjb25m
aWctPmlzUGVyc2lzdGVudCgpID09IGNvbmZpZ3VyYXRpb24uaXNQZXJzaXN0ZW50KTsKKworICAg
IGlmIChjb25maWd1cmF0aW9uLmlzUGVyc2lzdGVudCkgeworICAgICAgICBpZiAoY29uZmlndXJh
dGlvbi5fd2ViU3RvcmFnZURpcmVjdG9yeSkKKyAgICAgICAgICAgIGNvbmZpZy0+c2V0TG9jYWxT
dG9yYWdlRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uX3dlYlN0b3JhZ2VEaXJlY3RvcnkucGF0aCk7
CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uLl93ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSkKKyAg
ICAgICAgICAgIGNvbmZpZy0+c2V0V2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoY29uZmlndXJhdGlv
bi5fd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkucGF0aCk7CisgICAgICAgIGlmIChjb25maWd1cmF0
aW9uLl9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSkKKyAgICAgICAgICAgIGNvbmZpZy0+c2V0
SW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoY29uZmlndXJhdGlvbi5faW5kZXhlZERCRGF0YWJh
c2VEaXJlY3RvcnkucGF0aCk7CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uLl9jb29raWVTdG9y
YWdlRmlsZSkKKyAgICAgICAgICAgIGNvbmZpZy0+c2V0Q29va2llU3RvcmFnZUZpbGUoY29uZmln
dXJhdGlvbi5fY29va2llU3RvcmFnZUZpbGUucGF0aCk7CisgICAgICAgIGlmIChjb25maWd1cmF0
aW9uLl9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KQorICAgICAgICAgICAgY29uZmln
LT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uX3Jlc291
cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkucGF0aCk7CisgICAgICAgIGlmIChjb25maWd1cmF0
aW9uLl9jYWNoZVN0b3JhZ2VEaXJlY3RvcnkpCisgICAgICAgICAgICBjb25maWctPnNldENhY2hl
U3RvcmFnZURpcmVjdG9yeShjb25maWd1cmF0aW9uLl9jYWNoZVN0b3JhZ2VEaXJlY3RvcnkucGF0
aCk7CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uLl9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGlyZWN0b3J5KQorICAgICAgICAgICAgY29uZmlnLT5zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJl
Y3RvcnkucGF0aCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNvbmZp
Z3VyYXRpb24uX3dlYlN0b3JhZ2VEaXJlY3RvcnkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVCgh
Y29uZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkpOworICAgICAgICBSRUxFQVNF
X0FTU0VSVCghY29uZmlndXJhdGlvbi5faW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkpOworICAg
ICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5fY29va2llU3RvcmFnZUZpbGUpOwor
ICAgICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5fcmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RpcmVjdG9yeSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFjb25maWd1cmF0aW9uLl9j
YWNoZVN0b3JhZ2VEaXJlY3RvcnkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJh
dGlvbi5fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSk7CisgICAgfQorCiAgICAg
aWYgKGNvbmZpZ3VyYXRpb24uc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQogICAg
ICAgICBjb25maWctPnNldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcihjb25maWd1
cmF0aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcik7CiAgICAgaWYgKGNvbmZp
Z3VyYXRpb24uc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKQpAQCAtMjUzLDYg
KzI2Niw4IEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhDb25maWd1cmF0aW9uOihfV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiAqKWNvbmZpCiAgICAgICAgIGNvbmZpZy0+c2V0SFRU
UFByb3h5KGNvbmZpZ3VyYXRpb24uaHR0cFByb3h5KTsKICAgICBpZiAoY29uZmlndXJhdGlvbi5o
dHRwc1Byb3h5KQogICAgICAgICBjb25maWctPnNldEhUVFBTUHJveHkoY29uZmlndXJhdGlvbi5o
dHRwc1Byb3h5KTsKKyAgICBjb25maWctPnNldERldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNF
bmFibGVkKGNvbmZpZ3VyYXRpb24uZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQp
OworICAgIGNvbmZpZy0+c2V0QWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJp
Y3Rpb25zRm9yVGVzdGluZyhjb25maWd1cmF0aW9uLl9hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1h
bmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKTsKIAogICAgIEFQSTo6T2JqZWN0Ojpjb25z
dHJ1Y3RJbldyYXBwZXI8QVBJOjpXZWJzaXRlRGF0YVN0b3JlPihzZWxmLCBXVEZNb3ZlKGNvbmZp
ZyksIFBBTDo6U2Vzc2lvbklEOjpnZW5lcmF0ZVBlcnNpc3RlbnRTZXNzaW9uSUQoKSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKaW5kZXggNTlmOTg0ZTQ4N2FkZjNm
MDQyZDk2NzM3YTliNDdkYTc5ZTIyZDNiMC4uMmFmZmE1OTFhNzM3MzdmMjYwMjVhNzFjMmU5NDQ5
OTQyZDhlMzJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAg
LTMyLDYgKzMyLDIwIEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBXS19DTEFTU19BVkFJTEFC
TEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAaW50ZXJmYWNlIF9XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uIDogTlNPYmplY3QKIAorLSAoaW5zdGFuY2V0eXBlKWluaXQ7IC8vIENy
ZWF0ZXMgYSBwZXJzaXN0ZW50IGNvbmZpZ3VyYXRpb24uCistIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhOb25QZXJzaXN0ZW50Q29uZmlndXJhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHksIGdldHRlcj1pc1BlcnNpc3RlbnQpIEJPT0wgcGVyc2lzdGVudCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCisvLyBUaGVzZSBwcm9wZXJ0
aWVzIGFwcGx5IHRvIGJvdGggcGVyc2lzdGVudCBhbmQgbm9uLXBlcnNpc3RlbnQgZGF0YSBzdG9y
ZXMuCitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpzb3Vy
Y2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkg
TlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMs
IG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFByb3h5OikgTlNVUkwgKmh0dHBQcm94eSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChu
b25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFNQcm94eTopIE5TVVJMICpo
dHRwc1Byb3h5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5h
YmxlZCAgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKKworLy8gVGhlc2UgcHJvcGVydGllcyBvbmx5IG1ha2Ugc2Vuc2UgZm9yIHBlcnNpc3RlbnQg
ZGF0YSBzdG9yZXMsIGFuZCB3aWxsIHRocm93CisvLyBhbiBleGNlcHRpb24gaWYgc2V0IGZvciBu
b24tcGVyc2lzdGVudCBzdG9yZXMuCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVy
PV9zZXRXZWJTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKl93ZWJTdG9yYWdlRGlyZWN0b3J5Owog
QHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0SW5kZXhlZERCRGF0YWJhc2VE
aXJlY3Rvcnk6KSBOU1VSTCAqX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5OwogQHByb3BlcnR5
IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0V2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk6KSBO
U1VSTCAqX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5OwpAQCAtMzksMTAgKzUzLDkgQEAgV0tfQ0xB
U1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHksIHNldHRlcj1fc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTopIE5T
VVJMICpfcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNl
dHRlcj1fc2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKl9jYWNoZVN0b3JhZ2VEaXJl
Y3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EaXJlY3Rvcnk6KSBOU1VSTCAqX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnkg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uQnVu
ZGxlSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikp
OwotQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNl
QXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTQuNCksIGlvcygxMi4yKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHks
IHNldHRlcj1zZXRIVFRQUHJveHk6KSBOU1VSTCAqaHR0cFByb3h5IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFi
bGUsIGNvcHksIHNldHRlcj1zZXRIVFRQU1Byb3h5OikgTlNVUkwgKmh0dHBzUHJveHkgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKworLy8gVGVzdGluZyBvbmx5
LgorQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsTG9hZHNCbG9ja2VkQnlEZXZp
Y2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzopIEJPT0wgX2FsbExvYWRzQmxvY2tl
ZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KaW5kZXggMmEwNTEwZWM4OWY1ZWFiODFj
NTNmMjdlMmUwZDAwMzZmNjBiYTAyOS4uODUyNjZjNjc1OGFlMWMzYTVmOWFlYzM1ODkzNTNmMzEx
OGM5YWJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQpAQCAt
MzYsNiArMzYsMzMgQEAgc3RhdGljIHZvaWQgY2hlY2tVUkxBcmd1bWVudChOU1VSTCAqdXJsKQog
CiBAaW1wbGVtZW50YXRpb24gX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24KIAorLSAo
aW5zdGFuY2V0eXBlKWluaXQKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlmICgh
c2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9jb25maWd1cmF0aW9uLT5zZXRQZXJz
aXN0ZW50KHRydWUpOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKGluc3RhbmNldHlwZSlp
bml0V2l0aE5vblBlcnNpc3RlbnRDb25maWd1cmF0aW9uCit7CisgICAgc2VsZiA9IFtzdXBlciBp
bml0XTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfY29uZmln
dXJhdGlvbi0+c2V0UGVyc2lzdGVudChmYWxzZSk7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKwor
LSAoQk9PTClpc1BlcnNpc3RlbnQKK3sKKyAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPmlzUGVy
c2lzdGVudCgpOworfQorCiAtIChOU1VSTCAqKV93ZWJTdG9yYWdlRGlyZWN0b3J5CiB7CiAgICAg
cmV0dXJuIFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6X2NvbmZpZ3VyYXRpb24tPndlYlN0b3JhZ2VE
aXJlY3RvcnkoKSBpc0RpcmVjdG9yeTpZRVNdOwpAQCAtNDMsNiArNzAsOCBAQCAtIChOU1VSTCAq
KV93ZWJTdG9yYWdlRGlyZWN0b3J5CiAKIC0gKHZvaWQpX3NldFdlYlN0b3JhZ2VEaXJlY3Rvcnk6
KE5TVVJMICopdXJsCiB7CisgICAgaWYgKCFfY29uZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50KCkp
CisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBm
b3JtYXQ6QCJDYW5ub3Qgc2V0IF93ZWJTdG9yYWdlRGlyZWN0b3J5IG9uIGEgbm9uLXBlcnNpc3Rl
bnQgX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uIl07CiAgICAgY2hlY2tVUkxBcmd1
bWVudCh1cmwpOwogICAgIF9jb25maWd1cmF0aW9uLT5zZXRXZWJTdG9yYWdlRGlyZWN0b3J5KHVy
bC5wYXRoKTsKIH0KQEAgLTU0LDYgKzgzLDggQEAgLSAoTlNVUkwgKilfaW5kZXhlZERCRGF0YWJh
c2VEaXJlY3RvcnkKIAogLSAodm9pZClfc2V0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rvcnk6KE5T
VVJMICopdXJsCiB7CisgICAgaWYgKCFfY29uZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50KCkpCisg
ICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3Jt
YXQ6QCJDYW5ub3Qgc2V0IF9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSBvbiBhIG5vbi1wZXJz
aXN0ZW50IF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLiJdOwogICAgIGNoZWNrVVJM
QXJndW1lbnQodXJsKTsKICAgICBfY29uZmlndXJhdGlvbi0+c2V0SW5kZXhlZERCRGF0YWJhc2VE
aXJlY3RvcnkodXJsLnBhdGgpOwogfQpAQCAtNjUsNiArOTYsOCBAQCAtIChOU1VSTCAqKV93ZWJT
UUxEYXRhYmFzZURpcmVjdG9yeQogCiAtICh2b2lkKV9zZXRXZWJTUUxEYXRhYmFzZURpcmVjdG9y
eTooTlNVUkwgKil1cmwKIHsKKyAgICBpZiAoIV9jb25maWd1cmF0aW9uLT5pc1BlcnNpc3RlbnQo
KSkKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9u
IGZvcm1hdDpAIkNhbm5vdCBzZXQgX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5IG9uIGEgbm9uLXBl
cnNpc3RlbnQgX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uIl07CiAgICAgY2hlY2tV
UkxBcmd1bWVudCh1cmwpOwogICAgIF9jb25maWd1cmF0aW9uLT5zZXRXZWJTUUxEYXRhYmFzZURp
cmVjdG9yeSh1cmwucGF0aCk7CiB9CkBAIC05Niw2ICsxMjksOCBAQCAtIChOU1VSTCAqKV9jb29r
aWVTdG9yYWdlRmlsZQogCiAtICh2b2lkKV9zZXRDb29raWVTdG9yYWdlRmlsZTooTlNVUkwgKil1
cmwKIHsKKyAgICBpZiAoIV9jb25maWd1cmF0aW9uLT5pc1BlcnNpc3RlbnQoKSkKKyAgICAgICAg
W05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIkNh
bm5vdCBzZXQgX2Nvb2tpZVN0b3JhZ2VGaWxlIG9uIGEgbm9uLXBlcnNpc3RlbnQgX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uIl07CiAgICAgY2hlY2tVUkxBcmd1bWVudCh1cmwpOwog
ICAgIGlmIChbdXJsIGhhc0RpcmVjdG9yeVBhdGhdKQogICAgICAgICBbTlNFeGNlcHRpb24gcmFp
c2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiVGhlIGNvb2tpZSBzdG9yYWdl
IHBhdGggbXVzdCBwb2ludCB0byBhIGZpbGUsIG5vdCBhIGRpcmVjdG9yeS4iXTsKQEAgLTExMCw2
ICsxNDUsOCBAQCAtIChOU1VSTCAqKV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5CiAK
IC0gKHZvaWQpX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk6KE5TVVJMICopdXJs
CiB7CisgICAgaWYgKCFfY29uZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50KCkpCisgICAgICAgIFtO
U0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJDYW5u
b3Qgc2V0IF9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5IG9uIGEgbm9uLXBlcnNpc3Rl
bnQgX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uIl07CiAgICAgY2hlY2tVUkxBcmd1
bWVudCh1cmwpOwogICAgIF9jb25maWd1cmF0aW9uLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGlyZWN0b3J5KHVybC5wYXRoKTsKIH0KQEAgLTEyMSw2ICsxNTgsOCBAQCAtIChOU1VSTCAqKV9j
YWNoZVN0b3JhZ2VEaXJlY3RvcnkKIAogLSAodm9pZClfc2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5
OihOU1VSTCAqKXVybAogeworICAgIGlmICghX2NvbmZpZ3VyYXRpb24tPmlzUGVyc2lzdGVudCgp
KQorICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24g
Zm9ybWF0OkAiQ2Fubm90IHNldCBfY2FjaGVTdG9yYWdlRGlyZWN0b3J5IG9uIGEgbm9uLXBlcnNp
c3RlbnQgX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uIl07CiAgICAgY2hlY2tVUkxB
cmd1bWVudCh1cmwpOwogICAgIF9jb25maWd1cmF0aW9uLT5zZXRDYWNoZVN0b3JhZ2VEaXJlY3Rv
cnkodXJsLnBhdGgpOwogfQpAQCAtMTMyLDYgKzE3MSw4IEBAIC0gKE5TVVJMICopX3NlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkKIAogLSAodm9pZClfc2V0U2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRpcmVjdG9yeTooTlNVUkwgKil1cmwKIHsKKyAgICBpZiAoIV9jb25maWd1cmF0
aW9uLT5pc1BlcnNpc3RlbnQoKSkKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxp
ZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIkNhbm5vdCBzZXQgX3NlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25EaXJlY3Rvcnkgb24gYSBub24tcGVyc2lzdGVudCBfV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi4iXTsKICAgICBjaGVja1VSTEFyZ3VtZW50KHVybCk7CiAgICAgX2NvbmZp
Z3VyYXRpb24tPnNldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkodXJsLnBhdGgp
OwogfQpAQCAtMTU2LDYgKzE5NywyNiBAQCAtICh2b2lkKXNldFNvdXJjZUFwcGxpY2F0aW9uU2Vj
b25kYXJ5SWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyCiAgICAgX2NvbmZpZ3VyYXRp
b24tPnNldFNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTsK
IH0KIAorLSAoQk9PTClkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZAoreworICAg
IHJldHVybiBfY29uZmlndXJhdGlvbi0+ZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJs
ZWQoKTsKK30KKworLSAodm9pZClzZXREZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxl
ZDooQk9PTCllbmFibGVkCit7CisgICAgX2NvbmZpZ3VyYXRpb24tPnNldERldmljZU1hbmFnZW1l
bnRSZXN0cmljdGlvbnNFbmFibGVkKGVuYWJsZWQpOworfQorCistIChCT09MKV9hbGxMb2Fkc0Js
b2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nCit7CisgICAgcmV0
dXJuIF9jb25maWd1cmF0aW9uLT5hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0
cmljdGlvbnNGb3JUZXN0aW5nKCk7Cit9CisKKy0gKHZvaWQpX3NldEFsbExvYWRzQmxvY2tlZEJ5
RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rpbmc6KEJPT0wpYmxvY2tlZAorewor
ICAgIF9jb25maWd1cmF0aW9uLT5zZXRBbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNGb3JUZXN0aW5nKGJsb2NrZWQpOworfQorCiAtIChBUEk6Ok9iamVjdCYpX2Fw
aU9iamVjdAogewogICAgIHJldHVybiAqX2NvbmZpZ3VyYXRpb247CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRl
RGF0YVN0b3JlQ29jb2EubW0KaW5kZXggMDU0MjVjMDc1MWUyMzhlZTE5MjU5YjNkMDI1NGYwNjkx
Y2EzNDdkYS4uMmE1NmE3NDM2ZThhMDA4NjBhNWMwYmQxMTIwNTMzMzkyMzE5YzIyNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURh
dGFTdG9yZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQpAQCAtMTMxLDYgKzEzMSw4IEBAIFdlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogICAg
ICAgICBmYWxzZSwKICAgICAgICAgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcywKICAgICAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9k
ZSwKKyAgICAgICAgbV9jb25maWd1cmF0aW9uLT5kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25z
RW5hYmxlZCgpLAorICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPmFsbExvYWRzQmxvY2tlZEJ5RGV2
aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoKSwKICAgICAgICAgV1RGTW92ZShy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UpLAogICAgICAgICBX
VEZNb3ZlKGxvY2FsU3RvcmFnZURpcmVjdG9yeSksCiAgICAgICAgIFdURk1vdmUobG9jYWxTdG9y
YWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uY3BwCmluZGV4IDk5ZjU3ZTRhZTNhNGUxNDM3YjU0YjI1MjUwZjcyMTdhMzEyMGEy
ZWUuLmFlYjgwY2RjNjI1MmY4ODI0YzEwYjA0Y2RmOGNlMTc0MTY3YmFlNTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTM5LDYgKzM5LDggQEAgUmVmPFdl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bjo6Y29weSgpCiB7CiAgICAgYXV0byBjb3B5ID0gV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b246OmNyZWF0ZSgpOwogCisgICAgY29weS0+bV9pc1BlcnNpc3RlbnQgPSB0aGlzLT5tX2lzUGVy
c2lzdGVudDsKKwogICAgIGNvcHktPm1fY2FjaGVTdG9yYWdlRGlyZWN0b3J5ID0gdGhpcy0+bV9j
YWNoZVN0b3JhZ2VEaXJlY3Rvcnk7CiAgICAgY29weS0+bV9wZXJPcmlnaW5TdG9yYWdlUXVvdGEg
PSB0aGlzLT5tX3Blck9yaWdpblN0b3JhZ2VRdW90YTsKICAgICBjb3B5LT5tX25ldHdvcmtDYWNo
ZURpcmVjdG9yeSA9IHRoaXMtPm1fbmV0d29ya0NhY2hlRGlyZWN0b3J5OwpAQCAtNTksNiArNjEs
OCBAQCBSZWY8V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IFdlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uOjpjb3B5KCkKICAgICBjb3B5LT5tX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25k
YXJ5SWRlbnRpZmllciA9IHRoaXMtPm1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlm
aWVyOwogICAgIGNvcHktPm1faHR0cFByb3h5ID0gdGhpcy0+bV9odHRwUHJveHk7CiAgICAgY29w
eS0+bV9odHRwc1Byb3h5ID0gdGhpcy0+bV9odHRwc1Byb3h5OworICAgIGNvcHktPm1fZGV2aWNl
TWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgPSB0aGlzLT5tX2RldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNFbmFibGVkOworICAgIGNvcHktPm1fYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyA9IHRoaXMtPm1fYWxsTG9hZHNCbG9ja2Vk
QnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzsKIAogICAgIHJldHVybiBj
b3B5OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKaW5kZXggZGYxN2Fk
YzVlNGQzMmQwMjE1NThlNjQ5NGEzZTM2OTc4N2Y1OWY3MC4uZWEzZDhlMmYxOWQwNTY1Y2Y0YmM1
ZmFiNjZhNGJmYWFiZDViYmJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5oCkBAIC0zOCw3ICszOCwxMCBAQCBwdWJsaWM6CiAKICAgICBSZWY8V2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24+IGNvcHkoKTsKIAotICAgIHVpbnQ2NF90IHBlck9yaWdpblN0b3JhZ2VR
dW90YSgpIHsgcmV0dXJuIG1fcGVyT3JpZ2luU3RvcmFnZVF1b3RhOyB9CisgICAgYm9vbCBpc1Bl
cnNpc3RlbnQoKSBjb25zdCB7IHJldHVybiBtX2lzUGVyc2lzdGVudDsgfQorICAgIHZvaWQgc2V0
UGVyc2lzdGVudChib29sIGlzUGVyc2lzdGVudCkgeyBtX2lzUGVyc2lzdGVudCA9IGlzUGVyc2lz
dGVudDsgfQorCisgICAgdWludDY0X3QgcGVyT3JpZ2luU3RvcmFnZVF1b3RhKCkgY29uc3QgeyBy
ZXR1cm4gbV9wZXJPcmlnaW5TdG9yYWdlUXVvdGE7IH0KICAgICB2b2lkIHNldFBlck9yaWdpblN0
b3JhZ2VRdW90YSh1aW50NjRfdCBxdW90YSkgeyBtX3Blck9yaWdpblN0b3JhZ2VRdW90YSA9IHF1
b3RhOyB9CiAKICAgICBjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoKSBj
b25zdCB7IHJldHVybiBtX2FwcGxpY2F0aW9uQ2FjaGVEaXJlY3Rvcnk7IH0KQEAgLTk4LDkgKzEw
MSwxNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgVVJMJiBodHRwc1Byb3h5KCkgY29uc3QgeyByZXR1
cm4gbV9odHRwc1Byb3h5OyB9CiAgICAgdm9pZCBzZXRIVFRQU1Byb3h5KFVSTCYmIHByb3h5KSB7
IG1faHR0cHNQcm94eSA9IFdURk1vdmUocHJveHkpOyB9CiAKKyAgICBib29sIGRldmljZU1hbmFn
ZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VNYW5hZ2Vt
ZW50UmVzdHJpY3Rpb25zRW5hYmxlZDsgfQorICAgIHZvaWQgc2V0RGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fZGV2aWNlTWFuYWdlbWVudFJlc3Ry
aWN0aW9uc0VuYWJsZWQgPSBlbmFibGVkOyB9CisKKyAgICBib29sIGFsbExvYWRzQmxvY2tlZEJ5
RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBt
X2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rpbmc7
IH0KKyAgICB2b2lkIHNldEFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0
aW9uc0ZvclRlc3RpbmcoYm9vbCBibG9ja2VkKSB7IG1fYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyA9IGJsb2NrZWQ7IH0KKwogcHJpdmF0ZToK
ICAgICBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbigpOwogCisgICAgYm9vbCBtX2lzUGVy
c2lzdGVudCB7IGZhbHNlIH07CisKICAgICBTdHJpbmcgbV9jYWNoZVN0b3JhZ2VEaXJlY3Rvcnk7
CiAgICAgdWludDY0X3QgbV9wZXJPcmlnaW5TdG9yYWdlUXVvdGEgeyBXZWJDb3JlOjpTdG9yYWdl
UXVvdGFNYW5hZ2VyOjpkZWZhdWx0UXVvdGEoKSB9OwogICAgIFN0cmluZyBtX25ldHdvcmtDYWNo
ZURpcmVjdG9yeTsKQEAgLTEyMSw2ICsxMzIsOCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3Nv
dXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjsKICAgICBVUkwgbV9odHRwUHJveHk7
CiAgICAgVVJMIG1faHR0cHNQcm94eTsKKyAgICBib29sIG1fZGV2aWNlTWFuYWdlbWVudFJlc3Ry
aWN0aW9uc0VuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9hbGxMb2Fkc0Jsb2NrZWRCeURl
dmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nIHsgZmFsc2UgfTsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGRkYjNhMzAwMGNhZWY3MjM1YzI2NDZjZDBmNDA0OGNiY2ViNTYwYTIuLjk1NzMyOGMwMTk4NjZk
MGVkYzY3YzQ2NDMwOWUwM2JjMTM3N2M1ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDMwLDYgKzQzMCw4IEBACiAJCTI5ODRGNTg5
MTY0QkEwOTUwMDRCQzBDNiAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk4NEY1ODcx
NjRCQTA5NTAwNEJDMEM2IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlck1lc3NhZ2VzLmgg
Ki87IH07CiAJCTI5QUQzMDkzMTY0QjRDNUQwMDcyREVBOSAvKiBMZWdhY3lDdXN0b21Qcm90b2Nv
bE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjlBRDMwOTIxNjRCNEM1RDAwNzJERUE5IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFu
YWdlclByb3h5LmggKi87IH07CiAJCTI5Q0Q1NUFBMTI4RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vz
c2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjlDRDU1QTgxMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJp
bGl0eVdlYlBhZ2VPYmplY3RCYXNlLmggKi87IH07CisJCTJEMEM1NkZEMjI5RjFERUEwMEJEMzNF
NyAvKiBEZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMEM1NkZCMjI5RjFERUEwMEJEMzNFNyAvKiBEZXZpY2VN
YW5hZ2VtZW50U29mdExpbmsuaCAqLzsgfTsKKwkJMkQwQzU2RkUyMjlGMURFQTAwQkQzM0U3IC8q
IERldmljZU1hbmFnZW1lbnRTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJEMEM1NkZDMjI5RjFERUEwMEJEMzNFNyAvKiBEZXZpY2VNYW5h
Z2VtZW50U29mdExpbmsubW0gKi87IH07CiAJCTJEMTA4NzYxMUQyQzU3M0UwMEI4NUY4MiAvKiBM
b2FkUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkQxMDg3NUYxRDJDNTczRTAwQjg1RjgyIC8qIExvYWRQYXJhbWV0ZXJzLmggKi87IH07
CiAJCTJEMTFCNzUxMjEyNkEyODIwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlMS1tbS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEN0RFQzk0MjEyNjlF
NEMwMEI5RjczQyAvKiBVbmlmaWVkU291cmNlMS1tbS5tbSAqLzsgfTsKIAkJMkQxMUI3NTIyMTI2
QTI4MjAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2UxLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEN0RFRDVCMjEyNjlFNEQwMEI5RjczQyAvKiBVbmlm
aWVkU291cmNlMS5jcHAgKi87IH07CkBAIC03MDIsNiArNzA0LDcgQEAKIAkJMkRBNjczMUEyMEM3
NTRCMTAwM0NCNDAxIC8qIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQTY3MzE5MjBDNzU0QjEwMDNDQjQw
MSAvKiBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlLmggKi87IH07CiAJCTJEQTk0NEEwMTg4NEU0
RjAwMEVEODZEQiAvKiBXZWJJT1NFdmVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQTk0NDk5MTg4NEU0RjAwMEVEODZEQiAvKiBXZWJJ
T1NFdmVudEZhY3RvcnkuaCAqLzsgfTsKIAkJMkRBOTQ0QTQxODg0RTRGMDAwRUQ4NkRCIC8qIEdl
c3R1cmVUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkRBOTQ0OUQxODg0RTRGMDAwRUQ4NkRCIC8qIEdlc3R1cmVUeXBlcy5oICovOyB9OworCQky
REFBREE4RjIyOThDMjEwMDBFMzZCMEMgLyogRGV2aWNlTWFuYWdlbWVudFNQSS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBQURBOEUyMjk4QzIxMDAw
RTM2QjBDIC8qIERldmljZU1hbmFnZW1lbnRTUEkuaCAqLzsgfTsKIAkJMkRBQkE3NzIxQTgxN0Ix
NzAwRUYwRjFBIC8qIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQUJBNzcxMUE4MTdC
MTcwMEVGMEYxQSAvKiBXS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50c0ludGVybmFsLmggKi87
IH07CiAJCTJEQUJBNzc0MUE4MTdFRTYwMEVGMEYxQSAvKiBXS1BsdWdpbkxvYWRQb2xpY3kuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQUJBNzczMUE4
MTdFRTYwMEVGMEYxQSAvKiBXS1BsdWdpbkxvYWRQb2xpY3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyREFCQTc3NjFBODJCNDIxMDBFRjBGMUEg
LyogQVBJSGlzdG9yeUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkRBQkE3NzUxQTgyQjQyMTAwRUYwRjFBIC8qIEFQSUhpc3RvcnlDbGllbnQu
aCAqLzsgfTsKQEAgLTI1MDYsNiArMjUwOSw4IEBACiAJCTI5RDA0RTI4MjFGN0M3M0QwMDc2NzQx
RCAvKiBBY2Nlc3NpYmlsaXR5UHJpdlNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5
UHJpdlNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDAwMzUyMjFCQzc0MTQ4
MDBEQTg3MTYgLyogUERGUGx1Z2luLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFBERlBsdWdpbi5oOyBwYXRoID0gUERGL1BERlBsdWdpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyRDAwMzUyMzFCQzc0MTQ4MDBEQTg3MTYgLyogUERGUGx1Z2luLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUERGUGx1Z2luLm1tOyBwYXRoID0g
UERGL1BERlBsdWdpbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQwQzU2RkIy
MjlGMURFQTAwQkQzM0U3IC8qIERldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQwQzU2RkMyMjlGMURFQTAwQkQzM0U3IC8qIERldmlj
ZU1hbmFnZW1lbnRTb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IERldmljZU1hbmFnZW1lbnRTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkQwQ0Y2NEIyMUYyQTgwMzAwNzg3NTY2IC8qIFRleHRDaGVja2luZ0NvbnRyb2xs
ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXh0Q2hlY2tpbmdDb250cm9sbGVyLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDBDRjY0QzIxRjJBODAzMDA3ODc1NjYgLyog
VGV4dENoZWNraW5nQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0Q2hlY2tpbmdDb250
cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMTA4NzVFMUQyQzU3M0Uw
MEI4NUY4MiAvKiBMb2FkUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBMb2FkUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yNzk4LDYgKzI4MDMsNyBAQAogCQkyREE5NDRBQzE4ODRFOUJBMDBFRDg2REIgLyogV2Vi
UHJvY2Vzc1Byb3h5SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gV2ViUHJvY2Vzc1Byb3h5SU9TLm1tOyBwYXRoID0gaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRBOTQ0QjYxODg0RUEzNTAwRUQ4NkRC
IC8qIFdlYlBhZ2VJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBXZWJQYWdlSU9TLm1tOyBwYXRoID0gaW9zL1dlYlBhZ2VJT1MubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJEQTk0NEJDMTg4NTExRTcwMEVEODZEQiAvKiBOZXR3b3JrUHJvY2Vz
c0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdvcmtQ
cm9jZXNzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREFBREE4RTIyOThD
MjEwMDBFMzZCMEMgLyogRGV2aWNlTWFuYWdlbWVudFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEZXZpY2VNYW5hZ2VtZW50U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJEQUJBNzcxMUE4MTdCMTcwMEVGMEYxQSAvKiBXS1BhZ2VSZW5kZXJpbmdQcm9n
cmVzc0V2ZW50c0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
UGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMkRBQkE3NzMxQTgxN0VFNjAwRUYwRjFBIC8qIFdLUGx1Z2luTG9hZFBvbGlj
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1BsdWdpbkxvYWRQb2xpY3ku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRBQkE3NzUxQTgyQjQyMTAwRUYwRjFB
IC8qIEFQSUhpc3RvcnlDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QVBJSGlzdG9yeUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjEwNSw2
ICs2MTExLDcgQEAKIAkJCQkzN0MyMUNBRDFFOTk0QzBDMDAyOUQ1RjkgLyogQ29yZVByZWRpY3Rp
b25TUEkuaCAqLywKIAkJCQlBMUZCNjgyNjFGNkU1MUMxMDBDNDNGOUYgLyogQ3Jhc2hSZXBvcnRl
ckNsaWVudFNQSS5oICovLAogCQkJCTU3RENFREFBMjE0QjlCNDMwMDE2Qjg0NyAvKiBEZXZpY2VJ
ZGVudGl0eVNQSS5oICovLAorCQkJCTJEQUFEQThFMjI5OEMyMTAwMEUzNkIwQyAvKiBEZXZpY2VN
YW5hZ2VtZW50U1BJLmggKi8sCiAJCQkJMzc1NEQ1NDQxQjNBMjlGRDAwM0E0QzdGIC8qIE5TSW52
b2NhdGlvblNQSS5oICovLAogCQkJCTM3QjQ3RTJDMUQ2NERCNzYwMDVGNEVGRiAvKiBvYmpjU1BJ
LmggKi8sCiAJCQkJMEU5N0Q3NEMyMDBFOEZGMzAwQkY2NjQzIC8qIFNhZmVCcm93c2luZ1NQSS5o
ICovLApAQCAtNzEzNiw2ICs3MTQzLDggQEAKIAkJN0VDNEYwRjgxOEU0QTkyMjAwODA1NkFGIC8q
IGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQky
RDBDNTZGQjIyOUYxREVBMDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLmggKi8s
CisJCQkJMkQwQzU2RkMyMjlGMURFQTAwQkQzM0U3IC8qIERldmljZU1hbmFnZW1lbnRTb2Z0TGlu
ay5tbSAqLywKIAkJCQk1MzE1ODc2QjIwNzZCNzEzMDA0QkY5RjMgLyogTmV0d29ya0FjdGl2aXR5
VHJhY2tlckNvY29hLm1tICovLAogCQkJCTUzMjE1OTRGMURCQUU2RDcwMDU0QUEzQyAvKiBOZXR3
b3JrRGF0YVRhc2tDb2NvYS5oICovLAogCQkJCTVDQkM5QjhCMUM2NTI1NzMwMEE4RkRDRiAvKiBO
ZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSAqLywKQEAgLTkyMjMsNiArOTIzMiw4IEBACiAJCQkJQkMw
MzJEQTYxMEY0MzdEMTAwNThDMTVBIC8qIERlY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3
RENFREFCMjE0QzYwMDkwMDE2Qjg0NyAvKiBEZXZpY2VJZGVudGl0eVNQSS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDcyOTdGOUYxQzE3QkJFQTAxNUYwNzM1IC8qIERldmljZUlkSGFzaFNhbHRTdG9y
YWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyRDBDNTZGRDIyOUYxREVBMDBCRDMzRTcgLyogRGV2
aWNlTWFuYWdlbWVudFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKKwkJCQkyREFBREE4RjIyOThD
MjEwMDBFMzZCMEMgLyogRGV2aWNlTWFuYWdlbWVudFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODM4OTFCNkMxQTY4QzMwQjAwMzBGMzg2IC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlDMTgxNzM2MTIwNTg0MjQ3MDBERkRBNjUgLyogRGlzcGxheUxpbmsu
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDMTQyNzAyMUMyM0Y4NEMwMEQ0MTE4MyAvKiBEb3dubG9h
ZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDk4Miw2ICsxMDk5Myw3IEBACiAJCQkJMkQ5MkE3N0Qy
MTJCNkE3MTAwRjQ5M0ZEIC8qIENvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5
MkE3N0UyMTJCNkE3MTAwRjQ5M0ZEIC8qIERhdGFSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMkQ5MkE3N0YyMTJCNkE3MTAwRjQ5M0ZEIC8qIERlY29kZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMkQwQzU2RkUyMjlGMURFQTAwQkQzM0U3IC8qIERldmljZU1hbmFnZW1lbnRTb2Z0
TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQjdENjE5MTI4OEI5RDkwMENGRDA4QyAvKiBE
b3dubG9hZFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNjQy
Mjk5MTJERDAyOTIwMENBQUUyQyAvKiBEcmF3aW5nQXJlYU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQTY0MjMwODEyREQwOUVCMDBDQUFFMkMgLyogRHJhd2luZ0FyZWFQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCAy
NzhiNjAxODQ3OWYzNjU5MDM0OGM4OTUxODU1YWNmNDNkY2I1OWY4Li4xNTI1NjczM2I1ZDJiOTgx
ODBmY2Y1M2I2ZmJjNzIzMmNiMzE2NzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC0zMzUsNiArMzM1LDgg
QEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNz
KFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUwKIAogICAgIGxvYWRQYXJhbWV0ZXJzLmlzTWFpbkZy
YW1lTmF2aWdhdGlvbiA9IHJlc291cmNlTG9hZGVyLmZyYW1lKCkgJiYgcmVzb3VyY2VMb2FkZXIu
ZnJhbWUoKS0+aXNNYWluRnJhbWUoKSAmJiByZXNvdXJjZUxvYWRlci5vcHRpb25zKCkubW9kZSA9
PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmlnYXRlOwogCisgICAgbG9hZFBhcmFtZXRlcnMuaXNN
YWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUgPSByZXNvdXJjZUxvYWRlci5mcmFtZSgp
ICYmIHJlc291cmNlTG9hZGVyLm9wdGlvbnMoKS5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6
TmF2aWdhdGU7CisKICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRFbmFibGVDcm9zc09yaWdpblJl
c291cmNlUG9saWN5ID0gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5j
cm9zc09yaWdpblJlc291cmNlUG9saWN5RW5hYmxlZCgpICYmICFsb2FkUGFyYW1ldGVycy5pc01h
aW5GcmFtZU5hdmlnYXRpb247CiAKICAgICBpZiAocmVzb3VyY2VMb2FkZXIub3B0aW9ucygpLm1v
ZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZSkgewpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEyY2NjOGY4NTdlODQxMmFhNThlZGQz
MDg1ZjY5ODMzZTQyOGYyYjEuLmE3MzBiMzcxMDIzOTQ2OWM4OWM5NmU3YmY2OTlmNTgyZmExYmRk
Y2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAxOS0wNS0yOSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFw
cGxlLmNvbT4KKworICAgICAgICBPcHRpb25hbGx5IHJlc3BlY3QgZGV2aWNlIG1hbmFnZW1lbnQg
cmVzdHJpY3Rpb25zIHdoZW4gbG9hZGluZyBmcm9tIHRoZSBuZXR3b3JrCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTgzMTgKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzQ0MjYzODA2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9X
S1dlYnNpdGVEYXRhc3RvcmUubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVD
dXN0b21QYXRocy5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
Y29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
Y29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bVGVzdE5hdmlnYXRp
b25EZWxlZ2F0ZSB3ZWJWaWV3OmRpZEZhaWxOYXZpZ2F0aW9uOndpdGhFcnJvcjpdKToKKwogMjAx
OS0wNS0yOSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ1ODU3LgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA1N2FhN2QxODJlOGZjZjAwNTM5MGUyMmI2NTRmMzA2MDQ1ZTljMzdmLi5lNmU2NzI2YzllOWQ4
MTYwMTY2ODUwYjdmYWI3Yzk4YmY3YzE2YmU0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
OTYsNiArOTYsNyBAQAogCQkyRDFDMDRBNzFENzYyOThCMDAwQTY4MTYgLyogVGVzdE5hdmlnYXRp
b25EZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJEMUMwNEE2MUQ3NjI5OEIwMDBBNjgxNiAvKiBUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1t
ICovOyB9OwogCQkyRDIxRkU1OTFGMDQ2NDI5MDBCNThFN0QgLyogV0tQREZWaWV3U3RhYmxlUHJl
c2VudGF0aW9uVXBkYXRlQ2FsbGJhY2subW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRDIxRkU1ODFGMDQ2NDI4MDBCNThFN0QgLyogV0tQREZWaWV3U3Rh
YmxlUHJlc2VudGF0aW9uVXBkYXRlQ2FsbGJhY2subW0gKi87IH07CiAJCTJEMkJFQjJEMjIzMjRF
NUYwMDU1NDRDQSAvKiBSZXF1ZXN0VGV4dElucHV0Q29udGV4dC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMkJFQjJDMjIzMjRFNUYwMDU1NDRDQSAv
KiBSZXF1ZXN0VGV4dElucHV0Q29udGV4dC5tbSAqLzsgfTsKKwkJMkQyRDEzQjMyMjlGNDA4QjAw
NTA2OEFGIC8qIERldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDJEMTNCMjIyOUY0MDhCMDA1MDY4QUYg
LyogRGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9ucy5tbSAqLzsgfTsKIAkJMkQzQ0EzQTgyMjFE
RjRCNDAwODhFODAzIC8qIFBhZ2VPdmVybGF5UGx1Z2luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQzQ0EzQTQyMjFERjIzOTAwODhFODAzIC8qIFBh
Z2VPdmVybGF5UGx1Z2luLm1tICovOyB9OwogCQkyRDRDRjhCRDFEODM2MENDMDAwMUNFOEQgLyog
V0tUaHVtYm5haWxWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkQ0Q0Y4QkMxRDgzNjBDQzAwMDFDRThEIC8qIFdLVGh1bWJuYWlsVmlldy5tbSAq
LzsgfTsKIAkJMkQ1MUEwQzcxQzhCRjAwQzAwNzY1QzQ1IC8qIERPTUhUTUxWaWRlb0VsZW1lbnRX
cmFwcGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkQ1MUEwQzUxQzhCRjAwNDAwNzY1QzQ1IC8qIERPTUhUTUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1t
ICovOyB9OwpAQCAtMTQ3MSw2ICsxNDcyLDcgQEAKIAkJMkQxRkUwQUYxQUQ0NjVDMTAwNkNEOUU2
IC8qIEZpeGVkTGF5b3V0U2l6ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEZpeGVkTGF5b3V0U2l6ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkQyMUZFNTgxRjA0NjQyODAwQjU4RTdEIC8qIFdLUERGVmlld1N0YWJsZVByZXNlbnRhdGlvblVw
ZGF0ZUNhbGxiYWNrLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V0tQREZWaWV3U3RhYmxlUHJlc2VudGF0aW9uVXBkYXRlQ2FsbGJhY2subW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJEMkJFQjJDMjIzMjRFNUYwMDU1NDRDQSAvKiBSZXF1ZXN0VGV4
dElucHV0Q29udGV4dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFJlcXVlc3RUZXh0SW5wdXRDb250ZXh0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkyRDJEMTNCMjIyOUY0MDhCMDA1MDY4QUYgLyogRGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9u
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERldmljZU1hbmFn
ZW1lbnRSZXN0cmljdGlvbnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEM0NB
M0E0MjIxREYyMzkwMDg4RTgwMyAvKiBQYWdlT3ZlcmxheVBsdWdpbi5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBhZ2VPdmVybGF5UGx1Z2luLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyRDRDRjhCQzFEODM2MENDMDAwMUNFOEQgLyogV0tUaHVt
Ym5haWxWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tU
aHVtYm5haWxWaWV3Lm1tOyBwYXRoID0gV2ViS2l0L1dLVGh1bWJuYWlsVmlldy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ1MUEwQzUxQzhCRjAwNDAwNzY1QzQ1IC8qIERPTUhU
TUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gRE9NSFRNTFZpZGVvRWxlbWVudFdyYXBwZXIubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yNTkxLDYgKzI1OTMsNyBAQAogCQkJCTQ2QTkxMTU4MjEwOEU2NkIwMDc4
RDQwRCAvKiBDdXN0b21Vc2VyQWdlbnQubW0gKi8sCiAJCQkJMkRDNENGNzYxRDJEOUREODAwRUND
Qzk0IC8qIERhdGFEZXRlY3Rpb24ubW0gKi8sCiAJCQkJNTE4RUU1MUMyMEE3OEQzMzAwRTAyNEYz
IC8qIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24ubW0gKi8sCisJCQkJMkQyRDEzQjIy
MjlGNDA4QjAwNTA2OEFGIC8qIERldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnMubW0gKi8sCiAJ
CQkJNDY5MThFRkIyMjM3MjgzNTAwNDY4REZFIC8qIERldmljZU9yaWVudGF0aW9uLm1tICovLAog
CQkJCUNFQTdGNTdCMjA4OTVGNUIwMDc4RUY2RSAvKiBEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJv
bmdQYXNzd29yZEFwcGVhcmFuY2UubW0gKi8sCiAJCQkJNTE4RUU1MUEyMEE3OENGQjAwRTAyNEYz
IC8qIERvQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlQWZ0ZXJDcmFzaC5tbSAqLywKQEAgLTQx
MjEsNiArNDEyNCw3IEBACiAJCQkJOUJBRDdGM0UyMjY5MEYyMDAwRjhEQTY2IC8qIERlYWxsb2NX
ZWJWaWV3SW5FdmVudExpc3RlbmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4RUU1MUQyMEE3
OEQzNjAwRTAyNEYzIC8qIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24ubW0gaW4gU291
cmNlcyAqLywKIAkJCQkyRDE2NDZFMjFEMTg2MkNEMDAwMTVBMUEgLyogRGVmZXJyZWRWaWV3SW5X
aW5kb3dTdGF0ZUNoYW5nZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTJEMkQxM0IzMjI5RjQwOEIw
MDUwNjhBRiAvKiBEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDY5MThFRkMyMjM3MjgzQzAwNDY4REZFIC8qIERldmljZU9yaWVudGF0aW9uLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQjkxQTQxMUE3RTAwNDQ3QzRDIC8qIERldmljZVNjYWxl
RmFjdG9ySW5EYXNoYm9hcmRSZWdpb25zLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQkEx
QTQxMUE3RTAwNDQ3QzRDIC8qIERldmljZVNjYWxlRmFjdG9yT25CYWNrLm1tIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rl
dmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnMubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTNlYTVjODljMjdhZWZjY2YwMzFkMzRlOTdmMGZiYmZmNmFhOWUxMQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGV2aWNlTWFuYWdlbWVu
dFJlc3RyaWN0aW9ucy5tbQpAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVz
dC5oIgorI2ltcG9ydCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgorI2ltcG9ydCAiVGVzdFdL
V2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaD4K
KyNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCisjaWYg
SEFWRShERVZJQ0VfTUFOQUdFTUVOVCkKKworVEVTVChXZWJLaXQsIERldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnMpCit7CisgICAgUmV0YWluUHRyPF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uPiBkYXRhU3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0V2l0aE5vblBlcnNpc3RlbnRDb25maWd1cmF0
aW9uXSk7CisgICAgW2RhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0RGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0VuYWJsZWQ6WUVTXTsKKyAgICBbZGF0YVN0b3JlQ29uZmlndXJhdGlvbiBfc2V0
QWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzpZ
RVNdOworCisgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IHdlYlZpZXdDb25m
aWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTpbW1tXS1dl
YnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246ZGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5nZXQoKV0gYXV0b3JlbGVhc2VdXTsKKworICAgIFJldGFpblB0cjxUZXN0V0tX
ZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6Q0dSZWN0WmVybyBjb25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgp
IGFkZFRvV2luZG93OllFU10pOworCisgICAgUmV0YWluUHRyPFRlc3ROYXZpZ2F0aW9uRGVsZWdh
dGU+IGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCld
OworCisgICAgLy8gRklYTUU6CisgICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKyAgICBb
ZGVsZWdhdGUgc2V0RGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbjpeKFdLV2ViVmlldyAqd2Vi
VmlldywgV0tOYXZpZ2F0aW9uICpuYXZpZ2F0aW9uLCBOU0Vycm9yICplcnJvcikgeworICAgICAg
ICBOU0xvZyhAIiVAIiwgZXJyb3IpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKwor
ICAgIFtkZWxlZ2F0ZSBzZXREaWRGYWlsTmF2aWdhdGlvbjpeKFdLV2ViVmlldyAqd2ViVmlldywg
V0tOYXZpZ2F0aW9uICpuYXZpZ2F0aW9uLCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBOU0xv
ZyhAIiVAIiwgZXJyb3IpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIE5T
VVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpA
Imh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJzaXRlRGF0YXN0b3JlLm1tCmluZGV4IDNmOTUz
YTcwNzUxOGZlMzgyMDY3M2VhMTAzMjM0NjBjYjkyOTRkNDYuLjgxOGZkM2U0MDBkNzYzYzJlNWVi
ZGEyMzI5MTczOTNkZGUxNWIyNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvV0tXZWJzaXRlRGF0YXN0b3JlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJzaXRlRGF0YXN0b3JlLm1tCkBAIC0zMyw2ICsz
Myw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVJlY29yZFByaXZhdGUuaD4KICNp
bXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV2ViS2l0Lmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24uaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBzdGF0aWMgYm9vbCBy
ZWFkeVRvQ29udGludWU7CkBAIC0zMDQsNCArMzA1LDQ5IEBAIFRFU1QoV0tXZWJzaXRlRGF0YVN0
b3JlLCBSZW1vdmVOb25QZXJzaXN0ZW50Q3JlZGVudGlhbHMpCiAgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKIH0KIAorVEVTVChXZWJLaXQsIFNldHRpbmdOb25QZXJzaXN0ZW50
RGF0YVN0b3JlUGF0aHNUaHJvd3NFeGNlcHRpb24pCit7CisgICAgYXV0byBjb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
V2l0aE5vblBlcnNpc3RlbnRDb25maWd1cmF0aW9uXSk7CisKKyAgICBhdXRvIHNob3VsZFRocm93
RXhjZXB0aW9uV2hlblVzZWQgPSBbXShGdW5jdGlvbjx2b2lkKHZvaWQpPiYmIG1vZGlmaWVyKSB7
CisgICAgICAgIEB0cnkgeworICAgICAgICAgICAgbW9kaWZpZXIoKTsKKyAgICAgICAgICAgIEVY
UEVDVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgfSBAY2F0Y2ggKE5TRXhjZXB0aW9uICpleGNlcHRp
b24pIHsKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShOU0ludmFsaWRBcmd1bWVudEV4Y2Vw
dGlvbiwgZXhjZXB0aW9uLm5hbWUpOworICAgICAgICB9CisgICAgfTsKKworICAgIE5TVVJMICpm
aWxlVVJMID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpAIi90bXAiXTsKKworICAgIHNob3VsZFRo
cm93RXhjZXB0aW9uV2hlblVzZWQoWyZdIHsKKyAgICAgICAgW2NvbmZpZ3VyYXRpb24gX3NldFdl
YlN0b3JhZ2VEaXJlY3Rvcnk6ZmlsZVVSTF07CisgICAgfSk7CisgICAgc2hvdWxkVGhyb3dFeGNl
cHRpb25XaGVuVXNlZChbJl0geworICAgICAgICBbY29uZmlndXJhdGlvbiBfc2V0SW5kZXhlZERC
RGF0YWJhc2VEaXJlY3Rvcnk6ZmlsZVVSTF07CisgICAgfSk7CisgICAgc2hvdWxkVGhyb3dFeGNl
cHRpb25XaGVuVXNlZChbJl0geworICAgICAgICBbY29uZmlndXJhdGlvbiBfc2V0V2ViU1FMRGF0
YWJhc2VEaXJlY3Rvcnk6ZmlsZVVSTF07CisgICAgfSk7CisgICAgc2hvdWxkVGhyb3dFeGNlcHRp
b25XaGVuVXNlZChbJl0geworICAgICAgICBbY29uZmlndXJhdGlvbiBfc2V0Q29va2llU3RvcmFn
ZUZpbGU6ZmlsZVVSTF07CisgICAgfSk7CisgICAgc2hvdWxkVGhyb3dFeGNlcHRpb25XaGVuVXNl
ZChbJl0geworICAgICAgICBbY29uZmlndXJhdGlvbiBfc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RpcmVjdG9yeTpmaWxlVVJMXTsKKyAgICB9KTsKKyAgICBzaG91bGRUaHJvd0V4Y2VwdGlvbldo
ZW5Vc2VkKFsmXSB7CisgICAgICAgIFtjb25maWd1cmF0aW9uIF9zZXRDYWNoZVN0b3JhZ2VEaXJl
Y3Rvcnk6ZmlsZVVSTF07CisgICAgfSk7CisgICAgc2hvdWxkVGhyb3dFeGNlcHRpb25XaGVuVXNl
ZChbJl0geworICAgICAgICBbY29uZmlndXJhdGlvbiBfc2V0U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkRpcmVjdG9yeTpmaWxlVVJMXTsKKyAgICB9KTsKKworICAgIC8vIFRoZXNlIHByb3BlcnRp
ZXMgc2hvdWxkbid0IHRocm93IGV4Y2VwdGlvbnMgd2hlbiBzZXQgb24gYSBub24tcGVyc2lzdGVu
dCBkYXRhIHN0b3JlLgorICAgIFtjb25maWd1cmF0aW9uIHNldERldmljZU1hbmFnZW1lbnRSZXN0
cmljdGlvbnNFbmFibGVkOllFU107CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0SFRUUFByb3h5OltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL3d3dy5hcHBsZS5jb20vIl1dOworICAgIFtjb25m
aWd1cmF0aW9uIHNldEhUVFBTUHJveHk6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL3d3
dy5hcHBsZS5jb20vIl1dOworICAgIFtjb25maWd1cmF0aW9uIHNldFNvdXJjZUFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllcjpAImNvbS5hcHBsZS5TYWZhcmkiXTsKKyAgICBbY29uZmlndXJhdGlv
biBzZXRTb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI6QCJjb20uYXBwbGUuU2Fm
YXJpIl07Cit9CisKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0KaW5k
ZXggNzA1ZmM0MjRhYmQyNjRjMTM4NjE2MDE4MDBiMmU3YjBjMWUxNWZkNy4uNjBlYmFkNGM3Mzhi
ZWQ4ZDBhM2ExNjA2ODA2MjliNzBjYjc0ZmFkNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3Jl
Q3VzdG9tUGF0aHMubW0KQEAgLTQyOSw2ICs0MjksNDggQEAgVEVTVChXZWJLaXQsIFdlYnNpdGVE
YXRhU3RvcmVFcGhlbWVyYWwpCiAgICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBkZWZh
dWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0ZpbGVQYXRoLnBhdGhdKTsKIH0KIAorVEVTVChXZWJLaXQsIFdlYnNpdGVEYXRhU3RvcmVFcGhl
bWVyYWxWaWFDb25maWd1cmF0aW9uKQoreworICAgIFJldGFpblB0cjxXZWJzaXRlRGF0YVN0b3Jl
Q3VzdG9tUGF0aHNNZXNzYWdlSGFuZGxlcj4gaGFuZGxlciA9IGFkb3B0TlMoW1tXZWJzaXRlRGF0
YVN0b3JlQ3VzdG9tUGF0aHNNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIFJldGFp
blB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24g
dXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdl
dCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJdOworCisgICAgTlNVUkwgKmRlZmF1bHRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dl
YktpdC9UZXN0V2ViS2l0QVBJL1dlYnNpdGVEYXRhL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MvIiBz
dHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXSBpc0RpcmVjdG9yeTpZRVNdOworCisgICAgW1tO
U0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSByZW1vdmVJdGVtQXRVUkw6ZGVmYXVsdFJlc291
cmNlTG9hZFN0YXRpc3RpY3NQYXRoIGVycm9yOm5pbF07CisKKyAgICBFWFBFQ1RfRkFMU0UoW1tO
U0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmRlZmF1bHRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzUGF0aC5wYXRoXSk7CisKKyAgICBSZXRhaW5QdHI8X1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IGRhdGFTdG9yZUNvbmZpZ3VyYXRpb24gPSBhZG9wdE5T
KFtbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRXaXRoTm9uUGVy
c2lzdGVudENvbmZpZ3VyYXRpb25dKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVE
YXRhU3RvcmUgPSBbW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3Vy
YXRpb246ZGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0gYXV0b3JlbGVhc2VdOworICAgIFtj
b25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkOllFU107CisKKyAgICAvLyBXZSBleHBlY3QgdGhlIGRpcmVjdG9yeSB0byBi
ZSBjcmVhdGVkIGJ5IHN0YXJ0aW5nIHVwIHRoZSBkYXRhIHN0b3JlIG1hY2hpbmVyeSwgYnV0IG5v
dCB0aGUgZGF0YSBmaWxlLgorICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0
TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Bh
dGgucGF0aF0pOworCisgICAgTlNVUkwgKmRlZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmls
ZVBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdl
YktpdEFQSS9XZWJzaXRlRGF0YS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Z1bGxfYnJvd3Npbmdf
c2Vzc2lvbl9yZXNvdXJjZUxvZy5wbGlzdCIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF0g
aXNEaXJlY3Rvcnk6Tk9dOworICAgIEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVs
dE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZGVmYXVsdFJlc291cmNlTG9hZFN0YXRpc3RpY3NG
aWxlUGF0aC5wYXRoXSk7CisKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRv
cHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgw
MCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIE5TVVJM
UmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIldlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRo
cyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworCisgICAgW1tb
d2ViVmlldyBjb25maWd1cmF0aW9uXSBwcm9jZXNzUG9vbF0gX3N5bmNOZXR3b3JrUHJvY2Vzc0Nv
b2tpZXNdOworCisgICAgLy8gRm9yY2libHkgc2h1dCBkb3duIGV2ZXJ5dGhpbmcgb2YgV2ViS2l0
IHRoYXQgd2UgY2FuLgorICAgIGF1dG8gcGlkID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlm
aWVyXTsKKyAgICBpZiAocGlkKQorICAgICAgICBraWxsKHBpZCwgU0lHS0lMTCk7CisKKyAgICB3
ZWJWaWV3ID0gbmlsOworICAgIGhhbmRsZXIgPSBuaWw7CisgICAgY29uZmlndXJhdGlvbiA9IG5p
bDsKKworICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmls
ZUV4aXN0c0F0UGF0aDpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhdGgucGF0aF0pOwor
ICAgIEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlz
dHNBdFBhdGg6ZGVmYXVsdFJlc291cmNlTG9hZFN0YXRpc3RpY3NGaWxlUGF0aC5wYXRoXSk7Cit9
CisKIFRFU1QoV2ViS2l0LCBEb0xvYWRXaXRoTm9uRGVmYXVsdERhdGFTdG9yZUFmdGVyVGVybWlu
YXRpbmdOZXR3b3JrUHJvY2VzcykKIHsKICAgICBhdXRvIHdlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZp
Z2F0aW9uRGVsZWdhdGUuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRp
b25EZWxlZ2F0ZS5oCmluZGV4IGVmZmJkNDk5MTViMThhNDQ5MjQ1NDZjZmY2MDliNGNjOTk0NmE0
NDUuLjRjNzJhMjZlZWJiMGIxZGY0MWVjNjYxYTYyY2U5NzZlZGE2MzdlYzkgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oCkBAIC0z
NCw2ICszNCw3IEBACiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZEZhaWxQ
cm92aXNpb25hbE5hdmlnYXRpb24pKFdLV2ViVmlldyAqLCBXS05hdmlnYXRpb24gKiwgTlNFcnJv
ciAqKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkU3RhcnRQcm92aXNp
b25hbE5hdmlnYXRpb24pKFdLV2ViVmlldyAqLCBXS05hdmlnYXRpb24gKik7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZENvbW1pdE5hdmlnYXRpb24pKFdLV2ViVmlldyAq
LCBXS05hdmlnYXRpb24gKik7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRp
ZEZhaWxOYXZpZ2F0aW9uKShXS1dlYlZpZXcgKiwgV0tOYXZpZ2F0aW9uICosIE5TRXJyb3IgKik7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZEZpbmlzaE5hdmlnYXRpb24p
KFdLV2ViVmlldyAqLCBXS05hdmlnYXRpb24gKik7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSkgdm9pZCAoXnJlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlKShXS1dlYlZpZXcgKiwgX1dLUmVu
ZGVyaW5nUHJvZ3Jlc3NFdmVudHMpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQg
KF53ZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZSkoV0tXZWJWaWV3ICopOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tCmluZGV4
IDc0MmFjN2E4MTJjYWNjNzBlZDI4ZjIwMDVhNDIzZjgzYTVhNWM0ZmUuLjllMDk3MmFjYmFlYjMw
M2RlNWNlMWE5MjdiMmE2ZmVjNjgyZjJjMjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUubW0KQEAgLTU3LDYgKzU3LDEyIEBAIC0g
KHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRGYWlsUHJvdmlzaW9uYWxOYXZp
Z2F0aW9uOihXS05hdmlnYXRpb24KICAgICAgICAgX2RpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRp
b24od2ViVmlldywgbmF2aWdhdGlvbiwgZXJyb3IpOwogfQogCistICh2b2lkKXdlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgZGlkRmFpbE5hdmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmln
YXRpb24gd2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IKK3sKKyAgICBpZiAoX2RpZEZhaWxOYXZp
Z2F0aW9uKQorICAgICAgICBfZGlkRmFpbE5hdmlnYXRpb24od2ViVmlldywgbmF2aWdhdGlvbiwg
ZXJyb3IpOworfQorCiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmlu
aXNoTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbgogewogICAgIGlmIChfZGlk
RmluaXNoTmF2aWdhdGlvbikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370977</attachid>
            <date>2019-05-30 13:51:16 -0700</date>
            <delta_ts>2019-05-30 18:33:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198318-20190530135115.patch</filename>
            <type>text/plain</type>
            <size>78537</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDgxMGUxOGQ0ZDkyMGFlYmYxZWVjYWM1
OWZmY2U5YjA0NmFmOTEyM2QuLjU4OWRmNTA2MzM2YzhhNGM4YzQxNjI2OWJkNDc4N2QxNGMwOGE3
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDUtMzAgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgT3B0aW9uYWxseSByZXNwZWN0IGRldmljZSBt
YW5hZ2VtZW50IHJlc3RyaWN0aW9ucyB3aGVuIGxvYWRpbmcgZnJvbSB0aGUgbmV0d29yaworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MzE4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NDI2MzgwNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAgICAgICBBZGQgYSBI
QVZFIGZsYWcgZm9yIERldmljZU1hbmFnZW1lbnQuZnJhbWV3b3JrLgorICAgICAgICBJdCBkb2Vz
IGV4aXN0IGluIHRoZSBzaW11bGF0b3IsIGJ1dCBkb2VzIG5vdCBmdW5jdGlvbjsgcHJldGVuZCBp
dCBkb2Vzbid0IGV4aXN0LgorCiAyMDE5LTA1LTI5ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDU4NTcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYjljYWNlZWVjNjE2ZjBmNzgzNjIyODU2NjQzN2M0MTRmNmM2YTUxOC4uOWU5
MjE2YzdhZmFhNWMyMDllMjQ5ZmQzMDAwZjg0ZDNkNWRlYWQxNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDE5LTA1LTMwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgorCisgICAgICAgIE9wdGlvbmFsbHkgcmVzcGVjdCBkZXZpY2UgbWFuYWdlbWVudCByZXN0
cmljdGlvbnMgd2hlbiBsb2FkaW5nIGZyb20gdGhlIG5ldHdvcmsKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODMxOAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDQyNjM4MDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorCiAyMDE5LTA1LTI5ICBS
eWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIyNDU4NTcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE1ZDE5OTc0YmU3Nzk3ZTNmNzZhNDc4
MzYxN2NjZGU0Y2U5Njk2YWMuLmZiNmIxMDdhYjFiZTZjMTI0ZGMzNDdhNGYzNTAyZThhMTU4ODE1
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE2IEBACisyMDE5LTA1LTMwICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIE9wdGlvbmFsbHkgcmVzcGVjdCBk
ZXZpY2UgbWFuYWdlbWVudCByZXN0cmljdGlvbnMgd2hlbiBsb2FkaW5nIGZyb20gdGhlIG5ldHdv
cmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODMx
OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQyNjM4MDY+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9OZXR3b3JrLWlP
Uy5lbnRpdGxlbWVudHM6CisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3Mv
Y29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiOgorICAgICAgICBBZGQgc29tZSBlbnRpdGxl
bWVudHMgYW5kIHNhbmRib3ggaG9sZXMgcmVxdWlyZWQgdG8gdGFsayB0byBEZXZpY2VNYW5hZ2Vt
ZW50LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVj
a2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjp3
YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6Ondhc0Jsb2NrZWRCeVJl
c3RyaWN0aW9ucyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBp
bmdMb2FkOjp3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1BpbmdMb2FkLmg6CisgICAgICAgICogU2hhcmVkL1dlYkVycm9ycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ondhc0Jsb2NrZWRCeVJlc3RyaWN0aW9uc0Vycm9yKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViRXJyb3JzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNr
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OmZhaWx1cmVUaW1lckZpcmVkKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L0FQSUVycm9yLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYuY3BwOgorICAg
ICAgICAoV0tFcnJvckdldEVycm9yQ29kZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLRXJy
b3JSZWYuaDoKKyAgICAgICAgUGx1bWIgYSBuZXcgZXJyb3IgZm9yIGxvYWRzIHRoYXQgYXJlIGJs
b2NrZWQgYnkgZGV2aWNlIG1hbmFnZW1lbnQgcmVzdHJpY3Rpb25zLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6
CisgICAgICAgIFBsdW1iIGEgbmV3IGJpdCB0aGF0IGluZGljYXRlcyB3aGV0aGVyIGEgbG9hZCBp
cyBmb3IgdGhlIG1haW4gcmVzb3VyY2Ugb2YgYSBmcmFtZS4KKyAgICAgICAgV2Ugd2lsbCBvbmx5
IGFwcGx5IGRldmljZSBtYW5hZ2VtZW50IHJlc3RyaWN0aW9ucyB0byBtYWluIHJlc291cmNlcy4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRl
cnM6OnByaXZhdGVTZXNzaW9uUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAg
ICBQbHVtYiBhIG5ldyBiaXQgaW5kaWNhdGluZyB3aGV0aGVyIGEgbmV0d29yayBzZXNzaW9uIHNo
b3VsZCByZXNwZWN0IGRldmljZSBtYW5nZW1lbnQKKyAgICAgICAgcmVzdHJpY3Rpb25zLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29h
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6OnJlc3VtZSk6CisgICAg
ICAgIERlZmVyIHJlc3VtaW5nIHRoZSBsb2FkIHVudGlsIHdlIGhhdmUgYSByZXBseSBmcm9tIERl
dmljZU1hbmFnZW1lbnQgZnJhbWV3b3JrCisgICAgICAgIGFib3V0IHdoZXRoZXIgdGhlIFVSTCBz
aG91bGQgYmUgYmxvY2tlZC4gSWYgaXQgaXMgYmxvY2tlZCwgaW5zdGVhZCBmYWlsIHRoZSBsb2Fk
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06
CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSBVUkxTZXNzaW9uOmRhdGFUYXNr
OmRpZFJlY2VpdmVSZXNwb25zZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmRldmljZU1hbmFnZW1lbnRQb2xpY3lNb25pdG9y
KToKKyAgICAgICAgQ2FjaGUgYSBzaW5nbGUgRE1GV2Vic2l0ZVBvbGljeU1vbml0b3IgaW5zdGFu
Y2UgcGVyIE5ldHdvcmtTZXNzaW9uLgorCisgICAgICAgIAorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChBUEk6OldlYnNpdGVEYXRhU3Rv
cmU6OmRlZmF1bHREYXRhU3RvcmVDb25maWd1cmF0aW9uKToKKyAgICAgICAgVGhlIGRlZmF1bHQg
ZGF0YSBzdG9yZSBpcyBwZXJzaXN0ZW50OyBpdHMgY29uZmlndXJhdGlvbiBzaG91bGQgcmVmbGVj
dCB0aGF0LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1t
OgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZv
clNlcnZpY2VXb3JrZXI6XSk6IFN0eWxlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBf
aW5pdFdpdGhDb25maWd1cmF0aW9uOl0pOgorICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIGNy
ZWF0ZSBhIG5vbi1wZXJzaXN0ZW50IFdLV2Vic2l0ZURhdGFTdG9yZSBmcm9tIGEKKyAgICAgICAg
Y29uZmlndXJhdGlvbiwgYW5kIGVuc3VyZSB0aGF0IGl0IGRvZXMgbm90IGhhdmUgYW55IHBlcnNp
c3RlbnQgc3RvcmFnZSBkaXJlY3RvcmllcyBzZXQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbToKKyAg
ICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gaW5pdF0pOgorICAgICAg
ICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBpbml0V2l0aE5vblBlcnNpc3Rl
bnRDb25maWd1cmF0aW9uXSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uIGlzUGVyc2lzdGVudF0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbiBfc2V0V2ViU3RvcmFnZURpcmVjdG9yeTpdKToKKyAgICAgICAgKC1bX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gX3NldEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5
Ol0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBfc2V0V2Vi
U1FMRGF0YWJhc2VEaXJlY3Rvcnk6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uIF9zZXRDb29raWVTdG9yYWdlRmlsZTpdKToKKyAgICAgICAgKC1bX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3Rvcnk6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIF9z
ZXRDYWNoZVN0b3JhZ2VEaXJlY3Rvcnk6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uIF9zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5Ol0p
OgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBkZXZpY2VNYW5h
Z2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZF0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbiBzZXREZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDpd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbjo6Y29weSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uOjppc1BlcnNpc3RlbnQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0UGVyc2lzdGVudCk6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpwZXJPcmlnaW5TdG9yYWdlUXVvdGEg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6
ZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0RGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbjo6cGVyT3JpZ2luU3RvcmFnZVF1b3RhKTogRGVsZXRlZC4KKyAgICAgICAgTWFr
ZSBpdCBwb3NzaWJsZSB0byBjcmVhdGUgYSBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
biB0aGF0IHdpbGwgY3JlYXRlIGEgbm9uLXBlcnNpc3RlbnQKKyAgICAgICAgZGF0YSBzdG9yZS4g
QWRkIGEgYml0IHRvIF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHRoYXQgY29udHJv
bHMgd2hldGhlciB0aGUgbmV0d29yayAKKyAgICAgICAgc2Vzc2lvbiB3aWxsIHJlc3BlY3QgZGV2
aWNlIG1hbmFnZW1lbnQgcmVzdHJpY3Rpb25zLgorCisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L0RldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oOgorICAgICAgICAqIFdlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9EZXZpY2VNYW5hZ2VtZW50U29mdExpbmsubW06CisgICAgICAgICogV2ViS2l0
L1BsYXRmb3JtL3NwaS9Db2NvYS9EZXZpY2VNYW5hZ2VtZW50U1BJLmg6CisgICAgICAgIEFkZCBz
b21lIHNvZnQtbGlua2luZyBhbmQgU1BJIGhlYWRlcnMuCisKIDIwMTktMDUtMjkgIFJ5YW4gSGFk
ZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjI0NTg1Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDQ0N2JiMThhOGYwMjhjMjk1MDFkMzkzMWZi
OTU1N2E4ZDUzYTI2MDcuLjMzMmViM2U3YThjMjIzZDdjMDkxYjZlYWJmYWExZDhhOGJjMjRjOGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm0uaApAQCAtMTU0Nyw2ICsxNTQ3LDEwIEBACiAjZGVmaW5lIEhBVkVfUk9VVEVf
U0hBUklOR19QT0xJQ1lfTE9OR19GT1JNX1ZJREVPIDEKICNlbmRpZgogCisjaWYgKFBMQVRGT1JN
KElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwICYmICFQ
TEFURk9STShJT1NfU0lNVUxBVE9SKSkKKyNkZWZpbmUgSEFWRV9ERVZJQ0VfTUFOQUdFTUVOVCAx
CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9B
TExPV0VEIDwgMTAxNTAwCiAjZGVmaW5lIFVTRV9SRUFMUEFUSF9GT1JfRExPUEVOX1BSRUZMSUdI
VCAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXph
YmxlLnN0cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdz
CmluZGV4IGYzNTk3YTM4ZmNhMzRjODFjZGU2NzU4ZTEzNjQzNjhmNTc1N2FmOTEuLmEzODEwNjk3
MzYyMzFlYzdlOGQ3Y2ViN2VhZWM0ZjI2MzBjMGZjMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNvcmUvZW4u
bHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpAQCAtODAyLDYgKzgwMiw5IEBACiAvKiBXZWJLaXRF
cnJvckZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRGaWx0ZXIgZGVzY3JpcHRpb24gKi8KICJUaGUg
VVJMIHdhcyBibG9ja2VkIGJ5IGEgY29udGVudCBmaWx0ZXIiID0gIlRoZSBVUkwgd2FzIGJsb2Nr
ZWQgYnkgYSBjb250ZW50IGZpbHRlciI7CiAKKy8qIFdlYktpdEVycm9yRnJhbWVMb2FkQmxvY2tl
ZEJ5UmVzdHJpY3Rpb25zIGRlc2NyaXB0aW9uICovCisiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBk
ZXZpY2UgcmVzdHJpY3Rpb25zIiA9ICJUaGUgVVJMIHdhcyBibG9ja2VkIGJ5IGRldmljZSByZXN0
cmljdGlvbnMiOworCiAvKiBXS0Vycm9yV2ViVmlld0ludmFsaWRhdGVkIGRlc2NyaXB0aW9uICov
CiAiVGhlIFdLV2ViVmlldyB3YXMgaW52YWxpZGF0ZWQiID0gIlRoZSBXS1dlYlZpZXcgd2FzIGlu
dmFsaWRhdGVkIjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9O
ZXR3b3JrLWlPUy5lbnRpdGxlbWVudHMgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL05l
dHdvcmstaU9TLmVudGl0bGVtZW50cwppbmRleCAyZWU2OTY2MzhmNjcyZTYyMzdkYTBiNzQ3OGFm
ZTk5MzZiNDg4NjNhLi41M2RmZDU2MzU0MDk5ZWYwMzA5MWQxZDVjNTk0YjNmMTczYjI4NTkxIDEw
MDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDI0NAp6Y21YQGFAfHtVNHNVUm5feFd2SFZJd0tQ
XjNvOUV0Mkx+NGk1WDF7O1BnWjhzd3VsI3lPVX0+TE9EcmhKTiEyU1QKeiR9Q0dQTiE4MHUmQ01e
V0VHfGhiREpfbHs1RytuakVKO2V1RGJYemAlMV9KOE5kPTBATyNDUnI5NTB8YmM/UDRWCno1fEUy
Jk1vTW1xVU98M05XXiFlYGZZIXV+VDR8aHwzJVRQM3EhQjheUTxKPGlPWjVDd09VbTwkdk5RQTJJ
ZX56SQp4Z0YmM1psXzhDeGllVjxoUUhDZHNme2EzcCFpPUpmIyo4TTZyaV45YFY4RngocCYxMEFH
P1pkQTJMUXIqSzJyYnkKCmxpdGVyYWwgNTc4CnpjbWEpKC0lRzxWNVhZYWx6YXIrbmlOMSsrOWxB
e3pqIztvR0s0IzUxTCg/V0MqVlg+X1VibGpaIWhBaXhLUiRQdAp6Jk9kNik0aUtWbyY1VTEoT1V8
R3ZvaUAjVyMtRUcoPGVKYTNYP240SVRva1lRaWd7fXl2aSRqT3Z0QlRzTk98a00KejF1MilzbEk1
SEFRXjY9aCVHSClMeypMSHhyMGx2KnM2aSE0Un1hRHteV1ohTD5eQnNha1U/bkZvTjcrI0tYN1FP
CnpPXk1sYmwyKmBYNmZ1VT90d248PlIpaXtJOX0jTTVRODd8NUVmWjVZPSpmbm0xXkxfV1JiTkFj
TFJwKXJ2Vj9mdgp6NXpJaiQydldQWSE2PGZacWIoUjZ5Pm9BYmFrZz57c0cpWCZoIXdXfkVeUG9p
N2IrMjVTcGc7KkViSXk5QDUlQFkKeWNWSUVgZnhzKyR3V3R1KGFGdDBLRiVhXiVnVEJELSFKeWNs
aWpNMXk4YWtwSmpqMjMrQmJDUXJXeiRhcTBtM3VACgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwCmlu
ZGV4IDJiMGExYzM3OWVjZDg2NjJiMDA4MWY0ZGIyZWU1MTc5MDVhOTU1YzQuLjk0ZjEyNzcyODJi
OTUzMjFmNjY2NWNkNGZiNjZiNzkyZGM4MzQ5YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAK
QEAgLTE2Myw2ICsxNjMsMTIgQEAgdm9pZCBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OmNh
bm5vdFNob3dVUkwoKQogICAgIG1fY29tcGxldGlvbkNhbGxiYWNrKFJlc291cmNlRXJyb3IgeyBl
cnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCBtX3BhcmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0
LnVybCgpLCAiUHJlZmxpZ2h0IHJlc3BvbnNlIHdhcyBibG9ja2VkIl9zLCBSZXNvdXJjZUVycm9y
OjpUeXBlOjpBY2Nlc3NDb250cm9sIH0pOwogfQogCit2b2lkIE5ldHdvcmtDT1JTUHJlZmxpZ2h0
Q2hlY2tlcjo6d2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zKCkKK3sKKyAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJ3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMiKTsKKyAgICBtX2NvbXBsZXRpb25D
YWxsYmFjayhSZXNvdXJjZUVycm9yIHsgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgbV9w
YXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdC51cmwoKSwgIlByZWZsaWdodCByZXNwb25zZSB3YXMg
YmxvY2tlZCJfcywgUmVzb3VyY2VFcnJvcjo6VHlwZTo6QWNjZXNzQ29udHJvbCB9KTsKK30KKwog
TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24gTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2Vy
Ojp0YWtlSW5mb3JtYXRpb24oKQogewogICAgIEFTU0VSVChtX3Nob3VsZENhcHR1cmVFeHRyYU5l
dHdvcmtMb2FkTWV0cmljcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaAppbmRleCA0ZDNkMTY5ZjZhZjlm
NDNiNzYxMDgxY2ZiZmU2MGFmYzVhMzkzZmQ0Li44NzI0OGYwZTBlMTI4NDkzYTU1NmU1Y2ZiMWMz
NWJkNTM0ZDkxZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmgKQEAgLTcyLDYgKzcyLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGRpZFNlbmREYXRhKHVpbnQ2NF90IHRvdGFsQnl0ZXNTZW50LCB1aW50
NjRfdCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1NlbmQpIGZpbmFsOwogICAgIHZvaWQgd2FzQmxvY2tl
ZCgpIGZpbmFsOwogICAgIHZvaWQgY2Fubm90U2hvd1VSTCgpIGZpbmFsOworICAgIHZvaWQgd2Fz
QmxvY2tlZEJ5UmVzdHJpY3Rpb25zKCkgZmluYWw7CiAKICAgICBQYXJhbWV0ZXJzIG1fcGFyYW1l
dGVyczsKICAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nlc3M7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKaW5kZXggZjFm
MDExMTVkMjMxYWFiZDdkZTBlZDAwYzA3ODRmMTg4ZjA5Y2M1NC4uYmNiYWU5ZDMxZmJmOGU3NjBl
NGQ2ZmY2NjAwMTI4NmQwMjU0YWEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcApAQCAtNTAsNyArNTAsNyBAQCBSZWY8TmV0d29ya0Rh
dGFUYXNrPiBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwg
TmV0d29ya0RhdAogewogICAgIEFTU0VSVCghcGFyYW1ldGVycy5yZXF1ZXN0LnVybCgpLnByb3Rv
Y29sSXNCbG9iKCkpOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHJldHVybiBOZXR3b3JrRGF0
YVRhc2tDb2NvYTo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBw
YXJhbWV0ZXJzLndlYkZyYW1lSUQsIHBhcmFtZXRlcnMud2ViUGFnZUlELCBwYXJhbWV0ZXJzLnN0
b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwg
cGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLnNob3VsZFBy
ZWNvbm5lY3RPbmx5LCBwYXJhbWV0ZXJzLmlzTWFpbkZyYW1lTmF2aWdhdGlvbiwgcGFyYW1ldGVy
cy5uZXR3b3JrQWN0aXZpdHlUcmFja2VyKTsKKyAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQ29j
b2E6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVy
cy53ZWJGcmFtZUlELCBwYXJhbWV0ZXJzLndlYlBhZ2VJRCwgcGFyYW1ldGVycy5zdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRl
cnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJS
ZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0
T25seSwgcGFyYW1ldGVycy5pc01haW5GcmFtZU5hdmlnYXRpb24sIHBhcmFtZXRlcnMuaXNNYWlu
UmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIHBhcmFtZXRlcnMubmV0d29ya0FjdGl2aXR5
VHJhY2tlcik7CiAjZW5kaWYKICNpZiBVU0UoU09VUCkKICAgICByZXR1cm4gTmV0d29ya0RhdGFU
YXNrU291cDo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJh
bWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmlu
Z1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgcGFyYW1l
dGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJz
LmlzTWFpbkZyYW1lTmF2aWdhdGlvbik7CkBAIC0xMzMsNiArMTMzLDExIEBAIHZvaWQgTmV0d29y
a0RhdGFUYXNrOjpmYWlsdXJlVGltZXJGaXJlZCgpCiAgICAgICAgIGlmIChtX2NsaWVudCkKICAg
ICAgICAgICAgIG1fY2xpZW50LT5jYW5ub3RTaG93VVJMKCk7CiAgICAgICAgIHJldHVybjsKKyAg
ICBjYXNlIFJlc3RyaWN0ZWRVUkxGYWlsdXJlOgorICAgICAgICBtX3NjaGVkdWxlZEZhaWx1cmVU
eXBlID0gTm9GYWlsdXJlOworICAgICAgICBpZiAobV9jbGllbnQpCisgICAgICAgICAgICBtX2Ns
aWVudC0+d2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zKCk7CisgICAgICAgIHJldHVybjsKICAgICBj
YXNlIE5vRmFpbHVyZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJy
ZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0
YVRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgK
aW5kZXggY2U3YjJhZDUwNjM2NWE0MzI4YmE1NzNhZjE2MTcwOTYwYmFiZmJjYS4uOWY1ZmUxZjRi
MzgzOTY0OTBjY2I0ZjQzMTVjNDJlMTJiZWI2N2QwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkU2VuZERhdGEodWludDY0X3QgdG90YWxCeXRlc1NlbnQsIHVp
bnQ2NF90IHRvdGFsQnl0ZXNFeHBlY3RlZFRvU2VuZCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB3
YXNCbG9ja2VkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjYW5ub3RTaG93VVJMKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCB3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMoKSA9IDA7CiAKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIApAQCAtMTM0LDcgKzEzNSw4IEBAIHByb3RlY3RlZDoKICAgICBl
bnVtIEZhaWx1cmVUeXBlIHsKICAgICAgICAgTm9GYWlsdXJlLAogICAgICAgICBCbG9ja2VkRmFp
bHVyZSwKLSAgICAgICAgSW52YWxpZFVSTEZhaWx1cmUKKyAgICAgICAgSW52YWxpZFVSTEZhaWx1
cmUsCisgICAgICAgIFJlc3RyaWN0ZWRVUkxGYWlsdXJlCiAgICAgfTsKICAgICB2b2lkIGZhaWx1
cmVUaW1lckZpcmVkKCk7CiAgICAgdm9pZCBzY2hlZHVsZUZhaWx1cmUoRmFpbHVyZVR5cGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAppbmRleCA3MzVm
MzY5YTFjYTA2YzI3YzYxYTgzMGU2ODE3NzI5ODIzOWRjNmJjLi45MTA3ZmVjMWUzNGRiNDQ4ODE2
MjI4Njg2MjJjOGZiZWI1YjM4ODNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkLmNwcApAQCAtMjc2LDYgKzI3NiwxMCBAQCB2b2lkIE5ldHdvcmtMb2FkOjpj
YW5ub3RTaG93VVJMKCkKICAgICBtX2NsaWVudC5nZXQoKS5kaWRGYWlsTG9hZGluZyhjYW5ub3RT
aG93VVJMRXJyb3IobV9jdXJyZW50UmVxdWVzdCkpOwogfQogCit2b2lkIE5ldHdvcmtMb2FkOjp3
YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMoKQoreworICAgIG1fY2xpZW50LmdldCgpLmRpZEZhaWxM
b2FkaW5nKHdhc0Jsb2NrZWRCeVJlc3RyaWN0aW9uc0Vycm9yKG1fY3VycmVudFJlcXVlc3QpKTsK
K30KIAogU3RyaW5nIE5ldHdvcmtMb2FkOjpkZXNjcmlwdGlvbigpIGNvbnN0CiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgKaW5kZXggYTVlYmFiNjBmNzJlZWEz
ZjcxOTFhNTU4NmUzYTYyMGMyNGYxMDZjYy4uZDQxNWQwNGEyOWJmMjNmN2I1Y2NmMzNiODQ4MDQw
NTk4MzY3NGI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTG9hZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQu
aApAQCAtODAsNiArODAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkU2VuZERhdGEodWludDY0
X3QgdG90YWxCeXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNFeHBlY3RlZFRvU2VuZCkgZmlu
YWw7CiAgICAgdm9pZCB3YXNCbG9ja2VkKCkgZmluYWw7CiAgICAgdm9pZCBjYW5ub3RTaG93VVJM
KCkgZmluYWw7CisgICAgdm9pZCB3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMoKSBmaW5hbDsKIAog
ICAgIHZvaWQgbm90aWZ5RGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmJiwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmKTsKICAgICB2b2lkIHRocm90dGxlRGVs
YXlDb21wbGV0ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkUGFyYW1ldGVycy5oCmluZGV4IDg5NzMwY2Y5ZmQyNjk5YmNmZDMyZGRjMzhlZjhj
ZTAzNzQ2YTMwMzQuLmNmYjJjNzVjMGNkNzkyYTAwYTUwNWM4MGI2OThjMTYwYTgwMjEzNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFt
ZXRlcnMuaApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0IHsgdHJ1ZSB9OwogICAgIGJvb2wgbmVlZHNDZXJ0
aWZpY2F0ZUluZm8geyBmYWxzZSB9OwogICAgIGJvb2wgaXNNYWluRnJhbWVOYXZpZ2F0aW9uIHsg
ZmFsc2UgfTsKKyAgICBib29sIGlzTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lIHsg
ZmFsc2UgfTsKICAgICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5j
ZT4+IGJsb2JGaWxlUmVmZXJlbmNlczsKICAgICBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25u
ZWN0T25seSB7IFByZWNvbm5lY3RPbmx5OjpObyB9OwogICAgIE9wdGlvbmFsPE5ldHdvcmtBY3Rp
dml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMuY3BwCmluZGV4IDMzY2RjNGQxN2RiZTJlMDg2NmUzNjEyZWYyMjc2MWEzODIzODA1OWIuLjBl
NDQ1OTRiODllNjY2NDg5YWZmMTI4ZjhjNTFjMGM2YzFhY2UyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMuY3BwCkBAIC03OCw2ICs3OCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rl
ciA8PCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0OwogICAgIGVuY29k
ZXIgPDwgbmVlZHNDZXJ0aWZpY2F0ZUluZm87CiAgICAgZW5jb2RlciA8PCBpc01haW5GcmFtZU5h
dmlnYXRpb247CisgICAgZW5jb2RlciA8PCBpc01haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlG
cmFtZTsKICAgICBlbmNvZGVyIDw8IG1heGltdW1CdWZmZXJpbmdUaW1lOwogCiAgICAgZW5jb2Rl
ciA8PCBzdGF0aWNfY2FzdDxib29sPihzb3VyY2VPcmlnaW4pOwpAQCAtMTY5LDYgKzE3MCw4IEBA
IGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIsIE5ldHdvcmtSZXNvdXJjCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc01haW5GcmFtZU5hdmlnYXRpb24pKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNNYWluUmVzb3Vy
Y2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQubWF4aW11bUJ1ZmZlcmluZ1RpbWUpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMjZi
ZjE5ZDlhY2NiOTkzYjBhZjUzMTliMTFiMjc1YzFlMjNlNDg3Mi4uMDU0MDI5YmI2NWE0YWMwYWY3
MDQyN2E2MmYwOWM0ZjJiMjBlNTUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5j
cHAKQEAgLTUwLDcgKzUwLDcgQEAgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OnByaXZhdGVTZXNzaW8KICNpZiBVU0UoQ1VS
TCkKICAgICAgICAgLCB7IH0sIHsgfQogI2VuZGlmCi0gICAgICAgICwgeyB9LCB7IH0sIGZhbHNl
LCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfQorICAgICAgICAsIHsgfSwgeyB9LCBmYWxzZSwgeyB9
LCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfQogICAgIH07CiB9CiAKQEAgLTg0LDcgKzg0LDkgQEAg
dm9pZCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGVuYWJsZVJlc291cmNlTG9hZFN0YXRp
c3RpY3NEZWJ1Z01vZGU7CiAgICAgZW5jb2RlciA8PCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFu
dWFsUHJldmFsZW50UmVzb3VyY2U7CiAKLSAgICBlbmNvZGVyIDw8IGxvY2FsU3RvcmFnZURpcmVj
dG9yeSA8PCAgbG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGVuY29k
ZXIgPDwgbG9jYWxTdG9yYWdlRGlyZWN0b3J5IDw8IGxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVu
c2lvbkhhbmRsZTsKKworICAgIGVuY29kZXIgPDwgZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9u
c0VuYWJsZWQ7CiB9CiAKIE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
PiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlcikKQEAgLTIwOCw2ICsyMTAsMTEgQEAgT3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVh
dGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWMKICAg
ICBpZiAoIWxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKIAorICAgIE9wdGlvbmFsPGJvb2w+IGRldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNFbmFibGVkOworICAgIGRlY29kZXIgPj4gZGV2aWNlTWFuYWdlbWVudFJlc3Ry
aWN0aW9uc0VuYWJsZWQ7CisgICAgaWYgKCFkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5h
YmxlZCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwogICAgIHJldHVybiB7ewogICAg
ICAgICBzZXNzaW9uSUQKICAgICAgICAgLCBXVEZNb3ZlKCpib3VuZEludGVyZmFjZUlkZW50aWZp
ZXIpCkBAIC0yMzUsNiArMjQyLDcgQEAgT3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBh
cmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWMKICAgICAgICAg
LCBXVEZNb3ZlKCplbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKQogICAgICAgICAsIFdURk1v
dmUoKnNob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MpCiAgICAg
ICAgICwgV1RGTW92ZSgqZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSkKKyAg
ICAgICAgLCBXVEZNb3ZlKCpkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCkKICAg
ICAgICAgLCBXVEZNb3ZlKCpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVz
b3VyY2UpCiAgICAgICAgICwgV1RGTW92ZSgqbG9jYWxTdG9yYWdlRGlyZWN0b3J5KQogICAgICAg
ICAsIFdURk1vdmUoKmxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlv
blBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA2ZmMwN2FlZDI0YjQwYTY3ZGFmNGMxNzZlNGY3
ZGJmMTViMGI3MGM1Li4xNzUyNWZlYzY5YmEwYzdjYjQ1OWZmZjVhZWIxN2JkZWM3MzYwOWVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC04Niw2ICs4Niw3IEBAIHN0cnVjdCBO
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCBlbmFibGVSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzIHsgZmFsc2UgfTsKICAgICBib29sIHNob3VsZEluY2x1ZGVMb2NhbGhv
c3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MgeyB0cnVlIH07CiAgICAgYm9vbCBlbmFibGVSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlIHsgZmFsc2UgfTsKKyAgICBib29sIGRldmljZU1h
bmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkIHsgZmFsc2UgfTsKICAgICBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3Vy
Y2UgeyB9OwogCiAgICAgU3RyaW5nIGxvY2FsU3RvcmFnZURpcmVjdG9yeTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKaW5kZXggMjFiYzdhNGU5YjIzZTIyNzE1MWQw
MTBlNDk1NTRkOWNjYzVmNGIyZS4uZmU4ZjAzYWJmOTlkYmNkZGFlZTBkYjJlNTZhMmMyYTczYzAx
M2FjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKQEAgLTIw
MCw2ICsyMDAsMTIgQEAgdm9pZCBQaW5nTG9hZDo6Y2Fubm90U2hvd1VSTCgpCiAgICAgZGlkRmlu
aXNoKGNhbm5vdFNob3dVUkxFcnJvcihSZXNvdXJjZVJlcXVlc3QgeyBjdXJyZW50VVJMKCkgfSkp
OwogfQogCit2b2lkIFBpbmdMb2FkOjp3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMoKQoreworICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucyIpOworICAg
IGRpZEZpbmlzaCh3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnNFcnJvcihSZXNvdXJjZVJlcXVlc3Qg
eyBjdXJyZW50VVJMKCkgfSkpOworfQorCiB2b2lkIFBpbmdMb2FkOjp0aW1lb3V0VGltZXJGaXJl
ZCgpCiB7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgidGltZW91dFRpbWVyRmlyZWQiKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuaAppbmRleCBjN2UxMmJiMTMwZDA0
OWM1ZDBhNTk3YzAxZmU1YmZmYzhiMjIxYmY5Li41MDU5MmI3NTI5OGUyZGQzNTIxY2NlNjgwMDkw
NWZiOGFhZjVjYjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Bp
bmdMb2FkLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5oCkBA
IC01OCw2ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRTZW5kRGF0YSh1aW50NjRfdCB0
b3RhbEJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc0V4cGVjdGVkVG9TZW5kKSBmaW5hbDsK
ICAgICB2b2lkIHdhc0Jsb2NrZWQoKSBmaW5hbDsKICAgICB2b2lkIGNhbm5vdFNob3dVUkwoKSBm
aW5hbDsKKyAgICB2b2lkIHdhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucygpIGZpbmFsOwogICAgIHZv
aWQgdGltZW91dFRpbWVyRmlyZWQoKTsKIAogICAgIHZvaWQgbG9hZFJlcXVlc3QoTmV0d29ya1By
b2Nlc3MmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL0RldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9EZXZpY2VNYW5hZ2VtZW50U29mdExp
bmsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wMzgzN2E2YmFmODNmOGM1NDc0MWQ3ZjJhY2QwMmM2OGJiMDc5Zjg3
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9E
ZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBIQVZFKERFVklDRV9NQU5BR0VNRU5UKQorCisjaW1wb3J0ICJE
ZXZpY2VNYW5hZ2VtZW50U1BJLmgiCisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09G
VF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVSKFdlYktpdCwgRGV2aWNlTWFuYWdlbWVudCk7CitT
T0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihXZWJLaXQsIERNRldlYnNpdGVQb2xpY3lNb25pdG9y
KTsKKworI2VuZGlmIC8vIEhBVkUoREVWSUNFX01BTkFHRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL0RldmljZU1hbmFnZW1lbnRTb2Z0TGluay5t
bSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvRGV2aWNlTWFuYWdlbWVudFNv
ZnRMaW5rLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5N2M1ZTBkOTA3MWI3ZTc3NDYwMjFmYTg5MzhmZTI1MTIx
ZTgwZTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL0RldmljZU1hbmFnZW1lbnRTb2Z0TGluay5tbQpAQCAtMCwwICsxLDM2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBIQVZFKERFVklDRV9NQU5BR0VNRU5UKQor
CisjaW1wb3J0ICJEZXZpY2VNYW5hZ2VtZW50U1BJLmgiCisjaW1wb3J0IDx3dGYvU29mdExpbmtp
bmcuaD4KKworU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViS2l0LCBE
ZXZpY2VNYW5hZ2VtZW50KTsKK1NPRlRfTElOS19DTEFTU19GT1JfU09VUkNFKFdlYktpdCwgRGV2
aWNlTWFuYWdlbWVudCwgRE1GV2Vic2l0ZVBvbGljeU1vbml0b3IpOworCisjZW5kaWYgLy8gSEFW
RShERVZJQ0VfTUFOQUdFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAppbmRleCAyZGQwZTdkNDZiYzcx
OWU5NmZhMTUwNzRmZWQwMGIxYzg4NjY1NjU4Li43NzFiM2FiNTkxMTNlMzUxOTdiYjllZDI4NGQw
ZWNiMGUyMzBjNmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCkBAIC00Miw5ICs0Miw5IEBAIGNsYXNz
IE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBjbGFzcyBOZXR3b3JrRGF0YVRhc2tDb2NvYSBmaW5hbCA6
IHB1YmxpYyBOZXR3b3JrRGF0YVRhc2sgewogICAgIGZyaWVuZCBjbGFzcyBOZXR3b3JrU2Vzc2lv
bkNvY29hOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUo
TmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIHVpbnQ2NF90IGZyYW1lSUQs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmlu
Z1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZm
aW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5l
Y3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBPcHRpb25hbDxO
ZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQorICAgIHN0YXRp
YyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5l
dHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYs
IFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qs
IFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JN
YWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0
aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtB
Y3Rpdml0eVRyYWNrZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3
b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIGZyYW1lSUQsIHBhZ2VJ
RCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ29u
dGVudEVuY29kaW5nU25pZmYsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QsIHNob3VsZFByZWNvbm5lY3RPbmx5LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlv
biwgbmV0d29ya0FjdGl2aXR5VHJhY2tlcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBOZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIGZyYW1lSUQs
IHBhZ2VJRCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hv
dWxkQ29udGVudEVuY29kaW5nU25pZmYsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QsIHNob3VsZFByZWNvbm5lY3RPbmx5LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2
aWdhdGlvbiwgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwg
bmV0d29ya0FjdGl2aXR5VHJhY2tlcikpOwogICAgIH0KIAogICAgIH5OZXR3b3JrRGF0YVRhc2tD
b2NvYSgpOwpAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGRlc2NyaXB0aW9u
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgTmV0d29ya0RhdGFUYXNrQ29jb2Eo
TmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlm
ZmluZ1BvbGljeSwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wg
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHks
IGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIE9wdGlvbmFsPE5ldHdvcmtB
Y3Rpdml0eVRyYWNrZXI+KTsKKyAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lv
biYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpT
dG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBX
ZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFz
a0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNl
TmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPik7
CiAKICAgICBib29sIHRyeVBhc3N3b3JkQmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3Jl
OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7
CiAgICAgdm9pZCBhcHBseVNuaWZmaW5nUG9saWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNl
SWZOZWVkZWQoX19zdHJvbmcgTlNVUkxSZXF1ZXN0KiYsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZm
LCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKQEAgLTk4LDYgKzk4LDggQEAgcHJp
dmF0ZToKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGJvb2wgbV9o
YXNCZWVuU2V0VG9Vc2VTdGF0ZWxlc3NDb29raWVTdG9yYWdlIHsgZmFsc2UgfTsKICNlbmRpZgor
CisgICAgYm9vbCBtX2lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lIHsgZmFs
c2UgfTsKIH07CiAKIFdlYkNvcmU6OkNyZWRlbnRpYWwgc2VydmVyVHJ1c3RDcmVkZW50aWFsKGNv
bnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5t
bQppbmRleCAyOGEwNWU4MGRiNjg1YWY2N2IyODRjODQyMzE3MTk0Zjk3ZTg3ZTNlLi4zZjUxYjdk
OWZhNDk1OTExZTA1ZjI5MjJlNDdiYjNiM2ViZjhmMTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0K
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2ltcG9ydCAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNw
b3NpdGlvbi5oIgogI2ltcG9ydCAiQXV0aGVudGljYXRpb25NYW5hZ2VyLmgiCisjaW1wb3J0ICJE
ZXZpY2VNYW5hZ2VtZW50U1BJLmgiCiAjaW1wb3J0ICJEb3dubG9hZC5oIgogI2ltcG9ydCAiRG93
bmxvYWRQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCkBAIC0zOSw2ICs0MCw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1Jlc291cmNlUmVxdWVzdC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4K
KyNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNp
bXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5o
PgpAQCAtMTYwLDEwICsxNjIsMTEgQEAgc3RhdGljIHZvaWQgdXBkYXRlVGFza1dpdGhGaXJzdFBh
cnR5Rm9yU2FtZVNpdGVDb29raWVzKE5TVVJMU2Vzc2lvbkRhdGFUYXNrKiB0YXMKICNlbmRpZgog
fQogCi1OZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nl
c3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHVpbnQ2NF90IGZy
YW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRT
bmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGlu
Z1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFBy
ZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBPcHRp
b25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQorTmV0
d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBz
ZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCB1aW50NjRfdCBmcmFtZUlELCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxz
UG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQ
b2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmlu
Z1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0
T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFz
a0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3Jr
QWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQogICAgIDogTmV0d29ya0Rh
dGFUYXNrKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgc3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3ksIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qs
IGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKQogICAgICwgbV9mcmFtZUlEKGZyYW1l
SUQpCiAgICAgLCBtX3BhZ2VJRChwYWdlSUQpCisgICAgLCBtX2lzRm9yTWFpblJlc291cmNlTmF2
aWdhdGlvbkZvckFueUZyYW1lKGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9y
QW55RnJhbWUpCiB7CiAgICAgaWYgKG1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJl
KQogICAgICAgICByZXR1cm47CkBAIC00ODksNiArNDkyLDI5IEBAIHZvaWQgTmV0d29ya0RhdGFU
YXNrQ29jb2E6OnJlc3VtZSgpCiB7CiAgICAgaWYgKG1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0g
Tm9GYWlsdXJlKQogICAgICAgICBtX2ZhaWx1cmVUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKKwor
I2lmIEhBVkUoREVWSUNFX01BTkFHRU1FTlQpCisgICAgYXV0byYgY29jb2FTZXNzaW9uID0gc3Rh
dGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2NvYSY+KG1fc2Vzc2lvbi5nZXQoKSk7CisgICAgaWYg
KGNvY29hU2Vzc2lvbi5kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCgpICYmIG1f
aXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUpIHsKKyAgICAgICAgUmV0YWlu
UHRyPE5TVVJMPiB1cmxUb0NoZWNrID0gW21fdGFzayBjdXJyZW50UmVxdWVzdF0uVVJMOworICAg
ICAgICBbY29jb2FTZXNzaW9uLmRldmljZU1hbmFnZW1lbnRQb2xpY3lNb25pdG9yKCkgcmVxdWVz
dFBvbGljaWVzRm9yV2Vic2l0ZXM6QFsgdXJsVG9DaGVjay5nZXQoKSBdIGNvbXBsZXRpb25IYW5k
bGVyOm1ha2VCbG9ja1B0cihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB1
cmxUb0NoZWNrXSAoTlNEaWN0aW9uYXJ5PE5TVVJMICosIE5TTnVtYmVyICo+ICpwb2xpY2llcywg
TlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgICAgIGJvb2wgaXNCbG9ja2VkID0gZXJyb3IgfHwg
cG9saWNpZXNbdXJsVG9DaGVjay5nZXQoKV0uaW50ZWdlclZhbHVlICE9IERNRlBvbGljeU9LOwor
ICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBpc0Jsb2NrZWRdIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNCbG9ja2VkKSB7
CisgICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlRmFpbHVyZShSZXN0cmljdGVkVVJMRmFpbHVy
ZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICBbbV90YXNrIHJlc3VtZV07CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSkuZ2V0KCldOworCisgICAgICAgIHJldHVybjsKKyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9W
QVJJQUJMRShtX2lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lKTsKKyNlbmRp
ZgorCiAgICAgW21fdGFzayByZXN1bWVdOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCmluZGV4IDNkMWE0
OWYyNzMyNWY0OTY3NTQxMjU0MDA1N2VmMTEwNjYyMTQwYjIuLjExMjFhMzRjMmNhNDdjZDBhNzE1
OTRhNjRjNGY2MWIxNTI4NTI5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCkBAIC0yNSw2ICsyNSw3IEBA
CiAKICNwcmFnbWEgb25jZQogCitPQkpDX0NMQVNTIERNRldlYnNpdGVQb2xpY3lNb25pdG9yOwog
T0JKQ19DTEFTUyBOU0RhdGE7CiBPQkpDX0NMQVNTIE5TVVJMU2Vzc2lvbjsKIE9CSkNfQ0xBU1Mg
TlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrOwpAQCAtNjksNiArNzAsMTEgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBjb250aW51ZURpZFJlY2VpdmVDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmLCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6VGFza0lkZW50aWZpZXIs
IE5ldHdvcmtEYXRhVGFza0NvY29hKiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJLaXQ6OkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRp
YWwmKT4mJik7CiAKKyNpZiBIQVZFKERFVklDRV9NQU5BR0VNRU5UKQorICAgIGJvb2wgZGV2aWNl
TWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2RldmljZU1h
bmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkOyB9CisgICAgRE1GV2Vic2l0ZVBvbGljeU1vbml0
b3IgKmRldmljZU1hbmFnZW1lbnRQb2xpY3lNb25pdG9yKCk7CisjZW5kaWYKKwogcHJpdmF0ZToK
ICAgICBOZXR3b3JrU2Vzc2lvbkNvY29hKE5ldHdvcmtQcm9jZXNzJiwgTmV0d29ya1Nlc3Npb25D
cmVhdGlvblBhcmFtZXRlcnMmJik7CiAKQEAgLTkzLDYgKzk5LDEwIEBAIHByaXZhdGU6CiAgICAg
U3RyaW5nIG1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyOwogICAgIFN0cmluZyBt
X3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjsKICAgICBSZXRhaW5QdHI8Q0ZE
aWN0aW9uYXJ5UmVmPiBtX3Byb3h5Q29uZmlndXJhdGlvbjsKKyNpZiBIQVZFKERFVklDRV9NQU5B
R0VNRU5UKQorICAgIFJldGFpblB0cjxETUZXZWJzaXRlUG9saWN5TW9uaXRvcj4gbV9kZXZpY2VN
YW5hZ2VtZW50UG9saWN5TW9uaXRvcjsKKyAgICBib29sIG1fZGV2aWNlTWFuYWdlbWVudFJlc3Ry
aWN0aW9uc0VuYWJsZWQgeyBmYWxzZSB9OworI2VuZGlmCiAgICAgYm9vbCBtX3Nob3VsZExvZ0Nv
b2tpZUluZm9ybWF0aW9uIHsgZmFsc2UgfTsKICAgICBTZWNvbmRzIG1fbG9hZFRocm90dGxlTGF0
ZW5jeTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggYzRjYTM5MWRmN2ViODE5YTY4NmRiYmNm
MDFmYmNkNjQ3Y2VlNzFkYi4uODQ1M2I4OTAyYjM3NTg5N2Y4YjdmYWJiYmQwOTExMDcxYmVkOGI0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
U2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtNTEsNiArNTEsNyBAQAogI2ltcG9ydCA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvT2JqQ1J1bnRpbWVFeHRyYXMuaD4KICNpbXBv
cnQgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4K
ICNpbXBvcnQgPHd0Zi9VUkwuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBA
IC01OCw2ICs1OSw4IEBACiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL05ldHdvcmtTZXNzaW9u
Q29jb2FBZGRpdGlvbnMuaD4KICNlbmRpZgogCisjaW1wb3J0ICJEZXZpY2VNYW5hZ2VtZW50U29m
dExpbmsuaCIKKwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogQ0ZTdHJpbmdSZWYgY29uc3Qg
V2ViS2l0MkhUVFBQcm94eURlZmF1bHRzS2V5ID0gc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KEAi
V2ViS2l0MkhUVFBQcm94eSIpOwpAQCAtNzEzLDcgKzcxNiw3IEBAIC0gKHZvaWQpVVJMU2Vzc2lv
bjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiBkYXRhVGFzazooTlNVUkxTZXNzaW9uRGF0YVRhc2sg
KilkYXRhCiAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgICAgIAogICAg
ICAgICAvLyBBdm9pZCBNSU1FIHR5cGUgc25pZmZpbmcgaWYgdGhlIHJlc3BvbnNlIGNvbWVzIGJh
Y2sgYXMgMzA0IE5vdCBNb2RpZmllZC4KLSAgICAgICAgaW50IHN0YXR1c0NvZGUgPSBbcmVzcG9u
c2UgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzdGF0dXNDb2RlKV0gPyBbKGlkKXJlc3Bv
bnNlIHN0YXR1c0NvZGVdIDogMDsKKyAgICAgICAgaW50IHN0YXR1c0NvZGUgPSBbcmVzcG9uc2Ug
aXNLaW5kT2ZDbGFzczpOU0hUVFBVUkxSZXNwb25zZS5jbGFzc10gPyBbKE5TSFRUUFVSTFJlc3Bv
bnNlICopcmVzcG9uc2Ugc3RhdHVzQ29kZV0gOiAwOwogICAgICAgICBpZiAoc3RhdHVzQ29kZSAh
PSAzMDQpIHsKICAgICAgICAgICAgIGJvb2wgaXNNYWluUmVzb3VyY2VMb2FkID0gbmV0d29ya0Rh
dGFUYXNrLT5maXJzdFJlcXVlc3QoKS5yZXF1ZXN0ZXIoKSA9PSBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbjsKICAgICAgICAgICAgIFdlYkNvcmU6OmFkanVzdE1JTUVU
eXBlSWZOZWNlc3NhcnkocmVzcG9uc2UuX0NGVVJMUmVzcG9uc2UsIGlzTWFpblJlc291cmNlTG9h
ZCk7CkBAIC05ODEsNiArOTg0LDEwIEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNz
aW9uQ29jb2EoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrCiAgICAgbV9z
dGF0ZWxlc3NTZXNzaW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tOZXR3b3JrU2Vzc2lvbkRlbGVn
YXRlIGFsbG9jXSBpbml0V2l0aE5ldHdvcmtTZXNzaW9uOip0aGlzIHdpdGhDcmVkZW50aWFsczpm
YWxzZV0pOwogICAgIG1fc3RhdGVsZXNzU2Vzc2lvbiA9IFtOU1VSTFNlc3Npb24gc2Vzc2lvbldp
dGhDb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24gZGVsZWdhdGU6c3RhdGljX2Nhc3Q8aWQ+KG1f
c3RhdGVsZXNzU2Vzc2lvbkRlbGVnYXRlLmdldCgpKSBkZWxlZ2F0ZVF1ZXVlOltOU09wZXJhdGlv
blF1ZXVlIG1haW5RdWV1ZV1dOwogCisjaWYgSEFWRShERVZJQ0VfTUFOQUdFTUVOVCkKKyAgICBt
X2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkID0gcGFyYW1ldGVycy5kZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnkgPSBwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7CiAgICAgbV9z
aG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gcGFyYW1ldGVy
cy5zaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzID8gU2hvdWxk
SW5jbHVkZUxvY2FsaG9zdDo6WWVzIDogU2hvdWxkSW5jbHVkZUxvY2FsaG9zdDo6Tm87CkBAIC0x
MTY3LDQgKzExNzQsMTQgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjb250aW51ZURpZFJl
Y2VpdmVDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXQKICAgICBuZXR3b3JrRGF0
YVRhc2stPmRpZFJlY2VpdmVDaGFsbGVuZ2UoV1RGTW92ZShhdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSksIFdURk1vdmUoY2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAorI2lmIEhBVkUo
REVWSUNFX01BTkFHRU1FTlQpCitETUZXZWJzaXRlUG9saWN5TW9uaXRvciAqTmV0d29ya1Nlc3Np
b25Db2NvYTo6ZGV2aWNlTWFuYWdlbWVudFBvbGljeU1vbml0b3IoKQoreworICAgIEFTU0VSVCht
X2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKTsKKyAgICBpZiAoIW1fZGV2aWNl
TWFuYWdlbWVudFBvbGljeU1vbml0b3IpCisgICAgICAgIG1fZGV2aWNlTWFuYWdlbWVudFBvbGlj
eU1vbml0b3IgPSBhZG9wdE5TKFthbGxvY0RNRldlYnNpdGVQb2xpY3lNb25pdG9ySW5zdGFuY2Uo
KSBpbml0V2l0aFBvbGljeUNoYW5nZUhhbmRsZXI6bmlsXSk7CisgICAgcmV0dXJuIG1fZGV2aWNl
TWFuYWdlbWVudFBvbGljeU1vbml0b3IuZ2V0KCk7Cit9CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvRGV2aWNlTWFuYWdlbWVudFNQSS5o
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvRGV2aWNlTWFuYWdlbWVudFNQSS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmExY2ZkNWI1ZTVlOTAxMTc3MDZhNzg1ODE1MmM4OWMyYjM1NDVkMTYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9EZXZpY2VN
YW5hZ2VtZW50U1BJLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgSEFWRShERVZJQ0VfTUFOQUdFTUVOVCkKKworI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCisKKyNpbXBvcnQgPERldmljZU1hbmFnZW1lbnQvRGV2aWNlTWFuYWdlbWVudC5oPgor
CisjZWxzZQorCitAaW50ZXJmYWNlIERNRldlYnNpdGVQb2xpY3lNb25pdG9yIDogTlNPYmplY3QK
KworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUG9saWN5Q2hhbmdlSGFuZGxlcjoodm9pZCheKSh2
b2lkKSljaGFuZ2VIYW5kbGVyOworLSAodm9pZClyZXF1ZXN0UG9saWNpZXNGb3JXZWJzaXRlczoo
TlNBcnJheTxOU1VSTCAqPiAqKXdlYnNpdGVVUkxzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkIChe
KShOU0RpY3Rpb25hcnk8TlNVUkwgKiwgTlNOdW1iZXIgKj4gKnBvbGljaWVzLCBOU0Vycm9yICpl
cnJvcikpY29tcGxldGlvbkhhbmRsZXI7CisKK0BlbmQKKwordHlwZWRlZiBOU19FTlVNKE5TSW50
ZWdlciwgRE1GUG9saWN5KSB7CisgICAgRE1GUG9saWN5T0sgPSAwLAorICAgIERNRlBvbGljeUJs
b2NrZWQgPSA0LAorfTsKKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNl
bmRpZiAvLyBIQVZFKERFVklDRV9NQU5BR0VNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtp
bmcuc2IgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5h
cHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYgppbmRleCBkYTYwYjFiYmZlMmM5NjBjMGFiODhlMzJi
ODJhMDJkNTcwMDcwNTJhLi44MDcxNmVjNjQzNDhiZmI0NDhlZGU2NzYyZDRjMGRkOWMxOWNkZjdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9z
L2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYgorKysgYi9Tb3VyY2UvV2ViS2l0L1Jlc291
cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYgpA
QCAtODIsNiArODIsMTEgQEAKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5wYXNzZC5pbi1h
cHAtcGF5bWVudCIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUucGFzc2QubGlicmFyeSIp
KQogCisoYWxsb3cgbWFjaC1sb29rdXAKKyAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5kbWQu
cG9saWN5IikKKyAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5zaXJpLmNvbnRleHQuc2Vydmlj
ZSIpCisgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY3RjYXRlZ29yaWVzLnNlcnZpY2UiKSkK
KwogKGRlbnkgZmlsZS13cml0ZS1jcmVhdGUKICAgICAgICAodm5vZGUtdHlwZSBTWU1MSU5LKSkK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUVycm9yLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRXJyb3IuaAppbmRleCA0NDJkNjc2ZWQyNzQ5OWYwZjJh
MmJkNGNkNTQ3MmQ3NDEzOWRkM2RkLi44NzM2N2NkMjQzMTU4ZjEwN2RjYzNiMDNhYjJhODA2Yjc5
ZDBkMDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRXJyb3IuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRXJyb3IuaApAQCAtNjUsNyArNjUsOCBA
QCBwdWJsaWM6CiAgICAgICAgIEZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgPSAx
MDIsCiAgICAgICAgIENhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0ID0gMTAzLAogICAgICAgICBGcmFt
ZUxvYWRCbG9ja2VkQnlDb250ZW50QmxvY2tlciA9IDEwNCwKLSAgICAgICAgRnJhbWVMb2FkQmxv
Y2tlZEJ5Q29udGVudEZpbHRlciA9IDEwNQorICAgICAgICBGcmFtZUxvYWRCbG9ja2VkQnlDb250
ZW50RmlsdGVyID0gMTA1LAorICAgICAgICBGcmFtZUxvYWRCbG9ja2VkQnlSZXN0cmljdGlvbnMg
PSAxMDYsCiAgICAgfTsKICAgICBzdGF0aWMgY29uc3QgV1RGOjpTdHJpbmcmIHdlYktpdFBvbGlj
eUVycm9yRG9tYWluKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9j
L1dLRXJyb3JSZWYuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tFcnJvclJlZi5j
cHAKaW5kZXggNDc5M2E1N2ZkMmYxNTRmZWM3MWQ5ODRiNzhmYjQ4YWQ4NDkyOTEyZS4uZTZjZTZk
OTRhMTM3ODI2OTA4OTZlYzdiMzA3MjIzNDAwYjNmZTM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQVBJL2MvV0tFcnJvclJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQVBJL2MvV0tFcnJvclJlZi5jcHAKQEAgLTU4LDYgKzU4LDggQEAgaW50IFdLRXJyb3JHZXRF
cnJvckNvZGUoV0tFcnJvclJlZiBlcnJvclJlZikKICAgICAgICAgcmV0dXJuIGtXS0Vycm9yQ29k
ZUNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0OwogICAgIGNhc2UgQVBJOjpFcnJvcjo6UG9saWN5OjpG
cmFtZUxvYWRCbG9ja2VkQnlDb250ZW50QmxvY2tlcjoKICAgICAgICAgcmV0dXJuIGtXS0Vycm9y
Q29kZUZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyOworICAgIGNhc2UgQVBJOjpFcnJv
cjo6UG9saWN5OjpGcmFtZUxvYWRCbG9ja2VkQnlSZXN0cmljdGlvbnM6CisgICAgICAgIHJldHVy
biBrV0tFcnJvckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlSZXN0cmljdGlvbnM7CiAgICAgY2FzZSBB
UEk6OkVycm9yOjpQb2xpY3k6OkZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRGaWx0ZXI6CiAgICAg
ICAgIHJldHVybiBrV0tFcnJvckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50RmlsdGVyOwog
ICAgIGNhc2UgQVBJOjpFcnJvcjo6UGx1Z2luOjpDYW5ub3RGaW5kUGx1Z0luOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tFcnJvclJlZi5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL2MvV0tFcnJvclJlZi5oCmluZGV4IDBkNzYzODRkMzQ0YTAxMDVhNzc4YTVl
NWQ3Yjc4ZmM0NjgzMDM2OGQuLjI5YmMwY2ZjYTcyMGVhZTlmMmMxZDdjNjljY2FhNDAzOWNkMTYw
OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Vycm9yUmVmLmgKQEAgLTQ1LDYgKzQ1
LDcgQEAgZW51bSB7CiAgICAga1dLRXJyb3JDb2RlUGx1Z0luQ2FuY2VsbGVkQ29ubmVjdGlvbiA9
ICAgICAgICAgICAgICAgICAgICAgIDIwMywKICAgICBrV0tFcnJvckNvZGVQbHVnSW5XaWxsSGFu
ZGxlTG9hZCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgMjA0LAogICAgIGtXS0Vycm9yQ29k
ZUluc2VjdXJlUGx1Z0luVmVyc2lvbiA9ICAgICAgICAgICAgICAgICAgICAgICAgICAyMDUsCisg
ICAga1dLRXJyb3JDb2RlRnJhbWVMb2FkQmxvY2tlZEJ5UmVzdHJpY3Rpb25zID0gICAgICAgICAg
ICAgICAgIDIwNiwKICAgICBrV0tFcnJvckludGVybmFsID0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMzAwLAogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViRXJyb3JzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkVycm9ycy5j
cHAKaW5kZXggYjZkYzUwY2ViNTVjYWY2NWJiZTE5YWY2ZTMyN2Q1MTIwMDlhM2ZhOC4uNmNmYTI1
YzY2YWRkMTdhZDdiMzE0ZWVhYjc1ZWZiNDFjZTdjNTI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViRXJyb3JzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJF
cnJvcnMuY3BwCkBAIC01Miw2ICs1MiwxMSBAQCBSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgcmV0dXJuIFJlc291cmNl
RXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0UG9saWN5RXJyb3JEb21haW4oKSwgQVBJOjpFcnJvcjo6
UG9saWN5OjpDYW5ub3RTaG93VVJMLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUg
VVJMIGNhbuKAmXQgYmUgc2hvd24iLCAiV2ViS2l0RXJyb3JDYW5ub3RTaG93VVJMIGRlc2NyaXB0
aW9uIikpOwogfQogCitSZXNvdXJjZUVycm9yIHdhc0Jsb2NrZWRCeVJlc3RyaWN0aW9uc0Vycm9y
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VF
cnJvcihBUEk6OkVycm9yOjp3ZWJLaXRQb2xpY3lFcnJvckRvbWFpbigpLCBBUEk6OkVycm9yOjpQ
b2xpY3k6OkZyYW1lTG9hZEJsb2NrZWRCeVJlc3RyaWN0aW9ucywgcmVxdWVzdC51cmwoKSwgV0VC
X1VJX1NUUklORygiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBkZXZpY2UgcmVzdHJpY3Rpb25zIiwg
IldlYktpdEVycm9yRnJhbWVMb2FkQmxvY2tlZEJ5UmVzdHJpY3Rpb25zIGRlc2NyaXB0aW9uIikp
OworfQorCiBSZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIHJldHVybiBSZXNvdXJjZUVycm9y
KEFQSTo6RXJyb3I6OndlYktpdFBvbGljeUVycm9yRG9tYWluKCksIEFQSTo6RXJyb3I6OlBvbGlj
eTo6RnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgV0VC
X1VJX1NUUklORygiRnJhbWUgbG9hZCBpbnRlcnJ1cHRlZCIsICJXZWJLaXRFcnJvckZyYW1lTG9h
ZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgZGVzY3JpcHRpb24iKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFcnJvcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkVycm9ycy5oCmluZGV4IDdkNjAwYzZkMjNiNTVkY2MzOTYzMDk5MDQwN2NlNzQ0NDQ2Y2I0ODYu
LjlmMGEwMDJiNmNiMWE2MTUyYTFkODgzN2FlYTliNGMyZjhhMmFiMGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkVycm9ycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkVycm9ycy5oCkBAIC0zOSw2ICszOSw3IEBAIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fu
Y2VsbGVkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
KTsKIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIFdlYkNvcmU6OlJlc291cmNlRXJyb3Ig
Y2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciB3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnNFcnJvcihjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgaW50ZXJy
dXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
KTsKIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZmFpbGVkQ3VzdG9tUHJvdG9jb2xTeW5jTG9hZChj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxU
RVJJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0
ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURh
dGFTdG9yZS5jcHAKaW5kZXggZjc0YjJjNWRiOTdmMTJkODI1MDYyMDZlNzg5NmVjYmIyOTYwZGY1
Zi4uOTQ5OTc0MDI0ODAwZmIyMzdmNTNjYWY4ZGY4ZGMxYjJhNjk4Yzc0NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAt
MTQ1LDYgKzE0NSw4IEBAIFJlZjxXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
PiBXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0RGF0YVN0b3JlQ29uCiB7CiAgICAgYXV0byBjb25m
aWd1cmF0aW9uID0gV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6Y3JlYXRl
KCk7CiAKKyAgICBjb25maWd1cmF0aW9uLT5zZXRQZXJzaXN0ZW50KHRydWUpOworCiAgICAgY29u
ZmlndXJhdGlvbi0+c2V0QXBwbGljYXRpb25DYWNoZURpcmVjdG9yeShkZWZhdWx0QXBwbGljYXRp
b25DYWNoZURpcmVjdG9yeSgpKTsKICAgICBjb25maWd1cmF0aW9uLT5zZXRBcHBsaWNhdGlvbkNh
Y2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lKCJGaWxlcyIpOwogICAgIGNvbmZpZ3VyYXRpb24t
PnNldENhY2hlU3RvcmFnZURpcmVjdG9yeShkZWZhdWx0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5KCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bC5tbQppbmRleCAxNjg4YTBhY2E4MTk2MDQ0ZTY2ZjJlMTQ3NTEzNmRhNjg1YTA3NGI2Li5iMGFj
NzZiZWYxMjI5ZDBiM2YwN2ZlODZmOTcxYWIzMWM2MDQ2MWI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtNTg0LDcgKzU4
NCw3IEBAIC0gKHZvaWQpX3N5bnRoZXNpemVBcHBJc0JhY2tncm91bmQ6KEJPT0wpYmFja2dyb3Vu
ZAogICAgIF9wcm9jZXNzUG9vbC0+c3ludGhlc2l6ZUFwcElzQmFja2dyb3VuZChiYWNrZ3JvdW5k
KTsKIH0KIAotLSAodm9pZClfc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29y
a2VyOihCT09MKSBhbGxvd3MKKy0gKHZvaWQpX3NldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9y
U2VydmljZVdvcmtlcjooQk9PTClhbGxvd3MKIHsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAgICAgX3Byb2Nlc3NQb29sLT5zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VX
b3JrZXIoYWxsb3dzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IDI2Mjk4ZWJjZWM1Nzc0ZTM0MDY2MWVh
OWZiMWE0YjI4ZWE1MGEzNDMuLmZjYmZiNTQ3ZTY5NjNkOTQ3NDJiMGJiZGE2ODdhODQ2MThmZDc4
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNp
dGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtMjI5LDIyICsyMjksMzUgQEAgLSAoaW5zdGFuY2V0eXBl
KV9pbml0V2l0aENvbmZpZ3VyYXRpb246KF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
ICopY29uZmkKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJu
IG5pbDsKIAotICAgIGF1dG8gY29uZmlnID0gQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0
RGF0YVN0b3JlQ29uZmlndXJhdGlvbigpOwotCi0gICAgaWYgKGNvbmZpZ3VyYXRpb24uX3dlYlN0
b3JhZ2VEaXJlY3RvcnkpCi0gICAgICAgIGNvbmZpZy0+c2V0TG9jYWxTdG9yYWdlRGlyZWN0b3J5
KGNvbmZpZ3VyYXRpb24uX3dlYlN0b3JhZ2VEaXJlY3RvcnkucGF0aCk7Ci0gICAgaWYgKGNvbmZp
Z3VyYXRpb24uX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5KQotICAgICAgICBjb25maWctPnNldFdl
YlNRTERhdGFiYXNlRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uX3dlYlNRTERhdGFiYXNlRGlyZWN0
b3J5LnBhdGgpOwotICAgIGlmIChjb25maWd1cmF0aW9uLl9pbmRleGVkREJEYXRhYmFzZURpcmVj
dG9yeSkKLSAgICAgICAgY29uZmlnLT5zZXRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeShjb25m
aWd1cmF0aW9uLl9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeS5wYXRoKTsKLSAgICBpZiAoY29u
ZmlndXJhdGlvbi5fY29va2llU3RvcmFnZUZpbGUpCi0gICAgICAgIGNvbmZpZy0+c2V0Q29va2ll
U3RvcmFnZUZpbGUoY29uZmlndXJhdGlvbi5fY29va2llU3RvcmFnZUZpbGUucGF0aCk7Ci0gICAg
aWYgKGNvbmZpZ3VyYXRpb24uX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpCi0gICAg
ICAgIGNvbmZpZy0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeShjb25maWd1cmF0
aW9uLl9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LnBhdGgpOwotICAgIGlmIChjb25m
aWd1cmF0aW9uLl9jYWNoZVN0b3JhZ2VEaXJlY3RvcnkpCi0gICAgICAgIGNvbmZpZy0+c2V0Q2Fj
aGVTdG9yYWdlRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uX2NhY2hlU3RvcmFnZURpcmVjdG9yeS5w
YXRoKTsKLSAgICBpZiAoY29uZmlndXJhdGlvbi5fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRp
cmVjdG9yeSkKLSAgICAgICAgY29uZmlnLT5zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGly
ZWN0b3J5KGNvbmZpZ3VyYXRpb24uX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnku
cGF0aCk7CisgICAgYXV0byBjb25maWcgPSBjb25maWd1cmF0aW9uLmlzUGVyc2lzdGVudCA/IEFQ
STo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZUNvbmZpZ3VyYXRpb24oKSA6IFdl
YktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNyZWF0ZSgpOworCisgICAgUkVM
RUFTRV9BU1NFUlQoY29uZmlnLT5pc1BlcnNpc3RlbnQoKSA9PSBjb25maWd1cmF0aW9uLmlzUGVy
c2lzdGVudCk7CisKKyAgICBpZiAoY29uZmlndXJhdGlvbi5pc1BlcnNpc3RlbnQpIHsKKyAgICAg
ICAgaWYgKGNvbmZpZ3VyYXRpb24uX3dlYlN0b3JhZ2VEaXJlY3RvcnkpCisgICAgICAgICAgICBj
b25maWctPnNldExvY2FsU3RvcmFnZURpcmVjdG9yeShjb25maWd1cmF0aW9uLl93ZWJTdG9yYWdl
RGlyZWN0b3J5LnBhdGgpOworICAgICAgICBpZiAoY29uZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJh
c2VEaXJlY3RvcnkpCisgICAgICAgICAgICBjb25maWctPnNldFdlYlNRTERhdGFiYXNlRGlyZWN0
b3J5KGNvbmZpZ3VyYXRpb24uX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5LnBhdGgpOworICAgICAg
ICBpZiAoY29uZmlndXJhdGlvbi5faW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkpCisgICAgICAg
ICAgICBjb25maWctPnNldEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24u
X2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5LnBhdGgpOworICAgICAgICBpZiAoY29uZmlndXJh
dGlvbi5fY29va2llU3RvcmFnZUZpbGUpCisgICAgICAgICAgICBjb25maWctPnNldENvb2tpZVN0
b3JhZ2VGaWxlKGNvbmZpZ3VyYXRpb24uX2Nvb2tpZVN0b3JhZ2VGaWxlLnBhdGgpOworICAgICAg
ICBpZiAoY29uZmlndXJhdGlvbi5fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSkKKyAg
ICAgICAgICAgIGNvbmZpZy0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeShjb25m
aWd1cmF0aW9uLl9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LnBhdGgpOworICAgICAg
ICBpZiAoY29uZmlndXJhdGlvbi5fY2FjaGVTdG9yYWdlRGlyZWN0b3J5KQorICAgICAgICAgICAg
Y29uZmlnLT5zZXRDYWNoZVN0b3JhZ2VEaXJlY3RvcnkoY29uZmlndXJhdGlvbi5fY2FjaGVTdG9y
YWdlRGlyZWN0b3J5LnBhdGgpOworICAgICAgICBpZiAoY29uZmlndXJhdGlvbi5fc2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSkKKyAgICAgICAgICAgIGNvbmZpZy0+c2V0U2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeShjb25maWd1cmF0aW9uLl9zZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGlyZWN0b3J5LnBhdGgpOworICAgIH0gZWxzZSB7CisgICAgICAgIFJFTEVB
U0VfQVNTRVJUKCFjb25maWd1cmF0aW9uLl93ZWJTdG9yYWdlRGlyZWN0b3J5KTsKKyAgICAgICAg
UkVMRUFTRV9BU1NFUlQoIWNvbmZpZ3VyYXRpb24uX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5KTsK
KyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNvbmZpZ3VyYXRpb24uX2luZGV4ZWREQkRhdGFiYXNl
RGlyZWN0b3J5KTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNvbmZpZ3VyYXRpb24uX2Nvb2tp
ZVN0b3JhZ2VGaWxlKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNvbmZpZ3VyYXRpb24uX3Jl
c291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVCgh
Y29uZmlndXJhdGlvbi5fY2FjaGVTdG9yYWdlRGlyZWN0b3J5KTsKKyAgICAgICAgUkVMRUFTRV9B
U1NFUlQoIWNvbmZpZ3VyYXRpb24uX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnkp
OworICAgIH0KKwogICAgIGlmIChjb25maWd1cmF0aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllcikKICAgICAgICAgY29uZmlnLT5zZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXIoY29uZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIp
OwogICAgIGlmIChjb25maWd1cmF0aW9uLnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRp
ZmllcikKQEAgLTI1Myw2ICsyNjYsNyBAQCAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoQ29uZmln
dXJhdGlvbjooX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gKiljb25maQogICAgICAg
ICBjb25maWctPnNldEhUVFBQcm94eShjb25maWd1cmF0aW9uLmh0dHBQcm94eSk7CiAgICAgaWYg
KGNvbmZpZ3VyYXRpb24uaHR0cHNQcm94eSkKICAgICAgICAgY29uZmlnLT5zZXRIVFRQU1Byb3h5
KGNvbmZpZ3VyYXRpb24uaHR0cHNQcm94eSk7CisgICAgY29uZmlnLT5zZXREZXZpY2VNYW5hZ2Vt
ZW50UmVzdHJpY3Rpb25zRW5hYmxlZChjb25maWd1cmF0aW9uLmRldmljZU1hbmFnZW1lbnRSZXN0
cmljdGlvbnNFbmFibGVkKTsKIAogICAgIEFQSTo6T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8
QVBJOjpXZWJzaXRlRGF0YVN0b3JlPihzZWxmLCBXVEZNb3ZlKGNvbmZpZyksIFBBTDo6U2Vzc2lv
bklEOjpnZW5lcmF0ZVBlcnNpc3RlbnRTZXNzaW9uSUQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLmgKaW5kZXggNTlmOTg0ZTQ4N2FkZjNmMDQyZDk2NzM3YTliNDdk
YTc5ZTIyZDNiMC4uZWZmNTRkNTljZmRjMjU3MDgzNWQ5NTE3ZGEzOTk5ODQ2MzlmZjA5YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTMyLDYgKzMyLDIwIEBA
IE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMp
LCBpb3MoMTEuMCkpCiBAaW50ZXJmYWNlIF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
IDogTlNPYmplY3QKIAorLSAoaW5zdGFuY2V0eXBlKWluaXQ7IC8vIENyZWF0ZXMgYSBwZXJzaXN0
ZW50IGNvbmZpZ3VyYXRpb24uCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhOb25QZXJzaXN0ZW50
Q29uZmlndXJhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc1Bl
cnNpc3RlbnQpIEJPT0wgcGVyc2lzdGVudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCisvLyBUaGVzZSBwcm9wZXJ0aWVzIGFwcGx5IHRvIGJv
dGggcGVyc2lzdGVudCBhbmQgbm9uLXBlcnNpc3RlbnQgZGF0YSBzdG9yZXMuCitAcHJvcGVydHkg
KG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpzb3VyY2VBcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJj
ZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5
LCBzZXR0ZXI9c2V0SFRUUFByb3h5OikgTlNVUkwgKmh0dHBQcm94eSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxh
YmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFNQcm94eTopIE5TVVJMICpodHRwc1Byb3h5IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCAgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKworLy8gVGhlc2Ug
cHJvcGVydGllcyBvbmx5IG1ha2Ugc2Vuc2UgZm9yIHBlcnNpc3RlbnQgZGF0YSBzdG9yZXMsIGFu
ZCB3aWxsIHRocm93CisvLyBhbiBleGNlcHRpb24gaWYgc2V0IGZvciBub24tcGVyc2lzdGVudCBz
dG9yZXMuCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRXZWJTdG9yYWdl
RGlyZWN0b3J5OikgTlNVUkwgKl93ZWJTdG9yYWdlRGlyZWN0b3J5OwogQHByb3BlcnR5IChub25h
dG9taWMsIGNvcHksIHNldHRlcj1fc2V0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rvcnk6KSBOU1VS
TCAqX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5OwogQHByb3BlcnR5IChub25hdG9taWMsIGNv
cHksIHNldHRlcj1fc2V0V2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk6KSBOU1VSTCAqX3dlYlNRTERh
dGFiYXNlRGlyZWN0b3J5OwpAQCAtMzksMTAgKzUzLDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzKSwgaW9zKDExLjApKQogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRl
cj1fc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTopIE5TVVJMICpfcmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBp
b3MoMTEuMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0Q2FjaGVT
dG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKl9jYWNoZVN0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5LCBzZXR0ZXI9X3NldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnk6KSBO
U1VSTCAqX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxs
YWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNlQXBwbGljYXRpb25TZWNv
bmRhcnlJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4y
KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRIVFRQ
UHJveHk6KSBOU1VSTCAqaHR0cFByb3h5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCks
IGlvcygxMi4yKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRl
cj1zZXRIVFRQU1Byb3h5OikgTlNVUkwgKmh0dHBzUHJveHkgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24ubW0KaW5kZXggMmEwNTEwZWM4OWY1ZWFiODFjNTNmMjdlMmUwZDAwMzZm
NjBiYTAyOS4uNWZlNjUzOTViY2ViNjI4NGQ0MTcyZjRhYzg5NDkyYTYwNDJiN2Y5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQpAQCAtMzYsNiArMzYsMzMgQEAg
c3RhdGljIHZvaWQgY2hlY2tVUkxBcmd1bWVudChOU1VSTCAqdXJsKQogCiBAaW1wbGVtZW50YXRp
b24gX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24KIAorLSAoaW5zdGFuY2V0eXBlKWlu
aXQKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlmICghc2VsZikKKyAgICAgICAg
cmV0dXJuIG5pbDsKKworICAgIF9jb25maWd1cmF0aW9uLT5zZXRQZXJzaXN0ZW50KHRydWUpOwor
CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aE5vblBlcnNp
c3RlbnRDb25maWd1cmF0aW9uCit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAo
IXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfY29uZmlndXJhdGlvbi0+c2V0UGVy
c2lzdGVudChmYWxzZSk7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAoQk9PTClpc1BlcnNp
c3RlbnQKK3sKKyAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPmlzUGVyc2lzdGVudCgpOworfQor
CiAtIChOU1VSTCAqKV93ZWJTdG9yYWdlRGlyZWN0b3J5CiB7CiAgICAgcmV0dXJuIFtOU1VSTCBm
aWxlVVJMV2l0aFBhdGg6X2NvbmZpZ3VyYXRpb24tPndlYlN0b3JhZ2VEaXJlY3RvcnkoKSBpc0Rp
cmVjdG9yeTpZRVNdOwpAQCAtNDMsNiArNzAsOCBAQCAtIChOU1VSTCAqKV93ZWJTdG9yYWdlRGly
ZWN0b3J5CiAKIC0gKHZvaWQpX3NldFdlYlN0b3JhZ2VEaXJlY3Rvcnk6KE5TVVJMICopdXJsCiB7
CisgICAgaWYgKCFfY29uZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50KCkpCisgICAgICAgIFtOU0V4
Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJDYW5ub3Qg
c2V0IF93ZWJTdG9yYWdlRGlyZWN0b3J5IG9uIGEgbm9uLXBlcnNpc3RlbnQgX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uIl07CiAgICAgY2hlY2tVUkxBcmd1bWVudCh1cmwpOwogICAg
IF9jb25maWd1cmF0aW9uLT5zZXRXZWJTdG9yYWdlRGlyZWN0b3J5KHVybC5wYXRoKTsKIH0KQEAg
LTU0LDYgKzgzLDggQEAgLSAoTlNVUkwgKilfaW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkKIAog
LSAodm9pZClfc2V0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rvcnk6KE5TVVJMICopdXJsCiB7Cisg
ICAgaWYgKCFfY29uZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50KCkpCisgICAgICAgIFtOU0V4Y2Vw
dGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJDYW5ub3Qgc2V0
IF9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSBvbiBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLiJdOwogICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsK
ICAgICBfY29uZmlndXJhdGlvbi0+c2V0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkodXJsLnBh
dGgpOwogfQpAQCAtNjUsNiArOTYsOCBAQCAtIChOU1VSTCAqKV93ZWJTUUxEYXRhYmFzZURpcmVj
dG9yeQogCiAtICh2b2lkKV9zZXRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeTooTlNVUkwgKil1cmwK
IHsKKyAgICBpZiAoIV9jb25maWd1cmF0aW9uLT5pc1BlcnNpc3RlbnQoKSkKKyAgICAgICAgW05T
RXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIkNhbm5v
dCBzZXQgX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5IG9uIGEgbm9uLXBlcnNpc3RlbnQgX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uIl07CiAgICAgY2hlY2tVUkxBcmd1bWVudCh1cmwp
OwogICAgIF9jb25maWd1cmF0aW9uLT5zZXRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeSh1cmwucGF0
aCk7CiB9CkBAIC05Niw2ICsxMjksOCBAQCAtIChOU1VSTCAqKV9jb29raWVTdG9yYWdlRmlsZQog
CiAtICh2b2lkKV9zZXRDb29raWVTdG9yYWdlRmlsZTooTlNVUkwgKil1cmwKIHsKKyAgICBpZiAo
IV9jb25maWd1cmF0aW9uLT5pc1BlcnNpc3RlbnQoKSkKKyAgICAgICAgW05TRXhjZXB0aW9uIHJh
aXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIkNhbm5vdCBzZXQgX2Nvb2tp
ZVN0b3JhZ2VGaWxlIG9uIGEgbm9uLXBlcnNpc3RlbnQgX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uIl07CiAgICAgY2hlY2tVUkxBcmd1bWVudCh1cmwpOwogICAgIGlmIChbdXJsIGhh
c0RpcmVjdG9yeVBhdGhdKQogICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJn
dW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiVGhlIGNvb2tpZSBzdG9yYWdlIHBhdGggbXVzdCBwb2lu
dCB0byBhIGZpbGUsIG5vdCBhIGRpcmVjdG9yeS4iXTsKQEAgLTExMCw2ICsxNDUsOCBAQCAtIChO
U1VSTCAqKV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5CiAKIC0gKHZvaWQpX3NldFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk6KE5TVVJMICopdXJsCiB7CisgICAgaWYgKCFf
Y29uZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50KCkpCisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlz
ZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJDYW5ub3Qgc2V0IF9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5IG9uIGEgbm9uLXBlcnNpc3RlbnQgX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uIl07CiAgICAgY2hlY2tVUkxBcmd1bWVudCh1cmwpOwogICAg
IF9jb25maWd1cmF0aW9uLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KHVybC5w
YXRoKTsKIH0KQEAgLTEyMSw2ICsxNTgsOCBAQCAtIChOU1VSTCAqKV9jYWNoZVN0b3JhZ2VEaXJl
Y3RvcnkKIAogLSAodm9pZClfc2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5OihOU1VSTCAqKXVybAog
eworICAgIGlmICghX2NvbmZpZ3VyYXRpb24tPmlzUGVyc2lzdGVudCgpKQorICAgICAgICBbTlNF
eGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiQ2Fubm90
IHNldCBfY2FjaGVTdG9yYWdlRGlyZWN0b3J5IG9uIGEgbm9uLXBlcnNpc3RlbnQgX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uIl07CiAgICAgY2hlY2tVUkxBcmd1bWVudCh1cmwpOwog
ICAgIF9jb25maWd1cmF0aW9uLT5zZXRDYWNoZVN0b3JhZ2VEaXJlY3RvcnkodXJsLnBhdGgpOwog
fQpAQCAtMTMyLDYgKzE3MSw4IEBAIC0gKE5TVVJMICopX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EaXJlY3RvcnkKIAogLSAodm9pZClfc2V0U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVj
dG9yeTooTlNVUkwgKil1cmwKIHsKKyAgICBpZiAoIV9jb25maWd1cmF0aW9uLT5pc1BlcnNpc3Rl
bnQoKSkKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0
aW9uIGZvcm1hdDpAIkNhbm5vdCBzZXQgX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rv
cnkgb24gYSBub24tcGVyc2lzdGVudCBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi4i
XTsKICAgICBjaGVja1VSTEFyZ3VtZW50KHVybCk7CiAgICAgX2NvbmZpZ3VyYXRpb24tPnNldFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkodXJsLnBhdGgpOwogfQpAQCAtMTU2LDYg
KzE5NywxNiBAQCAtICh2b2lkKXNldFNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmll
cjooTlNTdHJpbmcgKilpZGVudGlmaWVyCiAgICAgX2NvbmZpZ3VyYXRpb24tPnNldFNvdXJjZUFw
cGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTsKIH0KIAorLSAoQk9PTClk
ZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZAoreworICAgIHJldHVybiBfY29uZmln
dXJhdGlvbi0+ZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoKTsKK30KKworLSAo
dm9pZClzZXREZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDooQk9PTCllbmFibGVk
Cit7CisgICAgX2NvbmZpZ3VyYXRpb24tPnNldERldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNF
bmFibGVkKGVuYWJsZWQpOworfQorCiAtIChBUEk6Ok9iamVjdCYpX2FwaU9iamVjdAogewogICAg
IHJldHVybiAqX2NvbmZpZ3VyYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2Eu
bW0KaW5kZXggMDU0MjVjMDc1MWUyMzhlZTE5MjU5YjNkMDI1NGYwNjkxY2EzNDdkYS4uMzI2ZmZh
ZTcwYzE1ZmJjZjVhZDc3ZmJhNTI5MThlNWVhZGQ4ZmU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVE
YXRhU3RvcmVDb2NvYS5tbQpAQCAtMTMxLDYgKzEzMSw3IEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogICAgICAgICBmYWxzZSwKICAg
ICAgICAgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcywKICAg
ICAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSwKKyAgICAgICAgbV9j
b25maWd1cmF0aW9uLT5kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCgpLAogICAg
ICAgICBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJj
ZSksCiAgICAgICAgIFdURk1vdmUobG9jYWxTdG9yYWdlRGlyZWN0b3J5KSwKICAgICAgICAgV1RG
TW92ZShsb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggOTlmNTdlNGFlM2E0ZTE0MzdiNTRiMjUy
NTBmNzIxN2EzMTIwYTJlZS4uOGUxMmRiOWExZGNiZDA4YjdiMWM0M2YwOWUzYTNiYjRmZWJmNjI5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcApAQCAtMzksNiAr
MzksOCBAQCBSZWY8V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IFdlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uOjpjb3B5KCkKIHsKICAgICBhdXRvIGNvcHkgPSBXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbjo6Y3JlYXRlKCk7CiAKKyAgICBjb3B5LT5tX2lzUGVyc2lzdGVudCA9
IHRoaXMtPm1faXNQZXJzaXN0ZW50OworCiAgICAgY29weS0+bV9jYWNoZVN0b3JhZ2VEaXJlY3Rv
cnkgPSB0aGlzLT5tX2NhY2hlU3RvcmFnZURpcmVjdG9yeTsKICAgICBjb3B5LT5tX3Blck9yaWdp
blN0b3JhZ2VRdW90YSA9IHRoaXMtPm1fcGVyT3JpZ2luU3RvcmFnZVF1b3RhOwogICAgIGNvcHkt
Pm1fbmV0d29ya0NhY2hlRGlyZWN0b3J5ID0gdGhpcy0+bV9uZXR3b3JrQ2FjaGVEaXJlY3Rvcnk7
CkBAIC01OSw2ICs2MSw3IEBAIFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4gV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkoKQogICAgIGNvcHktPm1fc291cmNlQXBw
bGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyID0gdGhpcy0+bV9zb3VyY2VBcHBsaWNhdGlvblNl
Y29uZGFyeUlkZW50aWZpZXI7CiAgICAgY29weS0+bV9odHRwUHJveHkgPSB0aGlzLT5tX2h0dHBQ
cm94eTsKICAgICBjb3B5LT5tX2h0dHBzUHJveHkgPSB0aGlzLT5tX2h0dHBzUHJveHk7CisgICAg
Y29weS0+bV9kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCA9IHRoaXMtPm1fZGV2
aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQ7CiAKICAgICByZXR1cm4gY29weTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCmluZGV4IGRmMTdhZGM1ZTRkMzJk
MDIxNTU4ZTY0OTRhM2UzNjk3ODdmNTlmNzAuLmIwZDcwN2Q5ODUyMDNkYmNhYWYzZjEwNDMxZGZl
MmRmM2VlYTA3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAt
MzgsNyArMzgsMTAgQEAgcHVibGljOgogCiAgICAgUmVmPFdlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uPiBjb3B5KCk7CiAKLSAgICB1aW50NjRfdCBwZXJPcmlnaW5TdG9yYWdlUXVvdGEoKSB7
IHJldHVybiBtX3Blck9yaWdpblN0b3JhZ2VRdW90YTsgfQorICAgIGJvb2wgaXNQZXJzaXN0ZW50
KCkgY29uc3QgeyByZXR1cm4gbV9pc1BlcnNpc3RlbnQ7IH0KKyAgICB2b2lkIHNldFBlcnNpc3Rl
bnQoYm9vbCBpc1BlcnNpc3RlbnQpIHsgbV9pc1BlcnNpc3RlbnQgPSBpc1BlcnNpc3RlbnQ7IH0K
KworICAgIHVpbnQ2NF90IHBlck9yaWdpblN0b3JhZ2VRdW90YSgpIGNvbnN0IHsgcmV0dXJuIG1f
cGVyT3JpZ2luU3RvcmFnZVF1b3RhOyB9CiAgICAgdm9pZCBzZXRQZXJPcmlnaW5TdG9yYWdlUXVv
dGEodWludDY0X3QgcXVvdGEpIHsgbV9wZXJPcmlnaW5TdG9yYWdlUXVvdGEgPSBxdW90YTsgfQog
CiAgICAgY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KCkgY29uc3QgeyBy
ZXR1cm4gbV9hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5OyB9CkBAIC05OCw5ICsxMDEsMTQgQEAg
cHVibGljOgogICAgIGNvbnN0IFVSTCYgaHR0cHNQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1faHR0
cHNQcm94eTsgfQogICAgIHZvaWQgc2V0SFRUUFNQcm94eShVUkwmJiBwcm94eSkgeyBtX2h0dHBz
UHJveHkgPSBXVEZNb3ZlKHByb3h5KTsgfQogCisgICAgYm9vbCBkZXZpY2VNYW5hZ2VtZW50UmVz
dHJpY3Rpb25zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlTWFuYWdlbWVudFJlc3Ry
aWN0aW9uc0VuYWJsZWQ7IH0KKyAgICB2b2lkIHNldERldmljZU1hbmFnZW1lbnRSZXN0cmljdGlv
bnNFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNF
bmFibGVkID0gZW5hYmxlZDsgfQorCiBwcml2YXRlOgogICAgIFdlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uKCk7CiAKKyAgICBib29sIG1faXNQZXJzaXN0ZW50IHsgZmFsc2UgfTsKKwogICAg
IFN0cmluZyBtX2NhY2hlU3RvcmFnZURpcmVjdG9yeTsKICAgICB1aW50NjRfdCBtX3Blck9yaWdp
blN0b3JhZ2VRdW90YSB7IFdlYkNvcmU6OlN0b3JhZ2VRdW90YU1hbmFnZXI6OmRlZmF1bHRRdW90
YSgpIH07CiAgICAgU3RyaW5nIG1fbmV0d29ya0NhY2hlRGlyZWN0b3J5OwpAQCAtMTIxLDYgKzEy
OSw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJ
ZGVudGlmaWVyOwogICAgIFVSTCBtX2h0dHBQcm94eTsKICAgICBVUkwgbV9odHRwc1Byb3h5Owor
ICAgIGJvb2wgbV9kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCB7IGZhbHNlIH07
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBkZGIzYTMwMDBjYWVmNzIzNWMyNjQ2Y2QwZjQwNDhjYmNlYjU2MGEyLi45NTcz
MjhjMDE5ODY2ZDBlZGM2N2M0NjQzMDllMDNiYzEzNzdjNWUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQzMCw2ICs0MzAsOCBAQAog
CQkyOTg0RjU4OTE2NEJBMDk1MDA0QkMwQzYgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDI5ODRGNTg3MTY0QkEwOTUwMDRCQzBDNiAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJN
ZXNzYWdlcy5oICovOyB9OwogCQkyOUFEMzA5MzE2NEI0QzVEMDA3MkRFQTkgLyogTGVnYWN5Q3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDI5QUQzMDkyMTY0QjRDNUQwMDcyREVBOSAvKiBMZWdhY3lDdXN0b21Q
cm90b2NvbE1hbmFnZXJQcm94eS5oICovOyB9OwogCQkyOUNENTVBQTEyOEUyOTRGMDAxMzNDODUg
LyogV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5Q0Q1NUE4MTI4RTI5NEYwMDEzM0M4NSAvKiBX
S0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5oICovOyB9OworCQkyRDBDNTZGRDIyOUYx
REVBMDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDBDNTZGQjIyOUYxREVBMDBCRDMzRTcg
LyogRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLmggKi87IH07CisJCTJEMEM1NkZFMjI5RjFERUEw
MEJEMzNFNyAvKiBEZXZpY2VNYW5hZ2VtZW50U29mdExpbmsubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDBDNTZGQzIyOUYxREVBMDBCRDMzRTcgLyog
RGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1tICovOyB9OwogCQkyRDEwODc2MTFEMkM1NzNFMDBC
ODVGODIgLyogTG9hZFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJEMTA4NzVGMUQyQzU3M0UwMEI4NUY4MiAvKiBMb2FkUGFyYW1ldGVy
cy5oICovOyB9OwogCQkyRDExQjc1MTIxMjZBMjgyMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTEt
bW0ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDdE
RUM5NDIxMjY5RTRDMDBCOUY3M0MgLyogVW5pZmllZFNvdXJjZTEtbW0ubW0gKi87IH07CiAJCTJE
MTFCNzUyMjEyNkEyODIwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlMS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDdERUQ1QjIxMjY5RTREMDBCOUY3
M0MgLyogVW5pZmllZFNvdXJjZTEuY3BwICovOyB9OwpAQCAtNzAyLDYgKzcwNCw3IEBACiAJCTJE
QTY3MzFBMjBDNzU0QjEwMDNDQjQwMSAvKiBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREE2NzMxOTIwQzc1
NEIxMDAzQ0I0MDEgLyogRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZS5oICovOyB9OwogCQkyREE5
NDRBMDE4ODRFNEYwMDBFRDg2REIgLyogV2ViSU9TRXZlbnRGYWN0b3J5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREE5NDQ5OTE4ODRFNEYwMDBFRDg2
REIgLyogV2ViSU9TRXZlbnRGYWN0b3J5LmggKi87IH07CiAJCTJEQTk0NEE0MTg4NEU0RjAwMEVE
ODZEQiAvKiBHZXN0dXJlVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJEQTk0NDlEMTg4NEU0RjAwMEVEODZEQiAvKiBHZXN0dXJlVHlwZXMuaCAq
LzsgfTsKKwkJMkRBQURBOEYyMjk4QzIxMDAwRTM2QjBDIC8qIERldmljZU1hbmFnZW1lbnRTUEku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQUFEQThF
MjI5OEMyMTAwMEUzNkIwQyAvKiBEZXZpY2VNYW5hZ2VtZW50U1BJLmggKi87IH07CiAJCTJEQUJB
NzcyMUE4MTdCMTcwMEVGMEYxQSAvKiBXS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50c0ludGVy
bmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREFC
QTc3MTFBODE3QjE3MDBFRjBGMUEgLyogV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRl
cm5hbC5oICovOyB9OwogCQkyREFCQTc3NDFBODE3RUU2MDBFRjBGMUEgLyogV0tQbHVnaW5Mb2Fk
UG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
REFCQTc3MzFBODE3RUU2MDBFRjBGMUEgLyogV0tQbHVnaW5Mb2FkUG9saWN5LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkRBQkE3NzYxQTgyQjQy
MTAwRUYwRjFBIC8qIEFQSUhpc3RvcnlDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQUJBNzc1MUE4MkI0MjEwMEVGMEYxQSAvKiBBUElIaXN0
b3J5Q2xpZW50LmggKi87IH07CkBAIC0yNTA2LDYgKzI1MDksOCBAQAogCQkyOUQwNEUyODIxRjdD
NzNEMDA3Njc0MUQgLyogQWNjZXNzaWJpbGl0eVByaXZTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNj
ZXNzaWJpbGl0eVByaXZTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQwMDM1
MjIxQkM3NDE0ODAwREE4NzE2IC8qIFBERlBsdWdpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBQREZQbHVnaW4uaDsgcGF0aCA9IFBERi9QREZQbHVnaW4uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQwMDM1MjMxQkM3NDE0ODAwREE4NzE2IC8qIFBERlBsdWdp
bi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFBERlBsdWdpbi5t
bTsgcGF0aCA9IFBERi9QREZQbHVnaW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTJEMEM1NkZCMjI5RjFERUEwMEJEMzNFNyAvKiBEZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5r
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMEM1NkZDMjI5RjFERUEwMEJEMzNF
NyAvKiBEZXZpY2VNYW5hZ2VtZW50U29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBEZXZpY2VNYW5hZ2VtZW50U29mdExpbmsubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJEMENGNjRCMjFGMkE4MDMwMDc4NzU2NiAvKiBUZXh0Q2hlY2tp
bmdDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGV4dENoZWNraW5nQ29udHJv
bGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQwQ0Y2NEMyMUYyQTgwMzAw
Nzg3NTY2IC8qIFRleHRDaGVja2luZ0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENo
ZWNraW5nQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDEwODc1
RTFEMkM1NzNFMDBCODVGODIgLyogTG9hZFBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTG9hZFBhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjc5OCw2ICsyODAzLDcgQEAKIAkJMkRBOTQ0QUMxODg0RTlCQTAwRUQ4
NkRCIC8qIFdlYlByb2Nlc3NQcm94eUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbmFtZSA9IFdlYlByb2Nlc3NQcm94eUlPUy5tbTsgcGF0aCA9IGlvcy9XZWJQcm9jZXNz
UHJveHlJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQTk0NEI2MTg4NEVB
MzUwMEVEODZEQiAvKiBXZWJQYWdlSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gV2ViUGFnZUlPUy5tbTsgcGF0aCA9IGlvcy9XZWJQYWdlSU9TLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREE5NDRCQzE4ODUxMUU3MDBFRDg2REIgLyogTmV0
d29ya1Byb2Nlc3NJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBOZXR3b3JrUHJvY2Vzc0lPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkRB
QURBOEUyMjk4QzIxMDAwRTM2QjBDIC8qIERldmljZU1hbmFnZW1lbnRTUEkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlTWFuYWdlbWVudFNQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyREFCQTc3MTFBODE3QjE3MDBFRjBGMUEgLyogV0tQYWdlUmVu
ZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50c0ludGVybmFsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQUJBNzczMUE4MTdFRTYwMEVGMEYxQSAvKiBXS1BsdWdp
bkxvYWRQb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQbHVnaW5M
b2FkUG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQUJBNzc1MUE4MkI0
MjEwMEVGMEYxQSAvKiBBUElIaXN0b3J5Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFQSUhpc3RvcnlDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTYxMDUsNiArNjExMSw3IEBACiAJCQkJMzdDMjFDQUQxRTk5NEMwQzAwMjlENUY5IC8qIENv
cmVQcmVkaWN0aW9uU1BJLmggKi8sCiAJCQkJQTFGQjY4MjYxRjZFNTFDMTAwQzQzRjlGIC8qIENy
YXNoUmVwb3J0ZXJDbGllbnRTUEkuaCAqLywKIAkJCQk1N0RDRURBQTIxNEI5QjQzMDAxNkI4NDcg
LyogRGV2aWNlSWRlbnRpdHlTUEkuaCAqLywKKwkJCQkyREFBREE4RTIyOThDMjEwMDBFMzZCMEMg
LyogRGV2aWNlTWFuYWdlbWVudFNQSS5oICovLAogCQkJCTM3NTRENTQ0MUIzQTI5RkQwMDNBNEM3
RiAvKiBOU0ludm9jYXRpb25TUEkuaCAqLywKIAkJCQkzN0I0N0UyQzFENjREQjc2MDA1RjRFRkYg
Lyogb2JqY1NQSS5oICovLAogCQkJCTBFOTdENzRDMjAwRThGRjMwMEJGNjY0MyAvKiBTYWZlQnJv
d3NpbmdTUEkuaCAqLywKQEAgLTcxMzYsNiArNzE0Myw4IEBACiAJCTdFQzRGMEY4MThFNEE5MjIw
MDgwNTZBRiAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJMkQwQzU2RkIyMjlGMURFQTAwQkQzM0U3IC8qIERldmljZU1hbmFnZW1lbnRTb2Z0
TGluay5oICovLAorCQkJCTJEMEM1NkZDMjI5RjFERUEwMEJEMzNFNyAvKiBEZXZpY2VNYW5hZ2Vt
ZW50U29mdExpbmsubW0gKi8sCiAJCQkJNTMxNTg3NkIyMDc2QjcxMzAwNEJGOUYzIC8qIE5ldHdv
cmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbSAqLywKIAkJCQk1MzIxNTk0RjFEQkFFNkQ3MDA1NEFB
M0MgLyogTmV0d29ya0RhdGFUYXNrQ29jb2EuaCAqLywKIAkJCQk1Q0JDOUI4QjFDNjUyNTczMDBB
OEZEQ0YgLyogTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gKi8sCkBAIC05MjIzLDYgKzkyMzIsOCBA
QAogCQkJCUJDMDMyREE2MTBGNDM3RDEwMDU4QzE1QSAvKiBEZWNvZGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1N0RDRURBQjIxNEM2MDA5MDAxNkI4NDcgLyogRGV2aWNlSWRlbnRpdHlTUEkuaCBp
biBIZWFkZXJzICovLAogCQkJCTA3Mjk3RjlGMUMxN0JCRUEwMTVGMDczNSAvKiBEZXZpY2VJZEhh
c2hTYWx0U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkQwQzU2RkQyMjlGMURFQTAwQkQz
M0U3IC8qIERldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkRB
QURBOEYyMjk4QzIxMDAwRTM2QjBDIC8qIERldmljZU1hbmFnZW1lbnRTUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTgzODkxQjZDMUE2OEMzMEIwMDMwRjM4NiAvKiBEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE4MTczNjEyMDU4NDI0NzAwREZEQTY1IC8qIERp
c3BsYXlMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzE0MjcwMjFDMjNGODRDMDBENDExODMg
LyogRG93bmxvYWQuaCBpbiBIZWFkZXJzICovLApAQCAtMTA5ODIsNiArMTA5OTMsNyBAQAogCQkJ
CTJEOTJBNzdEMjEyQjZBNzEwMEY0OTNGRCAvKiBDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTJEOTJBNzdFMjEyQjZBNzEwMEY0OTNGRCAvKiBEYXRhUmVmZXJlbmNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTJEOTJBNzdGMjEyQjZBNzEwMEY0OTNGRCAvKiBEZWNvZGVyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTJEMEM1NkZFMjI5RjFERUEwMEJEMzNFNyAvKiBEZXZpY2VNYW5h
Z2VtZW50U29mdExpbmsubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUI3RDYxOTEyODhCOUQ5MDBD
RkQwOEMgLyogRG93bmxvYWRQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxQTY0MjI5OTEyREQwMjkyMDBDQUFFMkMgLyogRHJhd2luZ0FyZWFNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2NDIzMDgxMkREMDlFQjAwQ0FBRTJDIC8qIERy
YXdpbmdBcmVhUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5j
cHAKaW5kZXggMjc4YjYwMTg0NzlmMzY1OTAzNDhjODk1MTg1NWFjZjQzZGNiNTlmOC4uMTUyNTY3
MzNiNWQyYjk4MTgwZmNmNTNiNmZiYzcyMzJjYjMxNjcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtMzM1
LDYgKzMzNSw4IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3
b3JrUHJvY2VzcyhSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMCiAKICAgICBsb2FkUGFyYW1ldGVy
cy5pc01haW5GcmFtZU5hdmlnYXRpb24gPSByZXNvdXJjZUxvYWRlci5mcmFtZSgpICYmIHJlc291
cmNlTG9hZGVyLmZyYW1lKCktPmlzTWFpbkZyYW1lKCkgJiYgcmVzb3VyY2VMb2FkZXIub3B0aW9u
cygpLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZTsKIAorICAgIGxvYWRQYXJh
bWV0ZXJzLmlzTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lID0gcmVzb3VyY2VMb2Fk
ZXIuZnJhbWUoKSAmJiByZXNvdXJjZUxvYWRlci5vcHRpb25zKCkubW9kZSA9PSBGZXRjaE9wdGlv
bnM6Ok1vZGU6Ok5hdmlnYXRlOworCiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlQ3Jv
c3NPcmlnaW5SZXNvdXJjZVBvbGljeSA9IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuY3Jvc3NPcmlnaW5SZXNvdXJjZVBvbGljeUVuYWJsZWQoKSAmJiAhbG9hZFBhcmFt
ZXRlcnMuaXNNYWluRnJhbWVOYXZpZ2F0aW9uOwogCiAgICAgaWYgKHJlc291cmNlTG9hZGVyLm9w
dGlvbnMoKS5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUpIHsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhMmNjYzhmODU3ZTg0
MTJhYTU4ZWRkMzA4NWY2OTgzM2U0MjhmMmIxLi5jNmNlNjgyOTVlZmY4YTI1NzEzOWQwYWVhNzJm
ODYxMjY1YjJjN2RjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMDUtMzAgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgT3B0aW9uYWxseSByZXNwZWN0IGRldmljZSBt
YW5hZ2VtZW50IHJlc3RyaWN0aW9ucyB3aGVuIGxvYWRpbmcgZnJvbSB0aGUgbmV0d29yaworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MzE4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NDI2MzgwNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V0tXZWJzaXRlRGF0YXN0b3JlLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3Jl
Q3VzdG9tUGF0aHMubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgQ2xvbmUgYSB0ZXN0IHRo
YXQgdGVzdHMgbm9uLXBlcnNpc3RlbnQgZGF0YSBzdG9yZXMgYW5kIGVuc3VyZQorICAgICAgICB0
aGF0IGl0IHdvcmtzIGlmIHRoZSBkYXRhIHN0b3JlIGlzIGNyZWF0ZWQgdmlhIGEgY29uZmlndXJh
dGlvbiBhcyB3ZWxsLgorCisgICAgICAgIEFkZCBhIHRlc3QgdGhhdCBlbnN1cmVzIHRoYXQgeW91
IGNhbid0IGNyZWF0ZSBhIGRhdGEgc3RvcmUgY29uZmlndXJhdGlvbgorICAgICAgICB3aXRoIGFu
IGludmFsaWQgc2V0IG9mIG9wdGlvbnMuCisKIDIwMTktMDUtMjkgIFJ5YW4gSGFkZGFkICA8cnlh
bmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI0
NTg1Ny4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V0tXZWJzaXRlRGF0YXN0b3JlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1dlYnNpdGVEYXRhc3RvcmUubW0KaW5kZXggM2Y5NTNhNzA3NTE4ZmUzODIwNjczZWEx
MDMyMzQ2MGNiOTI5NGQ0Ni4uODE4ZmQzZTQwMGQ3NjNjMmU1ZWJkYTIzMjkxNzM5M2RkZTE1YjI1
YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dl
YnNpdGVEYXRhc3RvcmUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1dlYnNpdGVEYXRhc3RvcmUubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgPFdl
YktpdC9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2Vi
c2l0ZURhdGFTdG9yZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KKyNpbXBv
cnQgPFdlYktpdC9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oPgogI2ltcG9ydCA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIHN0YXRpYyBib29sIHJlYWR5VG9Db250aW51ZTsKQEAg
LTMwNCw0ICszMDUsNDkgQEAgVEVTVChXS1dlYnNpdGVEYXRhU3RvcmUsIFJlbW92ZU5vblBlcnNp
c3RlbnRDcmVkZW50aWFscykKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwog
fQogCitURVNUKFdlYktpdCwgU2V0dGluZ05vblBlcnNpc3RlbnREYXRhU3RvcmVQYXRoc1Rocm93
c0V4Y2VwdGlvbikKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRXaXRoTm9uUGVyc2lzdGVudENv
bmZpZ3VyYXRpb25dKTsKKworICAgIGF1dG8gc2hvdWxkVGhyb3dFeGNlcHRpb25XaGVuVXNlZCA9
IFtdKEZ1bmN0aW9uPHZvaWQodm9pZCk+JiYgbW9kaWZpZXIpIHsKKyAgICAgICAgQHRyeSB7Cisg
ICAgICAgICAgICBtb2RpZmllcigpOworICAgICAgICAgICAgRVhQRUNUX1RSVUUoZmFsc2UpOwor
ICAgICAgICB9IEBjYXRjaCAoTlNFeGNlcHRpb24gKmV4Y2VwdGlvbikgeworICAgICAgICAgICAg
RVhQRUNUX1dLX1NUUkVRKE5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uLCBleGNlcHRpb24ubmFt
ZSk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgTlNVUkwgKmZpbGVVUkwgPSBbTlNVUkwgZmls
ZVVSTFdpdGhQYXRoOkAiL3RtcCJdOworCisgICAgc2hvdWxkVGhyb3dFeGNlcHRpb25XaGVuVXNl
ZChbJl0geworICAgICAgICBbY29uZmlndXJhdGlvbiBfc2V0V2ViU3RvcmFnZURpcmVjdG9yeTpm
aWxlVVJMXTsKKyAgICB9KTsKKyAgICBzaG91bGRUaHJvd0V4Y2VwdGlvbldoZW5Vc2VkKFsmXSB7
CisgICAgICAgIFtjb25maWd1cmF0aW9uIF9zZXRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeTpm
aWxlVVJMXTsKKyAgICB9KTsKKyAgICBzaG91bGRUaHJvd0V4Y2VwdGlvbldoZW5Vc2VkKFsmXSB7
CisgICAgICAgIFtjb25maWd1cmF0aW9uIF9zZXRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeTpmaWxl
VVJMXTsKKyAgICB9KTsKKyAgICBzaG91bGRUaHJvd0V4Y2VwdGlvbldoZW5Vc2VkKFsmXSB7Cisg
ICAgICAgIFtjb25maWd1cmF0aW9uIF9zZXRDb29raWVTdG9yYWdlRmlsZTpmaWxlVVJMXTsKKyAg
ICB9KTsKKyAgICBzaG91bGRUaHJvd0V4Y2VwdGlvbldoZW5Vc2VkKFsmXSB7CisgICAgICAgIFtj
b25maWd1cmF0aW9uIF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OmZpbGVVUkxd
OworICAgIH0pOworICAgIHNob3VsZFRocm93RXhjZXB0aW9uV2hlblVzZWQoWyZdIHsKKyAgICAg
ICAgW2NvbmZpZ3VyYXRpb24gX3NldENhY2hlU3RvcmFnZURpcmVjdG9yeTpmaWxlVVJMXTsKKyAg
ICB9KTsKKyAgICBzaG91bGRUaHJvd0V4Y2VwdGlvbldoZW5Vc2VkKFsmXSB7CisgICAgICAgIFtj
b25maWd1cmF0aW9uIF9zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5OmZpbGVV
UkxdOworICAgIH0pOworCisgICAgLy8gVGhlc2UgcHJvcGVydGllcyBzaG91bGRuJ3QgdGhyb3cg
ZXhjZXB0aW9ucyB3aGVuIHNldCBvbiBhIG5vbi1wZXJzaXN0ZW50IGRhdGEgc3RvcmUuCisgICAg
W2NvbmZpZ3VyYXRpb24gc2V0RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQ6WUVT
XTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRIVFRQUHJveHk6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJodHRwOi8vd3d3LmFwcGxlLmNvbS8iXV07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0SFRUUFNQ
cm94eTpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHBzOi8vd3d3LmFwcGxlLmNvbS8iXV07Cisg
ICAgW2NvbmZpZ3VyYXRpb24gc2V0U291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyOkAi
Y29tLmFwcGxlLlNhZmFyaSJdOworICAgIFtjb25maWd1cmF0aW9uIHNldFNvdXJjZUFwcGxpY2F0
aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjpAImNvbS5hcHBsZS5TYWZhcmkiXTsKK30KKwogfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0
YVN0b3JlQ3VzdG9tUGF0aHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbQppbmRleCA3MDVmYzQyNGFiZDI2NGMx
Mzg2MTYwMTgwMGIyZTdiMGMxZTE1ZmQ3Li42MGViYWQ0YzczOGJlZDhkMGEzYTE2MDY4MDYyOWI3
MGNiNzRmYWQ3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbQpAQCAt
NDI5LDYgKzQyOSw0OCBAQCBURVNUKFdlYktpdCwgV2Vic2l0ZURhdGFTdG9yZUVwaGVtZXJhbCkK
ICAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhp
c3RzQXRQYXRoOmRlZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlsZVBhdGgucGF0aF0pOwog
fQogCitURVNUKFdlYktpdCwgV2Vic2l0ZURhdGFTdG9yZUVwaGVtZXJhbFZpYUNvbmZpZ3VyYXRp
b24pCit7CisgICAgUmV0YWluUHRyPFdlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRoc01lc3NhZ2VI
YW5kbGVyPiBoYW5kbGVyID0gYWRvcHROUyhbW1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRoc01l
c3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZp
Z3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOworICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xs
ZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RIYW5k
bGVyIl07CisKKyAgICBOU1VSTCAqZGVmYXVsdFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXRoID0g
W05TVVJMIGZpbGVVUkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkv
V2Vic2l0ZURhdGEvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy8iIHN0cmluZ0J5RXhwYW5kaW5nVGls
ZGVJblBhdGhdIGlzRGlyZWN0b3J5OllFU107CisKKyAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVs
dE1hbmFnZXJdIHJlbW92ZUl0ZW1BdFVSTDpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Bh
dGggZXJyb3I6bmlsXTsKKworICAgIEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVs
dE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZGVmYXVsdFJlc291cmNlTG9hZFN0YXRpc3RpY3NQ
YXRoLnBhdGhdKTsKKworICAgIFJldGFpblB0cjxfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbj4gZGF0YVN0b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdFdpdGhOb25QZXJzaXN0ZW50Q29uZmlndXJhdGlv
bl0pOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IFtbW1dLV2Vi
c2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpkYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmdldCgpXSBhdXRvcmVsZWFzZV07CisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCku
d2Vic2l0ZURhdGFTdG9yZSBfc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQ6WUVTXTsK
KworICAgIC8vIFdlIGV4cGVjdCB0aGUgZGlyZWN0b3J5IHRvIGJlIGNyZWF0ZWQgYnkgc3RhcnRp
bmcgdXAgdGhlIGRhdGEgc3RvcmUgbWFjaGluZXJ5LCBidXQgbm90IHRoZSBkYXRhIGZpbGUuCisg
ICAgRVhQRUNUX1RSVUUoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3Rz
QXRQYXRoOmRlZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGF0aC5wYXRoXSk7CisKKyAgICBO
U1VSTCAqZGVmYXVsdFJlc291cmNlTG9hZFN0YXRpc3RpY3NGaWxlUGF0aCA9IFtOU1VSTCBmaWxl
VVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL1dlYnNpdGVEYXRh
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZnVsbF9icm93c2luZ19zZXNzaW9uX3Jlc291cmNlTG9n
LnBsaXN0IiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXSBpc0RpcmVjdG9yeTpOT107Cisg
ICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0
c0F0UGF0aDpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpbGVQYXRoLnBhdGhdKTsKKwor
ICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0g
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZv
clJlc291cmNlOkAiV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzIiB3aXRoRXh0ZW5zaW9uOkAi
aHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisKKyAgICBbW1t3ZWJWaWV3IGNvbmZpZ3VyYXRp
b25dIHByb2Nlc3NQb29sXSBfc3luY05ldHdvcmtQcm9jZXNzQ29va2llc107CisKKyAgICAvLyBG
b3JjaWJseSBzaHV0IGRvd24gZXZlcnl0aGluZyBvZiBXZWJLaXQgdGhhdCB3ZSBjYW4uCisgICAg
YXV0byBwaWQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIGlmIChwaWQp
CisgICAgICAgIGtpbGwocGlkLCBTSUdLSUxMKTsKKworICAgIHdlYlZpZXcgPSBuaWw7CisgICAg
aGFuZGxlciA9IG5pbDsKKyAgICBjb25maWd1cmF0aW9uID0gbmlsOworCisgICAgRVhQRUNUX1RS
VUUoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmRlZmF1
bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGF0aC5wYXRoXSk7CisgICAgRVhQRUNUX0ZBTFNFKFtb
TlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpkZWZhdWx0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0ZpbGVQYXRoLnBhdGhdKTsKK30KKwogVEVTVChXZWJLaXQsIERv
TG9hZFdpdGhOb25EZWZhdWx0RGF0YVN0b3JlQWZ0ZXJUZXJtaW5hdGluZ05ldHdvcmtQcm9jZXNz
KQogewogICAgIGF1dG8gd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtb
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371010</attachid>
            <date>2019-05-30 18:33:09 -0700</date>
            <delta_ts>2019-05-30 19:06:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198318-20190530183308.patch</filename>
            <type>text/plain</type>
            <size>78994</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDgxMGUxOGQ0ZDkyMGFlYmYxZWVjYWM1
OWZmY2U5YjA0NmFmOTEyM2QuLjU4OWRmNTA2MzM2YzhhNGM4YzQxNjI2OWJkNDc4N2QxNGMwOGE3
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDUtMzAgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgT3B0aW9uYWxseSByZXNwZWN0IGRldmljZSBt
YW5hZ2VtZW50IHJlc3RyaWN0aW9ucyB3aGVuIGxvYWRpbmcgZnJvbSB0aGUgbmV0d29yaworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MzE4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NDI2MzgwNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAgICAgICBBZGQgYSBI
QVZFIGZsYWcgZm9yIERldmljZU1hbmFnZW1lbnQuZnJhbWV3b3JrLgorICAgICAgICBJdCBkb2Vz
IGV4aXN0IGluIHRoZSBzaW11bGF0b3IsIGJ1dCBkb2VzIG5vdCBmdW5jdGlvbjsgcHJldGVuZCBp
dCBkb2Vzbid0IGV4aXN0LgorCiAyMDE5LTA1LTI5ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDU4NTcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYjljYWNlZWVjNjE2ZjBmNzgzNjIyODU2NjQzN2M0MTRmNmM2YTUxOC4uOWU5
MjE2YzdhZmFhNWMyMDllMjQ5ZmQzMDAwZjg0ZDNkNWRlYWQxNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDE5LTA1LTMwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgorCisgICAgICAgIE9wdGlvbmFsbHkgcmVzcGVjdCBkZXZpY2UgbWFuYWdlbWVudCByZXN0
cmljdGlvbnMgd2hlbiBsb2FkaW5nIGZyb20gdGhlIG5ldHdvcmsKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODMxOAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDQyNjM4MDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorCiAyMDE5LTA1LTI5ICBS
eWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIyNDU4NTcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE1ZDE5OTc0YmU3Nzk3ZTNmNzZhNDc4
MzYxN2NjZGU0Y2U5Njk2YWMuLmZiNmIxMDdhYjFiZTZjMTI0ZGMzNDdhNGYzNTAyZThhMTU4ODE1
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE2IEBACisyMDE5LTA1LTMwICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIE9wdGlvbmFsbHkgcmVzcGVjdCBk
ZXZpY2UgbWFuYWdlbWVudCByZXN0cmljdGlvbnMgd2hlbiBsb2FkaW5nIGZyb20gdGhlIG5ldHdv
cmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODMx
OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQyNjM4MDY+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9OZXR3b3JrLWlP
Uy5lbnRpdGxlbWVudHM6CisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3Mv
Y29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiOgorICAgICAgICBBZGQgc29tZSBlbnRpdGxl
bWVudHMgYW5kIHNhbmRib3ggaG9sZXMgcmVxdWlyZWQgdG8gdGFsayB0byBEZXZpY2VNYW5hZ2Vt
ZW50LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVj
a2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjp3
YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6Ondhc0Jsb2NrZWRCeVJl
c3RyaWN0aW9ucyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBp
bmdMb2FkOjp3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1BpbmdMb2FkLmg6CisgICAgICAgICogU2hhcmVkL1dlYkVycm9ycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ondhc0Jsb2NrZWRCeVJlc3RyaWN0aW9uc0Vycm9yKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViRXJyb3JzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNr
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OmZhaWx1cmVUaW1lckZpcmVkKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L0FQSUVycm9yLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYuY3BwOgorICAg
ICAgICAoV0tFcnJvckdldEVycm9yQ29kZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLRXJy
b3JSZWYuaDoKKyAgICAgICAgUGx1bWIgYSBuZXcgZXJyb3IgZm9yIGxvYWRzIHRoYXQgYXJlIGJs
b2NrZWQgYnkgZGV2aWNlIG1hbmFnZW1lbnQgcmVzdHJpY3Rpb25zLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6
CisgICAgICAgIFBsdW1iIGEgbmV3IGJpdCB0aGF0IGluZGljYXRlcyB3aGV0aGVyIGEgbG9hZCBp
cyBmb3IgdGhlIG1haW4gcmVzb3VyY2Ugb2YgYSBmcmFtZS4KKyAgICAgICAgV2Ugd2lsbCBvbmx5
IGFwcGx5IGRldmljZSBtYW5hZ2VtZW50IHJlc3RyaWN0aW9ucyB0byBtYWluIHJlc291cmNlcy4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRl
cnM6OnByaXZhdGVTZXNzaW9uUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAg
ICBQbHVtYiBhIG5ldyBiaXQgaW5kaWNhdGluZyB3aGV0aGVyIGEgbmV0d29yayBzZXNzaW9uIHNo
b3VsZCByZXNwZWN0IGRldmljZSBtYW5nZW1lbnQKKyAgICAgICAgcmVzdHJpY3Rpb25zLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29h
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6OnJlc3VtZSk6CisgICAg
ICAgIERlZmVyIHJlc3VtaW5nIHRoZSBsb2FkIHVudGlsIHdlIGhhdmUgYSByZXBseSBmcm9tIERl
dmljZU1hbmFnZW1lbnQgZnJhbWV3b3JrCisgICAgICAgIGFib3V0IHdoZXRoZXIgdGhlIFVSTCBz
aG91bGQgYmUgYmxvY2tlZC4gSWYgaXQgaXMgYmxvY2tlZCwgaW5zdGVhZCBmYWlsIHRoZSBsb2Fk
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06
CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSBVUkxTZXNzaW9uOmRhdGFUYXNr
OmRpZFJlY2VpdmVSZXNwb25zZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmRldmljZU1hbmFnZW1lbnRQb2xpY3lNb25pdG9y
KToKKyAgICAgICAgQ2FjaGUgYSBzaW5nbGUgRE1GV2Vic2l0ZVBvbGljeU1vbml0b3IgaW5zdGFu
Y2UgcGVyIE5ldHdvcmtTZXNzaW9uLgorCisgICAgICAgIAorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChBUEk6OldlYnNpdGVEYXRhU3Rv
cmU6OmRlZmF1bHREYXRhU3RvcmVDb25maWd1cmF0aW9uKToKKyAgICAgICAgVGhlIGRlZmF1bHQg
ZGF0YSBzdG9yZSBpcyBwZXJzaXN0ZW50OyBpdHMgY29uZmlndXJhdGlvbiBzaG91bGQgcmVmbGVj
dCB0aGF0LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1t
OgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZv
clNlcnZpY2VXb3JrZXI6XSk6IFN0eWxlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBf
aW5pdFdpdGhDb25maWd1cmF0aW9uOl0pOgorICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIGNy
ZWF0ZSBhIG5vbi1wZXJzaXN0ZW50IFdLV2Vic2l0ZURhdGFTdG9yZSBmcm9tIGEKKyAgICAgICAg
Y29uZmlndXJhdGlvbiwgYW5kIGVuc3VyZSB0aGF0IGl0IGRvZXMgbm90IGhhdmUgYW55IHBlcnNp
c3RlbnQgc3RvcmFnZSBkaXJlY3RvcmllcyBzZXQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbToKKyAg
ICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gaW5pdF0pOgorICAgICAg
ICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBpbml0V2l0aE5vblBlcnNpc3Rl
bnRDb25maWd1cmF0aW9uXSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uIGlzUGVyc2lzdGVudF0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbiBfc2V0V2ViU3RvcmFnZURpcmVjdG9yeTpdKToKKyAgICAgICAgKC1bX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gX3NldEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5
Ol0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBfc2V0V2Vi
U1FMRGF0YWJhc2VEaXJlY3Rvcnk6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uIF9zZXRDb29raWVTdG9yYWdlRmlsZTpdKToKKyAgICAgICAgKC1bX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3Rvcnk6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIF9z
ZXRDYWNoZVN0b3JhZ2VEaXJlY3Rvcnk6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uIF9zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5Ol0p
OgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBkZXZpY2VNYW5h
Z2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZF0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbiBzZXREZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDpd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbjo6Y29weSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uOjppc1BlcnNpc3RlbnQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0UGVyc2lzdGVudCk6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpwZXJPcmlnaW5TdG9yYWdlUXVvdGEg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6
ZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0RGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbjo6cGVyT3JpZ2luU3RvcmFnZVF1b3RhKTogRGVsZXRlZC4KKyAgICAgICAgTWFr
ZSBpdCBwb3NzaWJsZSB0byBjcmVhdGUgYSBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
biB0aGF0IHdpbGwgY3JlYXRlIGEgbm9uLXBlcnNpc3RlbnQKKyAgICAgICAgZGF0YSBzdG9yZS4g
QWRkIGEgYml0IHRvIF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHRoYXQgY29udHJv
bHMgd2hldGhlciB0aGUgbmV0d29yayAKKyAgICAgICAgc2Vzc2lvbiB3aWxsIHJlc3BlY3QgZGV2
aWNlIG1hbmFnZW1lbnQgcmVzdHJpY3Rpb25zLgorCisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L0RldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oOgorICAgICAgICAqIFdlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9EZXZpY2VNYW5hZ2VtZW50U29mdExpbmsubW06CisgICAgICAgICogV2ViS2l0
L1BsYXRmb3JtL3NwaS9Db2NvYS9EZXZpY2VNYW5hZ2VtZW50U1BJLmg6CisgICAgICAgIEFkZCBz
b21lIHNvZnQtbGlua2luZyBhbmQgU1BJIGhlYWRlcnMuCisKIDIwMTktMDUtMjkgIFJ5YW4gSGFk
ZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjI0NTg1Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDQ0N2JiMThhOGYwMjhjMjk1MDFkMzkzMWZi
OTU1N2E4ZDUzYTI2MDcuLjMzMmViM2U3YThjMjIzZDdjMDkxYjZlYWJmYWExZDhhOGJjMjRjOGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm0uaApAQCAtMTU0Nyw2ICsxNTQ3LDEwIEBACiAjZGVmaW5lIEhBVkVfUk9VVEVf
U0hBUklOR19QT0xJQ1lfTE9OR19GT1JNX1ZJREVPIDEKICNlbmRpZgogCisjaWYgKFBMQVRGT1JN
KElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwICYmICFQ
TEFURk9STShJT1NfU0lNVUxBVE9SKSkKKyNkZWZpbmUgSEFWRV9ERVZJQ0VfTUFOQUdFTUVOVCAx
CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9B
TExPV0VEIDwgMTAxNTAwCiAjZGVmaW5lIFVTRV9SRUFMUEFUSF9GT1JfRExPUEVOX1BSRUZMSUdI
VCAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXph
YmxlLnN0cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdz
CmluZGV4IGYzNTk3YTM4ZmNhMzRjODFjZGU2NzU4ZTEzNjQzNjhmNTc1N2FmOTEuLmEzODEwNjk3
MzYyMzFlYzdlOGQ3Y2ViN2VhZWM0ZjI2MzBjMGZjMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNvcmUvZW4u
bHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpAQCAtODAyLDYgKzgwMiw5IEBACiAvKiBXZWJLaXRF
cnJvckZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRGaWx0ZXIgZGVzY3JpcHRpb24gKi8KICJUaGUg
VVJMIHdhcyBibG9ja2VkIGJ5IGEgY29udGVudCBmaWx0ZXIiID0gIlRoZSBVUkwgd2FzIGJsb2Nr
ZWQgYnkgYSBjb250ZW50IGZpbHRlciI7CiAKKy8qIFdlYktpdEVycm9yRnJhbWVMb2FkQmxvY2tl
ZEJ5UmVzdHJpY3Rpb25zIGRlc2NyaXB0aW9uICovCisiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBk
ZXZpY2UgcmVzdHJpY3Rpb25zIiA9ICJUaGUgVVJMIHdhcyBibG9ja2VkIGJ5IGRldmljZSByZXN0
cmljdGlvbnMiOworCiAvKiBXS0Vycm9yV2ViVmlld0ludmFsaWRhdGVkIGRlc2NyaXB0aW9uICov
CiAiVGhlIFdLV2ViVmlldyB3YXMgaW52YWxpZGF0ZWQiID0gIlRoZSBXS1dlYlZpZXcgd2FzIGlu
dmFsaWRhdGVkIjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9O
ZXR3b3JrLWlPUy5lbnRpdGxlbWVudHMgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL05l
dHdvcmstaU9TLmVudGl0bGVtZW50cwppbmRleCAyZWU2OTY2MzhmNjcyZTYyMzdkYTBiNzQ3OGFm
ZTk5MzZiNDg4NjNhLi41M2RmZDU2MzU0MDk5ZWYwMzA5MWQxZDVjNTk0YjNmMTczYjI4NTkxIDEw
MDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDI0NAp6Y21YQGFAfHtVNHNVUm5feFd2SFZJd0tQ
XjNvOUV0Mkx+NGk1WDF7O1BnWjhzd3VsI3lPVX0+TE9EcmhKTiEyU1QKeiR9Q0dQTiE4MHUmQ01e
V0VHfGhiREpfbHs1RytuakVKO2V1RGJYemAlMV9KOE5kPTBATyNDUnI5NTB8YmM/UDRWCno1fEUy
Jk1vTW1xVU98M05XXiFlYGZZIXV+VDR8aHwzJVRQM3EhQjheUTxKPGlPWjVDd09VbTwkdk5RQTJJ
ZX56SQp4Z0YmM1psXzhDeGllVjxoUUhDZHNme2EzcCFpPUpmIyo4TTZyaV45YFY4RngocCYxMEFH
P1pkQTJMUXIqSzJyYnkKCmxpdGVyYWwgNTc4CnpjbWEpKC0lRzxWNVhZYWx6YXIrbmlOMSsrOWxB
e3pqIztvR0s0IzUxTCg/V0MqVlg+X1VibGpaIWhBaXhLUiRQdAp6Jk9kNik0aUtWbyY1VTEoT1V8
R3ZvaUAjVyMtRUcoPGVKYTNYP240SVRva1lRaWd7fXl2aSRqT3Z0QlRzTk98a00KejF1MilzbEk1
SEFRXjY9aCVHSClMeypMSHhyMGx2KnM2aSE0Un1hRHteV1ohTD5eQnNha1U/bkZvTjcrI0tYN1FP
CnpPXk1sYmwyKmBYNmZ1VT90d248PlIpaXtJOX0jTTVRODd8NUVmWjVZPSpmbm0xXkxfV1JiTkFj
TFJwKXJ2Vj9mdgp6NXpJaiQydldQWSE2PGZacWIoUjZ5Pm9BYmFrZz57c0cpWCZoIXdXfkVeUG9p
N2IrMjVTcGc7KkViSXk5QDUlQFkKeWNWSUVgZnhzKyR3V3R1KGFGdDBLRiVhXiVnVEJELSFKeWNs
aWpNMXk4YWtwSmpqMjMrQmJDUXJXeiRhcTBtM3VACgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwCmlu
ZGV4IDJiMGExYzM3OWVjZDg2NjJiMDA4MWY0ZGIyZWU1MTc5MDVhOTU1YzQuLjk0ZjEyNzcyODJi
OTUzMjFmNjY2NWNkNGZiNjZiNzkyZGM4MzQ5YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAK
QEAgLTE2Myw2ICsxNjMsMTIgQEAgdm9pZCBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OmNh
bm5vdFNob3dVUkwoKQogICAgIG1fY29tcGxldGlvbkNhbGxiYWNrKFJlc291cmNlRXJyb3IgeyBl
cnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCBtX3BhcmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0
LnVybCgpLCAiUHJlZmxpZ2h0IHJlc3BvbnNlIHdhcyBibG9ja2VkIl9zLCBSZXNvdXJjZUVycm9y
OjpUeXBlOjpBY2Nlc3NDb250cm9sIH0pOwogfQogCit2b2lkIE5ldHdvcmtDT1JTUHJlZmxpZ2h0
Q2hlY2tlcjo6d2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zKCkKK3sKKyAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJ3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMiKTsKKyAgICBtX2NvbXBsZXRpb25D
YWxsYmFjayhSZXNvdXJjZUVycm9yIHsgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgbV9w
YXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdC51cmwoKSwgIlByZWZsaWdodCByZXNwb25zZSB3YXMg
YmxvY2tlZCJfcywgUmVzb3VyY2VFcnJvcjo6VHlwZTo6QWNjZXNzQ29udHJvbCB9KTsKK30KKwog
TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24gTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2Vy
Ojp0YWtlSW5mb3JtYXRpb24oKQogewogICAgIEFTU0VSVChtX3Nob3VsZENhcHR1cmVFeHRyYU5l
dHdvcmtMb2FkTWV0cmljcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaAppbmRleCA0ZDNkMTY5ZjZhZjlm
NDNiNzYxMDgxY2ZiZmU2MGFmYzVhMzkzZmQ0Li44NzI0OGYwZTBlMTI4NDkzYTU1NmU1Y2ZiMWMz
NWJkNTM0ZDkxZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmgKQEAgLTcyLDYgKzcyLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGRpZFNlbmREYXRhKHVpbnQ2NF90IHRvdGFsQnl0ZXNTZW50LCB1aW50
NjRfdCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1NlbmQpIGZpbmFsOwogICAgIHZvaWQgd2FzQmxvY2tl
ZCgpIGZpbmFsOwogICAgIHZvaWQgY2Fubm90U2hvd1VSTCgpIGZpbmFsOworICAgIHZvaWQgd2Fz
QmxvY2tlZEJ5UmVzdHJpY3Rpb25zKCkgZmluYWw7CiAKICAgICBQYXJhbWV0ZXJzIG1fcGFyYW1l
dGVyczsKICAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nlc3M7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKaW5kZXggZjFm
MDExMTVkMjMxYWFiZDdkZTBlZDAwYzA3ODRmMTg4ZjA5Y2M1NC4uYmNiYWU5ZDMxZmJmOGU3NjBl
NGQ2ZmY2NjAwMTI4NmQwMjU0YWEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcApAQCAtNTAsNyArNTAsNyBAQCBSZWY8TmV0d29ya0Rh
dGFUYXNrPiBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwg
TmV0d29ya0RhdAogewogICAgIEFTU0VSVCghcGFyYW1ldGVycy5yZXF1ZXN0LnVybCgpLnByb3Rv
Y29sSXNCbG9iKCkpOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHJldHVybiBOZXR3b3JrRGF0
YVRhc2tDb2NvYTo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBw
YXJhbWV0ZXJzLndlYkZyYW1lSUQsIHBhcmFtZXRlcnMud2ViUGFnZUlELCBwYXJhbWV0ZXJzLnN0
b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwg
cGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLnNob3VsZFBy
ZWNvbm5lY3RPbmx5LCBwYXJhbWV0ZXJzLmlzTWFpbkZyYW1lTmF2aWdhdGlvbiwgcGFyYW1ldGVy
cy5uZXR3b3JrQWN0aXZpdHlUcmFja2VyKTsKKyAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQ29j
b2E6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVy
cy53ZWJGcmFtZUlELCBwYXJhbWV0ZXJzLndlYlBhZ2VJRCwgcGFyYW1ldGVycy5zdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRl
cnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJS
ZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0
T25seSwgcGFyYW1ldGVycy5pc01haW5GcmFtZU5hdmlnYXRpb24sIHBhcmFtZXRlcnMuaXNNYWlu
UmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIHBhcmFtZXRlcnMubmV0d29ya0FjdGl2aXR5
VHJhY2tlcik7CiAjZW5kaWYKICNpZiBVU0UoU09VUCkKICAgICByZXR1cm4gTmV0d29ya0RhdGFU
YXNrU291cDo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJh
bWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmlu
Z1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgcGFyYW1l
dGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJz
LmlzTWFpbkZyYW1lTmF2aWdhdGlvbik7CkBAIC0xMzMsNiArMTMzLDExIEBAIHZvaWQgTmV0d29y
a0RhdGFUYXNrOjpmYWlsdXJlVGltZXJGaXJlZCgpCiAgICAgICAgIGlmIChtX2NsaWVudCkKICAg
ICAgICAgICAgIG1fY2xpZW50LT5jYW5ub3RTaG93VVJMKCk7CiAgICAgICAgIHJldHVybjsKKyAg
ICBjYXNlIFJlc3RyaWN0ZWRVUkxGYWlsdXJlOgorICAgICAgICBtX3NjaGVkdWxlZEZhaWx1cmVU
eXBlID0gTm9GYWlsdXJlOworICAgICAgICBpZiAobV9jbGllbnQpCisgICAgICAgICAgICBtX2Ns
aWVudC0+d2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zKCk7CisgICAgICAgIHJldHVybjsKICAgICBj
YXNlIE5vRmFpbHVyZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJy
ZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0
YVRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgK
aW5kZXggY2U3YjJhZDUwNjM2NWE0MzI4YmE1NzNhZjE2MTcwOTYwYmFiZmJjYS4uOWY1ZmUxZjRi
MzgzOTY0OTBjY2I0ZjQzMTVjNDJlMTJiZWI2N2QwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkU2VuZERhdGEodWludDY0X3QgdG90YWxCeXRlc1NlbnQsIHVp
bnQ2NF90IHRvdGFsQnl0ZXNFeHBlY3RlZFRvU2VuZCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB3
YXNCbG9ja2VkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjYW5ub3RTaG93VVJMKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCB3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMoKSA9IDA7CiAKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIApAQCAtMTM0LDcgKzEzNSw4IEBAIHByb3RlY3RlZDoKICAgICBl
bnVtIEZhaWx1cmVUeXBlIHsKICAgICAgICAgTm9GYWlsdXJlLAogICAgICAgICBCbG9ja2VkRmFp
bHVyZSwKLSAgICAgICAgSW52YWxpZFVSTEZhaWx1cmUKKyAgICAgICAgSW52YWxpZFVSTEZhaWx1
cmUsCisgICAgICAgIFJlc3RyaWN0ZWRVUkxGYWlsdXJlCiAgICAgfTsKICAgICB2b2lkIGZhaWx1
cmVUaW1lckZpcmVkKCk7CiAgICAgdm9pZCBzY2hlZHVsZUZhaWx1cmUoRmFpbHVyZVR5cGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAppbmRleCA3MzVm
MzY5YTFjYTA2YzI3YzYxYTgzMGU2ODE3NzI5ODIzOWRjNmJjLi45MTA3ZmVjMWUzNGRiNDQ4ODE2
MjI4Njg2MjJjOGZiZWI1YjM4ODNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkLmNwcApAQCAtMjc2LDYgKzI3NiwxMCBAQCB2b2lkIE5ldHdvcmtMb2FkOjpj
YW5ub3RTaG93VVJMKCkKICAgICBtX2NsaWVudC5nZXQoKS5kaWRGYWlsTG9hZGluZyhjYW5ub3RT
aG93VVJMRXJyb3IobV9jdXJyZW50UmVxdWVzdCkpOwogfQogCit2b2lkIE5ldHdvcmtMb2FkOjp3
YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMoKQoreworICAgIG1fY2xpZW50LmdldCgpLmRpZEZhaWxM
b2FkaW5nKHdhc0Jsb2NrZWRCeVJlc3RyaWN0aW9uc0Vycm9yKG1fY3VycmVudFJlcXVlc3QpKTsK
K30KIAogU3RyaW5nIE5ldHdvcmtMb2FkOjpkZXNjcmlwdGlvbigpIGNvbnN0CiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgKaW5kZXggYTVlYmFiNjBmNzJlZWEz
ZjcxOTFhNTU4NmUzYTYyMGMyNGYxMDZjYy4uZDQxNWQwNGEyOWJmMjNmN2I1Y2NmMzNiODQ4MDQw
NTk4MzY3NGI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTG9hZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQu
aApAQCAtODAsNiArODAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkU2VuZERhdGEodWludDY0
X3QgdG90YWxCeXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNFeHBlY3RlZFRvU2VuZCkgZmlu
YWw7CiAgICAgdm9pZCB3YXNCbG9ja2VkKCkgZmluYWw7CiAgICAgdm9pZCBjYW5ub3RTaG93VVJM
KCkgZmluYWw7CisgICAgdm9pZCB3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMoKSBmaW5hbDsKIAog
ICAgIHZvaWQgbm90aWZ5RGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmJiwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmKTsKICAgICB2b2lkIHRocm90dGxlRGVs
YXlDb21wbGV0ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkUGFyYW1ldGVycy5oCmluZGV4IDg5NzMwY2Y5ZmQyNjk5YmNmZDMyZGRjMzhlZjhj
ZTAzNzQ2YTMwMzQuLmNmYjJjNzVjMGNkNzkyYTAwYTUwNWM4MGI2OThjMTYwYTgwMjEzNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFt
ZXRlcnMuaApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0IHsgdHJ1ZSB9OwogICAgIGJvb2wgbmVlZHNDZXJ0
aWZpY2F0ZUluZm8geyBmYWxzZSB9OwogICAgIGJvb2wgaXNNYWluRnJhbWVOYXZpZ2F0aW9uIHsg
ZmFsc2UgfTsKKyAgICBib29sIGlzTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lIHsg
ZmFsc2UgfTsKICAgICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5j
ZT4+IGJsb2JGaWxlUmVmZXJlbmNlczsKICAgICBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25u
ZWN0T25seSB7IFByZWNvbm5lY3RPbmx5OjpObyB9OwogICAgIE9wdGlvbmFsPE5ldHdvcmtBY3Rp
dml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMuY3BwCmluZGV4IDMzY2RjNGQxN2RiZTJlMDg2NmUzNjEyZWYyMjc2MWEzODIzODA1OWIuLjBl
NDQ1OTRiODllNjY2NDg5YWZmMTI4ZjhjNTFjMGM2YzFhY2UyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMuY3BwCkBAIC03OCw2ICs3OCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rl
ciA8PCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0OwogICAgIGVuY29k
ZXIgPDwgbmVlZHNDZXJ0aWZpY2F0ZUluZm87CiAgICAgZW5jb2RlciA8PCBpc01haW5GcmFtZU5h
dmlnYXRpb247CisgICAgZW5jb2RlciA8PCBpc01haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlG
cmFtZTsKICAgICBlbmNvZGVyIDw8IG1heGltdW1CdWZmZXJpbmdUaW1lOwogCiAgICAgZW5jb2Rl
ciA8PCBzdGF0aWNfY2FzdDxib29sPihzb3VyY2VPcmlnaW4pOwpAQCAtMTY5LDYgKzE3MCw4IEBA
IGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIsIE5ldHdvcmtSZXNvdXJjCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc01haW5GcmFtZU5hdmlnYXRpb24pKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNNYWluUmVzb3Vy
Y2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQubWF4aW11bUJ1ZmZlcmluZ1RpbWUpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMjZi
ZjE5ZDlhY2NiOTkzYjBhZjUzMTliMTFiMjc1YzFlMjNlNDg3Mi4uMDU0MDI5YmI2NWE0YWMwYWY3
MDQyN2E2MmYwOWM0ZjJiMjBlNTUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5j
cHAKQEAgLTUwLDcgKzUwLDcgQEAgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OnByaXZhdGVTZXNzaW8KICNpZiBVU0UoQ1VS
TCkKICAgICAgICAgLCB7IH0sIHsgfQogI2VuZGlmCi0gICAgICAgICwgeyB9LCB7IH0sIGZhbHNl
LCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfQorICAgICAgICAsIHsgfSwgeyB9LCBmYWxzZSwgeyB9
LCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfQogICAgIH07CiB9CiAKQEAgLTg0LDcgKzg0LDkgQEAg
dm9pZCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGVuYWJsZVJlc291cmNlTG9hZFN0YXRp
c3RpY3NEZWJ1Z01vZGU7CiAgICAgZW5jb2RlciA8PCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFu
dWFsUHJldmFsZW50UmVzb3VyY2U7CiAKLSAgICBlbmNvZGVyIDw8IGxvY2FsU3RvcmFnZURpcmVj
dG9yeSA8PCAgbG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGVuY29k
ZXIgPDwgbG9jYWxTdG9yYWdlRGlyZWN0b3J5IDw8IGxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVu
c2lvbkhhbmRsZTsKKworICAgIGVuY29kZXIgPDwgZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9u
c0VuYWJsZWQ7CiB9CiAKIE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
PiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlcikKQEAgLTIwOCw2ICsyMTAsMTEgQEAgT3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVh
dGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWMKICAg
ICBpZiAoIWxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKIAorICAgIE9wdGlvbmFsPGJvb2w+IGRldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNFbmFibGVkOworICAgIGRlY29kZXIgPj4gZGV2aWNlTWFuYWdlbWVudFJlc3Ry
aWN0aW9uc0VuYWJsZWQ7CisgICAgaWYgKCFkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5h
YmxlZCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwogICAgIHJldHVybiB7ewogICAg
ICAgICBzZXNzaW9uSUQKICAgICAgICAgLCBXVEZNb3ZlKCpib3VuZEludGVyZmFjZUlkZW50aWZp
ZXIpCkBAIC0yMzUsNiArMjQyLDcgQEAgT3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBh
cmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWMKICAgICAgICAg
LCBXVEZNb3ZlKCplbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKQogICAgICAgICAsIFdURk1v
dmUoKnNob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MpCiAgICAg
ICAgICwgV1RGTW92ZSgqZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSkKKyAg
ICAgICAgLCBXVEZNb3ZlKCpkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCkKICAg
ICAgICAgLCBXVEZNb3ZlKCpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVz
b3VyY2UpCiAgICAgICAgICwgV1RGTW92ZSgqbG9jYWxTdG9yYWdlRGlyZWN0b3J5KQogICAgICAg
ICAsIFdURk1vdmUoKmxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlv
blBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA2ZmMwN2FlZDI0YjQwYTY3ZGFmNGMxNzZlNGY3
ZGJmMTViMGI3MGM1Li4xNzUyNWZlYzY5YmEwYzdjYjQ1OWZmZjVhZWIxN2JkZWM3MzYwOWVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC04Niw2ICs4Niw3IEBAIHN0cnVjdCBO
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCBlbmFibGVSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzIHsgZmFsc2UgfTsKICAgICBib29sIHNob3VsZEluY2x1ZGVMb2NhbGhv
c3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MgeyB0cnVlIH07CiAgICAgYm9vbCBlbmFibGVSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlIHsgZmFsc2UgfTsKKyAgICBib29sIGRldmljZU1h
bmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkIHsgZmFsc2UgfTsKICAgICBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3Vy
Y2UgeyB9OwogCiAgICAgU3RyaW5nIGxvY2FsU3RvcmFnZURpcmVjdG9yeTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKaW5kZXggMjFiYzdhNGU5YjIzZTIyNzE1MWQw
MTBlNDk1NTRkOWNjYzVmNGIyZS4uZmU4ZjAzYWJmOTlkYmNkZGFlZTBkYjJlNTZhMmMyYTczYzAx
M2FjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKQEAgLTIw
MCw2ICsyMDAsMTIgQEAgdm9pZCBQaW5nTG9hZDo6Y2Fubm90U2hvd1VSTCgpCiAgICAgZGlkRmlu
aXNoKGNhbm5vdFNob3dVUkxFcnJvcihSZXNvdXJjZVJlcXVlc3QgeyBjdXJyZW50VVJMKCkgfSkp
OwogfQogCit2b2lkIFBpbmdMb2FkOjp3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMoKQoreworICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucyIpOworICAg
IGRpZEZpbmlzaCh3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnNFcnJvcihSZXNvdXJjZVJlcXVlc3Qg
eyBjdXJyZW50VVJMKCkgfSkpOworfQorCiB2b2lkIFBpbmdMb2FkOjp0aW1lb3V0VGltZXJGaXJl
ZCgpCiB7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgidGltZW91dFRpbWVyRmlyZWQiKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuaAppbmRleCBjN2UxMmJiMTMwZDA0
OWM1ZDBhNTk3YzAxZmU1YmZmYzhiMjIxYmY5Li41MDU5MmI3NTI5OGUyZGQzNTIxY2NlNjgwMDkw
NWZiOGFhZjVjYjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Bp
bmdMb2FkLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5oCkBA
IC01OCw2ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRTZW5kRGF0YSh1aW50NjRfdCB0
b3RhbEJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc0V4cGVjdGVkVG9TZW5kKSBmaW5hbDsK
ICAgICB2b2lkIHdhc0Jsb2NrZWQoKSBmaW5hbDsKICAgICB2b2lkIGNhbm5vdFNob3dVUkwoKSBm
aW5hbDsKKyAgICB2b2lkIHdhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucygpIGZpbmFsOwogICAgIHZv
aWQgdGltZW91dFRpbWVyRmlyZWQoKTsKIAogICAgIHZvaWQgbG9hZFJlcXVlc3QoTmV0d29ya1By
b2Nlc3MmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL0RldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9EZXZpY2VNYW5hZ2VtZW50U29mdExp
bmsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wMzgzN2E2YmFmODNmOGM1NDc0MWQ3ZjJhY2QwMmM2OGJiMDc5Zjg3
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9E
ZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBIQVZFKERFVklDRV9NQU5BR0VNRU5UKQorCisjaW1wb3J0ICJE
ZXZpY2VNYW5hZ2VtZW50U1BJLmgiCisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09G
VF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVSKFdlYktpdCwgRGV2aWNlTWFuYWdlbWVudCk7CitT
T0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihXZWJLaXQsIERNRldlYnNpdGVQb2xpY3lNb25pdG9y
KTsKKworI2VuZGlmIC8vIEhBVkUoREVWSUNFX01BTkFHRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL0RldmljZU1hbmFnZW1lbnRTb2Z0TGluay5t
bSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvRGV2aWNlTWFuYWdlbWVudFNv
ZnRMaW5rLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5N2M1ZTBkOTA3MWI3ZTc3NDYwMjFmYTg5MzhmZTI1MTIx
ZTgwZTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL0RldmljZU1hbmFnZW1lbnRTb2Z0TGluay5tbQpAQCAtMCwwICsxLDM2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBIQVZFKERFVklDRV9NQU5BR0VNRU5UKQor
CisjaW1wb3J0ICJEZXZpY2VNYW5hZ2VtZW50U1BJLmgiCisjaW1wb3J0IDx3dGYvU29mdExpbmtp
bmcuaD4KKworU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViS2l0LCBE
ZXZpY2VNYW5hZ2VtZW50KTsKK1NPRlRfTElOS19DTEFTU19GT1JfU09VUkNFKFdlYktpdCwgRGV2
aWNlTWFuYWdlbWVudCwgRE1GV2Vic2l0ZVBvbGljeU1vbml0b3IpOworCisjZW5kaWYgLy8gSEFW
RShERVZJQ0VfTUFOQUdFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAppbmRleCAyZGQwZTdkNDZiYzcx
OWU5NmZhMTUwNzRmZWQwMGIxYzg4NjY1NjU4Li43NzFiM2FiNTkxMTNlMzUxOTdiYjllZDI4NGQw
ZWNiMGUyMzBjNmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCkBAIC00Miw5ICs0Miw5IEBAIGNsYXNz
IE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBjbGFzcyBOZXR3b3JrRGF0YVRhc2tDb2NvYSBmaW5hbCA6
IHB1YmxpYyBOZXR3b3JrRGF0YVRhc2sgewogICAgIGZyaWVuZCBjbGFzcyBOZXR3b3JrU2Vzc2lv
bkNvY29hOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUo
TmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIHVpbnQ2NF90IGZyYW1lSUQs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmlu
Z1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZm
aW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5l
Y3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBPcHRpb25hbDxO
ZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQorICAgIHN0YXRp
YyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5l
dHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYs
IFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qs
IFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JN
YWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0
aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtB
Y3Rpdml0eVRyYWNrZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3
b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIGZyYW1lSUQsIHBhZ2VJ
RCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ29u
dGVudEVuY29kaW5nU25pZmYsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QsIHNob3VsZFByZWNvbm5lY3RPbmx5LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlv
biwgbmV0d29ya0FjdGl2aXR5VHJhY2tlcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBOZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIGZyYW1lSUQs
IHBhZ2VJRCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hv
dWxkQ29udGVudEVuY29kaW5nU25pZmYsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QsIHNob3VsZFByZWNvbm5lY3RPbmx5LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2
aWdhdGlvbiwgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwg
bmV0d29ya0FjdGl2aXR5VHJhY2tlcikpOwogICAgIH0KIAogICAgIH5OZXR3b3JrRGF0YVRhc2tD
b2NvYSgpOwpAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGRlc2NyaXB0aW9u
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgTmV0d29ya0RhdGFUYXNrQ29jb2Eo
TmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlm
ZmluZ1BvbGljeSwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wg
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHks
IGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIE9wdGlvbmFsPE5ldHdvcmtB
Y3Rpdml0eVRyYWNrZXI+KTsKKyAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lv
biYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpT
dG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBX
ZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFz
a0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNl
TmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPik7
CiAKICAgICBib29sIHRyeVBhc3N3b3JkQmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3Jl
OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7
CiAgICAgdm9pZCBhcHBseVNuaWZmaW5nUG9saWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNl
SWZOZWVkZWQoX19zdHJvbmcgTlNVUkxSZXF1ZXN0KiYsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZm
LCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKQEAgLTk4LDYgKzk4LDggQEAgcHJp
dmF0ZToKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGJvb2wgbV9o
YXNCZWVuU2V0VG9Vc2VTdGF0ZWxlc3NDb29raWVTdG9yYWdlIHsgZmFsc2UgfTsKICNlbmRpZgor
CisgICAgYm9vbCBtX2lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lIHsgZmFs
c2UgfTsKIH07CiAKIFdlYkNvcmU6OkNyZWRlbnRpYWwgc2VydmVyVHJ1c3RDcmVkZW50aWFsKGNv
bnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5t
bQppbmRleCAyOGEwNWU4MGRiNjg1YWY2N2IyODRjODQyMzE3MTk0Zjk3ZTg3ZTNlLi4zZjUxYjdk
OWZhNDk1OTExZTA1ZjI5MjJlNDdiYjNiM2ViZjhmMTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0K
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2ltcG9ydCAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNw
b3NpdGlvbi5oIgogI2ltcG9ydCAiQXV0aGVudGljYXRpb25NYW5hZ2VyLmgiCisjaW1wb3J0ICJE
ZXZpY2VNYW5hZ2VtZW50U1BJLmgiCiAjaW1wb3J0ICJEb3dubG9hZC5oIgogI2ltcG9ydCAiRG93
bmxvYWRQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCkBAIC0zOSw2ICs0MCw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1Jlc291cmNlUmVxdWVzdC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4K
KyNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNp
bXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5o
PgpAQCAtMTYwLDEwICsxNjIsMTEgQEAgc3RhdGljIHZvaWQgdXBkYXRlVGFza1dpdGhGaXJzdFBh
cnR5Rm9yU2FtZVNpdGVDb29raWVzKE5TVVJMU2Vzc2lvbkRhdGFUYXNrKiB0YXMKICNlbmRpZgog
fQogCi1OZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nl
c3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHVpbnQ2NF90IGZy
YW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRT
bmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGlu
Z1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFBy
ZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBPcHRp
b25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQorTmV0
d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBz
ZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCB1aW50NjRfdCBmcmFtZUlELCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxz
UG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQ
b2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmlu
Z1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0
T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFz
a0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3Jr
QWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQogICAgIDogTmV0d29ya0Rh
dGFUYXNrKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgc3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3ksIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qs
IGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKQogICAgICwgbV9mcmFtZUlEKGZyYW1l
SUQpCiAgICAgLCBtX3BhZ2VJRChwYWdlSUQpCisgICAgLCBtX2lzRm9yTWFpblJlc291cmNlTmF2
aWdhdGlvbkZvckFueUZyYW1lKGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9y
QW55RnJhbWUpCiB7CiAgICAgaWYgKG1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJl
KQogICAgICAgICByZXR1cm47CkBAIC00ODksNiArNDkyLDI5IEBAIHZvaWQgTmV0d29ya0RhdGFU
YXNrQ29jb2E6OnJlc3VtZSgpCiB7CiAgICAgaWYgKG1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0g
Tm9GYWlsdXJlKQogICAgICAgICBtX2ZhaWx1cmVUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKKwor
I2lmIEhBVkUoREVWSUNFX01BTkFHRU1FTlQpCisgICAgYXV0byYgY29jb2FTZXNzaW9uID0gc3Rh
dGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2NvYSY+KG1fc2Vzc2lvbi5nZXQoKSk7CisgICAgaWYg
KGNvY29hU2Vzc2lvbi5kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCgpICYmIG1f
aXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUpIHsKKyAgICAgICAgUmV0YWlu
UHRyPE5TVVJMPiB1cmxUb0NoZWNrID0gW21fdGFzayBjdXJyZW50UmVxdWVzdF0uVVJMOworICAg
ICAgICBbY29jb2FTZXNzaW9uLmRldmljZU1hbmFnZW1lbnRQb2xpY3lNb25pdG9yKCkgcmVxdWVz
dFBvbGljaWVzRm9yV2Vic2l0ZXM6QFsgdXJsVG9DaGVjay5nZXQoKSBdIGNvbXBsZXRpb25IYW5k
bGVyOm1ha2VCbG9ja1B0cihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB1
cmxUb0NoZWNrXSAoTlNEaWN0aW9uYXJ5PE5TVVJMICosIE5TTnVtYmVyICo+ICpwb2xpY2llcywg
TlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgICAgIGJvb2wgaXNCbG9ja2VkID0gZXJyb3IgfHwg
cG9saWNpZXNbdXJsVG9DaGVjay5nZXQoKV0uaW50ZWdlclZhbHVlICE9IERNRlBvbGljeU9LOwor
ICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBpc0Jsb2NrZWRdIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNCbG9ja2VkKSB7
CisgICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlRmFpbHVyZShSZXN0cmljdGVkVVJMRmFpbHVy
ZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICBbbV90YXNrIHJlc3VtZV07CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSkuZ2V0KCldOworCisgICAgICAgIHJldHVybjsKKyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9W
QVJJQUJMRShtX2lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lKTsKKyNlbmRp
ZgorCiAgICAgW21fdGFzayByZXN1bWVdOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCmluZGV4IDNkMWE0
OWYyNzMyNWY0OTY3NTQxMjU0MDA1N2VmMTEwNjYyMTQwYjIuLjExMjFhMzRjMmNhNDdjZDBhNzE1
OTRhNjRjNGY2MWIxNTI4NTI5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCkBAIC0yNSw2ICsyNSw3IEBA
CiAKICNwcmFnbWEgb25jZQogCitPQkpDX0NMQVNTIERNRldlYnNpdGVQb2xpY3lNb25pdG9yOwog
T0JKQ19DTEFTUyBOU0RhdGE7CiBPQkpDX0NMQVNTIE5TVVJMU2Vzc2lvbjsKIE9CSkNfQ0xBU1Mg
TlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrOwpAQCAtNjksNiArNzAsMTEgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBjb250aW51ZURpZFJlY2VpdmVDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmLCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6VGFza0lkZW50aWZpZXIs
IE5ldHdvcmtEYXRhVGFza0NvY29hKiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJLaXQ6OkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRp
YWwmKT4mJik7CiAKKyNpZiBIQVZFKERFVklDRV9NQU5BR0VNRU5UKQorICAgIGJvb2wgZGV2aWNl
TWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2RldmljZU1h
bmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkOyB9CisgICAgRE1GV2Vic2l0ZVBvbGljeU1vbml0
b3IgKmRldmljZU1hbmFnZW1lbnRQb2xpY3lNb25pdG9yKCk7CisjZW5kaWYKKwogcHJpdmF0ZToK
ICAgICBOZXR3b3JrU2Vzc2lvbkNvY29hKE5ldHdvcmtQcm9jZXNzJiwgTmV0d29ya1Nlc3Npb25D
cmVhdGlvblBhcmFtZXRlcnMmJik7CiAKQEAgLTkzLDYgKzk5LDEwIEBAIHByaXZhdGU6CiAgICAg
U3RyaW5nIG1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyOwogICAgIFN0cmluZyBt
X3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjsKICAgICBSZXRhaW5QdHI8Q0ZE
aWN0aW9uYXJ5UmVmPiBtX3Byb3h5Q29uZmlndXJhdGlvbjsKKyNpZiBIQVZFKERFVklDRV9NQU5B
R0VNRU5UKQorICAgIFJldGFpblB0cjxETUZXZWJzaXRlUG9saWN5TW9uaXRvcj4gbV9kZXZpY2VN
YW5hZ2VtZW50UG9saWN5TW9uaXRvcjsKKyAgICBib29sIG1fZGV2aWNlTWFuYWdlbWVudFJlc3Ry
aWN0aW9uc0VuYWJsZWQgeyBmYWxzZSB9OworI2VuZGlmCiAgICAgYm9vbCBtX3Nob3VsZExvZ0Nv
b2tpZUluZm9ybWF0aW9uIHsgZmFsc2UgfTsKICAgICBTZWNvbmRzIG1fbG9hZFRocm90dGxlTGF0
ZW5jeTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggYzRjYTM5MWRmN2ViODE5YTY4NmRiYmNm
MDFmYmNkNjQ3Y2VlNzFkYi4uODQ1M2I4OTAyYjM3NTg5N2Y4YjdmYWJiYmQwOTExMDcxYmVkOGI0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
U2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtNTEsNiArNTEsNyBAQAogI2ltcG9ydCA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvT2JqQ1J1bnRpbWVFeHRyYXMuaD4KICNpbXBv
cnQgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4K
ICNpbXBvcnQgPHd0Zi9VUkwuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBA
IC01OCw2ICs1OSw4IEBACiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL05ldHdvcmtTZXNzaW9u
Q29jb2FBZGRpdGlvbnMuaD4KICNlbmRpZgogCisjaW1wb3J0ICJEZXZpY2VNYW5hZ2VtZW50U29m
dExpbmsuaCIKKwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogQ0ZTdHJpbmdSZWYgY29uc3Qg
V2ViS2l0MkhUVFBQcm94eURlZmF1bHRzS2V5ID0gc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KEAi
V2ViS2l0MkhUVFBQcm94eSIpOwpAQCAtNzEzLDcgKzcxNiw3IEBAIC0gKHZvaWQpVVJMU2Vzc2lv
bjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiBkYXRhVGFzazooTlNVUkxTZXNzaW9uRGF0YVRhc2sg
KilkYXRhCiAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgICAgIAogICAg
ICAgICAvLyBBdm9pZCBNSU1FIHR5cGUgc25pZmZpbmcgaWYgdGhlIHJlc3BvbnNlIGNvbWVzIGJh
Y2sgYXMgMzA0IE5vdCBNb2RpZmllZC4KLSAgICAgICAgaW50IHN0YXR1c0NvZGUgPSBbcmVzcG9u
c2UgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzdGF0dXNDb2RlKV0gPyBbKGlkKXJlc3Bv
bnNlIHN0YXR1c0NvZGVdIDogMDsKKyAgICAgICAgaW50IHN0YXR1c0NvZGUgPSBbcmVzcG9uc2Ug
aXNLaW5kT2ZDbGFzczpOU0hUVFBVUkxSZXNwb25zZS5jbGFzc10gPyBbKE5TSFRUUFVSTFJlc3Bv
bnNlICopcmVzcG9uc2Ugc3RhdHVzQ29kZV0gOiAwOwogICAgICAgICBpZiAoc3RhdHVzQ29kZSAh
PSAzMDQpIHsKICAgICAgICAgICAgIGJvb2wgaXNNYWluUmVzb3VyY2VMb2FkID0gbmV0d29ya0Rh
dGFUYXNrLT5maXJzdFJlcXVlc3QoKS5yZXF1ZXN0ZXIoKSA9PSBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbjsKICAgICAgICAgICAgIFdlYkNvcmU6OmFkanVzdE1JTUVU
eXBlSWZOZWNlc3NhcnkocmVzcG9uc2UuX0NGVVJMUmVzcG9uc2UsIGlzTWFpblJlc291cmNlTG9h
ZCk7CkBAIC05ODEsNiArOTg0LDEwIEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNz
aW9uQ29jb2EoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrCiAgICAgbV9z
dGF0ZWxlc3NTZXNzaW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tOZXR3b3JrU2Vzc2lvbkRlbGVn
YXRlIGFsbG9jXSBpbml0V2l0aE5ldHdvcmtTZXNzaW9uOip0aGlzIHdpdGhDcmVkZW50aWFsczpm
YWxzZV0pOwogICAgIG1fc3RhdGVsZXNzU2Vzc2lvbiA9IFtOU1VSTFNlc3Npb24gc2Vzc2lvbldp
dGhDb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24gZGVsZWdhdGU6c3RhdGljX2Nhc3Q8aWQ+KG1f
c3RhdGVsZXNzU2Vzc2lvbkRlbGVnYXRlLmdldCgpKSBkZWxlZ2F0ZVF1ZXVlOltOU09wZXJhdGlv
blF1ZXVlIG1haW5RdWV1ZV1dOwogCisjaWYgSEFWRShERVZJQ0VfTUFOQUdFTUVOVCkKKyAgICBt
X2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkID0gcGFyYW1ldGVycy5kZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnkgPSBwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7CiAgICAgbV9z
aG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gcGFyYW1ldGVy
cy5zaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzID8gU2hvdWxk
SW5jbHVkZUxvY2FsaG9zdDo6WWVzIDogU2hvdWxkSW5jbHVkZUxvY2FsaG9zdDo6Tm87CkBAIC0x
MTY3LDQgKzExNzQsMTQgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjb250aW51ZURpZFJl
Y2VpdmVDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXQKICAgICBuZXR3b3JrRGF0
YVRhc2stPmRpZFJlY2VpdmVDaGFsbGVuZ2UoV1RGTW92ZShhdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSksIFdURk1vdmUoY2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAorI2lmIEhBVkUo
REVWSUNFX01BTkFHRU1FTlQpCitETUZXZWJzaXRlUG9saWN5TW9uaXRvciAqTmV0d29ya1Nlc3Np
b25Db2NvYTo6ZGV2aWNlTWFuYWdlbWVudFBvbGljeU1vbml0b3IoKQoreworICAgIEFTU0VSVCht
X2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKTsKKyAgICBpZiAoIW1fZGV2aWNl
TWFuYWdlbWVudFBvbGljeU1vbml0b3IpCisgICAgICAgIG1fZGV2aWNlTWFuYWdlbWVudFBvbGlj
eU1vbml0b3IgPSBhZG9wdE5TKFthbGxvY0RNRldlYnNpdGVQb2xpY3lNb25pdG9ySW5zdGFuY2Uo
KSBpbml0V2l0aFBvbGljeUNoYW5nZUhhbmRsZXI6bmlsXSk7CisgICAgcmV0dXJuIG1fZGV2aWNl
TWFuYWdlbWVudFBvbGljeU1vbml0b3IuZ2V0KCk7Cit9CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvRGV2aWNlTWFuYWdlbWVudFNQSS5o
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvRGV2aWNlTWFuYWdlbWVudFNQSS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmExY2ZkNWI1ZTVlOTAxMTc3MDZhNzg1ODE1MmM4OWMyYjM1NDVkMTYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9EZXZpY2VN
YW5hZ2VtZW50U1BJLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgSEFWRShERVZJQ0VfTUFOQUdFTUVOVCkKKworI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCisKKyNpbXBvcnQgPERldmljZU1hbmFnZW1lbnQvRGV2aWNlTWFuYWdlbWVudC5oPgor
CisjZWxzZQorCitAaW50ZXJmYWNlIERNRldlYnNpdGVQb2xpY3lNb25pdG9yIDogTlNPYmplY3QK
KworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUG9saWN5Q2hhbmdlSGFuZGxlcjoodm9pZCheKSh2
b2lkKSljaGFuZ2VIYW5kbGVyOworLSAodm9pZClyZXF1ZXN0UG9saWNpZXNGb3JXZWJzaXRlczoo
TlNBcnJheTxOU1VSTCAqPiAqKXdlYnNpdGVVUkxzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkIChe
KShOU0RpY3Rpb25hcnk8TlNVUkwgKiwgTlNOdW1iZXIgKj4gKnBvbGljaWVzLCBOU0Vycm9yICpl
cnJvcikpY29tcGxldGlvbkhhbmRsZXI7CisKK0BlbmQKKwordHlwZWRlZiBOU19FTlVNKE5TSW50
ZWdlciwgRE1GUG9saWN5KSB7CisgICAgRE1GUG9saWN5T0sgPSAwLAorICAgIERNRlBvbGljeUJs
b2NrZWQgPSA0LAorfTsKKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNl
bmRpZiAvLyBIQVZFKERFVklDRV9NQU5BR0VNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtp
bmcuc2IgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5h
cHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYgppbmRleCBkYTYwYjFiYmZlMmM5NjBjMGFiODhlMzJi
ODJhMDJkNTcwMDcwNTJhLi44MDcxNmVjNjQzNDhiZmI0NDhlZGU2NzYyZDRjMGRkOWMxOWNkZjdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9z
L2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYgorKysgYi9Tb3VyY2UvV2ViS2l0L1Jlc291
cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYgpA
QCAtODIsNiArODIsMTEgQEAKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5wYXNzZC5pbi1h
cHAtcGF5bWVudCIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUucGFzc2QubGlicmFyeSIp
KQogCisoYWxsb3cgbWFjaC1sb29rdXAKKyAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5kbWQu
cG9saWN5IikKKyAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5zaXJpLmNvbnRleHQuc2Vydmlj
ZSIpCisgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY3RjYXRlZ29yaWVzLnNlcnZpY2UiKSkK
KwogKGRlbnkgZmlsZS13cml0ZS1jcmVhdGUKICAgICAgICAodm5vZGUtdHlwZSBTWU1MSU5LKSkK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUVycm9yLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRXJyb3IuaAppbmRleCA0NDJkNjc2ZWQyNzQ5OWYwZjJh
MmJkNGNkNTQ3MmQ3NDEzOWRkM2RkLi44NzM2N2NkMjQzMTU4ZjEwN2RjYzNiMDNhYjJhODA2Yjc5
ZDBkMDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRXJyb3IuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRXJyb3IuaApAQCAtNjUsNyArNjUsOCBA
QCBwdWJsaWM6CiAgICAgICAgIEZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgPSAx
MDIsCiAgICAgICAgIENhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0ID0gMTAzLAogICAgICAgICBGcmFt
ZUxvYWRCbG9ja2VkQnlDb250ZW50QmxvY2tlciA9IDEwNCwKLSAgICAgICAgRnJhbWVMb2FkQmxv
Y2tlZEJ5Q29udGVudEZpbHRlciA9IDEwNQorICAgICAgICBGcmFtZUxvYWRCbG9ja2VkQnlDb250
ZW50RmlsdGVyID0gMTA1LAorICAgICAgICBGcmFtZUxvYWRCbG9ja2VkQnlSZXN0cmljdGlvbnMg
PSAxMDYsCiAgICAgfTsKICAgICBzdGF0aWMgY29uc3QgV1RGOjpTdHJpbmcmIHdlYktpdFBvbGlj
eUVycm9yRG9tYWluKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9j
L1dLRXJyb3JSZWYuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tFcnJvclJlZi5j
cHAKaW5kZXggNDc5M2E1N2ZkMmYxNTRmZWM3MWQ5ODRiNzhmYjQ4YWQ4NDkyOTEyZS4uZTZjZTZk
OTRhMTM3ODI2OTA4OTZlYzdiMzA3MjIzNDAwYjNmZTM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQVBJL2MvV0tFcnJvclJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQVBJL2MvV0tFcnJvclJlZi5jcHAKQEAgLTU4LDYgKzU4LDggQEAgaW50IFdLRXJyb3JHZXRF
cnJvckNvZGUoV0tFcnJvclJlZiBlcnJvclJlZikKICAgICAgICAgcmV0dXJuIGtXS0Vycm9yQ29k
ZUNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0OwogICAgIGNhc2UgQVBJOjpFcnJvcjo6UG9saWN5OjpG
cmFtZUxvYWRCbG9ja2VkQnlDb250ZW50QmxvY2tlcjoKICAgICAgICAgcmV0dXJuIGtXS0Vycm9y
Q29kZUZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyOworICAgIGNhc2UgQVBJOjpFcnJv
cjo6UG9saWN5OjpGcmFtZUxvYWRCbG9ja2VkQnlSZXN0cmljdGlvbnM6CisgICAgICAgIHJldHVy
biBrV0tFcnJvckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlSZXN0cmljdGlvbnM7CiAgICAgY2FzZSBB
UEk6OkVycm9yOjpQb2xpY3k6OkZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRGaWx0ZXI6CiAgICAg
ICAgIHJldHVybiBrV0tFcnJvckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50RmlsdGVyOwog
ICAgIGNhc2UgQVBJOjpFcnJvcjo6UGx1Z2luOjpDYW5ub3RGaW5kUGx1Z0luOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tFcnJvclJlZi5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL2MvV0tFcnJvclJlZi5oCmluZGV4IDBkNzYzODRkMzQ0YTAxMDVhNzc4YTVl
NWQ3Yjc4ZmM0NjgzMDM2OGQuLjI5YmMwY2ZjYTcyMGVhZTlmMmMxZDdjNjljY2FhNDAzOWNkMTYw
OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Vycm9yUmVmLmgKQEAgLTQ1LDYgKzQ1
LDcgQEAgZW51bSB7CiAgICAga1dLRXJyb3JDb2RlUGx1Z0luQ2FuY2VsbGVkQ29ubmVjdGlvbiA9
ICAgICAgICAgICAgICAgICAgICAgIDIwMywKICAgICBrV0tFcnJvckNvZGVQbHVnSW5XaWxsSGFu
ZGxlTG9hZCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgMjA0LAogICAgIGtXS0Vycm9yQ29k
ZUluc2VjdXJlUGx1Z0luVmVyc2lvbiA9ICAgICAgICAgICAgICAgICAgICAgICAgICAyMDUsCisg
ICAga1dLRXJyb3JDb2RlRnJhbWVMb2FkQmxvY2tlZEJ5UmVzdHJpY3Rpb25zID0gICAgICAgICAg
ICAgICAgIDIwNiwKICAgICBrV0tFcnJvckludGVybmFsID0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMzAwLAogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViRXJyb3JzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkVycm9ycy5j
cHAKaW5kZXggYjZkYzUwY2ViNTVjYWY2NWJiZTE5YWY2ZTMyN2Q1MTIwMDlhM2ZhOC4uNmNmYTI1
YzY2YWRkMTdhZDdiMzE0ZWVhYjc1ZWZiNDFjZTdjNTI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViRXJyb3JzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJF
cnJvcnMuY3BwCkBAIC01Miw2ICs1MiwxMSBAQCBSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgcmV0dXJuIFJlc291cmNl
RXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0UG9saWN5RXJyb3JEb21haW4oKSwgQVBJOjpFcnJvcjo6
UG9saWN5OjpDYW5ub3RTaG93VVJMLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUg
VVJMIGNhbuKAmXQgYmUgc2hvd24iLCAiV2ViS2l0RXJyb3JDYW5ub3RTaG93VVJMIGRlc2NyaXB0
aW9uIikpOwogfQogCitSZXNvdXJjZUVycm9yIHdhc0Jsb2NrZWRCeVJlc3RyaWN0aW9uc0Vycm9y
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VF
cnJvcihBUEk6OkVycm9yOjp3ZWJLaXRQb2xpY3lFcnJvckRvbWFpbigpLCBBUEk6OkVycm9yOjpQ
b2xpY3k6OkZyYW1lTG9hZEJsb2NrZWRCeVJlc3RyaWN0aW9ucywgcmVxdWVzdC51cmwoKSwgV0VC
X1VJX1NUUklORygiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBkZXZpY2UgcmVzdHJpY3Rpb25zIiwg
IldlYktpdEVycm9yRnJhbWVMb2FkQmxvY2tlZEJ5UmVzdHJpY3Rpb25zIGRlc2NyaXB0aW9uIikp
OworfQorCiBSZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIHJldHVybiBSZXNvdXJjZUVycm9y
KEFQSTo6RXJyb3I6OndlYktpdFBvbGljeUVycm9yRG9tYWluKCksIEFQSTo6RXJyb3I6OlBvbGlj
eTo6RnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgV0VC
X1VJX1NUUklORygiRnJhbWUgbG9hZCBpbnRlcnJ1cHRlZCIsICJXZWJLaXRFcnJvckZyYW1lTG9h
ZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgZGVzY3JpcHRpb24iKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFcnJvcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkVycm9ycy5oCmluZGV4IDdkNjAwYzZkMjNiNTVkY2MzOTYzMDk5MDQwN2NlNzQ0NDQ2Y2I0ODYu
LjlmMGEwMDJiNmNiMWE2MTUyYTFkODgzN2FlYTliNGMyZjhhMmFiMGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkVycm9ycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkVycm9ycy5oCkBAIC0zOSw2ICszOSw3IEBAIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fu
Y2VsbGVkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
KTsKIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIFdlYkNvcmU6OlJlc291cmNlRXJyb3Ig
Y2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciB3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnNFcnJvcihjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgaW50ZXJy
dXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
KTsKIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZmFpbGVkQ3VzdG9tUHJvdG9jb2xTeW5jTG9hZChj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxU
RVJJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0
ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURh
dGFTdG9yZS5jcHAKaW5kZXggZjc0YjJjNWRiOTdmMTJkODI1MDYyMDZlNzg5NmVjYmIyOTYwZGY1
Zi4uOTQ5OTc0MDI0ODAwZmIyMzdmNTNjYWY4ZGY4ZGMxYjJhNjk4Yzc0NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAt
MTQ1LDYgKzE0NSw4IEBAIFJlZjxXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
PiBXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0RGF0YVN0b3JlQ29uCiB7CiAgICAgYXV0byBjb25m
aWd1cmF0aW9uID0gV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6Y3JlYXRl
KCk7CiAKKyAgICBjb25maWd1cmF0aW9uLT5zZXRQZXJzaXN0ZW50KHRydWUpOworCiAgICAgY29u
ZmlndXJhdGlvbi0+c2V0QXBwbGljYXRpb25DYWNoZURpcmVjdG9yeShkZWZhdWx0QXBwbGljYXRp
b25DYWNoZURpcmVjdG9yeSgpKTsKICAgICBjb25maWd1cmF0aW9uLT5zZXRBcHBsaWNhdGlvbkNh
Y2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lKCJGaWxlcyIpOwogICAgIGNvbmZpZ3VyYXRpb24t
PnNldENhY2hlU3RvcmFnZURpcmVjdG9yeShkZWZhdWx0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5KCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bC5tbQppbmRleCAxNjg4YTBhY2E4MTk2MDQ0ZTY2ZjJlMTQ3NTEzNmRhNjg1YTA3NGI2Li5iMGFj
NzZiZWYxMjI5ZDBiM2YwN2ZlODZmOTcxYWIzMWM2MDQ2MWI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtNTg0LDcgKzU4
NCw3IEBAIC0gKHZvaWQpX3N5bnRoZXNpemVBcHBJc0JhY2tncm91bmQ6KEJPT0wpYmFja2dyb3Vu
ZAogICAgIF9wcm9jZXNzUG9vbC0+c3ludGhlc2l6ZUFwcElzQmFja2dyb3VuZChiYWNrZ3JvdW5k
KTsKIH0KIAotLSAodm9pZClfc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29y
a2VyOihCT09MKSBhbGxvd3MKKy0gKHZvaWQpX3NldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9y
U2VydmljZVdvcmtlcjooQk9PTClhbGxvd3MKIHsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAgICAgX3Byb2Nlc3NQb29sLT5zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VX
b3JrZXIoYWxsb3dzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IDI2Mjk4ZWJjZWM1Nzc0ZTM0MDY2MWVh
OWZiMWE0YjI4ZWE1MGEzNDMuLjE5MTI0YTczYWQxMDZjMWU4N2NkNDU4OTEyMmNkOTg4YzE5ZWZi
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNp
dGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtMjI5LDIyICsyMjksMzUgQEAgLSAoaW5zdGFuY2V0eXBl
KV9pbml0V2l0aENvbmZpZ3VyYXRpb246KF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
ICopY29uZmkKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJu
IG5pbDsKIAotICAgIGF1dG8gY29uZmlnID0gQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0
RGF0YVN0b3JlQ29uZmlndXJhdGlvbigpOwotCi0gICAgaWYgKGNvbmZpZ3VyYXRpb24uX3dlYlN0
b3JhZ2VEaXJlY3RvcnkpCi0gICAgICAgIGNvbmZpZy0+c2V0TG9jYWxTdG9yYWdlRGlyZWN0b3J5
KGNvbmZpZ3VyYXRpb24uX3dlYlN0b3JhZ2VEaXJlY3RvcnkucGF0aCk7Ci0gICAgaWYgKGNvbmZp
Z3VyYXRpb24uX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5KQotICAgICAgICBjb25maWctPnNldFdl
YlNRTERhdGFiYXNlRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uX3dlYlNRTERhdGFiYXNlRGlyZWN0
b3J5LnBhdGgpOwotICAgIGlmIChjb25maWd1cmF0aW9uLl9pbmRleGVkREJEYXRhYmFzZURpcmVj
dG9yeSkKLSAgICAgICAgY29uZmlnLT5zZXRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeShjb25m
aWd1cmF0aW9uLl9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeS5wYXRoKTsKLSAgICBpZiAoY29u
ZmlndXJhdGlvbi5fY29va2llU3RvcmFnZUZpbGUpCi0gICAgICAgIGNvbmZpZy0+c2V0Q29va2ll
U3RvcmFnZUZpbGUoY29uZmlndXJhdGlvbi5fY29va2llU3RvcmFnZUZpbGUucGF0aCk7Ci0gICAg
aWYgKGNvbmZpZ3VyYXRpb24uX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpCi0gICAg
ICAgIGNvbmZpZy0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeShjb25maWd1cmF0
aW9uLl9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LnBhdGgpOwotICAgIGlmIChjb25m
aWd1cmF0aW9uLl9jYWNoZVN0b3JhZ2VEaXJlY3RvcnkpCi0gICAgICAgIGNvbmZpZy0+c2V0Q2Fj
aGVTdG9yYWdlRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uX2NhY2hlU3RvcmFnZURpcmVjdG9yeS5w
YXRoKTsKLSAgICBpZiAoY29uZmlndXJhdGlvbi5fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRp
cmVjdG9yeSkKLSAgICAgICAgY29uZmlnLT5zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGly
ZWN0b3J5KGNvbmZpZ3VyYXRpb24uX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnku
cGF0aCk7CisgICAgYXV0byBjb25maWcgPSBjb25maWd1cmF0aW9uLmlzUGVyc2lzdGVudCA/IEFQ
STo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZUNvbmZpZ3VyYXRpb24oKSA6IFdl
YktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNyZWF0ZSgpOworCisgICAgUkVM
RUFTRV9BU1NFUlQoY29uZmlnLT5pc1BlcnNpc3RlbnQoKSA9PSBjb25maWd1cmF0aW9uLmlzUGVy
c2lzdGVudCk7CisKKyAgICBpZiAoY29uZmlndXJhdGlvbi5pc1BlcnNpc3RlbnQpIHsKKyAgICAg
ICAgaWYgKGNvbmZpZ3VyYXRpb24uX3dlYlN0b3JhZ2VEaXJlY3RvcnkpCisgICAgICAgICAgICBj
b25maWctPnNldExvY2FsU3RvcmFnZURpcmVjdG9yeShjb25maWd1cmF0aW9uLl93ZWJTdG9yYWdl
RGlyZWN0b3J5LnBhdGgpOworICAgICAgICBpZiAoY29uZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJh
c2VEaXJlY3RvcnkpCisgICAgICAgICAgICBjb25maWctPnNldFdlYlNRTERhdGFiYXNlRGlyZWN0
b3J5KGNvbmZpZ3VyYXRpb24uX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5LnBhdGgpOworICAgICAg
ICBpZiAoY29uZmlndXJhdGlvbi5faW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkpCisgICAgICAg
ICAgICBjb25maWctPnNldEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24u
X2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5LnBhdGgpOworICAgICAgICBpZiAoY29uZmlndXJh
dGlvbi5fY29va2llU3RvcmFnZUZpbGUpCisgICAgICAgICAgICBjb25maWctPnNldENvb2tpZVN0
b3JhZ2VGaWxlKGNvbmZpZ3VyYXRpb24uX2Nvb2tpZVN0b3JhZ2VGaWxlLnBhdGgpOworICAgICAg
ICBpZiAoY29uZmlndXJhdGlvbi5fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSkKKyAg
ICAgICAgICAgIGNvbmZpZy0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeShjb25m
aWd1cmF0aW9uLl9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LnBhdGgpOworICAgICAg
ICBpZiAoY29uZmlndXJhdGlvbi5fY2FjaGVTdG9yYWdlRGlyZWN0b3J5KQorICAgICAgICAgICAg
Y29uZmlnLT5zZXRDYWNoZVN0b3JhZ2VEaXJlY3RvcnkoY29uZmlndXJhdGlvbi5fY2FjaGVTdG9y
YWdlRGlyZWN0b3J5LnBhdGgpOworICAgICAgICBpZiAoY29uZmlndXJhdGlvbi5fc2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSkKKyAgICAgICAgICAgIGNvbmZpZy0+c2V0U2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeShjb25maWd1cmF0aW9uLl9zZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGlyZWN0b3J5LnBhdGgpOworICAgIH0gZWxzZSB7CisgICAgICAgIFJFTEVB
U0VfQVNTRVJUKCFjb25maWd1cmF0aW9uLl93ZWJTdG9yYWdlRGlyZWN0b3J5KTsKKyAgICAgICAg
UkVMRUFTRV9BU1NFUlQoIWNvbmZpZ3VyYXRpb24uX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5KTsK
KyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNvbmZpZ3VyYXRpb24uX2luZGV4ZWREQkRhdGFiYXNl
RGlyZWN0b3J5KTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNvbmZpZ3VyYXRpb24uX2Nvb2tp
ZVN0b3JhZ2VGaWxlKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNvbmZpZ3VyYXRpb24uX3Jl
c291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVCgh
Y29uZmlndXJhdGlvbi5fY2FjaGVTdG9yYWdlRGlyZWN0b3J5KTsKKyAgICAgICAgUkVMRUFTRV9B
U1NFUlQoIWNvbmZpZ3VyYXRpb24uX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnkp
OworICAgIH0KKwogICAgIGlmIChjb25maWd1cmF0aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllcikKICAgICAgICAgY29uZmlnLT5zZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXIoY29uZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIp
OwogICAgIGlmIChjb25maWd1cmF0aW9uLnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRp
ZmllcikKQEAgLTI1Myw4ICsyNjYsMTEgQEAgLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aENvbmZp
Z3VyYXRpb246KF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uICopY29uZmkKICAgICAg
ICAgY29uZmlnLT5zZXRIVFRQUHJveHkoY29uZmlndXJhdGlvbi5odHRwUHJveHkpOwogICAgIGlm
IChjb25maWd1cmF0aW9uLmh0dHBzUHJveHkpCiAgICAgICAgIGNvbmZpZy0+c2V0SFRUUFNQcm94
eShjb25maWd1cmF0aW9uLmh0dHBzUHJveHkpOworICAgIGNvbmZpZy0+c2V0RGV2aWNlTWFuYWdl
bWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoY29uZmlndXJhdGlvbi5kZXZpY2VNYW5hZ2VtZW50UmVz
dHJpY3Rpb25zRW5hYmxlZCk7CisKKyAgICBhdXRvIHNlc3Npb25JRCA9IGNvbmZpZ3VyYXRpb24u
aXNQZXJzaXN0ZW50ID8gUEFMOjpTZXNzaW9uSUQ6OmdlbmVyYXRlUGVyc2lzdGVudFNlc3Npb25J
RCgpIDogUEFMOjpTZXNzaW9uSUQ6OmdlbmVyYXRlRXBoZW1lcmFsU2Vzc2lvbklEKCk7CiAKLSAg
ICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6V2Vic2l0ZURhdGFTdG9yZT4o
c2VsZiwgV1RGTW92ZShjb25maWcpLCBQQUw6OlNlc3Npb25JRDo6Z2VuZXJhdGVQZXJzaXN0ZW50
U2Vzc2lvbklEKCkpOworICAgIEFQSTo6T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpX
ZWJzaXRlRGF0YVN0b3JlPihzZWxmLCBXVEZNb3ZlKGNvbmZpZyksIHNlc3Npb25JRCk7CiAKICAg
ICByZXR1cm4gc2VsZjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgK
aW5kZXggNTlmOTg0ZTQ4N2FkZjNmMDQyZDk2NzM3YTliNDdkYTc5ZTIyZDNiMC4uOWQ3NDAyYjZi
ZWQ3YmY3MTI2YmM4NjYyMjgxMGZhNDYxN2UyMDVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLmgKQEAgLTMyLDYgKzMyLDIwIEBAIE5TX0FTU1VNRV9OT05OVUxMX0JF
R0lOCiBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAaW50ZXJm
YWNlIF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIDogTlNPYmplY3QKIAorLSAoaW5z
dGFuY2V0eXBlKWluaXQ7IC8vIENyZWF0ZXMgYSBwZXJzaXN0ZW50IGNvbmZpZ3VyYXRpb24uCist
IChpbnN0YW5jZXR5cGUpaW5pdE5vblBlcnNpc3RlbnRDb25maWd1cmF0aW9uIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzUGVyc2lzdGVudCkgQk9PTCBwZXJzaXN0ZW50
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisK
Ky8vIFRoZXNlIHByb3BlcnRpZXMgYXBwbHkgdG8gYm90aCBwZXJzaXN0ZW50IGFuZCBub24tcGVy
c2lzdGVudCBkYXRhIHN0b3Jlcy4KK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29w
eSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMs
IG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVu
dGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRIVFRQUHJveHk6KSBO
U1VSTCAqaHR0cFByb3h5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4y
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRIVFRQ
U1Byb3h5OikgTlNVUkwgKmh0dHBzUHJveHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40
KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGRldmljZU1hbmFnZW1l
bnRSZXN0cmljdGlvbnNFbmFibGVkICBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworCisvLyBUaGVzZSBwcm9wZXJ0aWVzIG9ubHkgbWFrZSBzZW5z
ZSBmb3IgcGVyc2lzdGVudCBkYXRhIHN0b3JlcywgYW5kIHdpbGwgdGhyb3cKKy8vIGFuIGV4Y2Vw
dGlvbiBpZiBzZXQgZm9yIG5vbi1wZXJzaXN0ZW50IHN0b3Jlcy4KIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBjb3B5LCBzZXR0ZXI9X3NldFdlYlN0b3JhZ2VEaXJlY3Rvcnk6KSBOU1VSTCAqX3dlYlN0
b3JhZ2VEaXJlY3Rvcnk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRJ
bmRleGVkREJEYXRhYmFzZURpcmVjdG9yeTopIE5TVVJMICpfaW5kZXhlZERCRGF0YWJhc2VEaXJl
Y3Rvcnk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRXZWJTUUxEYXRh
YmFzZURpcmVjdG9yeTopIE5TVVJMICpfd2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk7CkBAIC0zOSwx
MCArNTMsNiBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGlyZWN0b3J5OikgTlNVUkwgKl9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRDYWNoZVN0b3JhZ2VEaXJlY3Rvcnk6KSBOU1VSTCAq
X2NhY2hlU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBp
b3MoMTEuMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0U2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeTopIE5TVVJMICpfc2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEu
MykpOwotQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291
cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTQuNCksIGlvcygxMi4yKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkp
IE5TU3RyaW5nICpzb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhUVFBQcm94eTopIE5TVVJMICpodHRwUHJveHkg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhUVFBTUHJveHk6KSBOU1VSTCAq
aHR0cHNQcm94eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwog
CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQppbmRleCAy
YTA1MTBlYzg5ZjVlYWI4MWM1M2YyN2UyZTBkMDAzNmY2MGJhMDI5Li5hYzI1NjU4NjlmY2Y5MWQ1
ODhkN2I4NmE5Mzc1MTQwZTdhODYwYjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLm1tCkBAIC0zNiw2ICszNiwzMyBAQCBzdGF0aWMgdm9pZCBjaGVja1VSTEFyZ3Vt
ZW50KE5TVVJMICp1cmwpCiAKIEBpbXBsZW1lbnRhdGlvbiBfV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbgogCistIChpbnN0YW5jZXR5cGUpaW5pdAoreworICAgIHNlbGYgPSBbc3VwZXIg
aW5pdF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX2NvbmZp
Z3VyYXRpb24tPnNldFBlcnNpc3RlbnQodHJ1ZSk7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKwor
LSAoaW5zdGFuY2V0eXBlKWluaXROb25QZXJzaXN0ZW50Q29uZmlndXJhdGlvbgoreworICAgIHNl
bGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOwor
CisgICAgX2NvbmZpZ3VyYXRpb24tPnNldFBlcnNpc3RlbnQoZmFsc2UpOworCisgICAgcmV0dXJu
IHNlbGY7Cit9CisKKy0gKEJPT0wpaXNQZXJzaXN0ZW50Cit7CisgICAgcmV0dXJuIF9jb25maWd1
cmF0aW9uLT5pc1BlcnNpc3RlbnQoKTsKK30KKwogLSAoTlNVUkwgKilfd2ViU3RvcmFnZURpcmVj
dG9yeQogewogICAgIHJldHVybiBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOl9jb25maWd1cmF0aW9u
LT53ZWJTdG9yYWdlRGlyZWN0b3J5KCkgaXNEaXJlY3Rvcnk6WUVTXTsKQEAgLTQzLDYgKzcwLDgg
QEAgLSAoTlNVUkwgKilfd2ViU3RvcmFnZURpcmVjdG9yeQogCiAtICh2b2lkKV9zZXRXZWJTdG9y
YWdlRGlyZWN0b3J5OihOU1VSTCAqKXVybAogeworICAgIGlmICghX2NvbmZpZ3VyYXRpb24tPmlz
UGVyc2lzdGVudCgpKQorICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1l
bnRFeGNlcHRpb24gZm9ybWF0OkAiQ2Fubm90IHNldCBfd2ViU3RvcmFnZURpcmVjdG9yeSBvbiBh
IG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLiJdOwogICAg
IGNoZWNrVVJMQXJndW1lbnQodXJsKTsKICAgICBfY29uZmlndXJhdGlvbi0+c2V0V2ViU3RvcmFn
ZURpcmVjdG9yeSh1cmwucGF0aCk7CiB9CkBAIC01NCw2ICs4Myw4IEBAIC0gKE5TVVJMICopX2lu
ZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5CiAKIC0gKHZvaWQpX3NldEluZGV4ZWREQkRhdGFiYXNl
RGlyZWN0b3J5OihOU1VSTCAqKXVybAogeworICAgIGlmICghX2NvbmZpZ3VyYXRpb24tPmlzUGVy
c2lzdGVudCgpKQorICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRF
eGNlcHRpb24gZm9ybWF0OkAiQ2Fubm90IHNldCBfaW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rvcnkg
b24gYSBub24tcGVyc2lzdGVudCBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi4iXTsK
ICAgICBjaGVja1VSTEFyZ3VtZW50KHVybCk7CiAgICAgX2NvbmZpZ3VyYXRpb24tPnNldEluZGV4
ZWREQkRhdGFiYXNlRGlyZWN0b3J5KHVybC5wYXRoKTsKIH0KQEAgLTY1LDYgKzk2LDggQEAgLSAo
TlNVUkwgKilfd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkKIAogLSAodm9pZClfc2V0V2ViU1FMRGF0
YWJhc2VEaXJlY3Rvcnk6KE5TVVJMICopdXJsCiB7CisgICAgaWYgKCFfY29uZmlndXJhdGlvbi0+
aXNQZXJzaXN0ZW50KCkpCisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1
bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJDYW5ub3Qgc2V0IF93ZWJTUUxEYXRhYmFzZURpcmVjdG9y
eSBvbiBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLiJd
OwogICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKICAgICBfY29uZmlndXJhdGlvbi0+c2V0V2Vi
U1FMRGF0YWJhc2VEaXJlY3RvcnkodXJsLnBhdGgpOwogfQpAQCAtOTYsNiArMTI5LDggQEAgLSAo
TlNVUkwgKilfY29va2llU3RvcmFnZUZpbGUKIAogLSAodm9pZClfc2V0Q29va2llU3RvcmFnZUZp
bGU6KE5TVVJMICopdXJsCiB7CisgICAgaWYgKCFfY29uZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50
KCkpCisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlv
biBmb3JtYXQ6QCJDYW5ub3Qgc2V0IF9jb29raWVTdG9yYWdlRmlsZSBvbiBhIG5vbi1wZXJzaXN0
ZW50IF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLiJdOwogICAgIGNoZWNrVVJMQXJn
dW1lbnQodXJsKTsKICAgICBpZiAoW3VybCBoYXNEaXJlY3RvcnlQYXRoXSkKICAgICAgICAgW05T
RXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIlRoZSBj
b29raWUgc3RvcmFnZSBwYXRoIG11c3QgcG9pbnQgdG8gYSBmaWxlLCBub3QgYSBkaXJlY3Rvcnku
Il07CkBAIC0xMTAsNiArMTQ1LDggQEAgLSAoTlNVUkwgKilfcmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RpcmVjdG9yeQogCiAtICh2b2lkKV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
OihOU1VSTCAqKXVybAogeworICAgIGlmICghX2NvbmZpZ3VyYXRpb24tPmlzUGVyc2lzdGVudCgp
KQorICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24g
Zm9ybWF0OkAiQ2Fubm90IHNldCBfcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSBvbiBh
IG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLiJdOwogICAg
IGNoZWNrVVJMQXJndW1lbnQodXJsKTsKICAgICBfY29uZmlndXJhdGlvbi0+c2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeSh1cmwucGF0aCk7CiB9CkBAIC0xMjEsNiArMTU4LDggQEAg
LSAoTlNVUkwgKilfY2FjaGVTdG9yYWdlRGlyZWN0b3J5CiAKIC0gKHZvaWQpX3NldENhY2hlU3Rv
cmFnZURpcmVjdG9yeTooTlNVUkwgKil1cmwKIHsKKyAgICBpZiAoIV9jb25maWd1cmF0aW9uLT5p
c1BlcnNpc3RlbnQoKSkKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3Vt
ZW50RXhjZXB0aW9uIGZvcm1hdDpAIkNhbm5vdCBzZXQgX2NhY2hlU3RvcmFnZURpcmVjdG9yeSBv
biBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLiJdOwog
ICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKICAgICBfY29uZmlndXJhdGlvbi0+c2V0Q2FjaGVT
dG9yYWdlRGlyZWN0b3J5KHVybC5wYXRoKTsKIH0KQEAgLTEzMiw2ICsxNzEsOCBAQCAtIChOU1VS
TCAqKV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5CiAKIC0gKHZvaWQpX3NldFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnk6KE5TVVJMICopdXJsCiB7CisgICAgaWYg
KCFfY29uZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50KCkpCisgICAgICAgIFtOU0V4Y2VwdGlvbiBy
YWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJDYW5ub3Qgc2V0IF9zZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IG9uIGEgbm9uLXBlcnNpc3RlbnQgX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uIl07CiAgICAgY2hlY2tVUkxBcmd1bWVudCh1cmwp
OwogICAgIF9jb25maWd1cmF0aW9uLT5zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0
b3J5KHVybC5wYXRoKTsKIH0KQEAgLTE1Niw2ICsxOTcsMTYgQEAgLSAodm9pZClzZXRTb3VyY2VB
cHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllcgogICAg
IF9jb25maWd1cmF0aW9uLT5zZXRTb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIo
aWRlbnRpZmllcik7CiB9CiAKKy0gKEJPT0wpZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0Vu
YWJsZWQKK3sKKyAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPmRldmljZU1hbmFnZW1lbnRSZXN0
cmljdGlvbnNFbmFibGVkKCk7Cit9CisKKy0gKHZvaWQpc2V0RGV2aWNlTWFuYWdlbWVudFJlc3Ry
aWN0aW9uc0VuYWJsZWQ6KEJPT0wpZW5hYmxlZAoreworICAgIF9jb25maWd1cmF0aW9uLT5zZXRE
ZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZChlbmFibGVkKTsKK30KKwogLSAoQVBJ
OjpPYmplY3QmKV9hcGlPYmplY3QKIHsKICAgICByZXR1cm4gKl9jb25maWd1cmF0aW9uOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0
ZURhdGFTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCmluZGV4IDA1NDI1YzA3NTFlMjM4ZWUxOTI1
OWIzZDAyNTRmMDY5MWNhMzQ3ZGEuLjMyNmZmYWU3MGMxNWZiY2Y1YWQ3N2ZiYTUyOTE4ZTVlYWRk
OGZlOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0Nv
Y29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KQEAgLTEzMSw2ICsx
MzEsNyBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJh
bWV0ZXJzKCkKICAgICAgICAgZmFsc2UsCiAgICAgICAgIHNob3VsZEluY2x1ZGVMb2NhbGhvc3RJ
blJlc291cmNlTG9hZFN0YXRpc3RpY3MsCiAgICAgICAgIGVuYWJsZVJlc291cmNlTG9hZFN0YXRp
c3RpY3NEZWJ1Z01vZGUsCisgICAgICAgIG1fY29uZmlndXJhdGlvbi0+ZGV2aWNlTWFuYWdlbWVu
dFJlc3RyaWN0aW9uc0VuYWJsZWQoKSwKICAgICAgICAgV1RGTW92ZShyZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UpLAogICAgICAgICBXVEZNb3ZlKGxvY2FsU3Rv
cmFnZURpcmVjdG9yeSksCiAgICAgICAgIFdURk1vdmUobG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCmlu
ZGV4IDk5ZjU3ZTRhZTNhNGUxNDM3YjU0YjI1MjUwZjcyMTdhMzEyMGEyZWUuLjhlMTJkYjlhMWRj
YmQwOGI3YjFjNDNmMDllM2EzYmI0ZmViZjYyOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5jcHAKQEAgLTM5LDYgKzM5LDggQEAgUmVmPFdlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uPiBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6Y29weSgpCiB7CiAg
ICAgYXV0byBjb3B5ID0gV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNyZWF0ZSgpOwog
CisgICAgY29weS0+bV9pc1BlcnNpc3RlbnQgPSB0aGlzLT5tX2lzUGVyc2lzdGVudDsKKwogICAg
IGNvcHktPm1fY2FjaGVTdG9yYWdlRGlyZWN0b3J5ID0gdGhpcy0+bV9jYWNoZVN0b3JhZ2VEaXJl
Y3Rvcnk7CiAgICAgY29weS0+bV9wZXJPcmlnaW5TdG9yYWdlUXVvdGEgPSB0aGlzLT5tX3Blck9y
aWdpblN0b3JhZ2VRdW90YTsKICAgICBjb3B5LT5tX25ldHdvcmtDYWNoZURpcmVjdG9yeSA9IHRo
aXMtPm1fbmV0d29ya0NhY2hlRGlyZWN0b3J5OwpAQCAtNTksNiArNjEsNyBAQCBSZWY8V2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpj
b3B5KCkKICAgICBjb3B5LT5tX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciA9
IHRoaXMtPm1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOwogICAgIGNvcHkt
Pm1faHR0cFByb3h5ID0gdGhpcy0+bV9odHRwUHJveHk7CiAgICAgY29weS0+bV9odHRwc1Byb3h5
ID0gdGhpcy0+bV9odHRwc1Byb3h5OworICAgIGNvcHktPm1fZGV2aWNlTWFuYWdlbWVudFJlc3Ry
aWN0aW9uc0VuYWJsZWQgPSB0aGlzLT5tX2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFi
bGVkOwogCiAgICAgcmV0dXJuIGNvcHk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24uaAppbmRleCBkZjE3YWRjNWU0ZDMyZDAyMTU1OGU2NDk0YTNlMzY5Nzg3ZjU5ZjcwLi5i
MGQ3MDdkOTg1MjAzZGJjYWFmM2YxMDQzMWRmZTJkZjNlZWEwNzQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTM4LDcgKzM4LDEwIEBAIHB1YmxpYzoKIAogICAg
IFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4gY29weSgpOwogCi0gICAgdWludDY0
X3QgcGVyT3JpZ2luU3RvcmFnZVF1b3RhKCkgeyByZXR1cm4gbV9wZXJPcmlnaW5TdG9yYWdlUXVv
dGE7IH0KKyAgICBib29sIGlzUGVyc2lzdGVudCgpIGNvbnN0IHsgcmV0dXJuIG1faXNQZXJzaXN0
ZW50OyB9CisgICAgdm9pZCBzZXRQZXJzaXN0ZW50KGJvb2wgaXNQZXJzaXN0ZW50KSB7IG1faXNQ
ZXJzaXN0ZW50ID0gaXNQZXJzaXN0ZW50OyB9CisKKyAgICB1aW50NjRfdCBwZXJPcmlnaW5TdG9y
YWdlUXVvdGEoKSBjb25zdCB7IHJldHVybiBtX3Blck9yaWdpblN0b3JhZ2VRdW90YTsgfQogICAg
IHZvaWQgc2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhKHVpbnQ2NF90IHF1b3RhKSB7IG1fcGVyT3Jp
Z2luU3RvcmFnZVF1b3RhID0gcXVvdGE7IH0KIAogICAgIGNvbnN0IFN0cmluZyYgYXBwbGljYXRp
b25DYWNoZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbGljYXRpb25DYWNoZURpcmVj
dG9yeTsgfQpAQCAtOTgsOSArMTAxLDE0IEBAIHB1YmxpYzoKICAgICBjb25zdCBVUkwmIGh0dHBz
UHJveHkoKSBjb25zdCB7IHJldHVybiBtX2h0dHBzUHJveHk7IH0KICAgICB2b2lkIHNldEhUVFBT
UHJveHkoVVJMJiYgcHJveHkpIHsgbV9odHRwc1Byb3h5ID0gV1RGTW92ZShwcm94eSk7IH0KIAor
ICAgIGJvb2wgZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkOyB9CisgICAgdm9pZCBz
ZXREZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9k
ZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCA9IGVuYWJsZWQ7IH0KKwogcHJpdmF0
ZToKICAgICBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbigpOwogCisgICAgYm9vbCBtX2lz
UGVyc2lzdGVudCB7IGZhbHNlIH07CisKICAgICBTdHJpbmcgbV9jYWNoZVN0b3JhZ2VEaXJlY3Rv
cnk7CiAgICAgdWludDY0X3QgbV9wZXJPcmlnaW5TdG9yYWdlUXVvdGEgeyBXZWJDb3JlOjpTdG9y
YWdlUXVvdGFNYW5hZ2VyOjpkZWZhdWx0UXVvdGEoKSB9OwogICAgIFN0cmluZyBtX25ldHdvcmtD
YWNoZURpcmVjdG9yeTsKQEAgLTEyMSw2ICsxMjksNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBt
X3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjsKICAgICBVUkwgbV9odHRwUHJv
eHk7CiAgICAgVVJMIG1faHR0cHNQcm94eTsKKyAgICBib29sIG1fZGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0VuYWJsZWQgeyBmYWxzZSB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGRiM2EzMDAwY2FlZjcyMzVj
MjY0NmNkMGY0MDQ4Y2JjZWI1NjBhMi4uOTU3MzI4YzAxOTg2NmQwZWRjNjdjNDY0MzA5ZTAzYmMx
Mzc3YzVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC00MzAsNiArNDMwLDggQEAKIAkJMjk4NEY1ODkxNjRCQTA5NTAwNEJDMEM2IC8q
IExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTg0RjU4NzE2NEJBMDk1MDA0QkMwQzYgLyog
TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKIAkJMjlBRDMwOTMx
NjRCNEM1RDAwNzJERUE5IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUFEMzA5MjE2NEI0
QzVEMDA3MkRFQTkgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkuaCAqLzsgfTsK
IAkJMjlDRDU1QUExMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmpl
Y3RCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
OUNENTVBODEyOEUyOTRGMDAxMzNDODUgLyogV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJh
c2UuaCAqLzsgfTsKKwkJMkQwQzU2RkQyMjlGMURFQTAwQkQzM0U3IC8qIERldmljZU1hbmFnZW1l
bnRTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkQwQzU2RkIyMjlGMURFQTAwQkQzM0U3IC8qIERldmljZU1hbmFnZW1lbnRTb2Z0TGluay5o
ICovOyB9OworCQkyRDBDNTZGRTIyOUYxREVBMDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNv
ZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkQwQzU2RkMyMjlGMURFQTAwQkQzM0U3IC8qIERldmljZU1hbmFnZW1lbnRTb2Z0TGluay5tbSAq
LzsgfTsKIAkJMkQxMDg3NjExRDJDNTczRTAwQjg1RjgyIC8qIExvYWRQYXJhbWV0ZXJzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDEwODc1RjFEMkM1
NzNFMDBCODVGODIgLyogTG9hZFBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJMkQxMUI3NTEyMTI2QTI4
MjAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2UxLW1tLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ3REVDOTQyMTI2OUU0QzAwQjlGNzNDIC8qIFVuaWZp
ZWRTb3VyY2UxLW1tLm1tICovOyB9OwogCQkyRDExQjc1MjIxMjZBMjgyMDA2Rjg4NzggLyogVW5p
ZmllZFNvdXJjZTEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkQ3REVENUIyMTI2OUU0RDAwQjlGNzNDIC8qIFVuaWZpZWRTb3VyY2UxLmNwcCAqLzsg
fTsKQEAgLTcwMiw2ICs3MDQsNyBAQAogCQkyREE2NzMxQTIwQzc1NEIxMDAzQ0I0MDEgLyogRHlu
YW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkRBNjczMTkyMEM3NTRCMTAwM0NCNDAxIC8qIER5bmFtaWNWaWV3cG9y
dFNpemVVcGRhdGUuaCAqLzsgfTsKIAkJMkRBOTQ0QTAxODg0RTRGMDAwRUQ4NkRCIC8qIFdlYklP
U0V2ZW50RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkRBOTQ0OTkxODg0RTRGMDAwRUQ4NkRCIC8qIFdlYklPU0V2ZW50RmFjdG9yeS5oICov
OyB9OwogCQkyREE5NDRBNDE4ODRFNEYwMDBFRDg2REIgLyogR2VzdHVyZVR5cGVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREE5NDQ5RDE4ODRFNEYw
MDBFRDg2REIgLyogR2VzdHVyZVR5cGVzLmggKi87IH07CisJCTJEQUFEQThGMjI5OEMyMTAwMEUz
NkIwQyAvKiBEZXZpY2VNYW5hZ2VtZW50U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyREFBREE4RTIyOThDMjEwMDBFMzZCMEMgLyogRGV2aWNlTWFu
YWdlbWVudFNQSS5oICovOyB9OwogCQkyREFCQTc3MjFBODE3QjE3MDBFRjBGMUEgLyogV0tQYWdl
UmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBQkE3NzExQTgxN0IxNzAwRUYwRjFBIC8qIFdLUGFn
ZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaCAqLzsgfTsKIAkJMkRBQkE3NzQxQTgx
N0VFNjAwRUYwRjFBIC8qIFdLUGx1Z2luTG9hZFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBQkE3NzMxQTgxN0VFNjAwRUYwRjFBIC8qIFdL
UGx1Z2luTG9hZFBvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTJEQUJBNzc2MUE4MkI0MjEwMEVGMEYxQSAvKiBBUElIaXN0b3J5Q2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREFCQTc3
NTFBODJCNDIxMDBFRjBGMUEgLyogQVBJSGlzdG9yeUNsaWVudC5oICovOyB9OwpAQCAtMjUwNiw2
ICsyNTA5LDggQEAKIAkJMjlEMDRFMjgyMUY3QzczRDAwNzY3NDFEIC8qIEFjY2Vzc2liaWxpdHlQ
cml2U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlQcml2U1BJLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMDAzNTIyMUJDNzQxNDgwMERBODcxNiAvKiBQREZQbHVn
aW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUERGUGx1Z2luLmg7IHBhdGgg
PSBQREYvUERGUGx1Z2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMDAzNTIz
MUJDNzQxNDgwMERBODcxNiAvKiBQREZQbHVnaW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IG5hbWUgPSBQREZQbHVnaW4ubW07IHBhdGggPSBQREYvUERGUGx1Z2luLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDBDNTZGQjIyOUYxREVBMDBCRDMzRTcgLyog
RGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyRDBDNTZGQzIyOUYxREVBMDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5r
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGV2aWNlTWFuYWdl
bWVudFNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDBDRjY0QjIx
RjJBODAzMDA3ODc1NjYgLyogVGV4dENoZWNraW5nQ29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFRleHRDaGVja2luZ0NvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJEMENGNjRDMjFGMkE4MDMwMDc4NzU2NiAvKiBUZXh0Q2hlY2tpbmdDb250cm9s
bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRDaGVja2luZ0NvbnRyb2xsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQxMDg3NUUxRDJDNTczRTAwQjg1RjgyIC8qIExvYWRQYXJh
bWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRQYXJh
bWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3OTgsNiArMjgwMyw3
IEBACiAJCTJEQTk0NEFDMTg4NEU5QkEwMEVEODZEQiAvKiBXZWJQcm9jZXNzUHJveHlJT1MubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJQcm9jZXNzUHJveHlJ
T1MubW07IHBhdGggPSBpb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyREE5NDRCNjE4ODRFQTM1MDBFRDg2REIgLyogV2ViUGFnZUlPUy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYlBhZ2VJT1MubW07IHBh
dGggPSBpb3MvV2ViUGFnZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRB
OTQ0QkMxODg1MTFFNzAwRUQ4NkRCIC8qIE5ldHdvcmtQcm9jZXNzSU9TLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NJT1MubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEQUFEQThFMjI5OEMyMTAwMEUzNkIwQyAvKiBEZXZp
Y2VNYW5hZ2VtZW50U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmlj
ZU1hbmFnZW1lbnRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRBQkE3NzEx
QTgxN0IxNzAwRUYwRjFBIC8qIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdlUmVuZGVyaW5nUHJvZ3Jl
c3NFdmVudHNJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREFCQTc3
MzFBODE3RUU2MDBFRjBGMUEgLyogV0tQbHVnaW5Mb2FkUG9saWN5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGx1Z2luTG9hZFBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyREFCQTc3NTFBODJCNDIxMDBFRjBGMUEgLyogQVBJSGlzdG9yeUNsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElIaXN0b3J5Q2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MTA1LDYgKzYxMTEsNyBAQAogCQkJCTM3
QzIxQ0FEMUU5OTRDMEMwMDI5RDVGOSAvKiBDb3JlUHJlZGljdGlvblNQSS5oICovLAogCQkJCUEx
RkI2ODI2MUY2RTUxQzEwMEM0M0Y5RiAvKiBDcmFzaFJlcG9ydGVyQ2xpZW50U1BJLmggKi8sCiAJ
CQkJNTdEQ0VEQUEyMTRCOUI0MzAwMTZCODQ3IC8qIERldmljZUlkZW50aXR5U1BJLmggKi8sCisJ
CQkJMkRBQURBOEUyMjk4QzIxMDAwRTM2QjBDIC8qIERldmljZU1hbmFnZW1lbnRTUEkuaCAqLywK
IAkJCQkzNzU0RDU0NDFCM0EyOUZEMDAzQTRDN0YgLyogTlNJbnZvY2F0aW9uU1BJLmggKi8sCiAJ
CQkJMzdCNDdFMkMxRDY0REI3NjAwNUY0RUZGIC8qIG9iamNTUEkuaCAqLywKIAkJCQkwRTk3RDc0
QzIwMEU4RkYzMDBCRjY2NDMgLyogU2FmZUJyb3dzaW5nU1BJLmggKi8sCkBAIC03MTM2LDYgKzcx
NDMsOCBAQAogCQk3RUM0RjBGODE4RTRBOTIyMDA4MDU2QUYgLyogY29jb2EgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJEMEM1NkZCMjI5RjFERUEwMEJE
MzNFNyAvKiBEZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaCAqLywKKwkJCQkyRDBDNTZGQzIyOUYx
REVBMDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1tICovLAogCQkJCTUzMTU4
NzZCMjA3NkI3MTMwMDRCRjlGMyAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyQ29jb2EubW0gKi8s
CiAJCQkJNTMyMTU5NEYxREJBRTZENzAwNTRBQTNDIC8qIE5ldHdvcmtEYXRhVGFza0NvY29hLmgg
Ki8sCiAJCQkJNUNCQzlCOEIxQzY1MjU3MzAwQThGRENGIC8qIE5ldHdvcmtEYXRhVGFza0NvY29h
Lm1tICovLApAQCAtOTIyMyw2ICs5MjMyLDggQEAKIAkJCQlCQzAzMkRBNjEwRjQzN0QxMDA1OEMx
NUEgLyogRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdEQ0VEQUIyMTRDNjAwOTAwMTZC
ODQ3IC8qIERldmljZUlkZW50aXR5U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzI5N0Y5RjFD
MTdCQkVBMDE1RjA3MzUgLyogRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuaCBpbiBIZWFkZXJzICov
LAorCQkJCTJEMEM1NkZEMjI5RjFERUEwMEJEMzNFNyAvKiBEZXZpY2VNYW5hZ2VtZW50U29mdExp
bmsuaCBpbiBIZWFkZXJzICovLAorCQkJCTJEQUFEQThGMjI5OEMyMTAwMEUzNkIwQyAvKiBEZXZp
Y2VNYW5hZ2VtZW50U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mzg5MUI2QzFBNjhDMzBCMDAz
MEYzODYgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUMx
ODE3MzYxMjA1ODQyNDcwMERGREE2NSAvKiBEaXNwbGF5TGluay5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUMxNDI3MDIxQzIzRjg0QzAwRDQxMTgzIC8qIERvd25sb2FkLmggaW4gSGVhZGVycyAqLywK
QEAgLTEwOTgyLDYgKzEwOTkzLDcgQEAKIAkJCQkyRDkyQTc3RDIxMkI2QTcxMDBGNDkzRkQgLyog
Q29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc3RTIxMkI2QTcxMDBGNDkz
RkQgLyogRGF0YVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc3RjIxMkI2
QTcxMDBGNDkzRkQgLyogRGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRDBDNTZGRTIy
OUYxREVBMDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUFCN0Q2MTkxMjg4QjlEOTAwQ0ZEMDhDIC8qIERvd25sb2FkUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2NDIyOTkxMkREMDI5MjAwQ0FBRTJD
IC8qIERyYXdpbmdBcmVhTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
NjQyMzA4MTJERDA5RUIwMENBQUUyQyAvKiBEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDI3OGI2MDE4NDc5ZjM2NTkwMzQ4
Yzg5NTE4NTVhY2Y0M2RjYjU5ZjguLjE1MjU2NzMzYjVkMmI5ODE4MGZjZjUzYjZmYmM3MjMyY2Iz
MTY3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxv
YWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTMzNSw2ICszMzUsOCBAQCB2b2lkIFdlYkxvYWRlclN0
cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJl
c291cmNlTAogCiAgICAgbG9hZFBhcmFtZXRlcnMuaXNNYWluRnJhbWVOYXZpZ2F0aW9uID0gcmVz
b3VyY2VMb2FkZXIuZnJhbWUoKSAmJiByZXNvdXJjZUxvYWRlci5mcmFtZSgpLT5pc01haW5GcmFt
ZSgpICYmIHJlc291cmNlTG9hZGVyLm9wdGlvbnMoKS5tb2RlID09IEZldGNoT3B0aW9uczo6TW9k
ZTo6TmF2aWdhdGU7CiAKKyAgICBsb2FkUGFyYW1ldGVycy5pc01haW5SZXNvdXJjZU5hdmlnYXRp
b25Gb3JBbnlGcmFtZSA9IHJlc291cmNlTG9hZGVyLmZyYW1lKCkgJiYgcmVzb3VyY2VMb2FkZXIu
b3B0aW9ucygpLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZTsKKwogICAgIGxv
YWRQYXJhbWV0ZXJzLnNob3VsZEVuYWJsZUNyb3NzT3JpZ2luUmVzb3VyY2VQb2xpY3kgPSBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmNyb3NzT3JpZ2luUmVzb3VyY2VQ
b2xpY3lFbmFibGVkKCkgJiYgIWxvYWRQYXJhbWV0ZXJzLmlzTWFpbkZyYW1lTmF2aWdhdGlvbjsK
IAogICAgIGlmIChyZXNvdXJjZUxvYWRlci5vcHRpb25zKCkubW9kZSA9PSBGZXRjaE9wdGlvbnM6
Ok1vZGU6Ok5hdmlnYXRlKSB7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggYTJjY2M4Zjg1N2U4NDEyYWE1OGVkZDMwODVmNjk4MzNlNDI4ZjJiMS4u
YzZjZTY4Mjk1ZWZmOGEyNTcxMzlkMGFlYTcyZjg2MTI2NWIyYzdkYyAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5
LTA1LTMwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAg
IE9wdGlvbmFsbHkgcmVzcGVjdCBkZXZpY2UgbWFuYWdlbWVudCByZXN0cmljdGlvbnMgd2hlbiBs
b2FkaW5nIGZyb20gdGhlIG5ldHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5ODMxOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQyNjM4MDY+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tOgorICAgICAgICAoVEVT
VCk6CisgICAgICAgIENsb25lIGEgdGVzdCB0aGF0IHRlc3RzIG5vbi1wZXJzaXN0ZW50IGRhdGEg
c3RvcmVzIGFuZCBlbnN1cmUKKyAgICAgICAgdGhhdCBpdCB3b3JrcyBpZiB0aGUgZGF0YSBzdG9y
ZSBpcyBjcmVhdGVkIHZpYSBhIGNvbmZpZ3VyYXRpb24gYXMgd2VsbC4KKworICAgICAgICBBZGQg
YSB0ZXN0IHRoYXQgZW5zdXJlcyB0aGF0IHlvdSBjYW4ndCBjcmVhdGUgYSBkYXRhIHN0b3JlIGNv
bmZpZ3VyYXRpb24KKyAgICAgICAgd2l0aCBhbiBpbnZhbGlkIHNldCBvZiBvcHRpb25zLgorCiAy
MDE5LTA1LTI5ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDU4NTcuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJzaXRlRGF0YXN0b3JlLm1tCmlu
ZGV4IDNmOTUzYTcwNzUxOGZlMzgyMDY3M2VhMTAzMjM0NjBjYjkyOTRkNDYuLjg3YzQxMjQzYzY4
MjA3MTg2YWJjM2M1MDI0Y2M1YmE1YzM4MjBjMGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJzaXRlRGF0YXN0b3JlLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJzaXRlRGF0YXN0b3JlLm1tCkBA
IC0zMyw2ICszMyw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVJlY29yZFByaXZh
dGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg+CiAjaW1w
b3J0IDxXZWJLaXQvV2ViS2l0Lmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBzdGF0
aWMgYm9vbCByZWFkeVRvQ29udGludWU7CkBAIC0zMDQsNCArMzA1LDQ5IEBAIFRFU1QoV0tXZWJz
aXRlRGF0YVN0b3JlLCBSZW1vdmVOb25QZXJzaXN0ZW50Q3JlZGVudGlhbHMpCiAgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIH0KIAorVEVTVChXZWJLaXQsIFNldHRpbmdOb25Q
ZXJzaXN0ZW50RGF0YVN0b3JlUGF0aHNUaHJvd3NFeGNlcHRpb24pCit7CisgICAgYXV0byBjb25m
aWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0Tm9uUGVyc2lzdGVudENvbmZpZ3VyYXRpb25dKTsKKworICAgIGF1dG8gc2hvdWxk
VGhyb3dFeGNlcHRpb25XaGVuVXNlZCA9IFtdKEZ1bmN0aW9uPHZvaWQodm9pZCk+JiYgbW9kaWZp
ZXIpIHsKKyAgICAgICAgQHRyeSB7CisgICAgICAgICAgICBtb2RpZmllcigpOworICAgICAgICAg
ICAgRVhQRUNUX1RSVUUoZmFsc2UpOworICAgICAgICB9IEBjYXRjaCAoTlNFeGNlcHRpb24gKmV4
Y2VwdGlvbikgeworICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKE5TSW52YWxpZEFyZ3VtZW50
RXhjZXB0aW9uLCBleGNlcHRpb24ubmFtZSk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgTlNV
UkwgKmZpbGVVUkwgPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOkAiL3RtcCJdOworCisgICAgc2hv
dWxkVGhyb3dFeGNlcHRpb25XaGVuVXNlZChbJl0geworICAgICAgICBbY29uZmlndXJhdGlvbiBf
c2V0V2ViU3RvcmFnZURpcmVjdG9yeTpmaWxlVVJMXTsKKyAgICB9KTsKKyAgICBzaG91bGRUaHJv
d0V4Y2VwdGlvbldoZW5Vc2VkKFsmXSB7CisgICAgICAgIFtjb25maWd1cmF0aW9uIF9zZXRJbmRl
eGVkREJEYXRhYmFzZURpcmVjdG9yeTpmaWxlVVJMXTsKKyAgICB9KTsKKyAgICBzaG91bGRUaHJv
d0V4Y2VwdGlvbldoZW5Vc2VkKFsmXSB7CisgICAgICAgIFtjb25maWd1cmF0aW9uIF9zZXRXZWJT
UUxEYXRhYmFzZURpcmVjdG9yeTpmaWxlVVJMXTsKKyAgICB9KTsKKyAgICBzaG91bGRUaHJvd0V4
Y2VwdGlvbldoZW5Vc2VkKFsmXSB7CisgICAgICAgIFtjb25maWd1cmF0aW9uIF9zZXRDb29raWVT
dG9yYWdlRmlsZTpmaWxlVVJMXTsKKyAgICB9KTsKKyAgICBzaG91bGRUaHJvd0V4Y2VwdGlvbldo
ZW5Vc2VkKFsmXSB7CisgICAgICAgIFtjb25maWd1cmF0aW9uIF9zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGlyZWN0b3J5OmZpbGVVUkxdOworICAgIH0pOworICAgIHNob3VsZFRocm93RXhjZXB0
aW9uV2hlblVzZWQoWyZdIHsKKyAgICAgICAgW2NvbmZpZ3VyYXRpb24gX3NldENhY2hlU3RvcmFn
ZURpcmVjdG9yeTpmaWxlVVJMXTsKKyAgICB9KTsKKyAgICBzaG91bGRUaHJvd0V4Y2VwdGlvbldo
ZW5Vc2VkKFsmXSB7CisgICAgICAgIFtjb25maWd1cmF0aW9uIF9zZXRTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGlyZWN0b3J5OmZpbGVVUkxdOworICAgIH0pOworCisgICAgLy8gVGhlc2UgcHJv
cGVydGllcyBzaG91bGRuJ3QgdGhyb3cgZXhjZXB0aW9ucyB3aGVuIHNldCBvbiBhIG5vbi1wZXJz
aXN0ZW50IGRhdGEgc3RvcmUuCisgICAgW2NvbmZpZ3VyYXRpb24gc2V0RGV2aWNlTWFuYWdlbWVu
dFJlc3RyaWN0aW9uc0VuYWJsZWQ6WUVTXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRIVFRQUHJv
eHk6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vd3d3LmFwcGxlLmNvbS8iXV07CisgICAg
W2NvbmZpZ3VyYXRpb24gc2V0SFRUUFNQcm94eTpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHBz
Oi8vd3d3LmFwcGxlLmNvbS8iXV07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0U291cmNlQXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyOkAiY29tLmFwcGxlLlNhZmFyaSJdOworICAgIFtjb25maWd1
cmF0aW9uIHNldFNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjpAImNvbS5hcHBs
ZS5TYWZhcmkiXTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5t
bQppbmRleCA3MDVmYzQyNGFiZDI2NGMxMzg2MTYwMTgwMGIyZTdiMGMxZTE1ZmQ3Li5lNGVlMDIw
NjYzNWNjYmY3MDdkODk0N2NkNWVlZmNjYTdkYjMxZDRlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRh
U3RvcmVDdXN0b21QYXRocy5tbQpAQCAtNDI3LDYgKzQyNyw1MiBAQCBURVNUKFdlYktpdCwgV2Vi
c2l0ZURhdGFTdG9yZUVwaGVtZXJhbCkKIAogICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdl
ciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpkZWZhdWx0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1BhdGgucGF0aF0pOwogICAgIEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVm
YXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZGVmYXVsdFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NGaWxlUGF0aC5wYXRoXSk7CisKKyAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJd
IHJlbW92ZUl0ZW1BdFVSTDpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhdGggZXJyb3I6
bmlsXTsKK30KKworVEVTVChXZWJLaXQsIFdlYnNpdGVEYXRhU3RvcmVFcGhlbWVyYWxWaWFDb25m
aWd1cmF0aW9uKQoreworICAgIFJldGFpblB0cjxXZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHNN
ZXNzYWdlSGFuZGxlcj4gaGFuZGxlciA9IGFkb3B0TlMoW1tXZWJzaXRlRGF0YVN0b3JlQ3VzdG9t
UGF0aHNNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIFJldGFpblB0cjxXS1dlYlZp
ZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRD
b250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0
ZXN0SGFuZGxlciJdOworCisgICAgTlNVUkwgKmRlZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
UGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2Vi
S2l0QVBJL1dlYnNpdGVEYXRhL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MvIiBzdHJpbmdCeUV4cGFu
ZGluZ1RpbGRlSW5QYXRoXSBpc0RpcmVjdG9yeTpZRVNdOworCisgICAgW1tOU0ZpbGVNYW5hZ2Vy
IGRlZmF1bHRNYW5hZ2VyXSByZW1vdmVJdGVtQXRVUkw6ZGVmYXVsdFJlc291cmNlTG9hZFN0YXRp
c3RpY3NQYXRoIGVycm9yOm5pbF07CisKKyAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2Vy
IGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmRlZmF1bHRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzUGF0aC5wYXRoXSk7CisKKyAgICBSZXRhaW5QdHI8X1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24+IGRhdGFTdG9yZUNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXROb25QZXJzaXN0ZW50Q29uZmlndXJh
dGlvbl0pOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IFtbW1dL
V2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpkYXRhU3RvcmVD
b25maWd1cmF0aW9uLmdldCgpXSBhdXRvcmVsZWFzZV07CisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0
KCkud2Vic2l0ZURhdGFTdG9yZSBfc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQ6WUVT
XTsKKworICAgIC8vIFdlIGV4cGVjdCB0aGUgZGlyZWN0b3J5IHRvIGJlIGNyZWF0ZWQgYnkgc3Rh
cnRpbmcgdXAgdGhlIGRhdGEgc3RvcmUgbWFjaGluZXJ5LCBidXQgbm90IHRoZSBkYXRhIGZpbGUu
CisgICAgRVhQRUNUX1RSVUUoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhp
c3RzQXRQYXRoOmRlZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGF0aC5wYXRoXSk7CisKKyAg
ICBOU1VSTCAqZGVmYXVsdFJlc291cmNlTG9hZFN0YXRpc3RpY3NGaWxlUGF0aCA9IFtOU1VSTCBm
aWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL1dlYnNpdGVE
YXRhL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZnVsbF9icm93c2luZ19zZXNzaW9uX3Jlc291cmNl
TG9nLnBsaXN0IiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXSBpc0RpcmVjdG9yeTpOT107
CisgICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4
aXN0c0F0UGF0aDpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpbGVQYXRoLnBhdGhdKTsK
KworICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0
ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAiV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisKKyAgICBbW1t3ZWJWaWV3IGNvbmZpZ3Vy
YXRpb25dIHByb2Nlc3NQb29sXSBfc3luY05ldHdvcmtQcm9jZXNzQ29va2llc107CisKKyAgICAv
LyBGb3JjaWJseSBzaHV0IGRvd24gZXZlcnl0aGluZyBvZiBXZWJLaXQgdGhhdCB3ZSBjYW4uCisg
ICAgYXV0byBwaWQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIGlmIChw
aWQpCisgICAgICAgIGtpbGwocGlkLCBTSUdLSUxMKTsKKworICAgIHdlYlZpZXcgPSBuaWw7Cisg
ICAgaGFuZGxlciA9IG5pbDsKKyAgICBjb25maWd1cmF0aW9uID0gbmlsOworCisgICAgRVhQRUNU
X1RSVUUoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmRl
ZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGF0aC5wYXRoXSk7CisgICAgRVhQRUNUX0ZBTFNF
KFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpkZWZhdWx0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpbGVQYXRoLnBhdGhdKTsKKworICAgIFtbTlNGaWxlTWFu
YWdlciBkZWZhdWx0TWFuYWdlcl0gcmVtb3ZlSXRlbUF0VVJMOmRlZmF1bHRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzUGF0aCBlcnJvcjpuaWxdOwogfQogCiBURVNUKFdlYktpdCwgRG9Mb2FkV2l0aE5v
bkRlZmF1bHREYXRhU3RvcmVBZnRlclRlcm1pbmF0aW5nTmV0d29ya1Byb2Nlc3MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371016</attachid>
            <date>2019-05-30 19:06:21 -0700</date>
            <delta_ts>2019-05-31 12:16:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198318-20190530190620.patch</filename>
            <type>text/plain</type>
            <size>89636</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDgxMGUxOGQ0ZDkyMGFlYmYxZWVjYWM1
OWZmY2U5YjA0NmFmOTEyM2QuLjU4OWRmNTA2MzM2YzhhNGM4YzQxNjI2OWJkNDc4N2QxNGMwOGE3
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDUtMzAgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgT3B0aW9uYWxseSByZXNwZWN0IGRldmljZSBt
YW5hZ2VtZW50IHJlc3RyaWN0aW9ucyB3aGVuIGxvYWRpbmcgZnJvbSB0aGUgbmV0d29yaworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MzE4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NDI2MzgwNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAgICAgICBBZGQgYSBI
QVZFIGZsYWcgZm9yIERldmljZU1hbmFnZW1lbnQuZnJhbWV3b3JrLgorICAgICAgICBJdCBkb2Vz
IGV4aXN0IGluIHRoZSBzaW11bGF0b3IsIGJ1dCBkb2VzIG5vdCBmdW5jdGlvbjsgcHJldGVuZCBp
dCBkb2Vzbid0IGV4aXN0LgorCiAyMDE5LTA1LTI5ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDU4NTcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYjljYWNlZWVjNjE2ZjBmNzgzNjIyODU2NjQzN2M0MTRmNmM2YTUxOC4uOWU5
MjE2YzdhZmFhNWMyMDllMjQ5ZmQzMDAwZjg0ZDNkNWRlYWQxNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDE5LTA1LTMwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgorCisgICAgICAgIE9wdGlvbmFsbHkgcmVzcGVjdCBkZXZpY2UgbWFuYWdlbWVudCByZXN0
cmljdGlvbnMgd2hlbiBsb2FkaW5nIGZyb20gdGhlIG5ldHdvcmsKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODMxOAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDQyNjM4MDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorCiAyMDE5LTA1LTI5ICBS
eWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIyNDU4NTcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE1ZDE5OTc0YmU3Nzk3ZTNmNzZhNDc4
MzYxN2NjZGU0Y2U5Njk2YWMuLmZiNmIxMDdhYjFiZTZjMTI0ZGMzNDdhNGYzNTAyZThhMTU4ODE1
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE2IEBACisyMDE5LTA1LTMwICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIE9wdGlvbmFsbHkgcmVzcGVjdCBk
ZXZpY2UgbWFuYWdlbWVudCByZXN0cmljdGlvbnMgd2hlbiBsb2FkaW5nIGZyb20gdGhlIG5ldHdv
cmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODMx
OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQyNjM4MDY+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9OZXR3b3JrLWlP
Uy5lbnRpdGxlbWVudHM6CisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3Mv
Y29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiOgorICAgICAgICBBZGQgc29tZSBlbnRpdGxl
bWVudHMgYW5kIHNhbmRib3ggaG9sZXMgcmVxdWlyZWQgdG8gdGFsayB0byBEZXZpY2VNYW5hZ2Vt
ZW50LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVj
a2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjp3
YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6Ondhc0Jsb2NrZWRCeVJl
c3RyaWN0aW9ucyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBp
bmdMb2FkOjp3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1BpbmdMb2FkLmg6CisgICAgICAgICogU2hhcmVkL1dlYkVycm9ycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ondhc0Jsb2NrZWRCeVJlc3RyaWN0aW9uc0Vycm9yKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViRXJyb3JzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNr
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OmZhaWx1cmVUaW1lckZpcmVkKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L0FQSUVycm9yLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYuY3BwOgorICAg
ICAgICAoV0tFcnJvckdldEVycm9yQ29kZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLRXJy
b3JSZWYuaDoKKyAgICAgICAgUGx1bWIgYSBuZXcgZXJyb3IgZm9yIGxvYWRzIHRoYXQgYXJlIGJs
b2NrZWQgYnkgZGV2aWNlIG1hbmFnZW1lbnQgcmVzdHJpY3Rpb25zLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6
CisgICAgICAgIFBsdW1iIGEgbmV3IGJpdCB0aGF0IGluZGljYXRlcyB3aGV0aGVyIGEgbG9hZCBp
cyBmb3IgdGhlIG1haW4gcmVzb3VyY2Ugb2YgYSBmcmFtZS4KKyAgICAgICAgV2Ugd2lsbCBvbmx5
IGFwcGx5IGRldmljZSBtYW5hZ2VtZW50IHJlc3RyaWN0aW9ucyB0byBtYWluIHJlc291cmNlcy4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRl
cnM6OnByaXZhdGVTZXNzaW9uUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAg
ICBQbHVtYiBhIG5ldyBiaXQgaW5kaWNhdGluZyB3aGV0aGVyIGEgbmV0d29yayBzZXNzaW9uIHNo
b3VsZCByZXNwZWN0IGRldmljZSBtYW5nZW1lbnQKKyAgICAgICAgcmVzdHJpY3Rpb25zLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29h
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6OnJlc3VtZSk6CisgICAg
ICAgIERlZmVyIHJlc3VtaW5nIHRoZSBsb2FkIHVudGlsIHdlIGhhdmUgYSByZXBseSBmcm9tIERl
dmljZU1hbmFnZW1lbnQgZnJhbWV3b3JrCisgICAgICAgIGFib3V0IHdoZXRoZXIgdGhlIFVSTCBz
aG91bGQgYmUgYmxvY2tlZC4gSWYgaXQgaXMgYmxvY2tlZCwgaW5zdGVhZCBmYWlsIHRoZSBsb2Fk
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06
CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSBVUkxTZXNzaW9uOmRhdGFUYXNr
OmRpZFJlY2VpdmVSZXNwb25zZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmRldmljZU1hbmFnZW1lbnRQb2xpY3lNb25pdG9y
KToKKyAgICAgICAgQ2FjaGUgYSBzaW5nbGUgRE1GV2Vic2l0ZVBvbGljeU1vbml0b3IgaW5zdGFu
Y2UgcGVyIE5ldHdvcmtTZXNzaW9uLgorCisgICAgICAgIAorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChBUEk6OldlYnNpdGVEYXRhU3Rv
cmU6OmRlZmF1bHREYXRhU3RvcmVDb25maWd1cmF0aW9uKToKKyAgICAgICAgVGhlIGRlZmF1bHQg
ZGF0YSBzdG9yZSBpcyBwZXJzaXN0ZW50OyBpdHMgY29uZmlndXJhdGlvbiBzaG91bGQgcmVmbGVj
dCB0aGF0LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1t
OgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZv
clNlcnZpY2VXb3JrZXI6XSk6IFN0eWxlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBf
aW5pdFdpdGhDb25maWd1cmF0aW9uOl0pOgorICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIGNy
ZWF0ZSBhIG5vbi1wZXJzaXN0ZW50IFdLV2Vic2l0ZURhdGFTdG9yZSBmcm9tIGEKKyAgICAgICAg
Y29uZmlndXJhdGlvbiwgYW5kIGVuc3VyZSB0aGF0IGl0IGRvZXMgbm90IGhhdmUgYW55IHBlcnNp
c3RlbnQgc3RvcmFnZSBkaXJlY3RvcmllcyBzZXQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbToKKyAg
ICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gaW5pdF0pOgorICAgICAg
ICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBpbml0V2l0aE5vblBlcnNpc3Rl
bnRDb25maWd1cmF0aW9uXSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uIGlzUGVyc2lzdGVudF0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbiBfc2V0V2ViU3RvcmFnZURpcmVjdG9yeTpdKToKKyAgICAgICAgKC1bX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gX3NldEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5
Ol0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBfc2V0V2Vi
U1FMRGF0YWJhc2VEaXJlY3Rvcnk6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uIF9zZXRDb29raWVTdG9yYWdlRmlsZTpdKToKKyAgICAgICAgKC1bX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3Rvcnk6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIF9z
ZXRDYWNoZVN0b3JhZ2VEaXJlY3Rvcnk6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uIF9zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5Ol0p
OgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBkZXZpY2VNYW5h
Z2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZF0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbiBzZXREZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDpd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbjo6Y29weSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uOjppc1BlcnNpc3RlbnQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0UGVyc2lzdGVudCk6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpwZXJPcmlnaW5TdG9yYWdlUXVvdGEg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6
ZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0RGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbjo6cGVyT3JpZ2luU3RvcmFnZVF1b3RhKTogRGVsZXRlZC4KKyAgICAgICAgTWFr
ZSBpdCBwb3NzaWJsZSB0byBjcmVhdGUgYSBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
biB0aGF0IHdpbGwgY3JlYXRlIGEgbm9uLXBlcnNpc3RlbnQKKyAgICAgICAgZGF0YSBzdG9yZS4g
QWRkIGEgYml0IHRvIF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHRoYXQgY29udHJv
bHMgd2hldGhlciB0aGUgbmV0d29yayAKKyAgICAgICAgc2Vzc2lvbiB3aWxsIHJlc3BlY3QgZGV2
aWNlIG1hbmFnZW1lbnQgcmVzdHJpY3Rpb25zLgorCisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L0RldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oOgorICAgICAgICAqIFdlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9EZXZpY2VNYW5hZ2VtZW50U29mdExpbmsubW06CisgICAgICAgICogV2ViS2l0
L1BsYXRmb3JtL3NwaS9Db2NvYS9EZXZpY2VNYW5hZ2VtZW50U1BJLmg6CisgICAgICAgIEFkZCBz
b21lIHNvZnQtbGlua2luZyBhbmQgU1BJIGhlYWRlcnMuCisKIDIwMTktMDUtMjkgIFJ5YW4gSGFk
ZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjI0NTg1Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDQ0N2JiMThhOGYwMjhjMjk1MDFkMzkzMWZi
OTU1N2E4ZDUzYTI2MDcuLjMzMmViM2U3YThjMjIzZDdjMDkxYjZlYWJmYWExZDhhOGJjMjRjOGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm0uaApAQCAtMTU0Nyw2ICsxNTQ3LDEwIEBACiAjZGVmaW5lIEhBVkVfUk9VVEVf
U0hBUklOR19QT0xJQ1lfTE9OR19GT1JNX1ZJREVPIDEKICNlbmRpZgogCisjaWYgKFBMQVRGT1JN
KElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwICYmICFQ
TEFURk9STShJT1NfU0lNVUxBVE9SKSkKKyNkZWZpbmUgSEFWRV9ERVZJQ0VfTUFOQUdFTUVOVCAx
CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9B
TExPV0VEIDwgMTAxNTAwCiAjZGVmaW5lIFVTRV9SRUFMUEFUSF9GT1JfRExPUEVOX1BSRUZMSUdI
VCAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXph
YmxlLnN0cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdz
CmluZGV4IGYzNTk3YTM4ZmNhMzRjODFjZGU2NzU4ZTEzNjQzNjhmNTc1N2FmOTEuLmEzODEwNjk3
MzYyMzFlYzdlOGQ3Y2ViN2VhZWM0ZjI2MzBjMGZjMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNvcmUvZW4u
bHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpAQCAtODAyLDYgKzgwMiw5IEBACiAvKiBXZWJLaXRF
cnJvckZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRGaWx0ZXIgZGVzY3JpcHRpb24gKi8KICJUaGUg
VVJMIHdhcyBibG9ja2VkIGJ5IGEgY29udGVudCBmaWx0ZXIiID0gIlRoZSBVUkwgd2FzIGJsb2Nr
ZWQgYnkgYSBjb250ZW50IGZpbHRlciI7CiAKKy8qIFdlYktpdEVycm9yRnJhbWVMb2FkQmxvY2tl
ZEJ5UmVzdHJpY3Rpb25zIGRlc2NyaXB0aW9uICovCisiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBk
ZXZpY2UgcmVzdHJpY3Rpb25zIiA9ICJUaGUgVVJMIHdhcyBibG9ja2VkIGJ5IGRldmljZSByZXN0
cmljdGlvbnMiOworCiAvKiBXS0Vycm9yV2ViVmlld0ludmFsaWRhdGVkIGRlc2NyaXB0aW9uICov
CiAiVGhlIFdLV2ViVmlldyB3YXMgaW52YWxpZGF0ZWQiID0gIlRoZSBXS1dlYlZpZXcgd2FzIGlu
dmFsaWRhdGVkIjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9O
ZXR3b3JrLWlPUy5lbnRpdGxlbWVudHMgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL05l
dHdvcmstaU9TLmVudGl0bGVtZW50cwppbmRleCAyZWU2OTY2MzhmNjcyZTYyMzdkYTBiNzQ3OGFm
ZTk5MzZiNDg4NjNhLi41M2RmZDU2MzU0MDk5ZWYwMzA5MWQxZDVjNTk0YjNmMTczYjI4NTkxIDEw
MDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDI0NAp6Y21YQGFAfHtVNHNVUm5feFd2SFZJd0tQ
XjNvOUV0Mkx+NGk1WDF7O1BnWjhzd3VsI3lPVX0+TE9EcmhKTiEyU1QKeiR9Q0dQTiE4MHUmQ01e
V0VHfGhiREpfbHs1RytuakVKO2V1RGJYemAlMV9KOE5kPTBATyNDUnI5NTB8YmM/UDRWCno1fEUy
Jk1vTW1xVU98M05XXiFlYGZZIXV+VDR8aHwzJVRQM3EhQjheUTxKPGlPWjVDd09VbTwkdk5RQTJJ
ZX56SQp4Z0YmM1psXzhDeGllVjxoUUhDZHNme2EzcCFpPUpmIyo4TTZyaV45YFY4RngocCYxMEFH
P1pkQTJMUXIqSzJyYnkKCmxpdGVyYWwgNTc4CnpjbWEpKC0lRzxWNVhZYWx6YXIrbmlOMSsrOWxB
e3pqIztvR0s0IzUxTCg/V0MqVlg+X1VibGpaIWhBaXhLUiRQdAp6Jk9kNik0aUtWbyY1VTEoT1V8
R3ZvaUAjVyMtRUcoPGVKYTNYP240SVRva1lRaWd7fXl2aSRqT3Z0QlRzTk98a00KejF1MilzbEk1
SEFRXjY9aCVHSClMeypMSHhyMGx2KnM2aSE0Un1hRHteV1ohTD5eQnNha1U/bkZvTjcrI0tYN1FP
CnpPXk1sYmwyKmBYNmZ1VT90d248PlIpaXtJOX0jTTVRODd8NUVmWjVZPSpmbm0xXkxfV1JiTkFj
TFJwKXJ2Vj9mdgp6NXpJaiQydldQWSE2PGZacWIoUjZ5Pm9BYmFrZz57c0cpWCZoIXdXfkVeUG9p
N2IrMjVTcGc7KkViSXk5QDUlQFkKeWNWSUVgZnhzKyR3V3R1KGFGdDBLRiVhXiVnVEJELSFKeWNs
aWpNMXk4YWtwSmpqMjMrQmJDUXJXeiRhcTBtM3VACgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwCmlu
ZGV4IDJiMGExYzM3OWVjZDg2NjJiMDA4MWY0ZGIyZWU1MTc5MDVhOTU1YzQuLjk0ZjEyNzcyODJi
OTUzMjFmNjY2NWNkNGZiNjZiNzkyZGM4MzQ5YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAK
QEAgLTE2Myw2ICsxNjMsMTIgQEAgdm9pZCBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OmNh
bm5vdFNob3dVUkwoKQogICAgIG1fY29tcGxldGlvbkNhbGxiYWNrKFJlc291cmNlRXJyb3IgeyBl
cnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCBtX3BhcmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0
LnVybCgpLCAiUHJlZmxpZ2h0IHJlc3BvbnNlIHdhcyBibG9ja2VkIl9zLCBSZXNvdXJjZUVycm9y
OjpUeXBlOjpBY2Nlc3NDb250cm9sIH0pOwogfQogCit2b2lkIE5ldHdvcmtDT1JTUHJlZmxpZ2h0
Q2hlY2tlcjo6d2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zKCkKK3sKKyAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJ3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMiKTsKKyAgICBtX2NvbXBsZXRpb25D
YWxsYmFjayhSZXNvdXJjZUVycm9yIHsgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgbV9w
YXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdC51cmwoKSwgIlByZWZsaWdodCByZXNwb25zZSB3YXMg
YmxvY2tlZCJfcywgUmVzb3VyY2VFcnJvcjo6VHlwZTo6QWNjZXNzQ29udHJvbCB9KTsKK30KKwog
TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24gTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2Vy
Ojp0YWtlSW5mb3JtYXRpb24oKQogewogICAgIEFTU0VSVChtX3Nob3VsZENhcHR1cmVFeHRyYU5l
dHdvcmtMb2FkTWV0cmljcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaAppbmRleCA0ZDNkMTY5ZjZhZjlm
NDNiNzYxMDgxY2ZiZmU2MGFmYzVhMzkzZmQ0Li44NzI0OGYwZTBlMTI4NDkzYTU1NmU1Y2ZiMWMz
NWJkNTM0ZDkxZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmgKQEAgLTcyLDYgKzcyLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGRpZFNlbmREYXRhKHVpbnQ2NF90IHRvdGFsQnl0ZXNTZW50LCB1aW50
NjRfdCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1NlbmQpIGZpbmFsOwogICAgIHZvaWQgd2FzQmxvY2tl
ZCgpIGZpbmFsOwogICAgIHZvaWQgY2Fubm90U2hvd1VSTCgpIGZpbmFsOworICAgIHZvaWQgd2Fz
QmxvY2tlZEJ5UmVzdHJpY3Rpb25zKCkgZmluYWw7CiAKICAgICBQYXJhbWV0ZXJzIG1fcGFyYW1l
dGVyczsKICAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nlc3M7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKaW5kZXggZjFm
MDExMTVkMjMxYWFiZDdkZTBlZDAwYzA3ODRmMTg4ZjA5Y2M1NC4uYmNiYWU5ZDMxZmJmOGU3NjBl
NGQ2ZmY2NjAwMTI4NmQwMjU0YWEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcApAQCAtNTAsNyArNTAsNyBAQCBSZWY8TmV0d29ya0Rh
dGFUYXNrPiBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwg
TmV0d29ya0RhdAogewogICAgIEFTU0VSVCghcGFyYW1ldGVycy5yZXF1ZXN0LnVybCgpLnByb3Rv
Y29sSXNCbG9iKCkpOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHJldHVybiBOZXR3b3JrRGF0
YVRhc2tDb2NvYTo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBw
YXJhbWV0ZXJzLndlYkZyYW1lSUQsIHBhcmFtZXRlcnMud2ViUGFnZUlELCBwYXJhbWV0ZXJzLnN0
b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwg
cGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLnNob3VsZFBy
ZWNvbm5lY3RPbmx5LCBwYXJhbWV0ZXJzLmlzTWFpbkZyYW1lTmF2aWdhdGlvbiwgcGFyYW1ldGVy
cy5uZXR3b3JrQWN0aXZpdHlUcmFja2VyKTsKKyAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQ29j
b2E6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVy
cy53ZWJGcmFtZUlELCBwYXJhbWV0ZXJzLndlYlBhZ2VJRCwgcGFyYW1ldGVycy5zdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRl
cnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJS
ZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0
T25seSwgcGFyYW1ldGVycy5pc01haW5GcmFtZU5hdmlnYXRpb24sIHBhcmFtZXRlcnMuaXNNYWlu
UmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIHBhcmFtZXRlcnMubmV0d29ya0FjdGl2aXR5
VHJhY2tlcik7CiAjZW5kaWYKICNpZiBVU0UoU09VUCkKICAgICByZXR1cm4gTmV0d29ya0RhdGFU
YXNrU291cDo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJh
bWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmlu
Z1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgcGFyYW1l
dGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJz
LmlzTWFpbkZyYW1lTmF2aWdhdGlvbik7CkBAIC0xMzMsNiArMTMzLDExIEBAIHZvaWQgTmV0d29y
a0RhdGFUYXNrOjpmYWlsdXJlVGltZXJGaXJlZCgpCiAgICAgICAgIGlmIChtX2NsaWVudCkKICAg
ICAgICAgICAgIG1fY2xpZW50LT5jYW5ub3RTaG93VVJMKCk7CiAgICAgICAgIHJldHVybjsKKyAg
ICBjYXNlIFJlc3RyaWN0ZWRVUkxGYWlsdXJlOgorICAgICAgICBtX3NjaGVkdWxlZEZhaWx1cmVU
eXBlID0gTm9GYWlsdXJlOworICAgICAgICBpZiAobV9jbGllbnQpCisgICAgICAgICAgICBtX2Ns
aWVudC0+d2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zKCk7CisgICAgICAgIHJldHVybjsKICAgICBj
YXNlIE5vRmFpbHVyZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJy
ZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0
YVRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgK
aW5kZXggY2U3YjJhZDUwNjM2NWE0MzI4YmE1NzNhZjE2MTcwOTYwYmFiZmJjYS4uOWY1ZmUxZjRi
MzgzOTY0OTBjY2I0ZjQzMTVjNDJlMTJiZWI2N2QwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkU2VuZERhdGEodWludDY0X3QgdG90YWxCeXRlc1NlbnQsIHVp
bnQ2NF90IHRvdGFsQnl0ZXNFeHBlY3RlZFRvU2VuZCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB3
YXNCbG9ja2VkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjYW5ub3RTaG93VVJMKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCB3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMoKSA9IDA7CiAKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIApAQCAtMTM0LDcgKzEzNSw4IEBAIHByb3RlY3RlZDoKICAgICBl
bnVtIEZhaWx1cmVUeXBlIHsKICAgICAgICAgTm9GYWlsdXJlLAogICAgICAgICBCbG9ja2VkRmFp
bHVyZSwKLSAgICAgICAgSW52YWxpZFVSTEZhaWx1cmUKKyAgICAgICAgSW52YWxpZFVSTEZhaWx1
cmUsCisgICAgICAgIFJlc3RyaWN0ZWRVUkxGYWlsdXJlCiAgICAgfTsKICAgICB2b2lkIGZhaWx1
cmVUaW1lckZpcmVkKCk7CiAgICAgdm9pZCBzY2hlZHVsZUZhaWx1cmUoRmFpbHVyZVR5cGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAppbmRleCA3MzVm
MzY5YTFjYTA2YzI3YzYxYTgzMGU2ODE3NzI5ODIzOWRjNmJjLi45MTA3ZmVjMWUzNGRiNDQ4ODE2
MjI4Njg2MjJjOGZiZWI1YjM4ODNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkLmNwcApAQCAtMjc2LDYgKzI3NiwxMCBAQCB2b2lkIE5ldHdvcmtMb2FkOjpj
YW5ub3RTaG93VVJMKCkKICAgICBtX2NsaWVudC5nZXQoKS5kaWRGYWlsTG9hZGluZyhjYW5ub3RT
aG93VVJMRXJyb3IobV9jdXJyZW50UmVxdWVzdCkpOwogfQogCit2b2lkIE5ldHdvcmtMb2FkOjp3
YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMoKQoreworICAgIG1fY2xpZW50LmdldCgpLmRpZEZhaWxM
b2FkaW5nKHdhc0Jsb2NrZWRCeVJlc3RyaWN0aW9uc0Vycm9yKG1fY3VycmVudFJlcXVlc3QpKTsK
K30KIAogU3RyaW5nIE5ldHdvcmtMb2FkOjpkZXNjcmlwdGlvbigpIGNvbnN0CiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgKaW5kZXggYTVlYmFiNjBmNzJlZWEz
ZjcxOTFhNTU4NmUzYTYyMGMyNGYxMDZjYy4uZDQxNWQwNGEyOWJmMjNmN2I1Y2NmMzNiODQ4MDQw
NTk4MzY3NGI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTG9hZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQu
aApAQCAtODAsNiArODAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkU2VuZERhdGEodWludDY0
X3QgdG90YWxCeXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNFeHBlY3RlZFRvU2VuZCkgZmlu
YWw7CiAgICAgdm9pZCB3YXNCbG9ja2VkKCkgZmluYWw7CiAgICAgdm9pZCBjYW5ub3RTaG93VVJM
KCkgZmluYWw7CisgICAgdm9pZCB3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMoKSBmaW5hbDsKIAog
ICAgIHZvaWQgbm90aWZ5RGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmJiwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmKTsKICAgICB2b2lkIHRocm90dGxlRGVs
YXlDb21wbGV0ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkUGFyYW1ldGVycy5oCmluZGV4IDg5NzMwY2Y5ZmQyNjk5YmNmZDMyZGRjMzhlZjhj
ZTAzNzQ2YTMwMzQuLmNmYjJjNzVjMGNkNzkyYTAwYTUwNWM4MGI2OThjMTYwYTgwMjEzNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFt
ZXRlcnMuaApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0IHsgdHJ1ZSB9OwogICAgIGJvb2wgbmVlZHNDZXJ0
aWZpY2F0ZUluZm8geyBmYWxzZSB9OwogICAgIGJvb2wgaXNNYWluRnJhbWVOYXZpZ2F0aW9uIHsg
ZmFsc2UgfTsKKyAgICBib29sIGlzTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lIHsg
ZmFsc2UgfTsKICAgICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5j
ZT4+IGJsb2JGaWxlUmVmZXJlbmNlczsKICAgICBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25u
ZWN0T25seSB7IFByZWNvbm5lY3RPbmx5OjpObyB9OwogICAgIE9wdGlvbmFsPE5ldHdvcmtBY3Rp
dml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMuY3BwCmluZGV4IDMzY2RjNGQxN2RiZTJlMDg2NmUzNjEyZWYyMjc2MWEzODIzODA1OWIuLjBl
NDQ1OTRiODllNjY2NDg5YWZmMTI4ZjhjNTFjMGM2YzFhY2UyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMuY3BwCkBAIC03OCw2ICs3OCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rl
ciA8PCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0OwogICAgIGVuY29k
ZXIgPDwgbmVlZHNDZXJ0aWZpY2F0ZUluZm87CiAgICAgZW5jb2RlciA8PCBpc01haW5GcmFtZU5h
dmlnYXRpb247CisgICAgZW5jb2RlciA8PCBpc01haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlG
cmFtZTsKICAgICBlbmNvZGVyIDw8IG1heGltdW1CdWZmZXJpbmdUaW1lOwogCiAgICAgZW5jb2Rl
ciA8PCBzdGF0aWNfY2FzdDxib29sPihzb3VyY2VPcmlnaW4pOwpAQCAtMTY5LDYgKzE3MCw4IEBA
IGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIsIE5ldHdvcmtSZXNvdXJjCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc01haW5GcmFtZU5hdmlnYXRpb24pKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNNYWluUmVzb3Vy
Y2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQubWF4aW11bUJ1ZmZlcmluZ1RpbWUpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMjZi
ZjE5ZDlhY2NiOTkzYjBhZjUzMTliMTFiMjc1YzFlMjNlNDg3Mi4uOTBkZWRhNDIxMDk1OTdiMzkw
MWQyNjIwY2Q1MmZhMDJmZTM0ZjA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5j
cHAKQEAgLTUwLDcgKzUwLDcgQEAgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OnByaXZhdGVTZXNzaW8KICNpZiBVU0UoQ1VS
TCkKICAgICAgICAgLCB7IH0sIHsgfQogI2VuZGlmCi0gICAgICAgICwgeyB9LCB7IH0sIGZhbHNl
LCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfQorICAgICAgICAsIHsgfSwgeyB9LCBmYWxzZSwgeyB9
LCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9CiAgICAgfTsKIH0KIApAQCAtODQsNyArODQs
MTAgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGVuYWJsZVJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEZWJ1Z01vZGU7CiAgICAgZW5jb2RlciA8PCByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2U7CiAKLSAgICBlbmNvZGVyIDw8IGxvY2FsU3RvcmFn
ZURpcmVjdG9yeSA8PCAgbG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAg
IGVuY29kZXIgPDwgbG9jYWxTdG9yYWdlRGlyZWN0b3J5IDw8IGxvY2FsU3RvcmFnZURpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZTsKKworICAgIGVuY29kZXIgPDwgZGV2aWNlTWFuYWdlbWVudFJlc3Ry
aWN0aW9uc0VuYWJsZWQ7CisgICAgZW5jb2RlciA8PCBhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1h
bmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nOwogfQogCiBPcHRpb25hbDxOZXR3b3JrU2Vz
c2lvbkNyZWF0aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6
OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCkBAIC0yMDgsNiArMjExLDE2IEBAIE9wdGlv
bmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVyczo6ZGVjCiAgICAgaWYgKCFsb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKKyAgICBPcHRpb25hbDxi
b29sPiBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDsKKyAgICBkZWNvZGVyID4+
IGRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkOworICAgIGlmICghZGV2aWNlTWFu
YWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKKyAgICBPcHRpb25hbDxib29sPiBhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNGb3JUZXN0aW5nOworICAgIGRlY29kZXIgPj4gYWxsTG9hZHNCbG9ja2VkQnlE
ZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzsKKyAgICBpZiAoIWFsbExvYWRz
QmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKICAgICByZXR1cm4ge3sKICAgICAgICAgc2Vzc2lvbklE
CiAgICAgICAgICwgV1RGTW92ZSgqYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyKQpAQCAtMjM1LDYg
KzI0OCw4IEBAIE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjCiAgICAgICAgICwgV1RGTW92ZSgqZW5h
YmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcykKICAgICAgICAgLCBXVEZNb3ZlKCpzaG91bGRJbmNs
dWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzKQogICAgICAgICAsIFdURk1vdmUo
KmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUpCisgICAgICAgICwgV1RGTW92
ZSgqZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQpCisgICAgICAgICwgV1RGTW92
ZSgqYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGlu
ZykKICAgICAgICAgLCBXVEZNb3ZlKCpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFs
ZW50UmVzb3VyY2UpCiAgICAgICAgICwgV1RGTW92ZSgqbG9jYWxTdG9yYWdlRGlyZWN0b3J5KQog
ICAgICAgICAsIFdURk1vdmUoKmxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25D
cmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA2ZmMwN2FlZDI0YjQwYTY3ZGFmNGMx
NzZlNGY3ZGJmMTViMGI3MGM1Li42NTU5OTQ3ZjAwZGI1NzZmYTQxODRhNTY5NzU4NmEzZDVhZDI4
MDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC04Niw2ICs4Niw4IEBAIHN0
cnVjdCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCBlbmFibGVS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHsgZmFsc2UgfTsKICAgICBib29sIHNob3VsZEluY2x1ZGVM
b2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MgeyB0cnVlIH07CiAgICAgYm9vbCBlbmFi
bGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlIHsgZmFsc2UgfTsKKyAgICBib29sIGRl
dmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIGFs
bExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcgeyBm
YWxzZSB9OwogICAgIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlTG9hZFN0YXRp
c3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZSB7IH07CiAKICAgICBTdHJpbmcgbG9jYWxTdG9y
YWdlRGlyZWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
aW5nTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcApp
bmRleCAyMWJjN2E0ZTliMjNlMjI3MTUxZDAxMGU0OTU1NGQ5Y2NjNWY0YjJlLi5mZThmMDNhYmY5
OWRiY2RkYWVlMGRiMmU1NmEyYzJhNzNjMDEzYWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1BpbmdMb2FkLmNwcApAQCAtMjAwLDYgKzIwMCwxMiBAQCB2b2lkIFBpbmdMb2FkOjpj
YW5ub3RTaG93VVJMKCkKICAgICBkaWRGaW5pc2goY2Fubm90U2hvd1VSTEVycm9yKFJlc291cmNl
UmVxdWVzdCB7IGN1cnJlbnRVUkwoKSB9KSk7CiB9CiAKK3ZvaWQgUGluZ0xvYWQ6Ondhc0Jsb2Nr
ZWRCeVJlc3RyaWN0aW9ucygpCit7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2FzQmxv
Y2tlZEJ5UmVzdHJpY3Rpb25zIik7CisgICAgZGlkRmluaXNoKHdhc0Jsb2NrZWRCeVJlc3RyaWN0
aW9uc0Vycm9yKFJlc291cmNlUmVxdWVzdCB7IGN1cnJlbnRVUkwoKSB9KSk7Cit9CisKIHZvaWQg
UGluZ0xvYWQ6OnRpbWVvdXRUaW1lckZpcmVkKCkKIHsKICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJ0aW1lb3V0VGltZXJGaXJlZCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9QaW5nTG9hZC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5n
TG9hZC5oCmluZGV4IGM3ZTEyYmIxMzBkMDQ5YzVkMGE1OTdjMDFmZTViZmZjOGIyMjFiZjkuLjUw
NTkyYjc1Mjk4ZTJkZDM1MjFjY2U2ODAwOTA1ZmI4YWFmNWNiMWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1BpbmdMb2FkLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRpZFNlbmREYXRhKHVpbnQ2NF90IHRvdGFsQnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5
dGVzRXhwZWN0ZWRUb1NlbmQpIGZpbmFsOwogICAgIHZvaWQgd2FzQmxvY2tlZCgpIGZpbmFsOwog
ICAgIHZvaWQgY2Fubm90U2hvd1VSTCgpIGZpbmFsOworICAgIHZvaWQgd2FzQmxvY2tlZEJ5UmVz
dHJpY3Rpb25zKCkgZmluYWw7CiAgICAgdm9pZCB0aW1lb3V0VGltZXJGaXJlZCgpOwogCiAgICAg
dm9pZCBsb2FkUmVxdWVzdChOZXR3b3JrUHJvY2VzcyYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvRGV2
aWNlTWFuYWdlbWVudFNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL0RldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzODM3YTZiYWY4M2Y4
YzU0NzQxZDdmMmFjZDAyYzY4YmIwNzlmODcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL0RldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oCkBAIC0w
LDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEhBVkUoREVWSUNF
X01BTkFHRU1FTlQpCisKKyNpbXBvcnQgIkRldmljZU1hbmFnZW1lbnRTUEkuaCIKKyNpbXBvcnQg
PHd0Zi9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoV2Vi
S2l0LCBEZXZpY2VNYW5hZ2VtZW50KTsKK1NPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFdlYktp
dCwgRE1GV2Vic2l0ZVBvbGljeU1vbml0b3IpOworCisjZW5kaWYgLy8gSEFWRShERVZJQ0VfTUFO
QUdFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
RGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9EZXZpY2VNYW5hZ2VtZW50U29mdExpbmsubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk3YzVlMGQ5
MDcxYjdlNzc0NjAyMWZhODkzOGZlMjUxMjFlODBlMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1t
CkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lm
IEhBVkUoREVWSUNFX01BTkFHRU1FTlQpCisKKyNpbXBvcnQgIkRldmljZU1hbmFnZW1lbnRTUEku
aCIKKyNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfUFJJVkFURV9GUkFN
RVdPUktfRk9SX1NPVVJDRShXZWJLaXQsIERldmljZU1hbmFnZW1lbnQpOworU09GVF9MSU5LX0NM
QVNTX0ZPUl9TT1VSQ0UoV2ViS2l0LCBEZXZpY2VNYW5hZ2VtZW50LCBETUZXZWJzaXRlUG9saWN5
TW9uaXRvcik7CisKKyNlbmRpZiAvLyBIQVZFKERFVklDRV9NQU5BR0VNRU5UKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2Nv
YS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tD
b2NvYS5oCmluZGV4IDJkZDBlN2Q0NmJjNzE5ZTk2ZmExNTA3NGZlZDAwYjFjODg2NjU2NTguLjc3
MWIzYWI1OTExM2UzNTE5N2JiOWVkMjg0ZDBlY2IwZTIzMGM2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29h
LmgKQEAgLTQyLDkgKzQyLDkgQEAgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIGNsYXNzIE5l
dHdvcmtEYXRhVGFza0NvY29hIGZpbmFsIDogcHVibGljIE5ldHdvcmtEYXRhVGFzayB7CiAgICAg
ZnJpZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29y
a0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2Vi
Q29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJl
Y29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5G
cmFtZU5hdmlnYXRpb24sIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtB
Y3Rpdml0eVRyYWNrZXIpCisgICAgc3RhdGljIFJlZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShO
ZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdWludDY0X3QgZnJhbWVJRCwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFs
c1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5n
UG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZp
bmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVj
dE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRh
c2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0d29y
a0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJhY2tlcikKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Npb24sIGNsaWVu
dCwgcmVxdWVzdCwgZnJhbWVJRCwgcGFnZUlELCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hv
dWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgc2hvdWxkQ2xlYXJS
ZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxkUHJlY29ubmVjdE9ubHksIGRhdGFU
YXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Npb24s
IGNsaWVudCwgcmVxdWVzdCwgZnJhbWVJRCwgcGFnZUlELCBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxkUHJlY29ubmVjdE9ubHks
IGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBkYXRhVGFza0lzRm9yTWFpblJlc291
cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKSk7CiAgICAg
fQogCiAgICAgfk5ldHdvcmtEYXRhVGFza0NvY29hKCk7CkBAIC03NSw3ICs3NSw3IEBAIHB1Ymxp
YzoKICAgICBTdHJpbmcgZGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToK
LSAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFz
a0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIHVpbnQ2NF90IGZyYW1l
SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBXZWJDb3JlOjpDb250ZW50RW5j
b2RpbmdTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2
aWdhdGlvbiwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4pOworICAgIE5ldHdvcmtE
YXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3Jl
OjpDb250ZW50U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5n
UG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFBy
ZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29s
IGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFs
PE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+KTsKIAogICAgIGJvb2wgdHJ5UGFzc3dvcmRCYXNlZEF1
dGhlbnRpY2F0aW9uKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hh
bGxlbmdlQ29tcGxldGlvbkhhbmRsZXImKTsKICAgICB2b2lkIGFwcGx5U25pZmZpbmdQb2xpY2ll
c0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRlZChfX3N0cm9uZyBOU1VSTFJlcXVlc3Qq
JiwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25p
ZmYpOwpAQCAtOTgsNiArOTgsOCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCiAgICAgYm9vbCBtX2hhc0JlZW5TZXRUb1VzZVN0YXRlbGVzc0Nvb2tpZVN0
b3JhZ2UgeyBmYWxzZSB9OwogI2VuZGlmCisKKyAgICBib29sIG1faXNGb3JNYWluUmVzb3VyY2VO
YXZpZ2F0aW9uRm9yQW55RnJhbWUgeyBmYWxzZSB9OwogfTsKIAogV2ViQ29yZTo6Q3JlZGVudGlh
bCBzZXJ2ZXJUcnVzdENyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4IDI4YTA1ZTgwZGI2ODVhZjY3YjI4NGM4
NDIzMTcxOTRmOTdlODdlM2UuLmQ5YTliODBiMDIwOWEzMjVkZjMxYjgxMDY0ZTk0MDZmNGE3MGNh
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW1wb3J0ICJB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uLmgiCiAjaW1wb3J0ICJBdXRoZW50aWNh
dGlvbk1hbmFnZXIuaCIKKyNpbXBvcnQgIkRldmljZU1hbmFnZW1lbnRTUEkuaCIKICNpbXBvcnQg
IkRvd25sb2FkLmgiCiAjaW1wb3J0ICJEb3dubG9hZFByb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQg
IkxvZ2dpbmcuaCIKQEAgLTM5LDYgKzQwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVt
ZW50ZWQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxw
YWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgorI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1w
b3J0IDx3dGYvRmlsZVN5c3RlbS5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBv
cnQgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CkBAIC0xNjAsMTAgKzE2MiwxMSBAQCBzdGF0aWMg
dm9pZCB1cGRhdGVUYXNrV2l0aEZpcnN0UGFydHlGb3JTYW1lU2l0ZUNvb2tpZXMoTlNVUkxTZXNz
aW9uRGF0YVRhc2sqIHRhcwogI2VuZGlmCiB9CiAKLU5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3
b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNr
Q2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdp
dGhDcmVkZW50aWFscywgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFs
c1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlm
ZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVu
Y29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zv
ck1haW5GcmFtZU5hdmlnYXRpb24sIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5l
dHdvcmtBY3Rpdml0eVRyYWNrZXIpCitOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFU
YXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYg
Y2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVu
dGlhbHMsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ks
IFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNv
cmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNv
bm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJh
bWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9y
QW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0
eVRyYWNrZXIpCiAgICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0
V2l0aENyZWRlbnRpYWxzLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRp
b24pCiAgICAgLCBtX2ZyYW1lSUQoZnJhbWVJRCkKICAgICAsIG1fcGFnZUlEKHBhZ2VJRCkKKyAg
ICAsIG1faXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUoZGF0YVRhc2tJc0Zv
ck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSkKIHsKICAgICBpZiAobV9zY2hlZHVs
ZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAgICAgIHJldHVybjsKQEAgLTQ4OSw2ICs0
OTIsMzYgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6cmVzdW1lKCkKIHsKICAgICBpZiAo
bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAgICAgIG1fZmFpbHVyZVRp
bWVyLnN0YXJ0T25lU2hvdCgwX3MpOworCisgICAgYXV0byYgY29jb2FTZXNzaW9uID0gc3RhdGlj
X2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2NvYSY+KG1fc2Vzc2lvbi5nZXQoKSk7CisgICAgaWYgKGNv
Y29hU2Vzc2lvbi5kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCgpICYmIG1faXNG
b3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUpIHsKKyAgICAgICAgYXV0byBkaWRE
ZXRlcm1pbmVEZXZpY2VSZXN0cmljdGlvblBvbGljeUZvclVSTCA9IG1ha2VCbG9ja1B0cihbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShCT09MIGlzQmxvY2tlZCkgeworICAg
ICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCBpc0Jsb2NrZWRdIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNCbG9ja2VkKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlRmFpbHVyZShSZXN0cmljdGVkVVJMRmFpbHVyZSk7
CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICAgICBbbV90YXNrIHJlc3VtZV07CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7
CisKKyNpZiBIQVZFKERFVklDRV9NQU5BR0VNRU5UKQorICAgICAgICBpZiAoY29jb2FTZXNzaW9u
LmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rpbmco
KSkKKyAgICAgICAgICAgIGRpZERldGVybWluZURldmljZVJlc3RyaWN0aW9uUG9saWN5Rm9yVVJM
KHRydWUpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFJldGFpblB0cjxOU1VSTD4gdXJs
VG9DaGVjayA9IFttX3Rhc2sgY3VycmVudFJlcXVlc3RdLlVSTDsKKyAgICAgICAgICAgIFtjb2Nv
YVNlc3Npb24uZGV2aWNlTWFuYWdlbWVudFBvbGljeU1vbml0b3IoKSByZXF1ZXN0UG9saWNpZXNG
b3JXZWJzaXRlczpAWyB1cmxUb0NoZWNrLmdldCgpIF0gY29tcGxldGlvbkhhbmRsZXI6bWFrZUJs
b2NrUHRyKFtkaWREZXRlcm1pbmVEZXZpY2VSZXN0cmljdGlvblBvbGljeUZvclVSTCwgdXJsVG9D
aGVja10gKE5TRGljdGlvbmFyeTxOU1VSTCAqLCBOU051bWJlciAqPiAqcG9saWNpZXMsIE5TRXJy
b3IgKmVycm9yKSB7CisgICAgICAgICAgICAgICAgYm9vbCBpc0Jsb2NrZWQgPSBlcnJvciB8fCBw
b2xpY2llc1t1cmxUb0NoZWNrLmdldCgpXS5pbnRlZ2VyVmFsdWUgIT0gRE1GUG9saWN5T0s7Cisg
ICAgICAgICAgICAgICAgZGlkRGV0ZXJtaW5lRGV2aWNlUmVzdHJpY3Rpb25Qb2xpY3lGb3JVUkwo
aXNCbG9ja2VkKTsKKyAgICAgICAgICAgIH0pLmdldCgpXTsKKyAgICAgICAgfQorI2Vsc2UKKyAg
ICAgICAgZGlkRGV0ZXJtaW5lRGV2aWNlUmVzdHJpY3Rpb25Qb2xpY3lGb3JVUkwoY29jb2FTZXNz
aW9uLmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rp
bmcoKSk7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIFttX3Rhc2sgcmVz
dW1lXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaAppbmRleCAzZDFhNDlmMjczMjVmNDk2NzU0MTI1NDAw
NTdlZjExMDY2MjE0MGIyLi4yYzMxZDg3ODQ5OWJjZWNhMTkxMTJhZjNhNjFhNjY5N2IwYTIyOTJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAor
T0JKQ19DTEFTUyBETUZXZWJzaXRlUG9saWN5TW9uaXRvcjsKIE9CSkNfQ0xBU1MgTlNEYXRhOwog
T0JKQ19DTEFTUyBOU1VSTFNlc3Npb247CiBPQkpDX0NMQVNTIE5TVVJMU2Vzc2lvbkRvd25sb2Fk
VGFzazsKQEAgLTY5LDYgKzcwLDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29udGludWVEaWRS
ZWNlaXZlQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwg
TmV0d29ya0RhdGFUYXNrQ29jb2E6OlRhc2tJZGVudGlmaWVyLCBOZXR3b3JrRGF0YVRhc2tDb2Nv
YSosIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViS2l0OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZURpc3Bvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJik+JiYpOwogCisgICAgYm9v
bCBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQ7IH0KKyAgICBib29sIGFsbExvYWRz
QmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoKSBjb25zdCB7
IHJldHVybiBtX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0Zv
clRlc3Rpbmc7IH0KKyAgICBETUZXZWJzaXRlUG9saWN5TW9uaXRvciAqZGV2aWNlTWFuYWdlbWVu
dFBvbGljeU1vbml0b3IoKTsKKwogcHJpdmF0ZToKICAgICBOZXR3b3JrU2Vzc2lvbkNvY29hKE5l
dHdvcmtQcm9jZXNzJiwgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmJik7CiAKQEAg
LTkzLDYgKzk4LDkgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9zb3VyY2VBcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXI7CiAgICAgU3RyaW5nIG1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJ
ZGVudGlmaWVyOwogICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IG1fcHJveHlDb25maWd1
cmF0aW9uOworICAgIFJldGFpblB0cjxETUZXZWJzaXRlUG9saWN5TW9uaXRvcj4gbV9kZXZpY2VN
YW5hZ2VtZW50UG9saWN5TW9uaXRvcjsKKyAgICBib29sIG1fZGV2aWNlTWFuYWdlbWVudFJlc3Ry
aWN0aW9uc0VuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9hbGxMb2Fkc0Jsb2NrZWRCeURl
dmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nIHsgZmFsc2UgfTsKICAgICBib29s
IG1fc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24geyBmYWxzZSB9OwogICAgIFNlY29uZHMgbV9s
b2FkVGhyb3R0bGVMYXRlbmN5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQppbmRleCBjNGNhMzkxZGY3
ZWI4MTlhNjg2ZGJiY2YwMWZiY2Q2NDdjZWU3MWRiLi45ZjhjZjBlYzIxOGZhOWJkY2I3MjFiZDJj
NjU5YjVmMDRhZTJhZDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCkBAIC01MSw2ICs1MSw3IEBACiAj
aW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9PYmpDUnVudGltZUV4
dHJhcy5oPgogI2ltcG9ydCA8d3RmL1Byb2Nlc3NQcml2aWxlZ2UuaD4KKyNpbXBvcnQgPHd0Zi9T
b2Z0TGlua2luZy5oPgogI2ltcG9ydCA8d3RmL1VSTC5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKQEAgLTU4LDYgKzU5LDggQEAKICNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMv
TmV0d29ya1Nlc3Npb25Db2NvYUFkZGl0aW9ucy5oPgogI2VuZGlmCiAKKyNpbXBvcnQgIkRldmlj
ZU1hbmFnZW1lbnRTb2Z0TGluay5oIgorCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBDRlN0
cmluZ1JlZiBjb25zdCBXZWJLaXQySFRUUFByb3h5RGVmYXVsdHNLZXkgPSBzdGF0aWNfY2FzdDxD
RlN0cmluZ1JlZj4oQCJXZWJLaXQySFRUUFByb3h5Iik7CkBAIC03MTMsNyArNzE2LDcgQEAgLSAo
dm9pZClVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilzZXNzaW9uIGRhdGFUYXNrOihOU1VSTFNl
c3Npb25EYXRhVGFzayAqKWRhdGEKICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsK
ICAgICAgICAgCiAgICAgICAgIC8vIEF2b2lkIE1JTUUgdHlwZSBzbmlmZmluZyBpZiB0aGUgcmVz
cG9uc2UgY29tZXMgYmFjayBhcyAzMDQgTm90IE1vZGlmaWVkLgotICAgICAgICBpbnQgc3RhdHVz
Q29kZSA9IFtyZXNwb25zZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHN0YXR1c0NvZGUp
XSA/IFsoaWQpcmVzcG9uc2Ugc3RhdHVzQ29kZV0gOiAwOworICAgICAgICBpbnQgc3RhdHVzQ29k
ZSA9IFtyZXNwb25zZSBpc0tpbmRPZkNsYXNzOk5TSFRUUFVSTFJlc3BvbnNlLmNsYXNzXSA/IFso
TlNIVFRQVVJMUmVzcG9uc2UgKilyZXNwb25zZSBzdGF0dXNDb2RlXSA6IDA7CiAgICAgICAgIGlm
IChzdGF0dXNDb2RlICE9IDMwNCkgewogICAgICAgICAgICAgYm9vbCBpc01haW5SZXNvdXJjZUxv
YWQgPSBuZXR3b3JrRGF0YVRhc2stPmZpcnN0UmVxdWVzdCgpLnJlcXVlc3RlcigpID09IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpNYWluOwogICAgICAgICAgICAgV2ViQ29y
ZTo6YWRqdXN0TUlNRVR5cGVJZk5lY2Vzc2FyeShyZXNwb25zZS5fQ0ZVUkxSZXNwb25zZSwgaXNN
YWluUmVzb3VyY2VMb2FkKTsKQEAgLTk4MSw2ICs5ODQsOSBAQCBOZXR3b3JrU2Vzc2lvbkNvY29h
OjpOZXR3b3JrU2Vzc2lvbkNvY29hKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0
d29yawogICAgIG1fc3RhdGVsZXNzU2Vzc2lvbkRlbGVnYXRlID0gYWRvcHROUyhbW1dLTmV0d29y
a1Nlc3Npb25EZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhOZXR3b3JrU2Vzc2lvbjoqdGhpcyB3aXRo
Q3JlZGVudGlhbHM6ZmFsc2VdKTsKICAgICBtX3N0YXRlbGVzc1Nlc3Npb24gPSBbTlNVUkxTZXNz
aW9uIHNlc3Npb25XaXRoQ29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uIGRlbGVnYXRlOnN0YXRp
Y19jYXN0PGlkPihtX3N0YXRlbGVzc1Nlc3Npb25EZWxlZ2F0ZS5nZXQoKSkgZGVsZWdhdGVRdWV1
ZTpbTlNPcGVyYXRpb25RdWV1ZSBtYWluUXVldWVdXTsKIAorICAgIG1fZGV2aWNlTWFuYWdlbWVu
dFJlc3RyaWN0aW9uc0VuYWJsZWQgPSBwYXJhbWV0ZXJzLmRldmljZU1hbmFnZW1lbnRSZXN0cmlj
dGlvbnNFbmFibGVkOworICAgIG1fYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVz
dHJpY3Rpb25zRm9yVGVzdGluZyA9IHBhcmFtZXRlcnMuYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzsKKwogI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCiAgICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0g
cGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OwogICAgIG1fc2hvdWxk
SW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHBhcmFtZXRlcnMuc2hv
dWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcyA/IFNob3VsZEluY2x1
ZGVMb2NhbGhvc3Q6OlllcyA6IFNob3VsZEluY2x1ZGVMb2NhbGhvc3Q6Ok5vOwpAQCAtMTE2Nyw0
ICsxMTczLDE3IEBAIHZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6Y29udGludWVEaWRSZWNlaXZl
Q2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0CiAgICAgbmV0d29ya0RhdGFUYXNr
LT5kaWRSZWNlaXZlQ2hhbGxlbmdlKFdURk1vdmUoYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpLCBX
VEZNb3ZlKGNoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK0RNRldlYnNpdGVQb2xp
Y3lNb25pdG9yICpOZXR3b3JrU2Vzc2lvbkNvY29hOjpkZXZpY2VNYW5hZ2VtZW50UG9saWN5TW9u
aXRvcigpCit7CisjaWYgSEFWRShERVZJQ0VfTUFOQUdFTUVOVCkKKyAgICBBU1NFUlQobV9kZXZp
Y2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCk7CisgICAgaWYgKCFtX2RldmljZU1hbmFn
ZW1lbnRQb2xpY3lNb25pdG9yKQorICAgICAgICBtX2RldmljZU1hbmFnZW1lbnRQb2xpY3lNb25p
dG9yID0gYWRvcHROUyhbYWxsb2NETUZXZWJzaXRlUG9saWN5TW9uaXRvckluc3RhbmNlKCkgaW5p
dFdpdGhQb2xpY3lDaGFuZ2VIYW5kbGVyOm5pbF0pOworICAgIHJldHVybiBtX2RldmljZU1hbmFn
ZW1lbnRQb2xpY3lNb25pdG9yLmdldCgpOworI2Vsc2UKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgIHJldHVybiBuaWw7CisjZW5kaWYKK30KKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvRGV2aWNlTWFuYWdlbWVudFNQSS5oIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvRGV2aWNlTWFuYWdlbWVudFNQSS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmExY2ZkNWI1ZTVlOTAxMTc3MDZhNzg1ODE1MmM4OWMyYjM1NDVkMTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9EZXZpY2VNYW5h
Z2VtZW50U1BJLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgSEFWRShERVZJQ0VfTUFOQUdFTUVOVCkKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCisKKyNpbXBvcnQgPERldmljZU1hbmFnZW1lbnQvRGV2aWNlTWFuYWdlbWVudC5oPgorCisj
ZWxzZQorCitAaW50ZXJmYWNlIERNRldlYnNpdGVQb2xpY3lNb25pdG9yIDogTlNPYmplY3QKKwor
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUG9saWN5Q2hhbmdlSGFuZGxlcjoodm9pZCheKSh2b2lk
KSljaGFuZ2VIYW5kbGVyOworLSAodm9pZClyZXF1ZXN0UG9saWNpZXNGb3JXZWJzaXRlczooTlNB
cnJheTxOU1VSTCAqPiAqKXdlYnNpdGVVUkxzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShO
U0RpY3Rpb25hcnk8TlNVUkwgKiwgTlNOdW1iZXIgKj4gKnBvbGljaWVzLCBOU0Vycm9yICplcnJv
cikpY29tcGxldGlvbkhhbmRsZXI7CisKK0BlbmQKKwordHlwZWRlZiBOU19FTlVNKE5TSW50ZWdl
ciwgRE1GUG9saWN5KSB7CisgICAgRE1GUG9saWN5T0sgPSAwLAorICAgIERNRlBvbGljeUJsb2Nr
ZWQgPSA0LAorfTsKKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNlbmRp
ZiAvLyBIQVZFKERFVklDRV9NQU5BR0VNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9S
ZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcu
c2IgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBs
ZS5XZWJLaXQuTmV0d29ya2luZy5zYgppbmRleCBkYTYwYjFiYmZlMmM5NjBjMGFiODhlMzJiODJh
MDJkNTcwMDcwNTJhLi44MDcxNmVjNjQzNDhiZmI0NDhlZGU2NzYyZDRjMGRkOWMxOWNkZjdmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2Nv
bS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYgorKysgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNl
cy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYgpAQCAt
ODIsNiArODIsMTEgQEAKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5wYXNzZC5pbi1hcHAt
cGF5bWVudCIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUucGFzc2QubGlicmFyeSIpKQog
CisoYWxsb3cgbWFjaC1sb29rdXAKKyAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5kbWQucG9s
aWN5IikKKyAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5zaXJpLmNvbnRleHQuc2VydmljZSIp
CisgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY3RjYXRlZ29yaWVzLnNlcnZpY2UiKSkKKwog
KGRlbnkgZmlsZS13cml0ZS1jcmVhdGUKICAgICAgICAodm5vZGUtdHlwZSBTWU1MSU5LKSkKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUVycm9yLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvQVBJRXJyb3IuaAppbmRleCA0NDJkNjc2ZWQyNzQ5OWYwZjJhMmJk
NGNkNTQ3MmQ3NDEzOWRkM2RkLi44NzM2N2NkMjQzMTU4ZjEwN2RjYzNiMDNhYjJhODA2Yjc5ZDBk
MDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRXJyb3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRXJyb3IuaApAQCAtNjUsNyArNjUsOCBAQCBw
dWJsaWM6CiAgICAgICAgIEZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgPSAxMDIs
CiAgICAgICAgIENhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0ID0gMTAzLAogICAgICAgICBGcmFtZUxv
YWRCbG9ja2VkQnlDb250ZW50QmxvY2tlciA9IDEwNCwKLSAgICAgICAgRnJhbWVMb2FkQmxvY2tl
ZEJ5Q29udGVudEZpbHRlciA9IDEwNQorICAgICAgICBGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50
RmlsdGVyID0gMTA1LAorICAgICAgICBGcmFtZUxvYWRCbG9ja2VkQnlSZXN0cmljdGlvbnMgPSAx
MDYsCiAgICAgfTsKICAgICBzdGF0aWMgY29uc3QgV1RGOjpTdHJpbmcmIHdlYktpdFBvbGljeUVy
cm9yRG9tYWluKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dL
RXJyb3JSZWYuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tFcnJvclJlZi5jcHAK
aW5kZXggNDc5M2E1N2ZkMmYxNTRmZWM3MWQ5ODRiNzhmYjQ4YWQ4NDkyOTEyZS4uZTZjZTZkOTRh
MTM3ODI2OTA4OTZlYzdiMzA3MjIzNDAwYjNmZTM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL2MvV0tFcnJvclJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL2MvV0tFcnJvclJlZi5jcHAKQEAgLTU4LDYgKzU4LDggQEAgaW50IFdLRXJyb3JHZXRFcnJv
ckNvZGUoV0tFcnJvclJlZiBlcnJvclJlZikKICAgICAgICAgcmV0dXJuIGtXS0Vycm9yQ29kZUNh
bm5vdFVzZVJlc3RyaWN0ZWRQb3J0OwogICAgIGNhc2UgQVBJOjpFcnJvcjo6UG9saWN5OjpGcmFt
ZUxvYWRCbG9ja2VkQnlDb250ZW50QmxvY2tlcjoKICAgICAgICAgcmV0dXJuIGtXS0Vycm9yQ29k
ZUZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyOworICAgIGNhc2UgQVBJOjpFcnJvcjo6
UG9saWN5OjpGcmFtZUxvYWRCbG9ja2VkQnlSZXN0cmljdGlvbnM6CisgICAgICAgIHJldHVybiBr
V0tFcnJvckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlSZXN0cmljdGlvbnM7CiAgICAgY2FzZSBBUEk6
OkVycm9yOjpQb2xpY3k6OkZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRGaWx0ZXI6CiAgICAgICAg
IHJldHVybiBrV0tFcnJvckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50RmlsdGVyOwogICAg
IGNhc2UgQVBJOjpFcnJvcjo6UGx1Z2luOjpDYW5ub3RGaW5kUGx1Z0luOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tFcnJvclJlZi5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL2MvV0tFcnJvclJlZi5oCmluZGV4IDBkNzYzODRkMzQ0YTAxMDVhNzc4YTVlNWQ3
Yjc4ZmM0NjgzMDM2OGQuLmU5OTBjNDQyOWQ0NzIxNjkzODUwYTkwNTc3OWNmODZjNDE2N2JjZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Vycm9yUmVmLmgKQEAgLTM5LDYgKzM5LDcg
QEAgZW51bSB7CiAgICAga1dLRXJyb3JDb2RlQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQgPSAgICAg
ICAgICAgICAgICAgICAgICAgIDEwMywKICAgICBrV0tFcnJvckNvZGVGcmFtZUxvYWRCbG9ja2Vk
QnlDb250ZW50QmxvY2tlciA9ICAgICAgICAgICAgICAgMTA0LAogICAgIGtXS0Vycm9yQ29kZUZy
YW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRGaWx0ZXIgPSAgICAgICAgICAgICAgICAxMDUsCisgICAg
a1dLRXJyb3JDb2RlRnJhbWVMb2FkQmxvY2tlZEJ5UmVzdHJpY3Rpb25zID0gICAgICAgICAgICAg
ICAgIDEwNiwKICAgICBrV0tFcnJvckNvZGVDYW5ub3RGaW5kUGx1Z0luID0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMjAwLAogICAgIGtXS0Vycm9yQ29kZUNhbm5vdExvYWRQbHVnSW4g
PSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMDEsCiAgICAga1dLRXJyb3JDb2RlSmF2
YVVuYXZhaWxhYmxlID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMiwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkVycm9ycy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJFcnJvcnMuY3BwCmluZGV4IGI2ZGM1MGNlYjU1Y2FmNjViYmUxOWFmNmUzMjdk
NTEyMDA5YTNmYTguLjZjZmEyNWM2NmFkZDE3YWQ3YjMxNGVlYWI3NWVmYjQxY2U3YzUyNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkVycm9ycy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViRXJyb3JzLmNwcApAQCAtNTIsNiArNTIsMTEgQEAgUmVzb3VyY2VF
cnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQog
ICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdFBvbGljeUVycm9yRG9t
YWluKCksIEFQSTo6RXJyb3I6OlBvbGljeTo6Q2Fubm90U2hvd1VSTCwgcmVxdWVzdC51cmwoKSwg
V0VCX1VJX1NUUklORygiVGhlIFVSTCBjYW7igJl0IGJlIHNob3duIiwgIldlYktpdEVycm9yQ2Fu
bm90U2hvd1VSTCBkZXNjcmlwdGlvbiIpKTsKIH0KIAorUmVzb3VyY2VFcnJvciB3YXNCbG9ja2Vk
QnlSZXN0cmljdGlvbnNFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7Cisg
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0UG9saWN5RXJyb3JEb21h
aW4oKSwgQVBJOjpFcnJvcjo6UG9saWN5OjpGcmFtZUxvYWRCbG9ja2VkQnlSZXN0cmljdGlvbnMs
IHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwgd2FzIGJsb2NrZWQgYnkgZGV2
aWNlIHJlc3RyaWN0aW9ucyIsICJXZWJLaXRFcnJvckZyYW1lTG9hZEJsb2NrZWRCeVJlc3RyaWN0
aW9ucyBkZXNjcmlwdGlvbiIpKTsKK30KKwogUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBv
bGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBy
ZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRQb2xpY3lFcnJvckRvbWFpbigp
LCBBUEk6OkVycm9yOjpQb2xpY3k6OkZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2Us
IHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIkZyYW1lIGxvYWQgaW50ZXJydXB0ZWQiLCAi
V2ViS2l0RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIGRlc2NyaXB0aW9u
IikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXJyb3JzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJFcnJvcnMuaAppbmRleCA3ZDYwMGM2ZDIzYjU1ZGNjMzk2MzA5
OTA0MDdjZTc0NDQ0NmNiNDg2Li45ZjBhMDAyYjZjYjFhNjE1MmExZDg4MzdhZWE5YjRjMmY4YTJh
YjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFcnJvcnMuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFcnJvcnMuaApAQCAtMzksNiArMzksNyBAQCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYpOwogV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNv
bnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmKTsKK1dlYkNvcmU6OlJlc291cmNlRXJyb3Igd2FzQmxvY2tlZEJ5UmVzdHJp
Y3Rpb25zRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGZhaWxlZEN1c3Rv
bVByb3RvY29sU3luY0xvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAjaWYg
RU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGY3NGIyYzVkYjk3ZjEyZDgyNTA2
MjA2ZTc4OTZlY2JiMjk2MGRmNWYuLjk0OTk3NDAyNDgwMGZiMjM3ZjUzY2FmOGRmOGRjMWIyYTY5
OGM3NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRl
RGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0
ZURhdGFTdG9yZS5jcHAKQEAgLTE0NSw2ICsxNDUsOCBAQCBSZWY8V2ViS2l0OjpXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbj4gV2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZUNv
bgogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb246OmNyZWF0ZSgpOwogCisgICAgY29uZmlndXJhdGlvbi0+c2V0UGVyc2lzdGVu
dCh0cnVlKTsKKwogICAgIGNvbmZpZ3VyYXRpb24tPnNldEFwcGxpY2F0aW9uQ2FjaGVEaXJlY3Rv
cnkoZGVmYXVsdEFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoKSk7CiAgICAgY29uZmlndXJhdGlv
bi0+c2V0QXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSgiRmlsZXMiKTsK
ICAgICBjb25maWd1cmF0aW9uLT5zZXRDYWNoZVN0b3JhZ2VEaXJlY3RvcnkoZGVmYXVsdENhY2hl
U3RvcmFnZURpcmVjdG9yeSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KaW5kZXggMTY4OGEwYWNhODE5NjA0NGU2NmYyZTE0NzUx
MzZkYTY4NWEwNzRiNi4uYjBhYzc2YmVmMTIyOWQwYjNmMDdmZTg2Zjk3MWFiMzFjNjA0NjFiOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bv
b2wubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bv
b2wubW0KQEAgLTU4NCw3ICs1ODQsNyBAQCAtICh2b2lkKV9zeW50aGVzaXplQXBwSXNCYWNrZ3Jv
dW5kOihCT09MKWJhY2tncm91bmQKICAgICBfcHJvY2Vzc1Bvb2wtPnN5bnRoZXNpemVBcHBJc0Jh
Y2tncm91bmQoYmFja2dyb3VuZCk7CiB9CiAKLS0gKHZvaWQpX3NldEFsbG93c0FueVNTTENlcnRp
ZmljYXRlRm9yU2VydmljZVdvcmtlcjooQk9PTCkgYWxsb3dzCistICh2b2lkKV9zZXRBbGxvd3NB
bnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXI6KEJPT0wpYWxsb3dzCiB7CiAjaWYgRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIF9wcm9jZXNzUG9vbC0+c2V0QWxsb3dzQW55U1NMQ2Vy
dGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyKGFsbG93cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQppbmRleCAyNjI5
OGViY2VjNTc3NGUzNDA2NjFlYTlmYjFhNGIyOGVhNTBhMzQzLi4zZGIyNmMxZDk4ODgyOGQ2MjEy
YmVmYmJhNDg1MDkwZDcwMTQ3ODYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTIyOSwyMiArMjI5LDM1
IEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhDb25maWd1cmF0aW9uOihfV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbiAqKWNvbmZpCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0
XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBhdXRvIGNvbmZpZyA9IEFQSTo6V2Vic2l0
ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZUNvbmZpZ3VyYXRpb24oKTsKLQotICAgIGlmIChj
b25maWd1cmF0aW9uLl93ZWJTdG9yYWdlRGlyZWN0b3J5KQotICAgICAgICBjb25maWctPnNldExv
Y2FsU3RvcmFnZURpcmVjdG9yeShjb25maWd1cmF0aW9uLl93ZWJTdG9yYWdlRGlyZWN0b3J5LnBh
dGgpOwotICAgIGlmIChjb25maWd1cmF0aW9uLl93ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSkKLSAg
ICAgICAgY29uZmlnLT5zZXRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeShjb25maWd1cmF0aW9uLl93
ZWJTUUxEYXRhYmFzZURpcmVjdG9yeS5wYXRoKTsKLSAgICBpZiAoY29uZmlndXJhdGlvbi5faW5k
ZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkpCi0gICAgICAgIGNvbmZpZy0+c2V0SW5kZXhlZERCRGF0
YWJhc2VEaXJlY3RvcnkoY29uZmlndXJhdGlvbi5faW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rvcnku
cGF0aCk7Ci0gICAgaWYgKGNvbmZpZ3VyYXRpb24uX2Nvb2tpZVN0b3JhZ2VGaWxlKQotICAgICAg
ICBjb25maWctPnNldENvb2tpZVN0b3JhZ2VGaWxlKGNvbmZpZ3VyYXRpb24uX2Nvb2tpZVN0b3Jh
Z2VGaWxlLnBhdGgpOwotICAgIGlmIChjb25maWd1cmF0aW9uLl9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGlyZWN0b3J5KQotICAgICAgICBjb25maWctPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
aXJlY3RvcnkoY29uZmlndXJhdGlvbi5fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeS5w
YXRoKTsKLSAgICBpZiAoY29uZmlndXJhdGlvbi5fY2FjaGVTdG9yYWdlRGlyZWN0b3J5KQotICAg
ICAgICBjb25maWctPnNldENhY2hlU3RvcmFnZURpcmVjdG9yeShjb25maWd1cmF0aW9uLl9jYWNo
ZVN0b3JhZ2VEaXJlY3RvcnkucGF0aCk7Ci0gICAgaWYgKGNvbmZpZ3VyYXRpb24uX3NlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkpCi0gICAgICAgIGNvbmZpZy0+c2V0U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeShjb25maWd1cmF0aW9uLl9zZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGlyZWN0b3J5LnBhdGgpOworICAgIGF1dG8gY29uZmlnID0gY29uZmlndXJhdGlv
bi5pc1BlcnNpc3RlbnQgPyBBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHREYXRhU3RvcmVD
b25maWd1cmF0aW9uKCkgOiBXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpj
cmVhdGUoKTsKKworICAgIFJFTEVBU0VfQVNTRVJUKGNvbmZpZy0+aXNQZXJzaXN0ZW50KCkgPT0g
Y29uZmlndXJhdGlvbi5pc1BlcnNpc3RlbnQpOworCisgICAgaWYgKGNvbmZpZ3VyYXRpb24uaXNQ
ZXJzaXN0ZW50KSB7CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uLl93ZWJTdG9yYWdlRGlyZWN0
b3J5KQorICAgICAgICAgICAgY29uZmlnLT5zZXRMb2NhbFN0b3JhZ2VEaXJlY3RvcnkoY29uZmln
dXJhdGlvbi5fd2ViU3RvcmFnZURpcmVjdG9yeS5wYXRoKTsKKyAgICAgICAgaWYgKGNvbmZpZ3Vy
YXRpb24uX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5KQorICAgICAgICAgICAgY29uZmlnLT5zZXRX
ZWJTUUxEYXRhYmFzZURpcmVjdG9yeShjb25maWd1cmF0aW9uLl93ZWJTUUxEYXRhYmFzZURpcmVj
dG9yeS5wYXRoKTsKKyAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24uX2luZGV4ZWREQkRhdGFiYXNl
RGlyZWN0b3J5KQorICAgICAgICAgICAgY29uZmlnLT5zZXRJbmRleGVkREJEYXRhYmFzZURpcmVj
dG9yeShjb25maWd1cmF0aW9uLl9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeS5wYXRoKTsKKyAg
ICAgICAgaWYgKGNvbmZpZ3VyYXRpb24uX2Nvb2tpZVN0b3JhZ2VGaWxlKQorICAgICAgICAgICAg
Y29uZmlnLT5zZXRDb29raWVTdG9yYWdlRmlsZShjb25maWd1cmF0aW9uLl9jb29raWVTdG9yYWdl
RmlsZS5wYXRoKTsKKyAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24uX3Jlc291cmNlTG9hZFN0YXRp
c3RpY3NEaXJlY3RvcnkpCisgICAgICAgICAgICBjb25maWctPnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEaXJlY3RvcnkoY29uZmlndXJhdGlvbi5fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVj
dG9yeS5wYXRoKTsKKyAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24uX2NhY2hlU3RvcmFnZURpcmVj
dG9yeSkKKyAgICAgICAgICAgIGNvbmZpZy0+c2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5KGNvbmZp
Z3VyYXRpb24uX2NhY2hlU3RvcmFnZURpcmVjdG9yeS5wYXRoKTsKKyAgICAgICAgaWYgKGNvbmZp
Z3VyYXRpb24uX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkpCisgICAgICAgICAg
ICBjb25maWctPnNldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoY29uZmlndXJh
dGlvbi5fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeS5wYXRoKTsKKyAgICB9IGVs
c2UgeworICAgICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5fd2ViU3RvcmFnZURp
cmVjdG9yeSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFjb25maWd1cmF0aW9uLl93ZWJTUUxE
YXRhYmFzZURpcmVjdG9yeSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFjb25maWd1cmF0aW9u
Ll9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFj
b25maWd1cmF0aW9uLl9jb29raWVTdG9yYWdlRmlsZSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJU
KCFjb25maWd1cmF0aW9uLl9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KTsKKyAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoIWNvbmZpZ3VyYXRpb24uX2NhY2hlU3RvcmFnZURpcmVjdG9yeSk7
CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFjb25maWd1cmF0aW9uLl9zZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGlyZWN0b3J5KTsKKyAgICB9CisKICAgICBpZiAoY29uZmlndXJhdGlvbi5zb3Vy
Y2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpCiAgICAgICAgIGNvbmZpZy0+c2V0U291cmNl
QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKGNvbmZpZ3VyYXRpb24uc291cmNlQXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyKTsKICAgICBpZiAoY29uZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNh
dGlvblNlY29uZGFyeUlkZW50aWZpZXIpCkBAIC0yNTMsOCArMjY2LDEyIEBAIC0gKGluc3RhbmNl
dHlwZSlfaW5pdFdpdGhDb25maWd1cmF0aW9uOihfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbiAqKWNvbmZpCiAgICAgICAgIGNvbmZpZy0+c2V0SFRUUFByb3h5KGNvbmZpZ3VyYXRpb24u
aHR0cFByb3h5KTsKICAgICBpZiAoY29uZmlndXJhdGlvbi5odHRwc1Byb3h5KQogICAgICAgICBj
b25maWctPnNldEhUVFBTUHJveHkoY29uZmlndXJhdGlvbi5odHRwc1Byb3h5KTsKKyAgICBjb25m
aWctPnNldERldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKGNvbmZpZ3VyYXRpb24u
ZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQpOworICAgIGNvbmZpZy0+c2V0QWxs
TG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyhjb25m
aWd1cmF0aW9uLmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0Zv
clRlc3RpbmcpOworCisgICAgYXV0byBzZXNzaW9uSUQgPSBjb25maWd1cmF0aW9uLmlzUGVyc2lz
dGVudCA/IFBBTDo6U2Vzc2lvbklEOjpnZW5lcmF0ZVBlcnNpc3RlbnRTZXNzaW9uSUQoKSA6IFBB
TDo6U2Vzc2lvbklEOjpnZW5lcmF0ZUVwaGVtZXJhbFNlc3Npb25JRCgpOwogCi0gICAgQVBJOjpP
YmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OldlYnNpdGVEYXRhU3RvcmU+KHNlbGYsIFdU
Rk1vdmUoY29uZmlnKSwgUEFMOjpTZXNzaW9uSUQ6OmdlbmVyYXRlUGVyc2lzdGVudFNlc3Npb25J
RCgpKTsKKyAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6V2Vic2l0ZURh
dGFTdG9yZT4oc2VsZiwgV1RGTW92ZShjb25maWcpLCBzZXNzaW9uSUQpOwogCiAgICAgcmV0dXJu
IHNlbGY7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCmluZGV4IDU5
Zjk4NGU0ODdhZGYzZjA0MmQ5NjczN2E5YjQ3ZGE3OWUyMmQzYjAuLjA2YTcwZWU2NGMyZDg3ODJl
YWYzM2EyNzk1YjFmODVjNzM3OTQwOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5oCkBAIC0zMiw2ICszMiwyMCBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogQGludGVyZmFjZSBfV0tX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiA6IE5TT2JqZWN0CiAKKy0gKGluc3RhbmNldHlw
ZSlpbml0OyAvLyBDcmVhdGVzIGEgcGVyc2lzdGVudCBjb25maWd1cmF0aW9uLgorLSAoaW5zdGFu
Y2V0eXBlKWluaXROb25QZXJzaXN0ZW50Q29uZmlndXJhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIGdldHRlcj1pc1BlcnNpc3RlbnQpIEJPT0wgcGVyc2lzdGVudCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCisvLyBUaGVz
ZSBwcm9wZXJ0aWVzIGFwcGx5IHRvIGJvdGggcGVyc2lzdGVudCBhbmQgbm9uLXBlcnNpc3RlbnQg
ZGF0YSBzdG9yZXMuCitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3Ry
aW5nICpzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJs
ZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChu
b25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFByb3h5OikgTlNVUkwgKmh0
dHBQcm94eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHBy
b3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFNQcm94eTop
IE5TVVJMICpodHRwc1Byb3h5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygx
Mi4yKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBkZXZpY2VNYW5hZ2VtZW50UmVzdHJp
Y3Rpb25zRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworCisvLyBUaGVzZSBwcm9wZXJ0aWVzIG9ubHkgbWFrZSBzZW5zZSBmb3IgcGVy
c2lzdGVudCBkYXRhIHN0b3JlcywgYW5kIHdpbGwgdGhyb3cKKy8vIGFuIGV4Y2VwdGlvbiBpZiBz
ZXQgZm9yIG5vbi1wZXJzaXN0ZW50IHN0b3Jlcy4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5
LCBzZXR0ZXI9X3NldFdlYlN0b3JhZ2VEaXJlY3Rvcnk6KSBOU1VSTCAqX3dlYlN0b3JhZ2VEaXJl
Y3Rvcnk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRJbmRleGVkREJE
YXRhYmFzZURpcmVjdG9yeTopIE5TVVJMICpfaW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rvcnk7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRXZWJTUUxEYXRhYmFzZURpcmVj
dG9yeTopIE5TVVJMICpfd2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk7CkBAIC0zOSwxMCArNTMsOSBA
QCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0
b3J5OikgTlNVUkwgKl9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
Y29weSwgc2V0dGVyPV9zZXRDYWNoZVN0b3JhZ2VEaXJlY3Rvcnk6KSBOU1VSTCAqX2NhY2hlU3Rv
cmFnZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykp
OwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0U2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRpcmVjdG9yeTopIE5TVVJMICpfc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRp
cmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwotQHBy
b3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNlQXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlv
cygxMi4yKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5n
ICpzb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJs
ZSwgY29weSwgc2V0dGVyPXNldEhUVFBQcm94eTopIE5TVVJMICpodHRwUHJveHkgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhUVFBTUHJveHk6KSBOU1VSTCAqaHR0cHNQcm94
eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworCisvLyBUZXN0
aW5nIG9ubHkuCitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxMb2Fkc0Jsb2NrZWRCeURl
dmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCmluZGV4IDJhMDUxMGVjODlmNWVhYjgxYzUzZjI3
ZTJlMGQwMDM2ZjYwYmEwMjkuLjI2N2EzZjU0YzI2NGQyZmE4Yjc1M2JlZjUxZDZkZWJmN2MzYTVi
MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KQEAgLTM2LDYg
KzM2LDMzIEBAIHN0YXRpYyB2b2lkIGNoZWNrVVJMQXJndW1lbnQoTlNVUkwgKnVybCkKIAogQGlt
cGxlbWVudGF0aW9uIF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uCiAKKy0gKGluc3Rh
bmNldHlwZSlpbml0Cit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoIXNlbGYp
CisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfY29uZmlndXJhdGlvbi0+c2V0UGVyc2lzdGVu
dCh0cnVlKTsKKworICAgIHJldHVybiBzZWxmOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdE5v
blBlcnNpc3RlbnRDb25maWd1cmF0aW9uCit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAg
ICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfY29uZmlndXJhdGlvbi0+
c2V0UGVyc2lzdGVudChmYWxzZSk7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAoQk9PTClp
c1BlcnNpc3RlbnQKK3sKKyAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPmlzUGVyc2lzdGVudCgp
OworfQorCiAtIChOU1VSTCAqKV93ZWJTdG9yYWdlRGlyZWN0b3J5CiB7CiAgICAgcmV0dXJuIFtO
U1VSTCBmaWxlVVJMV2l0aFBhdGg6X2NvbmZpZ3VyYXRpb24tPndlYlN0b3JhZ2VEaXJlY3Rvcnko
KSBpc0RpcmVjdG9yeTpZRVNdOwpAQCAtNDMsNiArNzAsOCBAQCAtIChOU1VSTCAqKV93ZWJTdG9y
YWdlRGlyZWN0b3J5CiAKIC0gKHZvaWQpX3NldFdlYlN0b3JhZ2VEaXJlY3Rvcnk6KE5TVVJMICop
dXJsCiB7CisgICAgaWYgKCFfY29uZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50KCkpCisgICAgICAg
IFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJD
YW5ub3Qgc2V0IF93ZWJTdG9yYWdlRGlyZWN0b3J5IG9uIGEgbm9uLXBlcnNpc3RlbnQgX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uIl07CiAgICAgY2hlY2tVUkxBcmd1bWVudCh1cmwp
OwogICAgIF9jb25maWd1cmF0aW9uLT5zZXRXZWJTdG9yYWdlRGlyZWN0b3J5KHVybC5wYXRoKTsK
IH0KQEAgLTU0LDYgKzgzLDggQEAgLSAoTlNVUkwgKilfaW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rv
cnkKIAogLSAodm9pZClfc2V0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rvcnk6KE5TVVJMICopdXJs
CiB7CisgICAgaWYgKCFfY29uZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50KCkpCisgICAgICAgIFtO
U0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJDYW5u
b3Qgc2V0IF9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSBvbiBhIG5vbi1wZXJzaXN0ZW50IF9X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLiJdOwogICAgIGNoZWNrVVJMQXJndW1lbnQo
dXJsKTsKICAgICBfY29uZmlndXJhdGlvbi0+c2V0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rvcnko
dXJsLnBhdGgpOwogfQpAQCAtNjUsNiArOTYsOCBAQCAtIChOU1VSTCAqKV93ZWJTUUxEYXRhYmFz
ZURpcmVjdG9yeQogCiAtICh2b2lkKV9zZXRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeTooTlNVUkwg
Kil1cmwKIHsKKyAgICBpZiAoIV9jb25maWd1cmF0aW9uLT5pc1BlcnNpc3RlbnQoKSkKKyAgICAg
ICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpA
IkNhbm5vdCBzZXQgX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5IG9uIGEgbm9uLXBlcnNpc3RlbnQg
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uIl07CiAgICAgY2hlY2tVUkxBcmd1bWVu
dCh1cmwpOwogICAgIF9jb25maWd1cmF0aW9uLT5zZXRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeSh1
cmwucGF0aCk7CiB9CkBAIC05Niw2ICsxMjksOCBAQCAtIChOU1VSTCAqKV9jb29raWVTdG9yYWdl
RmlsZQogCiAtICh2b2lkKV9zZXRDb29raWVTdG9yYWdlRmlsZTooTlNVUkwgKil1cmwKIHsKKyAg
ICBpZiAoIV9jb25maWd1cmF0aW9uLT5pc1BlcnNpc3RlbnQoKSkKKyAgICAgICAgW05TRXhjZXB0
aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIkNhbm5vdCBzZXQg
X2Nvb2tpZVN0b3JhZ2VGaWxlIG9uIGEgbm9uLXBlcnNpc3RlbnQgX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uIl07CiAgICAgY2hlY2tVUkxBcmd1bWVudCh1cmwpOwogICAgIGlmIChb
dXJsIGhhc0RpcmVjdG9yeVBhdGhdKQogICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZh
bGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiVGhlIGNvb2tpZSBzdG9yYWdlIHBhdGggbXVz
dCBwb2ludCB0byBhIGZpbGUsIG5vdCBhIGRpcmVjdG9yeS4iXTsKQEAgLTExMCw2ICsxNDUsOCBA
QCAtIChOU1VSTCAqKV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5CiAKIC0gKHZvaWQp
X3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk6KE5TVVJMICopdXJsCiB7CisgICAg
aWYgKCFfY29uZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50KCkpCisgICAgICAgIFtOU0V4Y2VwdGlv
biByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJDYW5ub3Qgc2V0IF9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5IG9uIGEgbm9uLXBlcnNpc3RlbnQgX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uIl07CiAgICAgY2hlY2tVUkxBcmd1bWVudCh1cmwp
OwogICAgIF9jb25maWd1cmF0aW9uLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
KHVybC5wYXRoKTsKIH0KQEAgLTEyMSw2ICsxNTgsOCBAQCAtIChOU1VSTCAqKV9jYWNoZVN0b3Jh
Z2VEaXJlY3RvcnkKIAogLSAodm9pZClfc2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5OihOU1VSTCAq
KXVybAogeworICAgIGlmICghX2NvbmZpZ3VyYXRpb24tPmlzUGVyc2lzdGVudCgpKQorICAgICAg
ICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAi
Q2Fubm90IHNldCBfY2FjaGVTdG9yYWdlRGlyZWN0b3J5IG9uIGEgbm9uLXBlcnNpc3RlbnQgX1dL
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uIl07CiAgICAgY2hlY2tVUkxBcmd1bWVudCh1
cmwpOwogICAgIF9jb25maWd1cmF0aW9uLT5zZXRDYWNoZVN0b3JhZ2VEaXJlY3RvcnkodXJsLnBh
dGgpOwogfQpAQCAtMTMyLDYgKzE3MSw4IEBAIC0gKE5TVVJMICopX3NlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25EaXJlY3RvcnkKIAogLSAodm9pZClfc2V0U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkRpcmVjdG9yeTooTlNVUkwgKil1cmwKIHsKKyAgICBpZiAoIV9jb25maWd1cmF0aW9uLT5pc1Bl
cnNpc3RlbnQoKSkKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50
RXhjZXB0aW9uIGZvcm1hdDpAIkNhbm5vdCBzZXQgX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
aXJlY3Rvcnkgb24gYSBub24tcGVyc2lzdGVudCBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi4iXTsKICAgICBjaGVja1VSTEFyZ3VtZW50KHVybCk7CiAgICAgX2NvbmZpZ3VyYXRpb24t
PnNldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkodXJsLnBhdGgpOwogfQpAQCAt
MTU2LDYgKzE5NywyNiBAQCAtICh2b2lkKXNldFNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRl
bnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyCiAgICAgX2NvbmZpZ3VyYXRpb24tPnNldFNv
dXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTsKIH0KIAorLSAo
Qk9PTClkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZAoreworICAgIHJldHVybiBf
Y29uZmlndXJhdGlvbi0+ZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoKTsKK30K
KworLSAodm9pZClzZXREZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDooQk9PTCll
bmFibGVkCit7CisgICAgX2NvbmZpZ3VyYXRpb24tPnNldERldmljZU1hbmFnZW1lbnRSZXN0cmlj
dGlvbnNFbmFibGVkKGVuYWJsZWQpOworfQorCistIChCT09MKWFsbExvYWRzQmxvY2tlZEJ5RGV2
aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcKK3sKKyAgICByZXR1cm4gX2NvbmZp
Z3VyYXRpb24tPmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0Zv
clRlc3RpbmcoKTsKK30KKworLSAodm9pZClzZXRBbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFn
ZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nOihCT09MKWJsb2NrZWQKK3sKKyAgICBfY29uZmln
dXJhdGlvbi0+c2V0QWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25z
Rm9yVGVzdGluZyhibG9ja2VkKTsKK30KKwogLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKIHsK
ICAgICByZXR1cm4gKl9jb25maWd1cmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNv
Y29hLm1tCmluZGV4IDA1NDI1YzA3NTFlMjM4ZWUxOTI1OWIzZDAyNTRmMDY5MWNhMzQ3ZGEuLjJh
NTZhNzQzNmU4YTAwODYwYTVjMGJkMTEyMDUzMzM5MjMxOWMyMjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJz
aXRlRGF0YVN0b3JlQ29jb2EubW0KQEAgLTEzMSw2ICsxMzEsOCBAQCBXZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICAgICAgZmFsc2Us
CiAgICAgICAgIHNob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3Ms
CiAgICAgICAgIGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUsCisgICAgICAg
IG1fY29uZmlndXJhdGlvbi0+ZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoKSwK
KyAgICAgICAgbV9jb25maWd1cmF0aW9uLT5hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1l
bnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKCksCiAgICAgICAgIFdURk1vdmUocmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJlc291cmNlKSwKICAgICAgICAgV1RGTW92ZShsb2Nh
bFN0b3JhZ2VEaXJlY3RvcnkpLAogICAgICAgICBXVEZNb3ZlKGxvY2FsU3RvcmFnZURpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNw
cAppbmRleCA5OWY1N2U0YWUzYTRlMTQzN2I1NGIyNTI1MGY3MjE3YTMxMjBhMmVlLi5hZWI4MGNk
YzYyNTJmODgyNGMxMGIwNGNkZjhjZTE3NDE2N2JhZTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC0zOSw2ICszOSw4IEBAIFJlZjxXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbj4gV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkoKQog
ewogICAgIGF1dG8gY29weSA9IFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpjcmVhdGUo
KTsKIAorICAgIGNvcHktPm1faXNQZXJzaXN0ZW50ID0gdGhpcy0+bV9pc1BlcnNpc3RlbnQ7CisK
ICAgICBjb3B5LT5tX2NhY2hlU3RvcmFnZURpcmVjdG9yeSA9IHRoaXMtPm1fY2FjaGVTdG9yYWdl
RGlyZWN0b3J5OwogICAgIGNvcHktPm1fcGVyT3JpZ2luU3RvcmFnZVF1b3RhID0gdGhpcy0+bV9w
ZXJPcmlnaW5TdG9yYWdlUXVvdGE7CiAgICAgY29weS0+bV9uZXR3b3JrQ2FjaGVEaXJlY3Rvcnkg
PSB0aGlzLT5tX25ldHdvcmtDYWNoZURpcmVjdG9yeTsKQEAgLTU5LDYgKzYxLDggQEAgUmVmPFdl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bjo6Y29weSgpCiAgICAgY29weS0+bV9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZp
ZXIgPSB0aGlzLT5tX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjsKICAgICBj
b3B5LT5tX2h0dHBQcm94eSA9IHRoaXMtPm1faHR0cFByb3h5OwogICAgIGNvcHktPm1faHR0cHNQ
cm94eSA9IHRoaXMtPm1faHR0cHNQcm94eTsKKyAgICBjb3B5LT5tX2RldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNFbmFibGVkID0gdGhpcy0+bV9kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25z
RW5hYmxlZDsKKyAgICBjb3B5LT5tX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0ZvclRlc3RpbmcgPSB0aGlzLT5tX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFu
YWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rpbmc7CiAKICAgICByZXR1cm4gY29weTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCmluZGV4IGRmMTdhZGM1ZTRkMzJkMDIx
NTU4ZTY0OTRhM2UzNjk3ODdmNTlmNzAuLmVhM2Q4ZTJmMTlkMDU2NWNmNGJjNWZhYjY2YTRiZmFh
YmQ1YmJiZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAtMzgs
NyArMzgsMTAgQEAgcHVibGljOgogCiAgICAgUmVmPFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uPiBjb3B5KCk7CiAKLSAgICB1aW50NjRfdCBwZXJPcmlnaW5TdG9yYWdlUXVvdGEoKSB7IHJl
dHVybiBtX3Blck9yaWdpblN0b3JhZ2VRdW90YTsgfQorICAgIGJvb2wgaXNQZXJzaXN0ZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9pc1BlcnNpc3RlbnQ7IH0KKyAgICB2b2lkIHNldFBlcnNpc3RlbnQo
Ym9vbCBpc1BlcnNpc3RlbnQpIHsgbV9pc1BlcnNpc3RlbnQgPSBpc1BlcnNpc3RlbnQ7IH0KKwor
ICAgIHVpbnQ2NF90IHBlck9yaWdpblN0b3JhZ2VRdW90YSgpIGNvbnN0IHsgcmV0dXJuIG1fcGVy
T3JpZ2luU3RvcmFnZVF1b3RhOyB9CiAgICAgdm9pZCBzZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGEo
dWludDY0X3QgcXVvdGEpIHsgbV9wZXJPcmlnaW5TdG9yYWdlUXVvdGEgPSBxdW90YTsgfQogCiAg
ICAgY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1
cm4gbV9hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5OyB9CkBAIC05OCw5ICsxMDEsMTcgQEAgcHVi
bGljOgogICAgIGNvbnN0IFVSTCYgaHR0cHNQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1faHR0cHNQ
cm94eTsgfQogICAgIHZvaWQgc2V0SFRUUFNQcm94eShVUkwmJiBwcm94eSkgeyBtX2h0dHBzUHJv
eHkgPSBXVEZNb3ZlKHByb3h5KTsgfQogCisgICAgYm9vbCBkZXZpY2VNYW5hZ2VtZW50UmVzdHJp
Y3Rpb25zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0
aW9uc0VuYWJsZWQ7IH0KKyAgICB2b2lkIHNldERldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNF
bmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFi
bGVkID0gZW5hYmxlZDsgfQorCisgICAgYm9vbCBhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFn
ZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9hbGxMb2Fkc0Js
b2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nOyB9CisgICAgdm9p
ZCBzZXRBbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0
aW5nKGJvb2wgYmxvY2tlZCkgeyBtX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0ZvclRlc3RpbmcgPSBibG9ja2VkOyB9CisKIHByaXZhdGU6CiAgICAgV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24oKTsKIAorICAgIGJvb2wgbV9pc1BlcnNpc3RlbnQgeyBm
YWxzZSB9OworCiAgICAgU3RyaW5nIG1fY2FjaGVTdG9yYWdlRGlyZWN0b3J5OwogICAgIHVpbnQ2
NF90IG1fcGVyT3JpZ2luU3RvcmFnZVF1b3RhIHsgV2ViQ29yZTo6U3RvcmFnZVF1b3RhTWFuYWdl
cjo6ZGVmYXVsdFF1b3RhKCkgfTsKICAgICBTdHJpbmcgbV9uZXR3b3JrQ2FjaGVEaXJlY3Rvcnk7
CkBAIC0xMjEsNiArMTMyLDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9zb3VyY2VBcHBsaWNh
dGlvblNlY29uZGFyeUlkZW50aWZpZXI7CiAgICAgVVJMIG1faHR0cFByb3h5OwogICAgIFVSTCBt
X2h0dHBzUHJveHk7CisgICAgYm9vbCBtX2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFi
bGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2Vt
ZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyB7IGZhbHNlIH07CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkZGIzYTMwMDBj
YWVmNzIzNWMyNjQ2Y2QwZjQwNDhjYmNlYjU2MGEyLi45NTczMjhjMDE5ODY2ZDBlZGM2N2M0NjQz
MDllMDNiYzEzNzdjNWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTQzMCw2ICs0MzAsOCBAQAogCQkyOTg0RjU4OTE2NEJBMDk1MDA0
QkMwQzYgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5ODRGNTg3MTY0QkEwOTUwMDRC
QzBDNiAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJNZXNzYWdlcy5oICovOyB9OwogCQky
OUFEMzA5MzE2NEI0QzVEMDA3MkRFQTkgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJv
eHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QUQz
MDkyMTY0QjRDNUQwMDcyREVBOSAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eS5o
ICovOyB9OwogCQkyOUNENTVBQTEyOEUyOTRGMDAxMzNDODUgLyogV0tBY2Nlc3NpYmlsaXR5V2Vi
UGFnZU9iamVjdEJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI5Q0Q1NUE4MTI4RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0QmFzZS5oICovOyB9OworCQkyRDBDNTZGRDIyOUYxREVBMDBCRDMzRTcgLyogRGV2aWNl
TWFuYWdlbWVudFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRDBDNTZGQjIyOUYxREVBMDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNv
ZnRMaW5rLmggKi87IH07CisJCTJEMEM1NkZFMjI5RjFERUEwMEJEMzNFNyAvKiBEZXZpY2VNYW5h
Z2VtZW50U29mdExpbmsubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRDBDNTZGQzIyOUYxREVBMDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNvZnRM
aW5rLm1tICovOyB9OwogCQkyRDEwODc2MTFEMkM1NzNFMDBCODVGODIgLyogTG9hZFBhcmFtZXRl
cnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMTA4
NzVGMUQyQzU3M0UwMEI4NUY4MiAvKiBMb2FkUGFyYW1ldGVycy5oICovOyB9OwogCQkyRDExQjc1
MTIxMjZBMjgyMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTEtbW0ubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDdERUM5NDIxMjY5RTRDMDBCOUY3M0Mg
LyogVW5pZmllZFNvdXJjZTEtbW0ubW0gKi87IH07CiAJCTJEMTFCNzUyMjEyNkEyODIwMDZGODg3
OCAvKiBVbmlmaWVkU291cmNlMS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyRDdERUQ1QjIxMjY5RTREMDBCOUY3M0MgLyogVW5pZmllZFNvdXJjZTEu
Y3BwICovOyB9OwpAQCAtNzAyLDYgKzcwNCw3IEBACiAJCTJEQTY3MzFBMjBDNzU0QjEwMDNDQjQw
MSAvKiBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREE2NzMxOTIwQzc1NEIxMDAzQ0I0MDEgLyogRHluYW1p
Y1ZpZXdwb3J0U2l6ZVVwZGF0ZS5oICovOyB9OwogCQkyREE5NDRBMDE4ODRFNEYwMDBFRDg2REIg
LyogV2ViSU9TRXZlbnRGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyREE5NDQ5OTE4ODRFNEYwMDBFRDg2REIgLyogV2ViSU9TRXZlbnRGYWN0
b3J5LmggKi87IH07CiAJCTJEQTk0NEE0MTg4NEU0RjAwMEVEODZEQiAvKiBHZXN0dXJlVHlwZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQTk0NDlE
MTg4NEU0RjAwMEVEODZEQiAvKiBHZXN0dXJlVHlwZXMuaCAqLzsgfTsKKwkJMkRBQURBOEYyMjk4
QzIxMDAwRTM2QjBDIC8qIERldmljZU1hbmFnZW1lbnRTUEkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQUFEQThFMjI5OEMyMTAwMEUzNkIwQyAvKiBE
ZXZpY2VNYW5hZ2VtZW50U1BJLmggKi87IH07CiAJCTJEQUJBNzcyMUE4MTdCMTcwMEVGMEYxQSAv
KiBXS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50c0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREFCQTc3MTFBODE3QjE3MDBFRjBGMUEg
LyogV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oICovOyB9OwogCQkyREFC
QTc3NDFBODE3RUU2MDBFRjBGMUEgLyogV0tQbHVnaW5Mb2FkUG9saWN5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREFCQTc3MzFBODE3RUU2MDBFRjBG
MUEgLyogV0tQbHVnaW5Mb2FkUG9saWN5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkRBQkE3NzYxQTgyQjQyMTAwRUYwRjFBIC8qIEFQSUhpc3Rv
cnlDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJEQUJBNzc1MUE4MkI0MjEwMEVGMEYxQSAvKiBBUElIaXN0b3J5Q2xpZW50LmggKi87IH07CkBA
IC0yNTA2LDYgKzI1MDksOCBAQAogCQkyOUQwNEUyODIxRjdDNzNEMDA3Njc0MUQgLyogQWNjZXNz
aWJpbGl0eVByaXZTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVByaXZTUEkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQwMDM1MjIxQkM3NDE0ODAwREE4NzE2IC8q
IFBERlBsdWdpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQREZQbHVnaW4u
aDsgcGF0aCA9IFBERi9QREZQbHVnaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkQwMDM1MjMxQkM3NDE0ODAwREE4NzE2IC8qIFBERlBsdWdpbi5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFBERlBsdWdpbi5tbTsgcGF0aCA9IFBERi9QREZQbHVn
aW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMEM1NkZCMjI5RjFERUEwMEJE
MzNFNyAvKiBEZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTJEMEM1NkZDMjI5RjFERUEwMEJEMzNFNyAvKiBEZXZpY2VNYW5hZ2VtZW50
U29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEZXZp
Y2VNYW5hZ2VtZW50U29mdExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJE
MENGNjRCMjFGMkE4MDMwMDc4NzU2NiAvKiBUZXh0Q2hlY2tpbmdDb250cm9sbGVyLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gVGV4dENoZWNraW5nQ29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkQwQ0Y2NEMyMUYyQTgwMzAwNzg3NTY2IC8qIFRleHRDaGVja2lu
Z0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENoZWNraW5nQ29udHJvbGxlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDEwODc1RTFEMkM1NzNFMDBCODVGODIgLyog
TG9hZFBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TG9hZFBhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjc5OCw2
ICsyODAzLDcgQEAKIAkJMkRBOTQ0QUMxODg0RTlCQTAwRUQ4NkRCIC8qIFdlYlByb2Nlc3NQcm94
eUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYlByb2Nl
c3NQcm94eUlPUy5tbTsgcGF0aCA9IGlvcy9XZWJQcm9jZXNzUHJveHlJT1MubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQTk0NEI2MTg4NEVBMzUwMEVEODZEQiAvKiBXZWJQYWdl
SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViUGFnZUlP
Uy5tbTsgcGF0aCA9IGlvcy9XZWJQYWdlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyREE5NDRCQzE4ODUxMUU3MDBFRDg2REIgLyogTmV0d29ya1Byb2Nlc3NJT1MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc0lPUy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkRBQURBOEUyMjk4QzIxMDAwRTM2QjBD
IC8qIERldmljZU1hbmFnZW1lbnRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGV2aWNlTWFuYWdlbWVudFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
REFCQTc3MTFBODE3QjE3MDBFRjBGMUEgLyogV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJ
bnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1BhZ2VSZW5kZXJp
bmdQcm9ncmVzc0V2ZW50c0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTJEQUJBNzczMUE4MTdFRTYwMEVGMEYxQSAvKiBXS1BsdWdpbkxvYWRQb2xpY3kuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQbHVnaW5Mb2FkUG9saWN5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQUJBNzc1MUE4MkI0MjEwMEVGMEYxQSAvKiBBUElIaXN0
b3J5Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUhpc3RvcnlD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYxMDUsNiArNjExMSw3IEBA
CiAJCQkJMzdDMjFDQUQxRTk5NEMwQzAwMjlENUY5IC8qIENvcmVQcmVkaWN0aW9uU1BJLmggKi8s
CiAJCQkJQTFGQjY4MjYxRjZFNTFDMTAwQzQzRjlGIC8qIENyYXNoUmVwb3J0ZXJDbGllbnRTUEku
aCAqLywKIAkJCQk1N0RDRURBQTIxNEI5QjQzMDAxNkI4NDcgLyogRGV2aWNlSWRlbnRpdHlTUEku
aCAqLywKKwkJCQkyREFBREE4RTIyOThDMjEwMDBFMzZCMEMgLyogRGV2aWNlTWFuYWdlbWVudFNQ
SS5oICovLAogCQkJCTM3NTRENTQ0MUIzQTI5RkQwMDNBNEM3RiAvKiBOU0ludm9jYXRpb25TUEku
aCAqLywKIAkJCQkzN0I0N0UyQzFENjREQjc2MDA1RjRFRkYgLyogb2JqY1NQSS5oICovLAogCQkJ
CTBFOTdENzRDMjAwRThGRjMwMEJGNjY0MyAvKiBTYWZlQnJvd3NpbmdTUEkuaCAqLywKQEAgLTcx
MzYsNiArNzE0Myw4IEBACiAJCTdFQzRGMEY4MThFNEE5MjIwMDgwNTZBRiAvKiBjb2NvYSAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMkQwQzU2RkIyMjlG
MURFQTAwQkQzM0U3IC8qIERldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oICovLAorCQkJCTJEMEM1
NkZDMjI5RjFERUEwMEJEMzNFNyAvKiBEZXZpY2VNYW5hZ2VtZW50U29mdExpbmsubW0gKi8sCiAJ
CQkJNTMxNTg3NkIyMDc2QjcxMzAwNEJGOUYzIC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2Nv
YS5tbSAqLywKIAkJCQk1MzIxNTk0RjFEQkFFNkQ3MDA1NEFBM0MgLyogTmV0d29ya0RhdGFUYXNr
Q29jb2EuaCAqLywKIAkJCQk1Q0JDOUI4QjFDNjUyNTczMDBBOEZEQ0YgLyogTmV0d29ya0RhdGFU
YXNrQ29jb2EubW0gKi8sCkBAIC05MjIzLDYgKzkyMzIsOCBAQAogCQkJCUJDMDMyREE2MTBGNDM3
RDEwMDU4QzE1QSAvKiBEZWNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0RDRURBQjIxNEM2
MDA5MDAxNkI4NDcgLyogRGV2aWNlSWRlbnRpdHlTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3
Mjk3RjlGMUMxN0JCRUEwMTVGMDczNSAvKiBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMkQwQzU2RkQyMjlGMURFQTAwQkQzM0U3IC8qIERldmljZU1hbmFnZW1l
bnRTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkRBQURBOEYyMjk4QzIxMDAwRTM2QjBD
IC8qIERldmljZU1hbmFnZW1lbnRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzODkxQjZDMUE2
OEMzMEIwMDMwRjM4NiAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzE4MTczNjEyMDU4NDI0NzAwREZEQTY1IC8qIERpc3BsYXlMaW5rLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1QzE0MjcwMjFDMjNGODRDMDBENDExODMgLyogRG93bmxvYWQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMTA5ODIsNiArMTA5OTMsNyBAQAogCQkJCTJEOTJBNzdEMjEyQjZBNzEwMEY0
OTNGRCAvKiBDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzdFMjEyQjZB
NzEwMEY0OTNGRCAvKiBEYXRhUmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJB
NzdGMjEyQjZBNzEwMEY0OTNGRCAvKiBEZWNvZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJE
MEM1NkZFMjI5RjFERUEwMEJEMzNFNyAvKiBEZXZpY2VNYW5hZ2VtZW50U29mdExpbmsubW0gaW4g
U291cmNlcyAqLywKIAkJCQkxQUI3RDYxOTEyODhCOUQ5MDBDRkQwOEMgLyogRG93bmxvYWRQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTY0MjI5OTEyREQwMjky
MDBDQUFFMkMgLyogRHJhd2luZ0FyZWFNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUE2NDIzMDgxMkREMDlFQjAwQ0FBRTJDIC8qIERyYXdpbmdBcmVhUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggMjc4YjYwMTg0Nzlm
MzY1OTAzNDhjODk1MTg1NWFjZjQzZGNiNTlmOC4uMTUyNTY3MzNiNWQyYjk4MTgwZmNmNTNiNmZi
YzcyMzJjYjMxNjcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtMzM1LDYgKzMzNSw4IEBAIHZvaWQgV2Vi
TG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2VzcyhSZXNvdXJjZUxv
YWRlciYgcmVzb3VyY2VMCiAKICAgICBsb2FkUGFyYW1ldGVycy5pc01haW5GcmFtZU5hdmlnYXRp
b24gPSByZXNvdXJjZUxvYWRlci5mcmFtZSgpICYmIHJlc291cmNlTG9hZGVyLmZyYW1lKCktPmlz
TWFpbkZyYW1lKCkgJiYgcmVzb3VyY2VMb2FkZXIub3B0aW9ucygpLm1vZGUgPT0gRmV0Y2hPcHRp
b25zOjpNb2RlOjpOYXZpZ2F0ZTsKIAorICAgIGxvYWRQYXJhbWV0ZXJzLmlzTWFpblJlc291cmNl
TmF2aWdhdGlvbkZvckFueUZyYW1lID0gcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSAmJiByZXNvdXJj
ZUxvYWRlci5vcHRpb25zKCkubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmlnYXRlOwor
CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlQ3Jvc3NPcmlnaW5SZXNvdXJjZVBvbGlj
eSA9IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuY3Jvc3NPcmlnaW5S
ZXNvdXJjZVBvbGljeUVuYWJsZWQoKSAmJiAhbG9hZFBhcmFtZXRlcnMuaXNNYWluRnJhbWVOYXZp
Z2F0aW9uOwogCiAgICAgaWYgKHJlc291cmNlTG9hZGVyLm9wdGlvbnMoKS5tb2RlID09IEZldGNo
T3B0aW9uczo6TW9kZTo6TmF2aWdhdGUpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhMmNjYzhmODU3ZTg0MTJhYTU4ZWRkMzA4NWY2OTgzM2U0
MjhmMmIxLi5lODRkOTFlZWMzMzJmNjIwNzU1YWVmZTFlMWQ1NWJhMDA0ODIyNGExIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTktMDUtMzAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgT3B0aW9uYWxseSByZXNwZWN0IGRldmljZSBtYW5hZ2VtZW50IHJlc3RyaWN0aW9u
cyB3aGVuIGxvYWRpbmcgZnJvbSB0aGUgbmV0d29yaworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MzE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
NDI2MzgwNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGV2aWNlTWFuYWdl
bWVudFJlc3RyaWN0aW9ucy5tbTogQWRkZWQuCisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tOgorICAgICAgICAo
VEVTVCk6CisgICAgICAgIENsb25lIGEgdGVzdCB0aGF0IHRlc3RzIG5vbi1wZXJzaXN0ZW50IGRh
dGEgc3RvcmVzIGFuZCBlbnN1cmUKKyAgICAgICAgdGhhdCBpdCB3b3JrcyBpZiB0aGUgZGF0YSBz
dG9yZSBpcyBjcmVhdGVkIHZpYSBhIGNvbmZpZ3VyYXRpb24gYXMgd2VsbC4KKworICAgICAgICBB
ZGQgYSB0ZXN0IHRoYXQgZW5zdXJlcyB0aGF0IHlvdSBjYW4ndCBjcmVhdGUgYSBkYXRhIHN0b3Jl
IGNvbmZpZ3VyYXRpb24KKyAgICAgICAgd2l0aCBhbiBpbnZhbGlkIHNldCBvZiBvcHRpb25zLgor
CisgICAgICAgIEFkZCBhIHRlc3QgdGhhdCBkZXZpY2UgbWFuYWdlbWVudCByZXN0cmljdGlvbnMg
KHdoZW4gbW9ja2VkKSBjb3JyZWN0bHkKKyAgICAgICAgZmFpbCB0aGUgbG9hZCB3aXRoIGEgbmV3
LCBhcHByb3ByaWF0ZSBlcnJvci4KKwogMjAxOS0wNS0yOSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFk
ZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ1ODU3
LgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1N2FhN2QxODJlOGZjZjAwNTM5MGUyMmI2NTRm
MzA2MDQ1ZTljMzdmLi5lNmU2NzI2YzllOWQ4MTYwMTY2ODUwYjdmYWI3Yzk4YmY3YzE2YmU0IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTYsNiArOTYsNyBAQAogCQkyRDFDMDRBNzFENzYy
OThCMDAwQTY4MTYgLyogVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMUMwNEE2MUQ3NjI5OEIwMDBBNjgxNiAv
KiBUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tICovOyB9OwogCQkyRDIxRkU1OTFGMDQ2NDI5MDBC
NThFN0QgLyogV0tQREZWaWV3U3RhYmxlUHJlc2VudGF0aW9uVXBkYXRlQ2FsbGJhY2subW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDIxRkU1ODFGMDQ2
NDI4MDBCNThFN0QgLyogV0tQREZWaWV3U3RhYmxlUHJlc2VudGF0aW9uVXBkYXRlQ2FsbGJhY2su
bW0gKi87IH07CiAJCTJEMkJFQjJEMjIzMjRFNUYwMDU1NDRDQSAvKiBSZXF1ZXN0VGV4dElucHV0
Q29udGV4dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJEMkJFQjJDMjIzMjRFNUYwMDU1NDRDQSAvKiBSZXF1ZXN0VGV4dElucHV0Q29udGV4dC5tbSAq
LzsgfTsKKwkJMkQyRDEzQjMyMjlGNDA4QjAwNTA2OEFGIC8qIERldmljZU1hbmFnZW1lbnRSZXN0
cmljdGlvbnMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRDJEMTNCMjIyOUY0MDhCMDA1MDY4QUYgLyogRGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9u
cy5tbSAqLzsgfTsKIAkJMkQzQ0EzQTgyMjFERjRCNDAwODhFODAzIC8qIFBhZ2VPdmVybGF5UGx1
Z2luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQz
Q0EzQTQyMjFERjIzOTAwODhFODAzIC8qIFBhZ2VPdmVybGF5UGx1Z2luLm1tICovOyB9OwogCQky
RDRDRjhCRDFEODM2MENDMDAwMUNFOEQgLyogV0tUaHVtYm5haWxWaWV3Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ0Q0Y4QkMxRDgzNjBDQzAwMDFD
RThEIC8qIFdLVGh1bWJuYWlsVmlldy5tbSAqLzsgfTsKIAkJMkQ1MUEwQzcxQzhCRjAwQzAwNzY1
QzQ1IC8qIERPTUhUTUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1MUEwQzUxQzhCRjAwNDAwNzY1QzQ1IC8qIERP
TUhUTUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1tICovOyB9OwpAQCAtMTQ3MSw2ICsxNDcyLDcgQEAK
IAkJMkQxRkUwQUYxQUQ0NjVDMTAwNkNEOUU2IC8qIEZpeGVkTGF5b3V0U2l6ZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZpeGVkTGF5b3V0U2l6ZS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyMUZFNTgxRjA0NjQyODAwQjU4RTdEIC8qIFdL
UERGVmlld1N0YWJsZVByZXNlbnRhdGlvblVwZGF0ZUNhbGxiYWNrLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tQREZWaWV3U3RhYmxlUHJlc2VudGF0aW9uVXBk
YXRlQ2FsbGJhY2subW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMkJFQjJDMjIz
MjRFNUYwMDU1NDRDQSAvKiBSZXF1ZXN0VGV4dElucHV0Q29udGV4dC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlcXVlc3RUZXh0SW5wdXRDb250ZXh0Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDJEMTNCMjIyOUY0MDhCMDA1MDY4QUYgLyog
RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9ucy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IERldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEM0NBM0E0MjIxREYyMzkwMDg4RTgwMyAvKiBQYWdlT3Zl
cmxheVBsdWdpbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBh
Z2VPdmVybGF5UGx1Z2luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDRDRjhC
QzFEODM2MENDMDAwMUNFOEQgLyogV0tUaHVtYm5haWxWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tUaHVtYm5haWxWaWV3Lm1tOyBwYXRoID0gV2ViS2l0
L1dLVGh1bWJuYWlsVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ1MUEw
QzUxQzhCRjAwNDAwNzY1QzQ1IC8qIERPTUhUTUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTFZpZGVvRWxlbWVudFdy
YXBwZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTkxLDYgKzI1OTMsNyBA
QAogCQkJCTQ2QTkxMTU4MjEwOEU2NkIwMDc4RDQwRCAvKiBDdXN0b21Vc2VyQWdlbnQubW0gKi8s
CiAJCQkJMkRDNENGNzYxRDJEOUREODAwRUNDQzk0IC8qIERhdGFEZXRlY3Rpb24ubW0gKi8sCiAJ
CQkJNTE4RUU1MUMyMEE3OEQzMzAwRTAyNEYzIC8qIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24ubW0gKi8sCisJCQkJMkQyRDEzQjIyMjlGNDA4QjAwNTA2OEFGIC8qIERldmljZU1hbmFn
ZW1lbnRSZXN0cmljdGlvbnMubW0gKi8sCiAJCQkJNDY5MThFRkIyMjM3MjgzNTAwNDY4REZFIC8q
IERldmljZU9yaWVudGF0aW9uLm1tICovLAogCQkJCUNFQTdGNTdCMjA4OTVGNUIwMDc4RUY2RSAv
KiBEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2UubW0gKi8sCiAJ
CQkJNTE4RUU1MUEyMEE3OENGQjAwRTAyNEYzIC8qIERvQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBk
YXRlQWZ0ZXJDcmFzaC5tbSAqLywKQEAgLTQxMjEsNiArNDEyNCw3IEBACiAJCQkJOUJBRDdGM0Uy
MjY5MEYyMDAwRjhEQTY2IC8qIERlYWxsb2NXZWJWaWV3SW5FdmVudExpc3RlbmVyLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTE4RUU1MUQyMEE3OEQzNjAwRTAyNEYzIC8qIERlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDE2NDZFMjFEMTg2MkNE
MDAwMTVBMUEgLyogRGVmZXJyZWRWaWV3SW5XaW5kb3dTdGF0ZUNoYW5nZS5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCTJEMkQxM0IzMjI5RjQwOEIwMDUwNjhBRiAvKiBEZXZpY2VNYW5hZ2VtZW50UmVz
dHJpY3Rpb25zLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDY5MThFRkMyMjM3MjgzQzAwNDY4REZF
IC8qIERldmljZU9yaWVudGF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQjkxQTQx
MUE3RTAwNDQ3QzRDIC8qIERldmljZVNjYWxlRmFjdG9ySW5EYXNoYm9hcmRSZWdpb25zLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQkExQTQxMUE3RTAwNDQ3QzRDIC8qIERldmljZVNjYWxl
RmFjdG9yT25CYWNrLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnMubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQzNjhmMWU0OWRiNzZhYTlmNmQ0Y2Q3ODc2MmQy
ZGFiMDkwNzJkNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9ucy5tbQpAQCAtMCwwICsxLDYy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9y
bVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdE5hdmlnYXRpb25E
ZWxlZ2F0ZS5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dL
RXJyb3JSZWYuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg+
CisjaW1wb3J0IDxXZWJLaXQvV2ViS2l0Lmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworVEVT
VChXZWJLaXQsIERldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnMpCit7CisgICAgUmV0YWluUHRy
PF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiBkYXRhU3RvcmVDb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
Tm9uUGVyc2lzdGVudENvbmZpZ3VyYXRpb25dKTsKKyAgICBbZGF0YVN0b3JlQ29uZmlndXJhdGlv
biBzZXREZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDpZRVNdOworICAgIFtkYXRh
U3RvcmVDb25maWd1cmF0aW9uIHNldEFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0ZvclRlc3Rpbmc6WUVTXTsKKworICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25m
aWd1cmF0aW9uPiB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFdl
YnNpdGVEYXRhU3RvcmU6W1tbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25m
aWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldIGF1dG9yZWxlYXNlXV07CisK
KyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdFplcm8gY29uZmlndXJhdGlvbjp3ZWJW
aWV3Q29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKworICAgIFJldGFpblB0
cjxUZXN0TmF2aWdhdGlvbkRlbGVnYXRlPiBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0TmF2aWdh
dGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRl
bGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7
CisgICAgW2RlbGVnYXRlIHNldERpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb246XihXS1dlYlZp
ZXcgKndlYlZpZXcsIFdLTmF2aWdhdGlvbiAqbmF2aWdhdGlvbiwgTlNFcnJvciAqZXJyb3IpIHsK
KyAgICAgICAgRVhQRUNUX0VRKGtXS0Vycm9yQ29kZUZyYW1lTG9hZEJsb2NrZWRCeVJlc3RyaWN0
aW9ucywgZXJyb3IuY29kZSk7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworCisgICAg
TlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS1dlYnNpdGVEYXRhc3RvcmUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbQppbmRleCAzZjk1M2E3MDc1MThm
ZTM4MjA2NzNlYTEwMzIzNDYwY2I5Mjk0ZDQ2Li44N2M0MTI0M2M2ODIwNzE4NmFiYzNjNTAyNGNj
NWJhNWMzODIwYzBmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbQpAQCAtMzMsNiArMzMsNyBAQAog
I2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktp
dC5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg+
CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogc3RhdGljIGJvb2wgcmVhZHlUb0Nv
bnRpbnVlOwpAQCAtMzA0LDQgKzMwNSw0OSBAQCBURVNUKFdLV2Vic2l0ZURhdGFTdG9yZSwgUmVt
b3ZlTm9uUGVyc2lzdGVudENyZWRlbnRpYWxzKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CiB9CiAKK1RFU1QoV2ViS2l0LCBTZXR0aW5nTm9uUGVyc2lzdGVudERhdGFTdG9y
ZVBhdGhzVGhyb3dzRXhjZXB0aW9uKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdE5vblBlcnNp
c3RlbnRDb25maWd1cmF0aW9uXSk7CisKKyAgICBhdXRvIHNob3VsZFRocm93RXhjZXB0aW9uV2hl
blVzZWQgPSBbXShGdW5jdGlvbjx2b2lkKHZvaWQpPiYmIG1vZGlmaWVyKSB7CisgICAgICAgIEB0
cnkgeworICAgICAgICAgICAgbW9kaWZpZXIoKTsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGZh
bHNlKTsKKyAgICAgICAgfSBAY2F0Y2ggKE5TRXhjZXB0aW9uICpleGNlcHRpb24pIHsKKyAgICAg
ICAgICAgIEVYUEVDVF9XS19TVFJFUShOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiwgZXhjZXB0
aW9uLm5hbWUpOworICAgICAgICB9CisgICAgfTsKKworICAgIE5TVVJMICpmaWxlVVJMID0gW05T
VVJMIGZpbGVVUkxXaXRoUGF0aDpAIi90bXAiXTsKKworICAgIHNob3VsZFRocm93RXhjZXB0aW9u
V2hlblVzZWQoWyZdIHsKKyAgICAgICAgW2NvbmZpZ3VyYXRpb24gX3NldFdlYlN0b3JhZ2VEaXJl
Y3Rvcnk6ZmlsZVVSTF07CisgICAgfSk7CisgICAgc2hvdWxkVGhyb3dFeGNlcHRpb25XaGVuVXNl
ZChbJl0geworICAgICAgICBbY29uZmlndXJhdGlvbiBfc2V0SW5kZXhlZERCRGF0YWJhc2VEaXJl
Y3Rvcnk6ZmlsZVVSTF07CisgICAgfSk7CisgICAgc2hvdWxkVGhyb3dFeGNlcHRpb25XaGVuVXNl
ZChbJl0geworICAgICAgICBbY29uZmlndXJhdGlvbiBfc2V0V2ViU1FMRGF0YWJhc2VEaXJlY3Rv
cnk6ZmlsZVVSTF07CisgICAgfSk7CisgICAgc2hvdWxkVGhyb3dFeGNlcHRpb25XaGVuVXNlZChb
Jl0geworICAgICAgICBbY29uZmlndXJhdGlvbiBfc2V0Q29va2llU3RvcmFnZUZpbGU6ZmlsZVVS
TF07CisgICAgfSk7CisgICAgc2hvdWxkVGhyb3dFeGNlcHRpb25XaGVuVXNlZChbJl0geworICAg
ICAgICBbY29uZmlndXJhdGlvbiBfc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTpm
aWxlVVJMXTsKKyAgICB9KTsKKyAgICBzaG91bGRUaHJvd0V4Y2VwdGlvbldoZW5Vc2VkKFsmXSB7
CisgICAgICAgIFtjb25maWd1cmF0aW9uIF9zZXRDYWNoZVN0b3JhZ2VEaXJlY3Rvcnk6ZmlsZVVS
TF07CisgICAgfSk7CisgICAgc2hvdWxkVGhyb3dFeGNlcHRpb25XaGVuVXNlZChbJl0geworICAg
ICAgICBbY29uZmlndXJhdGlvbiBfc2V0U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9y
eTpmaWxlVVJMXTsKKyAgICB9KTsKKworICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgc2hvdWxkbid0
IHRocm93IGV4Y2VwdGlvbnMgd2hlbiBzZXQgb24gYSBub24tcGVyc2lzdGVudCBkYXRhIHN0b3Jl
LgorICAgIFtjb25maWd1cmF0aW9uIHNldERldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFi
bGVkOllFU107CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0SFRUUFByb3h5OltOU1VSTCBVUkxXaXRo
U3RyaW5nOkAiaHR0cDovL3d3dy5hcHBsZS5jb20vIl1dOworICAgIFtjb25maWd1cmF0aW9uIHNl
dEhUVFBTUHJveHk6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL3d3dy5hcHBsZS5jb20v
Il1dOworICAgIFtjb25maWd1cmF0aW9uIHNldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRp
ZmllcjpAImNvbS5hcHBsZS5TYWZhcmkiXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRTb3VyY2VB
cHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI6QCJjb20uYXBwbGUuU2FmYXJpIl07Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vi
c2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0KaW5kZXggNzA1ZmM0MjRh
YmQyNjRjMTM4NjE2MDE4MDBiMmU3YjBjMWUxNWZkNy4uZTRlZTAyMDY2MzVjY2JmNzA3ZDg5NDdj
ZDVlZWZjY2E3ZGIzMWQ0ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMu
bW0KQEAgLTQyNyw2ICs0MjcsNTIgQEAgVEVTVChXZWJLaXQsIFdlYnNpdGVEYXRhU3RvcmVFcGhl
bWVyYWwpCiAKICAgICBFWFBFQ1RfVFJVRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJd
IGZpbGVFeGlzdHNBdFBhdGg6ZGVmYXVsdFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXRoLnBhdGhd
KTsKICAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxl
RXhpc3RzQXRQYXRoOmRlZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlsZVBhdGgucGF0aF0p
OworCisgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSByZW1vdmVJdGVtQXRVUkw6
ZGVmYXVsdFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXRoIGVycm9yOm5pbF07Cit9CisKK1RFU1Qo
V2ViS2l0LCBXZWJzaXRlRGF0YVN0b3JlRXBoZW1lcmFsVmlhQ29uZmlndXJhdGlvbikKK3sKKyAg
ICBSZXRhaW5QdHI8V2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzTWVzc2FnZUhhbmRsZXI+IGhh
bmRsZXIgPSBhZG9wdE5TKFtbV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzTWVzc2FnZUhhbmRs
ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4g
Y29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2Ny
aXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAidGVzdEhhbmRsZXIiXTsKKwor
ICAgIE5TVVJMICpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhdGggPSBbTlNVUkwgZmls
ZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9XZWJzaXRlRGF0
YS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF0g
aXNEaXJlY3Rvcnk6WUVTXTsKKworICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0g
cmVtb3ZlSXRlbUF0VVJMOmRlZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGF0aCBlcnJvcjpu
aWxdOworCisgICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0g
ZmlsZUV4aXN0c0F0UGF0aDpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhdGgucGF0aF0p
OworCisgICAgUmV0YWluUHRyPF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiBkYXRh
U3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0Tm9uUGVyc2lzdGVudENvbmZpZ3VyYXRpb25dKTsKKyAgICBjb25m
aWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBbW1tXS1dlYnNpdGVEYXRhU3RvcmUg
YWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246ZGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQo
KV0gYXV0b3JlbGVhc2VdOworICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3Rv
cmUgX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOllFU107CisKKyAgICAvLyBXZSBl
eHBlY3QgdGhlIGRpcmVjdG9yeSB0byBiZSBjcmVhdGVkIGJ5IHN0YXJ0aW5nIHVwIHRoZSBkYXRh
IHN0b3JlIG1hY2hpbmVyeSwgYnV0IG5vdCB0aGUgZGF0YSBmaWxlLgorICAgIEVYUEVDVF9UUlVF
KFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpkZWZhdWx0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhdGgucGF0aF0pOworCisgICAgTlNVUkwgKmRlZmF1bHRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlsZVBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltA
In4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9XZWJzaXRlRGF0YS9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2Z1bGxfYnJvd3Npbmdfc2Vzc2lvbl9yZXNvdXJjZUxvZy5wbGlzdCIgc3RyaW5n
QnlFeHBhbmRpbmdUaWxkZUluUGF0aF0gaXNEaXJlY3Rvcnk6Tk9dOworICAgIEVYUEVDVF9GQUxT
RShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZGVmYXVs
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NGaWxlUGF0aC5wYXRoXSk7CisKKyAgICBSZXRhaW5QdHI8
V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b24uZ2V0KCldKTsKKworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIldl
YnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OnJlcXVlc3RdOworCisgICAgW1tbd2ViVmlldyBjb25maWd1cmF0aW9uXSBwcm9jZXNzUG9v
bF0gX3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXNdOworCisgICAgLy8gRm9yY2libHkgc2h1dCBk
b3duIGV2ZXJ5dGhpbmcgb2YgV2ViS2l0IHRoYXQgd2UgY2FuLgorICAgIGF1dG8gcGlkID0gW3dl
YlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBpZiAocGlkKQorICAgICAgICBraWxs
KHBpZCwgU0lHS0lMTCk7CisKKyAgICB3ZWJWaWV3ID0gbmlsOworICAgIGhhbmRsZXIgPSBuaWw7
CisgICAgY29uZmlndXJhdGlvbiA9IG5pbDsKKworICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFu
YWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpkZWZhdWx0UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1BhdGgucGF0aF0pOworICAgIEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIg
ZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZGVmYXVsdFJlc291cmNlTG9hZFN0YXRp
c3RpY3NGaWxlUGF0aC5wYXRoXSk7CisKKyAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFn
ZXJdIHJlbW92ZUl0ZW1BdFVSTDpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhdGggZXJy
b3I6bmlsXTsKIH0KIAogVEVTVChXZWJLaXQsIERvTG9hZFdpdGhOb25EZWZhdWx0RGF0YVN0b3Jl
QWZ0ZXJUZXJtaW5hdGluZ05ldHdvcmtQcm9jZXNzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371074</attachid>
            <date>2019-05-31 12:16:26 -0700</date>
            <delta_ts>2019-05-31 12:17:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198318-20190531121625.patch</filename>
            <type>text/plain</type>
            <size>72463</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE1ZDE5OTc0YmU3Nzk3ZTNm
NzZhNDc4MzYxN2NjZGU0Y2U5Njk2YWMuLmRiYTBhZjg1N2Q2OWY0MzVlOTEzZDFlNGViNGNjNzhj
MjUzYzkwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE1IEBACisyMDE5LTA1LTMwICBUaW0gSG9y
dG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIE9wdGlvbmFsbHkgcmVz
cGVjdCBkZXZpY2UgbWFuYWdlbWVudCByZXN0cmljdGlvbnMgd2hlbiBsb2FkaW5nIGZyb20gdGhl
IG5ldHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5ODMxOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQyNjM4MDY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL05l
dHdvcmstaU9TLmVudGl0bGVtZW50czoKKyAgICAgICAgKiBSZXNvdXJjZXMvU2FuZGJveFByb2Zp
bGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2I6CisgICAgICAgIEFkZCBzb21l
IGVudGl0bGVtZW50cyBhbmQgc2FuZGJveCBob2xlcyByZXF1aXJlZCB0byB0YWxrIHRvIERldmlj
ZU1hbmFnZW1lbnQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ09SU1ByZWZsaWdodENo
ZWNrZXI6Ondhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucyk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6d2FzQmxv
Y2tlZEJ5UmVzdHJpY3Rpb25zKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGluZ0xvYWQ6Ondhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucyk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvUGluZ0xvYWQuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViRXJyb3JzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6d2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zRXJyb3IpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJFcnJvcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
RGF0YVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFzazo6ZmFpbHVyZVRpbWVyRmlyZWQpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5oOgorICAgICAgICAqIFNo
YXJlZC9BUEkvQVBJRXJyb3IuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tFcnJvclJlZi5j
cHA6CisgICAgICAgIChXS0Vycm9yR2V0RXJyb3JDb2RlKToKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L2MvV0tFcnJvclJlZi5oOgorICAgICAgICBQbHVtYiBhIG5ldyBlcnJvciBmb3IgbG9hZHMgdGhh
dCBhcmUgYmxvY2tlZCBieSBkZXZpY2UgbWFuYWdlbWVudCByZXN0cmljdGlvbnMuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQ
cm9jZXNzKToKKyAgICAgICAgUGx1bWIgYSBuZXcgYml0IHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIg
YSBsb2FkIGlzIGZvciB0aGUgbWFpbiByZXNvdXJjZSBvZiBhIGZyYW1lLgorICAgICAgICBXZSB3
aWxsIG9ubHkgYXBwbHkgZGV2aWNlIG1hbmFnZW1lbnQgcmVzdHJpY3Rpb25zIHRvIG1haW4gcmVz
b3VyY2VzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlv
blBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVyczo6cHJpdmF0ZVNlc3Npb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVD
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycyk6
CisgICAgICAgIFBsdW1iIGEgbmV3IGJpdCBpbmRpY2F0aW5nIHdoZXRoZXIgYSBuZXR3b3JrIHNl
c3Npb24gc2hvdWxkIHJlc3BlY3QgZGV2aWNlIG1hbmdlbWVudAorICAgICAgICByZXN0cmljdGlv
bnMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2Nv
YS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFU
YXNrQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6cmVzdW1l
KToKKyAgICAgICAgRGVmZXIgcmVzdW1pbmcgdGhlIGxvYWQgdW50aWwgd2UgaGF2ZSBhIHJlcGx5
IGZyb20gRGV2aWNlTWFuYWdlbWVudCBmcmFtZXdvcmsKKyAgICAgICAgYWJvdXQgd2hldGhlciB0
aGUgVVJMIHNob3VsZCBiZSBibG9ja2VkLiBJZiBpdCBpcyBibG9ja2VkLCBpbnN0ZWFkIGZhaWwg
dGhlIGxvYWQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lv
bkNvY29hLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5tbToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIFVSTFNlc3Npb246
ZGF0YVRhc2s6ZGlkUmVjZWl2ZVJlc3BvbnNlOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6ZGV2aWNlTWFuYWdlbWVudFBvbGlj
eU1vbml0b3IpOgorICAgICAgICBDYWNoZSBhIHNpbmdsZSBETUZXZWJzaXRlUG9saWN5TW9uaXRv
ciBpbnN0YW5jZSBwZXIgTmV0d29ya1Nlc3Npb24uCisgICAgICAgIAorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChBUEk6OldlYnNpdGVE
YXRhU3RvcmU6OmRlZmF1bHREYXRhU3RvcmVDb25maWd1cmF0aW9uKToKKyAgICAgICAgVGhlIGRl
ZmF1bHQgZGF0YSBzdG9yZSBpcyBwZXJzaXN0ZW50OyBpdHMgY29uZmlndXJhdGlvbiBzaG91bGQg
cmVmbGVjdCB0aGF0LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9zZXRBbGxvd3NBbnlTU0xDZXJ0aWZp
Y2F0ZUZvclNlcnZpY2VXb3JrZXI6XSk6IFN0eWxlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFT
dG9yZSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOl0pOgorICAgICAgICBNYWtlIGl0IHBvc3NpYmxl
IHRvIGNyZWF0ZSBhIG5vbi1wZXJzaXN0ZW50IFdLV2Vic2l0ZURhdGFTdG9yZSBmcm9tIGEKKyAg
ICAgICAgY29uZmlndXJhdGlvbiwgYW5kIGVuc3VyZSB0aGF0IGl0IGRvZXMgbm90IGhhdmUgYW55
IHBlcnNpc3RlbnQgc3RvcmFnZSBkaXJlY3RvcmllcyBzZXQuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5t
bToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gaW5pdF0pOgor
ICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBpbml0V2l0aE5vblBl
cnNpc3RlbnRDb25maWd1cmF0aW9uXSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uIGlzUGVyc2lzdGVudF0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbiBfc2V0V2ViU3RvcmFnZURpcmVjdG9yeTpdKToKKyAgICAgICAgKC1b
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gX3NldEluZGV4ZWREQkRhdGFiYXNlRGly
ZWN0b3J5Ol0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBf
c2V0V2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uIF9zZXRDb29raWVTdG9yYWdlRmlsZTpdKToKKyAgICAgICAgKC1b
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gX3NldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3Rvcnk6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uIF9zZXRDYWNoZVN0b3JhZ2VEaXJlY3Rvcnk6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uIF9zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0
b3J5Ol0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBkZXZp
Y2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZF0pOgorICAgICAgICAoLVtfV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbiBzZXREZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5h
YmxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbjo6Y29weSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uOjppc1BlcnNpc3RlbnQgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0UGVyc2lzdGVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpwZXJPcmlnaW5TdG9yYWdl
UXVvdGEgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbjo6ZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0RGV2aWNlTWFuYWdl
bWVudFJlc3RyaWN0aW9uc0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbjo6cGVyT3JpZ2luU3RvcmFnZVF1b3RhKTogRGVsZXRlZC4KKyAgICAg
ICAgTWFrZSBpdCBwb3NzaWJsZSB0byBjcmVhdGUgYSBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbiB0aGF0IHdpbGwgY3JlYXRlIGEgbm9uLXBlcnNpc3RlbnQKKyAgICAgICAgZGF0YSBz
dG9yZS4gQWRkIGEgYml0IHRvIF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHRoYXQg
Y29udHJvbHMgd2hldGhlciB0aGUgbmV0d29yayAKKyAgICAgICAgc2Vzc2lvbiB3aWxsIHJlc3Bl
Y3QgZGV2aWNlIG1hbmFnZW1lbnQgcmVzdHJpY3Rpb25zLgorCisgICAgICAgICogV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL0RldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oOgorICAgICAgICAqIFdlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9EZXZpY2VNYW5hZ2VtZW50U29mdExpbmsubW06CisgICAgICAgICog
V2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9EZXZpY2VNYW5hZ2VtZW50U1BJLmg6CisgICAgICAg
IEFkZCBzb21lIHNvZnQtbGlua2luZyBhbmQgU1BJIGhlYWRlcnMuCisKIDIwMTktMDUtMjkgIFJ5
YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjI0NTg1Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJh
dGlvbnMvTmV0d29yay1pT1MuZW50aXRsZW1lbnRzIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0
aW9ucy9OZXR3b3JrLWlPUy5lbnRpdGxlbWVudHMKaW5kZXggMmVlNjk2NjM4ZjY3MmU2MjM3ZGEw
Yjc0NzhhZmU5OTM2YjQ4ODYzYS4uNTNkZmQ1NjM1NDA5OWVmMDMwOTFkMWQ1YzU5NGIzZjE3M2Iy
ODU5MSAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSAyNDQKemNtWEBhQHx7VTRzVVJuX3hX
dkhWSXdLUF4zbzlFdDJMfjRpNVgxeztQZ1o4c3d1bCN5T1V9PkxPRHJoSk4hMlNUCnokfUNHUE4h
ODB1JkNNXldFR3xoYkRKX2x7NUcrbmpFSjtldURiWHpgJTFfSjhOZD0wQE8jQ1JyOTUwfGJjP1A0
Vgp6NXxFMiZNb01tcVVPfDNOV14hZWBmWSF1flQ0fGh8MyVUUDNxIUI4XlE8SjxpT1o1Q3dPVW08
JHZOUUEySWV+ekkKeGdGJjNabF84Q3hpZVY8aFFIQ2RzZnthM3AhaT1KZiMqOE02cmleOWBWOEZ4
KHAmMTBBRz9aZEEyTFFyKksycmJ5CgpsaXRlcmFsIDU3OAp6Y21hKSgtJUc8VjVYWWFsemFyK25p
TjErKzlsQXt6aiM7b0dLNCM1MUwoP1dDKlZYPl9VYmxqWiFoQWl4S1IkUHQKeiZPZDYpNGlLVm8m
NVUxKE9VfEd2b2lAI1cjLUVHKDxlSmEzWD9uNElUb2tZUWlne315dmkkak92dEJUc05PfGtNCnox
dTIpc2xJNUhBUV42PWglR0gpTHsqTEh4cjBsdipzNmkhNFJ9YUR7XldaIUw+XkJzYWtVP25Gb043
KyNLWDdRTwp6T15NbGJsMipgWDZmdVU/dHduPD5SKWl7STl9I001UTg3fDVFZlo1WT0qZm5tMV5M
X1dSYk5BY0xScClydlY/ZnYKejV6SWokMnZXUFkhNjxmWnFiKFI2eT5vQWJha2c+e3NHKVgmaCF3
V35FXlBvaTdiKzI1U3BnOypFYkl5OUA1JUBZCnljVklFYGZ4cyskd1d0dShhRnQwS0YlYV4lZ1RC
RC0hSnljbGlqTTF5OGFrcEpqajIzK0JiQ1FyV3okYXEwbTN1QAoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2Vy
LmNwcAppbmRleCAyYjBhMWMzNzllY2Q4NjYyYjAwODFmNGRiMmVlNTE3OTA1YTk1NWM0Li45NGYx
Mjc3MjgyYjk1MzIxZjY2NjVjZDRmYjY2Yjc5MmRjODM0OWJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNr
ZXIuY3BwCkBAIC0xNjMsNiArMTYzLDEyIEBAIHZvaWQgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVj
a2VyOjpjYW5ub3RTaG93VVJMKCkKICAgICBtX2NvbXBsZXRpb25DYWxsYmFjayhSZXNvdXJjZUVy
cm9yIHsgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgbV9wYXJhbWV0ZXJzLm9yaWdpbmFs
UmVxdWVzdC51cmwoKSwgIlByZWZsaWdodCByZXNwb25zZSB3YXMgYmxvY2tlZCJfcywgUmVzb3Vy
Y2VFcnJvcjo6VHlwZTo6QWNjZXNzQ29udHJvbCB9KTsKIH0KIAordm9pZCBOZXR3b3JrQ09SU1By
ZWZsaWdodENoZWNrZXI6Ondhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucygpCit7CisgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgid2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zIik7CisgICAgbV9jb21w
bGV0aW9uQ2FsbGJhY2soUmVzb3VyY2VFcnJvciB7IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWws
IDAsIG1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3QudXJsKCksICJQcmVmbGlnaHQgcmVzcG9u
c2Ugd2FzIGJsb2NrZWQiX3MsIFJlc291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRyb2wgfSk7
Cit9CisKIE5ldHdvcmtUcmFuc2FjdGlvbkluZm9ybWF0aW9uIE5ldHdvcmtDT1JTUHJlZmxpZ2h0
Q2hlY2tlcjo6dGFrZUluZm9ybWF0aW9uKCkKIHsKICAgICBBU1NFUlQobV9zaG91bGRDYXB0dXJl
RXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmgKaW5kZXggNGQzZDE2
OWY2YWY5ZjQzYjc2MTA4MWNmYmZlNjBhZmM1YTM5M2ZkNC4uODcyNDhmMGUwZTEyODQ5M2E1NTZl
NWNmYjFjMzViZDUzNGQ5MWVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCkBAIC03Miw2ICs3Miw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5dGVzU2Vu
dCwgdWludDY0X3QgdG90YWxCeXRlc0V4cGVjdGVkVG9TZW5kKSBmaW5hbDsKICAgICB2b2lkIHdh
c0Jsb2NrZWQoKSBmaW5hbDsKICAgICB2b2lkIGNhbm5vdFNob3dVUkwoKSBmaW5hbDsKKyAgICB2
b2lkIHdhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucygpIGZpbmFsOwogCiAgICAgUGFyYW1ldGVycyBt
X3BhcmFtZXRlcnM7CiAgICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9jZXNzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2su
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmlu
ZGV4IGYxZjAxMTE1ZDIzMWFhYmQ3ZGUwZWQwMGMwNzg0ZjE4OGYwOWNjNTQuLmJjYmFlOWQzMWZi
ZjhlNzYwZTRkNmZmNjYwMDEyODZkMDI1NGFhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgUmVmPE5l
dHdvcmtEYXRhVGFzaz4gTmV0d29ya0RhdGFUYXNrOjpjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNl
c3Npb24sIE5ldHdvcmtEYXQKIHsKICAgICBBU1NFUlQoIXBhcmFtZXRlcnMucmVxdWVzdC51cmwo
KS5wcm90b2NvbElzQmxvYigpKTsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICByZXR1cm4gTmV0
d29ya0RhdGFUYXNrQ29jb2E6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVx
dWVzdCwgcGFyYW1ldGVycy53ZWJGcmFtZUlELCBwYXJhbWV0ZXJzLndlYlBhZ2VJRCwgcGFyYW1l
dGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQ
b2xpY3ksIHBhcmFtZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIHBhcmFtZXRl
cnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgcGFyYW1ldGVycy5z
aG91bGRQcmVjb25uZWN0T25seSwgcGFyYW1ldGVycy5pc01haW5GcmFtZU5hdmlnYXRpb24sIHBh
cmFtZXRlcnMubmV0d29ya0FjdGl2aXR5VHJhY2tlcik7CisgICAgcmV0dXJuIE5ldHdvcmtEYXRh
VGFza0NvY29hOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBh
cmFtZXRlcnMud2ViRnJhbWVJRCwgcGFyYW1ldGVycy53ZWJQYWdlSUQsIHBhcmFtZXRlcnMuc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBw
YXJhbWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFtZXRlcnMuc2hvdWxkUHJl
Y29ubmVjdE9ubHksIHBhcmFtZXRlcnMuaXNNYWluRnJhbWVOYXZpZ2F0aW9uLCBwYXJhbWV0ZXJz
LmlzTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBwYXJhbWV0ZXJzLm5ldHdvcmtB
Y3Rpdml0eVRyYWNrZXIpOwogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgcmV0dXJuIE5ldHdv
cmtEYXRhVGFza1NvdXA6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVz
dCwgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50
U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ks
IHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgcGFy
YW1ldGVycy5pc01haW5GcmFtZU5hdmlnYXRpb24pOwpAQCAtMTMzLDYgKzEzMywxMSBAQCB2b2lk
IE5ldHdvcmtEYXRhVGFzazo6ZmFpbHVyZVRpbWVyRmlyZWQoKQogICAgICAgICBpZiAobV9jbGll
bnQpCiAgICAgICAgICAgICBtX2NsaWVudC0+Y2Fubm90U2hvd1VSTCgpOwogICAgICAgICByZXR1
cm47CisgICAgY2FzZSBSZXN0cmljdGVkVVJMRmFpbHVyZToKKyAgICAgICAgbV9zY2hlZHVsZWRG
YWlsdXJlVHlwZSA9IE5vRmFpbHVyZTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAg
ICAgbV9jbGllbnQtPndhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucygpOworICAgICAgICByZXR1cm47
CiAgICAgY2FzZSBOb0ZhaWx1cmU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0RhdGFUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRh
VGFzay5oCmluZGV4IGNlN2IyYWQ1MDYzNjVhNDMyOGJhNTczYWYxNjE3MDk2MGJhYmZiY2EuLjlm
NWZlMWY0YjM4Mzk2NDkwY2NiNGY0MzE1YzQyZTEyYmViNjdkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaApAQCAtNjUsNiArNjUsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFNlbmREYXRhKHVpbnQ2NF90IHRvdGFsQnl0ZXNT
ZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1NlbmQpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgd2FzQmxvY2tlZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hvd1VSTCgp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zKCkgPSAwOwog
CiAgICAgdmlydHVhbCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcygp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKQEAgLTEzNCw3ICsxMzUsOCBAQCBwcm90ZWN0ZWQ6
CiAgICAgZW51bSBGYWlsdXJlVHlwZSB7CiAgICAgICAgIE5vRmFpbHVyZSwKICAgICAgICAgQmxv
Y2tlZEZhaWx1cmUsCi0gICAgICAgIEludmFsaWRVUkxGYWlsdXJlCisgICAgICAgIEludmFsaWRV
UkxGYWlsdXJlLAorICAgICAgICBSZXN0cmljdGVkVVJMRmFpbHVyZQogICAgIH07CiAgICAgdm9p
ZCBmYWlsdXJlVGltZXJGaXJlZCgpOwogICAgIHZvaWQgc2NoZWR1bGVGYWlsdXJlKEZhaWx1cmVU
eXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKaW5k
ZXggNzM1ZjM2OWExY2EwNmMyN2M2MWE4MzBlNjgxNzcyOTgyMzlkYzZiYy4uOTEwN2ZlYzFlMzRk
YjQ0ODgxNjIyODY4NjIyYzhmYmViNWIzODgzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTI3Niw2ICsyNzYsMTAgQEAgdm9pZCBOZXR3b3Jr
TG9hZDo6Y2Fubm90U2hvd1VSTCgpCiAgICAgbV9jbGllbnQuZ2V0KCkuZGlkRmFpbExvYWRpbmco
Y2Fubm90U2hvd1VSTEVycm9yKG1fY3VycmVudFJlcXVlc3QpKTsKIH0KIAordm9pZCBOZXR3b3Jr
TG9hZDo6d2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zKCkKK3sKKyAgICBtX2NsaWVudC5nZXQoKS5k
aWRGYWlsTG9hZGluZyh3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnNFcnJvcihtX2N1cnJlbnRSZXF1
ZXN0KSk7Cit9CiAKIFN0cmluZyBOZXR3b3JrTG9hZDo6ZGVzY3JpcHRpb24oKSBjb25zdAogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCmluZGV4IGE1ZWJhYjYw
ZjcyZWVhM2Y3MTkxYTU1ODZlM2E2MjBjMjRmMTA2Y2MuLmQ0MTVkMDRhMjliZjIzZjdiNWNjZjMz
Yjg0ODA0MDU5ODM2NzRiNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkLmgKQEAgLTgwLDYgKzgwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFNlbmREYXRh
KHVpbnQ2NF90IHRvdGFsQnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1Nl
bmQpIGZpbmFsOwogICAgIHZvaWQgd2FzQmxvY2tlZCgpIGZpbmFsOwogICAgIHZvaWQgY2Fubm90
U2hvd1VSTCgpIGZpbmFsOworICAgIHZvaWQgd2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zKCkgZmlu
YWw7CiAKICAgICB2b2lkIG5vdGlmeURpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiYsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCB0aHJv
dHRsZURlbGF5Q29tcGxldGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAppbmRleCA4OTczMGNmOWZkMjY5OWJjZmQzMmRk
YzM4ZWY4Y2UwMzc0NmEzMDM0Li5jZmIyYzc1YzBjZDc5MmEwMGE1MDVjODBiNjk4YzE2MGE4MDIx
MzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
UGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWRQYXJhbWV0ZXJzLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCB7IHRydWUgfTsKICAgICBib29sIG5l
ZWRzQ2VydGlmaWNhdGVJbmZvIHsgZmFsc2UgfTsKICAgICBib29sIGlzTWFpbkZyYW1lTmF2aWdh
dGlvbiB7IGZhbHNlIH07CisgICAgYm9vbCBpc01haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlG
cmFtZSB7IGZhbHNlIH07CiAgICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVS
ZWZlcmVuY2U+PiBibG9iRmlsZVJlZmVyZW5jZXM7CiAgICAgUHJlY29ubmVjdE9ubHkgc2hvdWxk
UHJlY29ubmVjdE9ubHkgeyBQcmVjb25uZWN0T25seTo6Tm8gfTsKICAgICBPcHRpb25hbDxOZXR3
b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzLmNwcAppbmRleCAzM2NkYzRkMTdkYmUyZTA4NjZlMzYxMmVmMjI3NjFhMzgyMzgw
NTliLi4wZTQ0NTk0Yjg5ZTY2NjQ4OWFmZjEyOGY4YzUxYzBjNmMxYWNlMjQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzLmNwcApAQCAtNzgsNiArNzgsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
IGVuY29kZXIgPDwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdDsKICAg
ICBlbmNvZGVyIDw8IG5lZWRzQ2VydGlmaWNhdGVJbmZvOwogICAgIGVuY29kZXIgPDwgaXNNYWlu
RnJhbWVOYXZpZ2F0aW9uOworICAgIGVuY29kZXIgPDwgaXNNYWluUmVzb3VyY2VOYXZpZ2F0aW9u
Rm9yQW55RnJhbWU7CiAgICAgZW5jb2RlciA8PCBtYXhpbXVtQnVmZmVyaW5nVGltZTsKIAogICAg
IGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Ym9vbD4oc291cmNlT3JpZ2luKTsKQEAgLTE2OSw2ICsx
NzAsOCBAQCBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUmVzb3VyYwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNNYWluRnJhbWVOYXZpZ2F0aW9uKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzTWFp
blJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1heGltdW1CdWZmZXJpbmdUaW1lKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCmlu
ZGV4IDI2YmYxOWQ5YWNjYjk5M2IwYWY1MzE5YjExYjI3NWMxZTIzZTQ4NzIuLjkwZGVkYTQyMTA5
NTk3YjM5MDFkMjYyMGNkNTJmYTAyZmUzNGYwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCkBAIC01MCw3ICs1MCw3IEBAIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpwcml2YXRlU2Vzc2lvCiAjaWYg
VVNFKENVUkwpCiAgICAgICAgICwgeyB9LCB7IH0KICNlbmRpZgotICAgICAgICAsIHsgfSwgeyB9
LCBmYWxzZSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0KKyAgICAgICAgLCB7IH0sIHsgfSwgZmFs
c2UsIHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfQogICAgIH07CiB9CiAKQEAgLTg0
LDcgKzg0LDEwIEBAIHZvaWQgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29k
ZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBlbmFibGVSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOwogICAgIGVuY29kZXIgPDwgcmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJlc291cmNlOwogCi0gICAgZW5jb2RlciA8PCBsb2Nh
bFN0b3JhZ2VEaXJlY3RvcnkgPDwgIGxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRs
ZTsKKyAgICBlbmNvZGVyIDw8IGxvY2FsU3RvcmFnZURpcmVjdG9yeSA8PCBsb2NhbFN0b3JhZ2VE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisKKyAgICBlbmNvZGVyIDw8IGRldmljZU1hbmFnZW1l
bnRSZXN0cmljdGlvbnNFbmFibGVkOworICAgIGVuY29kZXIgPDwgYWxsTG9hZHNCbG9ja2VkQnlE
ZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzsKIH0KIAogT3B0aW9uYWw8TmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpAQCAtMjA4LDYgKzIxMSwxNiBA
QCBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnM6OmRlYwogICAgIGlmICghbG9jYWxTdG9yYWdlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCisgICAgT3B0
aW9uYWw8Ym9vbD4gZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQ7CisgICAgZGVj
b2RlciA+PiBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDsKKyAgICBpZiAoIWRl
dmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4gYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5h
Z2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzsKKyAgICBkZWNvZGVyID4+IGFsbExvYWRzQmxv
Y2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rpbmc7CisgICAgaWYgKCFh
bGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAgcmV0dXJuIHt7CiAgICAgICAgIHNl
c3Npb25JRAogICAgICAgICAsIFdURk1vdmUoKmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcikKQEAg
LTIzNSw2ICsyNDgsOCBAQCBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlYwogICAgICAgICAsIFdURk1v
dmUoKmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3MpCiAgICAgICAgICwgV1RGTW92ZSgqc2hv
dWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcykKICAgICAgICAgLCBX
VEZNb3ZlKCplbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKQorICAgICAgICAs
IFdURk1vdmUoKmRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKQorICAgICAgICAs
IFdURk1vdmUoKmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0Zv
clRlc3RpbmcpCiAgICAgICAgICwgV1RGTW92ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVh
bFByZXZhbGVudFJlc291cmNlKQogICAgICAgICAsIFdURk1vdmUoKmxvY2FsU3RvcmFnZURpcmVj
dG9yeSkKICAgICAgICAgLCBXVEZNb3ZlKCpsb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNmZjMDdhZWQyNGI0MGE2
N2RhZjRjMTc2ZTRmN2RiZjE1YjBiNzBjNS4uNjU1OTk0N2YwMGRiNTc2ZmE0MTg0YTU2OTc1ODZh
M2Q1YWQyODAyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtODYsNiArODYs
OCBAQCBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wg
ZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcyB7IGZhbHNlIH07CiAgICAgYm9vbCBzaG91bGRJ
bmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHsgdHJ1ZSB9OwogICAgIGJv
b2wgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSB7IGZhbHNlIH07CisgICAg
Ym9vbCBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCB7IGZhbHNlIH07CisgICAg
Ym9vbCBhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0
aW5nIHsgZmFsc2UgfTsKICAgICBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UgeyB9OwogCiAgICAgU3RyaW5nIGxv
Y2FsU3RvcmFnZURpcmVjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUGluZ0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9h
ZC5jcHAKaW5kZXggMjFiYzdhNGU5YjIzZTIyNzE1MWQwMTBlNDk1NTRkOWNjYzVmNGIyZS4uZmU4
ZjAzYWJmOTlkYmNkZGFlZTBkYjJlNTZhMmMyYTczYzAxM2FjNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKQEAgLTIwMCw2ICsyMDAsMTIgQEAgdm9pZCBQaW5n
TG9hZDo6Y2Fubm90U2hvd1VSTCgpCiAgICAgZGlkRmluaXNoKGNhbm5vdFNob3dVUkxFcnJvcihS
ZXNvdXJjZVJlcXVlc3QgeyBjdXJyZW50VVJMKCkgfSkpOwogfQogCit2b2lkIFBpbmdMb2FkOjp3
YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMoKQoreworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
Indhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucyIpOworICAgIGRpZEZpbmlzaCh3YXNCbG9ja2VkQnlS
ZXN0cmljdGlvbnNFcnJvcihSZXNvdXJjZVJlcXVlc3QgeyBjdXJyZW50VVJMKCkgfSkpOworfQor
CiB2b2lkIFBpbmdMb2FkOjp0aW1lb3V0VGltZXJGaXJlZCgpCiB7CiAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgidGltZW91dFRpbWVyRmlyZWQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUGluZ0xvYWQuaAppbmRleCBjN2UxMmJiMTMwZDA0OWM1ZDBhNTk3YzAxZmU1YmZmYzhiMjIx
YmY5Li41MDU5MmI3NTI5OGUyZGQzNTIxY2NlNjgwMDkwNWZiOGFhZjVjYjFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5oCkBAIC01OCw2ICs1OCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5dGVzU2VudCwgdWludDY0X3Qg
dG90YWxCeXRlc0V4cGVjdGVkVG9TZW5kKSBmaW5hbDsKICAgICB2b2lkIHdhc0Jsb2NrZWQoKSBm
aW5hbDsKICAgICB2b2lkIGNhbm5vdFNob3dVUkwoKSBmaW5hbDsKKyAgICB2b2lkIHdhc0Jsb2Nr
ZWRCeVJlc3RyaWN0aW9ucygpIGZpbmFsOwogICAgIHZvaWQgdGltZW91dFRpbWVyRmlyZWQoKTsK
IAogICAgIHZvaWQgbG9hZFJlcXVlc3QoTmV0d29ya1Byb2Nlc3MmLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL0RldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9EZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzgzN2E2
YmFmODNmOGM1NDc0MWQ3ZjJhY2QwMmM2OGJiMDc5Zjg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9EZXZpY2VNYW5hZ2VtZW50U29mdExpbmsu
aApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBIQVZF
KERFVklDRV9NQU5BR0VNRU5UKQorCisjaW1wb3J0ICJEZXZpY2VNYW5hZ2VtZW50U1BJLmgiCisj
aW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVB
REVSKFdlYktpdCwgRGV2aWNlTWFuYWdlbWVudCk7CitTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURF
UihXZWJLaXQsIERNRldlYnNpdGVQb2xpY3lNb25pdG9yKTsKKworI2VuZGlmIC8vIEhBVkUoREVW
SUNFX01BTkFHRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL0RldmljZU1hbmFnZW1lbnRTb2Z0TGluay5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5
N2M1ZTBkOTA3MWI3ZTc3NDYwMjFmYTg5MzhmZTI1MTIxZTgwZTAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL0RldmljZU1hbmFnZW1lbnRTb2Z0
TGluay5tbQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgi
CisKKyNpZiBIQVZFKERFVklDRV9NQU5BR0VNRU5UKQorCisjaW1wb3J0ICJEZXZpY2VNYW5hZ2Vt
ZW50U1BJLmgiCisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX1BSSVZB
VEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViS2l0LCBEZXZpY2VNYW5hZ2VtZW50KTsKK1NPRlRf
TElOS19DTEFTU19GT1JfU09VUkNFKFdlYktpdCwgRGV2aWNlTWFuYWdlbWVudCwgRE1GV2Vic2l0
ZVBvbGljeU1vbml0b3IpOworCisjZW5kaWYgLy8gSEFWRShERVZJQ0VfTUFOQUdFTUVOVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFU
YXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0Rh
dGFUYXNrQ29jb2EuaAppbmRleCAyZGQwZTdkNDZiYzcxOWU5NmZhMTUwNzRmZWQwMGIxYzg4NjY1
NjU4Li43NzFiM2FiNTkxMTNlMzUxOTdiYjllZDI4NGQwZWNiMGUyMzBjNmUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29h
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRh
c2tDb2NvYS5oCkBAIC00Miw5ICs0Miw5IEBAIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBj
bGFzcyBOZXR3b3JrRGF0YVRhc2tDb2NvYSBmaW5hbCA6IHB1YmxpYyBOZXR3b3JrRGF0YVRhc2sg
ewogICAgIGZyaWVuZCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24s
IE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25p
ZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRF
bmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNG
b3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBu
ZXR3b3JrQWN0aXZpdHlUcmFja2VyKQorICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBj
cmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xp
ZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIHVpbnQ2NF90IGZy
YW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRT
bmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGlu
Z1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFBy
ZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29s
IGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFs
PE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9u
LCBjbGllbnQsIHJlcXVlc3QsIGZyYW1lSUQsIHBhZ2VJRCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIHNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNvbm5lY3RPbmx5
LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgbmV0d29ya0FjdGl2aXR5VHJhY2tl
cikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2tDb2NvYShz
ZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIGZyYW1lSUQsIHBhZ2VJRCwgc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYs
IHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNvbm5l
Y3RPbmx5LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgZGF0YVRhc2tJc0Zvck1h
aW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgbmV0d29ya0FjdGl2aXR5VHJhY2tlcikp
OwogICAgIH0KIAogICAgIH5OZXR3b3JrRGF0YVRhc2tDb2NvYSgpOwpAQCAtNzUsNyArNzUsNyBA
QCBwdWJsaWM6CiAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHBy
aXZhdGU6Ci0gICAgTmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3Jr
RGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRf
dCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2ViQ29yZTo6Q29u
dGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRU
UFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5G
cmFtZU5hdmlnYXRpb24sIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+KTsKKyAgICBO
ZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVu
dCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIHVpbnQ2NF90IGZyYW1lSUQsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwg
V2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdT
bmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0LCBQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlv
biwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBP
cHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPik7CiAKICAgICBib29sIHRyeVBhc3N3b3Jk
QmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7CiAgICAgdm9pZCBhcHBseVNuaWZmaW5n
UG9saWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVkZWQoX19zdHJvbmcgTlNVUkxS
ZXF1ZXN0KiYsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmKTsKQEAgLTk4LDYgKzk4LDggQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGJvb2wgbV9oYXNCZWVuU2V0VG9Vc2VTdGF0ZWxlc3ND
b29raWVTdG9yYWdlIHsgZmFsc2UgfTsKICNlbmRpZgorCisgICAgYm9vbCBtX2lzRm9yTWFpblJl
c291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lIHsgZmFsc2UgfTsKIH07CiAKIFdlYkNvcmU6OkNy
ZWRlbnRpYWwgc2VydmVyVHJ1c3RDcmVkZW50aWFsKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQppbmRleCAyOGEwNWU4MGRiNjg1YWY2
N2IyODRjODQyMzE3MTk0Zjk3ZTg3ZTNlLi5kOWE5YjgwYjAyMDlhMzI1ZGYzMWI4MTA2NGU5NDA2
ZjRhNzBjYTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lt
cG9ydCAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbi5oIgogI2ltcG9ydCAiQXV0
aGVudGljYXRpb25NYW5hZ2VyLmgiCisjaW1wb3J0ICJEZXZpY2VNYW5hZ2VtZW50U1BJLmgiCiAj
aW1wb3J0ICJEb3dubG9hZC5oIgogI2ltcG9ydCAiRG93bmxvYWRQcm94eU1lc3NhZ2VzLmgiCiAj
aW1wb3J0ICJMb2dnaW5nLmgiCkBAIC0zOSw2ICs0MCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL05v
dEltcGxlbWVudGVkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2lt
cG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KKyNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5o
PgogI2ltcG9ydCA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+
CiAjaW1wb3J0IDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgpAQCAtMTYwLDEwICsxNjIsMTEgQEAg
c3RhdGljIHZvaWQgdXBkYXRlVGFza1dpdGhGaXJzdFBhcnR5Rm9yU2FtZVNpdGVDb29raWVzKE5T
VVJMU2Vzc2lvbkRhdGFUYXNrKiB0YXMKICNlbmRpZgogfQogCi1OZXR3b3JrRGF0YVRhc2tDb2Nv
YTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtE
YXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3RXaXRoQ3JlZGVudGlhbHMsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250
ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENv
bnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFU
YXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFj
a2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQorTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdv
cmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tD
bGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0
aENyZWRlbnRpYWxzLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZm
LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9y
TWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdh
dGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3Jr
QWN0aXZpdHlUcmFja2VyKQogICAgIDogTmV0d29ya0RhdGFUYXNrKHNlc3Npb24sIGNsaWVudCwg
cmVxdWVzdFdpdGhDcmVkZW50aWFscywgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVO
YXZpZ2F0aW9uKQogICAgICwgbV9mcmFtZUlEKGZyYW1lSUQpCiAgICAgLCBtX3BhZ2VJRChwYWdl
SUQpCisgICAgLCBtX2lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lKGRhdGFU
YXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUpCiB7CiAgICAgaWYgKG1f
c2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAgICAgICByZXR1cm47CkBAIC00
ODksNiArNDkyLDM2IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQ29jb2E6OnJlc3VtZSgpCiB7CiAg
ICAgaWYgKG1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAgICAgICBtX2Zh
aWx1cmVUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKKworICAgIGF1dG8mIGNvY29hU2Vzc2lvbiA9
IHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EmPihtX3Nlc3Npb24uZ2V0KCkpOworICAg
IGlmIChjb2NvYVNlc3Npb24uZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoKSAm
JiBtX2lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lKSB7CisgICAgICAgIGF1
dG8gZGlkRGV0ZXJtaW5lRGV2aWNlUmVzdHJpY3Rpb25Qb2xpY3lGb3JVUkwgPSBtYWtlQmxvY2tQ
dHIoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oQk9PTCBpc0Jsb2NrZWQp
IHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgaXNCbG9ja2VkXSB7CisgICAgICAgICAgICAgICAgaWYgKGlzQmxvY2tl
ZCkgeworICAgICAgICAgICAgICAgICAgICBzY2hlZHVsZUZhaWx1cmUoUmVzdHJpY3RlZFVSTEZh
aWx1cmUpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgICAgW21fdGFzayByZXN1bWVdOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0pOworCisjaWYgSEFWRShERVZJQ0VfTUFOQUdFTUVOVCkKKyAgICAgICAgaWYgKGNvY29h
U2Vzc2lvbi5hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JU
ZXN0aW5nKCkpCisgICAgICAgICAgICBkaWREZXRlcm1pbmVEZXZpY2VSZXN0cmljdGlvblBvbGlj
eUZvclVSTCh0cnVlKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBSZXRhaW5QdHI8TlNV
Ukw+IHVybFRvQ2hlY2sgPSBbbV90YXNrIGN1cnJlbnRSZXF1ZXN0XS5VUkw7CisgICAgICAgICAg
ICBbY29jb2FTZXNzaW9uLmRldmljZU1hbmFnZW1lbnRQb2xpY3lNb25pdG9yKCkgcmVxdWVzdFBv
bGljaWVzRm9yV2Vic2l0ZXM6QFsgdXJsVG9DaGVjay5nZXQoKSBdIGNvbXBsZXRpb25IYW5kbGVy
Om1ha2VCbG9ja1B0cihbZGlkRGV0ZXJtaW5lRGV2aWNlUmVzdHJpY3Rpb25Qb2xpY3lGb3JVUkws
IHVybFRvQ2hlY2tdIChOU0RpY3Rpb25hcnk8TlNVUkwgKiwgTlNOdW1iZXIgKj4gKnBvbGljaWVz
LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICAgICAgICAgIGJvb2wgaXNCbG9ja2VkID0gZXJy
b3IgfHwgcG9saWNpZXNbdXJsVG9DaGVjay5nZXQoKV0uaW50ZWdlclZhbHVlICE9IERNRlBvbGlj
eU9LOworICAgICAgICAgICAgICAgIGRpZERldGVybWluZURldmljZVJlc3RyaWN0aW9uUG9saWN5
Rm9yVVJMKGlzQmxvY2tlZCk7CisgICAgICAgICAgICB9KS5nZXQoKV07CisgICAgICAgIH0KKyNl
bHNlCisgICAgICAgIGRpZERldGVybWluZURldmljZVJlc3RyaWN0aW9uUG9saWN5Rm9yVVJMKGNv
Y29hU2Vzc2lvbi5hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNG
b3JUZXN0aW5nKCkpOworI2VuZGlmCisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBbbV90
YXNrIHJlc3VtZV07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKaW5kZXggM2QxYTQ5ZjI3MzI1ZjQ5Njc1
NDEyNTQwMDU3ZWYxMTA2NjIxNDBiMi4uMmMzMWQ4Nzg0OTliY2VjYTE5MTEyYWYzYTYxYTY2OTdi
MGEyMjkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrU2Vzc2lvbkNvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKK09CSkNfQ0xBU1MgRE1GV2Vic2l0ZVBvbGljeU1vbml0b3I7CiBPQkpDX0NMQVNTIE5T
RGF0YTsKIE9CSkNfQ0xBU1MgTlNVUkxTZXNzaW9uOwogT0JKQ19DTEFTUyBOU1VSTFNlc3Npb25E
b3dubG9hZFRhc2s7CkBAIC02OSw2ICs3MCwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvbnRp
bnVlRGlkUmVjZWl2ZUNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYsIE5ldHdvcmtEYXRhVGFza0NvY29hOjpUYXNrSWRlbnRpZmllciwgTmV0d29ya0RhdGFU
YXNrQ29jb2EqLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYktpdDo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2VEaXNwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYpPiYmKTsKIAor
ICAgIGJvb2wgZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkOyB9CisgICAgYm9vbCBh
bGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKCkg
Y29uc3QgeyByZXR1cm4gbV9hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmlj
dGlvbnNGb3JUZXN0aW5nOyB9CisgICAgRE1GV2Vic2l0ZVBvbGljeU1vbml0b3IgKmRldmljZU1h
bmFnZW1lbnRQb2xpY3lNb25pdG9yKCk7CisKIHByaXZhdGU6CiAgICAgTmV0d29ya1Nlc3Npb25D
b2NvYShOZXR3b3JrUHJvY2VzcyYsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYp
OwogCkBAIC05Myw2ICs5OCw5IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fc291cmNlQXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyOwogICAgIFN0cmluZyBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vj
b25kYXJ5SWRlbnRpZmllcjsKICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBtX3Byb3h5
Q29uZmlndXJhdGlvbjsKKyAgICBSZXRhaW5QdHI8RE1GV2Vic2l0ZVBvbGljeU1vbml0b3I+IG1f
ZGV2aWNlTWFuYWdlbWVudFBvbGljeU1vbml0b3I7CisgICAgYm9vbCBtX2RldmljZU1hbmFnZW1l
bnRSZXN0cmljdGlvbnNFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fYWxsTG9hZHNCbG9j
a2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX3Nob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uIHsgZmFsc2UgfTsKICAgICBTZWNv
bmRzIG1fbG9hZFRocm90dGxlTGF0ZW5jeTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggYzRj
YTM5MWRmN2ViODE5YTY4NmRiYmNmMDFmYmNkNjQ3Y2VlNzFkYi4uOWY4Y2YwZWMyMThmYTliZGNi
NzIxYmQyYzY1OWI1ZjA0YWUyYWQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtNTEsNiArNTEs
NyBAQAogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvT2JqQ1J1
bnRpbWVFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CisjaW1wb3J0
IDx3dGYvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9VUkwuaD4KICNpbXBvcnQgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCkBAIC01OCw2ICs1OSw4IEBACiAjaW5jbHVkZSA8V2ViS2l0QWRk
aXRpb25zL05ldHdvcmtTZXNzaW9uQ29jb2FBZGRpdGlvbnMuaD4KICNlbmRpZgogCisjaW1wb3J0
ICJEZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaCIKKwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
IAogQ0ZTdHJpbmdSZWYgY29uc3QgV2ViS2l0MkhUVFBQcm94eURlZmF1bHRzS2V5ID0gc3RhdGlj
X2Nhc3Q8Q0ZTdHJpbmdSZWY+KEAiV2ViS2l0MkhUVFBQcm94eSIpOwpAQCAtNzEzLDcgKzcxNiw3
IEBAIC0gKHZvaWQpVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiBkYXRhVGFzazoo
TlNVUkxTZXNzaW9uRGF0YVRhc2sgKilkYXRhCiAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAgICAgICAgIAogICAgICAgICAvLyBBdm9pZCBNSU1FIHR5cGUgc25pZmZpbmcgaWYg
dGhlIHJlc3BvbnNlIGNvbWVzIGJhY2sgYXMgMzA0IE5vdCBNb2RpZmllZC4KLSAgICAgICAgaW50
IHN0YXR1c0NvZGUgPSBbcmVzcG9uc2UgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzdGF0
dXNDb2RlKV0gPyBbKGlkKXJlc3BvbnNlIHN0YXR1c0NvZGVdIDogMDsKKyAgICAgICAgaW50IHN0
YXR1c0NvZGUgPSBbcmVzcG9uc2UgaXNLaW5kT2ZDbGFzczpOU0hUVFBVUkxSZXNwb25zZS5jbGFz
c10gPyBbKE5TSFRUUFVSTFJlc3BvbnNlICopcmVzcG9uc2Ugc3RhdHVzQ29kZV0gOiAwOwogICAg
ICAgICBpZiAoc3RhdHVzQ29kZSAhPSAzMDQpIHsKICAgICAgICAgICAgIGJvb2wgaXNNYWluUmVz
b3VyY2VMb2FkID0gbmV0d29ya0RhdGFUYXNrLT5maXJzdFJlcXVlc3QoKS5yZXF1ZXN0ZXIoKSA9
PSBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbjsKICAgICAgICAgICAg
IFdlYkNvcmU6OmFkanVzdE1JTUVUeXBlSWZOZWNlc3NhcnkocmVzcG9uc2UuX0NGVVJMUmVzcG9u
c2UsIGlzTWFpblJlc291cmNlTG9hZCk7CkBAIC05ODEsNiArOTg0LDkgQEAgTmV0d29ya1Nlc3Np
b25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nl
c3MsIE5ldHdvcmsKICAgICBtX3N0YXRlbGVzc1Nlc3Npb25EZWxlZ2F0ZSA9IGFkb3B0TlMoW1tX
S05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoTmV0d29ya1Nlc3Npb246KnRo
aXMgd2l0aENyZWRlbnRpYWxzOmZhbHNlXSk7CiAgICAgbV9zdGF0ZWxlc3NTZXNzaW9uID0gW05T
VVJMU2Vzc2lvbiBzZXNzaW9uV2l0aENvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbiBkZWxlZ2F0
ZTpzdGF0aWNfY2FzdDxpZD4obV9zdGF0ZWxlc3NTZXNzaW9uRGVsZWdhdGUuZ2V0KCkpIGRlbGVn
YXRlUXVldWU6W05TT3BlcmF0aW9uUXVldWUgbWFpblF1ZXVlXV07CiAKKyAgICBtX2RldmljZU1h
bmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkID0gcGFyYW1ldGVycy5kZXZpY2VNYW5hZ2VtZW50
UmVzdHJpY3Rpb25zRW5hYmxlZDsKKyAgICBtX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdl
bWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcgPSBwYXJhbWV0ZXJzLmFsbExvYWRzQmxvY2tlZEJ5
RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rpbmc7CisKICNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVj
dG9yeSA9IHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsKICAgICBt
X3Nob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBwYXJhbWV0
ZXJzLnNob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MgPyBTaG91
bGRJbmNsdWRlTG9jYWxob3N0OjpZZXMgOiBTaG91bGRJbmNsdWRlTG9jYWxob3N0OjpObzsKQEAg
LTExNjcsNCArMTE3MywxNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ29jb2E6OmNvbnRpbnVlRGlk
UmVjZWl2ZUNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdAogICAgIG5ldHdvcmtE
YXRhVGFzay0+ZGlkUmVjZWl2ZUNoYWxsZW5nZShXVEZNb3ZlKGF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKSwgV1RGTW92ZShjaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlcikpOwogfQogCitETUZXZWJz
aXRlUG9saWN5TW9uaXRvciAqTmV0d29ya1Nlc3Npb25Db2NvYTo6ZGV2aWNlTWFuYWdlbWVudFBv
bGljeU1vbml0b3IoKQoreworI2lmIEhBVkUoREVWSUNFX01BTkFHRU1FTlQpCisgICAgQVNTRVJU
KG1fZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQpOworICAgIGlmICghbV9kZXZp
Y2VNYW5hZ2VtZW50UG9saWN5TW9uaXRvcikKKyAgICAgICAgbV9kZXZpY2VNYW5hZ2VtZW50UG9s
aWN5TW9uaXRvciA9IGFkb3B0TlMoW2FsbG9jRE1GV2Vic2l0ZVBvbGljeU1vbml0b3JJbnN0YW5j
ZSgpIGluaXRXaXRoUG9saWN5Q2hhbmdlSGFuZGxlcjpuaWxdKTsKKyAgICByZXR1cm4gbV9kZXZp
Y2VNYW5hZ2VtZW50UG9saWN5TW9uaXRvci5nZXQoKTsKKyNlbHNlCisgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbmlsOworI2VuZGlmCit9CisKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0RldmljZU1hbmFnZW1lbnRT
UEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0RldmljZU1hbmFnZW1lbnRT
UEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hMWNmZDViNWU1ZTkwMTE3NzA2YTc4NTgxNTJjODljMmIzNTQ1ZDE2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvRGV2
aWNlTWFuYWdlbWVudFNQSS5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEhBVkUoREVWSUNFX01BTkFHRU1FTlQpCisKKyNpZiBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQorCisjaW1wb3J0IDxEZXZpY2VNYW5hZ2VtZW50L0RldmljZU1hbmFnZW1lbnQu
aD4KKworI2Vsc2UKKworQGludGVyZmFjZSBETUZXZWJzaXRlUG9saWN5TW9uaXRvciA6IE5TT2Jq
ZWN0CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBvbGljeUNoYW5nZUhhbmRsZXI6KHZvaWQo
Xikodm9pZCkpY2hhbmdlSGFuZGxlcjsKKy0gKHZvaWQpcmVxdWVzdFBvbGljaWVzRm9yV2Vic2l0
ZXM6KE5TQXJyYXk8TlNVUkwgKj4gKil3ZWJzaXRlVVJMcyBjb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCAoXikoTlNEaWN0aW9uYXJ5PE5TVVJMICosIE5TTnVtYmVyICo+ICpwb2xpY2llcywgTlNFcnJv
ciAqZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyOworCitAZW5kCisKK3R5cGVkZWYgTlNfRU5VTShO
U0ludGVnZXIsIERNRlBvbGljeSkgeworICAgIERNRlBvbGljeU9LID0gMCwKKyAgICBETUZQb2xp
Y3lCbG9ja2VkID0gNCwKK307CisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQor
CisjZW5kaWYgLy8gSEFWRShERVZJQ0VfTUFOQUdFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5OZXR3
b3JraW5nLnNiIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9j
b20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IKaW5kZXggZGE2MGIxYmJmZTJjOTYwYzBhYjg4
ZTMyYjgyYTAyZDU3MDA3MDUyYS4uODA3MTZlYzY0MzQ4YmZiNDQ4ZWRlNjc2MmQ0YzBkZDljMTlj
ZGY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVz
L2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IKKysrIGIvU291cmNlL1dlYktpdC9S
ZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcu
c2IKQEAgLTgyLDYgKzgyLDExIEBACiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUucGFzc2Qu
aW4tYXBwLXBheW1lbnQiKQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnBhc3NkLmxpYnJh
cnkiKSkKIAorKGFsbG93IG1hY2gtbG9va3VwCisgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUu
ZG1kLnBvbGljeSIpCisgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuc2lyaS5jb250ZXh0LnNl
cnZpY2UiKQorICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmN0Y2F0ZWdvcmllcy5zZXJ2aWNl
IikpCisKIChkZW55IGZpbGUtd3JpdGUtY3JlYXRlCiAgICAgICAgKHZub2RlLXR5cGUgU1lNTElO
SykpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElFcnJvci5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUVycm9yLmgKaW5kZXggNDQyZDY3NmVkMjc0OTlm
MGYyYTJiZDRjZDU0NzJkNzQxMzlkZDNkZC4uODczNjdjZDI0MzE1OGYxMDdkY2MzYjAzYWIyYTgw
NmI3OWQwZDA3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUVycm9y
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUVycm9yLmgKQEAgLTY1LDcgKzY1
LDggQEAgcHVibGljOgogICAgICAgICBGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdl
ID0gMTAyLAogICAgICAgICBDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCA9IDEwMywKICAgICAgICAg
RnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIgPSAxMDQsCi0gICAgICAgIEZyYW1lTG9h
ZEJsb2NrZWRCeUNvbnRlbnRGaWx0ZXIgPSAxMDUKKyAgICAgICAgRnJhbWVMb2FkQmxvY2tlZEJ5
Q29udGVudEZpbHRlciA9IDEwNSwKKyAgICAgICAgRnJhbWVMb2FkQmxvY2tlZEJ5UmVzdHJpY3Rp
b25zID0gMTA2LAogICAgIH07CiAgICAgc3RhdGljIGNvbnN0IFdURjo6U3RyaW5nJiB3ZWJLaXRQ
b2xpY3lFcnJvckRvbWFpbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvYy9XS0Vycm9yUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLRXJyb3JS
ZWYuY3BwCmluZGV4IDQ3OTNhNTdmZDJmMTU0ZmVjNzFkOTg0Yjc4ZmI0OGFkODQ5MjkxMmUuLmU2
Y2U2ZDk0YTEzNzgyNjkwODk2ZWM3YjMwNzIyMzQwMGIzZmUzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYuY3BwCkBAIC01OCw2ICs1OCw4IEBAIGludCBXS0Vycm9y
R2V0RXJyb3JDb2RlKFdLRXJyb3JSZWYgZXJyb3JSZWYpCiAgICAgICAgIHJldHVybiBrV0tFcnJv
ckNvZGVDYW5ub3RVc2VSZXN0cmljdGVkUG9ydDsKICAgICBjYXNlIEFQSTo6RXJyb3I6OlBvbGlj
eTo6RnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEJsb2NrZXI6CiAgICAgICAgIHJldHVybiBrV0tF
cnJvckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50QmxvY2tlcjsKKyAgICBjYXNlIEFQSTo6
RXJyb3I6OlBvbGljeTo6RnJhbWVMb2FkQmxvY2tlZEJ5UmVzdHJpY3Rpb25zOgorICAgICAgICBy
ZXR1cm4ga1dLRXJyb3JDb2RlRnJhbWVMb2FkQmxvY2tlZEJ5UmVzdHJpY3Rpb25zOwogICAgIGNh
c2UgQVBJOjpFcnJvcjo6UG9saWN5OjpGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50RmlsdGVyOgog
ICAgICAgICByZXR1cm4ga1dLRXJyb3JDb2RlRnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEZpbHRl
cjsKICAgICBjYXNlIEFQSTo6RXJyb3I6OlBsdWdpbjo6Q2Fubm90RmluZFBsdWdJbjoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYuaAppbmRleCAwZDc2Mzg0ZDM0NGEwMTA1YTc3
OGE1ZTVkN2I3OGZjNDY4MzAzNjhkLi5lOTkwYzQ0MjlkNDcyMTY5Mzg1MGE5MDU3NzljZjg2YzQx
NjdiY2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Vycm9yUmVm
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tFcnJvclJlZi5oCkBAIC0zOSw2
ICszOSw3IEBAIGVudW0gewogICAgIGtXS0Vycm9yQ29kZUNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0
ID0gICAgICAgICAgICAgICAgICAgICAgICAxMDMsCiAgICAga1dLRXJyb3JDb2RlRnJhbWVMb2Fk
QmxvY2tlZEJ5Q29udGVudEJsb2NrZXIgPSAgICAgICAgICAgICAgIDEwNCwKICAgICBrV0tFcnJv
ckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50RmlsdGVyID0gICAgICAgICAgICAgICAgMTA1
LAorICAgIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEJsb2NrZWRCeVJlc3RyaWN0aW9ucyA9ICAgICAg
ICAgICAgICAgICAxMDYsCiAgICAga1dLRXJyb3JDb2RlQ2Fubm90RmluZFBsdWdJbiA9ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDIwMCwKICAgICBrV0tFcnJvckNvZGVDYW5ub3RMb2Fk
UGx1Z0luID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAxLAogICAgIGtXS0Vycm9y
Q29kZUphdmFVbmF2YWlsYWJsZSA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMDIs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFcnJvcnMuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViRXJyb3JzLmNwcAppbmRleCBiNmRjNTBjZWI1NWNhZjY1YmJlMTlh
ZjZlMzI3ZDUxMjAwOWEzZmE4Li42Y2ZhMjVjNjZhZGQxN2FkN2IzMTRlZWFiNzVlZmI0MWNlN2M1
MjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFcnJvcnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkVycm9ycy5jcHAKQEAgLTUyLDYgKzUyLDExIEBAIFJl
c291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKICAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRQb2xpY3lF
cnJvckRvbWFpbigpLCBBUEk6OkVycm9yOjpQb2xpY3k6OkNhbm5vdFNob3dVUkwsIHJlcXVlc3Qu
dXJsKCksIFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwgY2Fu4oCZdCBiZSBzaG93biIsICJXZWJLaXRF
cnJvckNhbm5vdFNob3dVUkwgZGVzY3JpcHRpb24iKSk7CiB9CiAKK1Jlc291cmNlRXJyb3Igd2Fz
QmxvY2tlZEJ5UmVzdHJpY3Rpb25zRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdFBvbGljeUVy
cm9yRG9tYWluKCksIEFQSTo6RXJyb3I6OlBvbGljeTo6RnJhbWVMb2FkQmxvY2tlZEJ5UmVzdHJp
Y3Rpb25zLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIHdhcyBibG9ja2Vk
IGJ5IGRldmljZSByZXN0cmljdGlvbnMiLCAiV2ViS2l0RXJyb3JGcmFtZUxvYWRCbG9ja2VkQnlS
ZXN0cmljdGlvbnMgZGVzY3JpcHRpb24iKSk7Cit9CisKIFJlc291cmNlRXJyb3IgaW50ZXJydXB0
ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7
CiAgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0UG9saWN5RXJyb3JE
b21haW4oKSwgQVBJOjpFcnJvcjo6UG9saWN5OjpGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5
Q2hhbmdlLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJGcmFtZSBsb2FkIGludGVycnVw
dGVkIiwgIldlYktpdEVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSBkZXNj
cmlwdGlvbiIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkVycm9ycy5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXJyb3JzLmgKaW5kZXggN2Q2MDBjNmQyM2I1NWRj
YzM5NjMwOTkwNDA3Y2U3NDQ0NDZjYjQ4Ni4uOWYwYTAwMmI2Y2IxYTYxNTJhMWQ4ODM3YWVhOWI0
YzJmOGEyYWIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXJyb3JzLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXJyb3JzLmgKQEAgLTM5LDYgKzM5LDcgQEAg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmKTsKIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9j
a2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYp
OwogV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CitXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHdhc0Jsb2NrZWRC
eVJlc3RyaWN0aW9uc0Vycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBmYWls
ZWRDdXN0b21Qcm90b2NvbFN5bmNMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYp
OwogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBmNzRiMmM1ZGI5N2Yx
MmQ4MjUwNjIwNmU3ODk2ZWNiYjI5NjBkZjVmLi45NDk5NzQwMjQ4MDBmYjIzN2Y1M2NhZjhkZjhk
YzFiMmE2OThjNzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
V2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVdlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xNDUsNiArMTQ1LDggQEAgUmVmPFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHREYXRh
U3RvcmVDb24KIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uOjpjcmVhdGUoKTsKIAorICAgIGNvbmZpZ3VyYXRpb24tPnNldFBl
cnNpc3RlbnQodHJ1ZSk7CisKICAgICBjb25maWd1cmF0aW9uLT5zZXRBcHBsaWNhdGlvbkNhY2hl
RGlyZWN0b3J5KGRlZmF1bHRBcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KCkpOwogICAgIGNvbmZp
Z3VyYXRpb24tPnNldEFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUoIkZp
bGVzIik7CiAgICAgY29uZmlndXJhdGlvbi0+c2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5KGRlZmF1
bHRDYWNoZVN0b3JhZ2VEaXJlY3RvcnkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0Vycm9yUHJpdmF0ZS5oCmluZGV4IGY5YzEyZDIzY2U2N2RhMTUxYmY2
OWJjZTJlNDYzMmNmNjM0MjIzY2UuLmI1ZDRjM2RjMTViMzVhNTA2MjUwOGQ4MDQ2MDMzM2EyNWYw
OTllMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vy
cm9yUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vy
cm9yUHJpdmF0ZS5oCkBAIC0yOSw2ICsyOSw3IEBAIFdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0
IF9XS0xlZ2FjeUVycm9yRG9tYWluIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpCiAK
IHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0xlZ2FjeUVycm9yQ29kZSkgewogICAgIF9X
S0Vycm9yQ29kZUZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKSA9IDEwMiwKKyAgICBfV0tFcnJvckNvZGVGcmFt
ZUxvYWRCbG9ja2VkQnlSZXN0cmljdGlvbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKSA9IDEwNiwKICAgICBfV0tMZWdhY3lFcnJvclBsdWdJbldp
bGxIYW5kbGVMb2FkID0gMjA0LAogfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9z
KDguMykpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sLm1tCmluZGV4IDE2ODhhMGFjYTgxOTYwNDRlNjZmMmUxNDc1MTM2ZGE2ODVhMDc0
YjYuLmIwYWM3NmJlZjEyMjlkMGIzZjA3ZmU4NmY5NzFhYjMxYzYwNDYxYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC01
ODQsNyArNTg0LDcgQEAgLSAodm9pZClfc3ludGhlc2l6ZUFwcElzQmFja2dyb3VuZDooQk9PTCli
YWNrZ3JvdW5kCiAgICAgX3Byb2Nlc3NQb29sLT5zeW50aGVzaXplQXBwSXNCYWNrZ3JvdW5kKGJh
Y2tncm91bmQpOwogfQogCi0tICh2b2lkKV9zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNl
cnZpY2VXb3JrZXI6KEJPT0wpIGFsbG93cworLSAodm9pZClfc2V0QWxsb3dzQW55U1NMQ2VydGlm
aWNhdGVGb3JTZXJ2aWNlV29ya2VyOihCT09MKWFsbG93cwogewogI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKICAgICBfcHJvY2Vzc1Bvb2wtPnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9y
U2VydmljZVdvcmtlcihhbGxvd3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggMjYyOThlYmNlYzU3NzRl
MzQwNjYxZWE5ZmIxYTRiMjhlYTUwYTM0My4uM2RiMjZjMWQ5ODg4MjhkNjIxMmJlZmJiYTQ4NTA5
MGQ3MDE0Nzg2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC0yMjksMjIgKzIyOSwzNSBAQCAtIChpbnN0
YW5jZXR5cGUpX2luaXRXaXRoQ29uZmlndXJhdGlvbjooX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24gKiljb25maQogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAg
ICByZXR1cm4gbmlsOwogCi0gICAgYXV0byBjb25maWcgPSBBUEk6OldlYnNpdGVEYXRhU3RvcmU6
OmRlZmF1bHREYXRhU3RvcmVDb25maWd1cmF0aW9uKCk7Ci0KLSAgICBpZiAoY29uZmlndXJhdGlv
bi5fd2ViU3RvcmFnZURpcmVjdG9yeSkKLSAgICAgICAgY29uZmlnLT5zZXRMb2NhbFN0b3JhZ2VE
aXJlY3RvcnkoY29uZmlndXJhdGlvbi5fd2ViU3RvcmFnZURpcmVjdG9yeS5wYXRoKTsKLSAgICBp
ZiAoY29uZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkpCi0gICAgICAgIGNvbmZp
Zy0+c2V0V2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoY29uZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJh
c2VEaXJlY3RvcnkucGF0aCk7Ci0gICAgaWYgKGNvbmZpZ3VyYXRpb24uX2luZGV4ZWREQkRhdGFi
YXNlRGlyZWN0b3J5KQotICAgICAgICBjb25maWctPnNldEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0
b3J5KGNvbmZpZ3VyYXRpb24uX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5LnBhdGgpOwotICAg
IGlmIChjb25maWd1cmF0aW9uLl9jb29raWVTdG9yYWdlRmlsZSkKLSAgICAgICAgY29uZmlnLT5z
ZXRDb29raWVTdG9yYWdlRmlsZShjb25maWd1cmF0aW9uLl9jb29raWVTdG9yYWdlRmlsZS5wYXRo
KTsKLSAgICBpZiAoY29uZmlndXJhdGlvbi5fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9y
eSkKLSAgICAgICAgY29uZmlnLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KGNv
bmZpZ3VyYXRpb24uX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkucGF0aCk7Ci0gICAg
aWYgKGNvbmZpZ3VyYXRpb24uX2NhY2hlU3RvcmFnZURpcmVjdG9yeSkKLSAgICAgICAgY29uZmln
LT5zZXRDYWNoZVN0b3JhZ2VEaXJlY3RvcnkoY29uZmlndXJhdGlvbi5fY2FjaGVTdG9yYWdlRGly
ZWN0b3J5LnBhdGgpOwotICAgIGlmIChjb25maWd1cmF0aW9uLl9zZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uRGlyZWN0b3J5KQotICAgICAgICBjb25maWctPnNldFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25EaXJlY3RvcnkoY29uZmlndXJhdGlvbi5fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRp
cmVjdG9yeS5wYXRoKTsKKyAgICBhdXRvIGNvbmZpZyA9IGNvbmZpZ3VyYXRpb24uaXNQZXJzaXN0
ZW50ID8gQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0RGF0YVN0b3JlQ29uZmlndXJhdGlv
bigpIDogV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6Y3JlYXRlKCk7CisK
KyAgICBSRUxFQVNFX0FTU0VSVChjb25maWctPmlzUGVyc2lzdGVudCgpID09IGNvbmZpZ3VyYXRp
b24uaXNQZXJzaXN0ZW50KTsKKworICAgIGlmIChjb25maWd1cmF0aW9uLmlzUGVyc2lzdGVudCkg
eworICAgICAgICBpZiAoY29uZmlndXJhdGlvbi5fd2ViU3RvcmFnZURpcmVjdG9yeSkKKyAgICAg
ICAgICAgIGNvbmZpZy0+c2V0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uX3dl
YlN0b3JhZ2VEaXJlY3RvcnkucGF0aCk7CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uLl93ZWJT
UUxEYXRhYmFzZURpcmVjdG9yeSkKKyAgICAgICAgICAgIGNvbmZpZy0+c2V0V2ViU1FMRGF0YWJh
c2VEaXJlY3RvcnkoY29uZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkucGF0aCk7
CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uLl9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSkK
KyAgICAgICAgICAgIGNvbmZpZy0+c2V0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoY29uZmln
dXJhdGlvbi5faW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkucGF0aCk7CisgICAgICAgIGlmIChj
b25maWd1cmF0aW9uLl9jb29raWVTdG9yYWdlRmlsZSkKKyAgICAgICAgICAgIGNvbmZpZy0+c2V0
Q29va2llU3RvcmFnZUZpbGUoY29uZmlndXJhdGlvbi5fY29va2llU3RvcmFnZUZpbGUucGF0aCk7
CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uLl9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0
b3J5KQorICAgICAgICAgICAgY29uZmlnLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0
b3J5KGNvbmZpZ3VyYXRpb24uX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkucGF0aCk7
CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uLl9jYWNoZVN0b3JhZ2VEaXJlY3RvcnkpCisgICAg
ICAgICAgICBjb25maWctPnNldENhY2hlU3RvcmFnZURpcmVjdG9yeShjb25maWd1cmF0aW9uLl9j
YWNoZVN0b3JhZ2VEaXJlY3RvcnkucGF0aCk7CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uLl9z
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KQorICAgICAgICAgICAgY29uZmlnLT5z
ZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uX3NlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkucGF0aCk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoIWNvbmZpZ3VyYXRpb24uX3dlYlN0b3JhZ2VEaXJlY3RvcnkpOwor
ICAgICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJhc2VEaXJl
Y3RvcnkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5faW5kZXhlZERC
RGF0YWJhc2VEaXJlY3RvcnkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlv
bi5fY29va2llU3RvcmFnZUZpbGUpOworICAgICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJh
dGlvbi5fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSk7CisgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKCFjb25maWd1cmF0aW9uLl9jYWNoZVN0b3JhZ2VEaXJlY3RvcnkpOworICAgICAgICBS
RUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRp
cmVjdG9yeSk7CisgICAgfQorCiAgICAgaWYgKGNvbmZpZ3VyYXRpb24uc291cmNlQXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyKQogICAgICAgICBjb25maWctPnNldFNvdXJjZUFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllcihjb25maWd1cmF0aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllcik7CiAgICAgaWYgKGNvbmZpZ3VyYXRpb24uc291cmNlQXBwbGljYXRpb25TZWNvbmRh
cnlJZGVudGlmaWVyKQpAQCAtMjUzLDggKzI2NiwxMiBAQCAtIChpbnN0YW5jZXR5cGUpX2luaXRX
aXRoQ29uZmlndXJhdGlvbjooX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gKiljb25m
aQogICAgICAgICBjb25maWctPnNldEhUVFBQcm94eShjb25maWd1cmF0aW9uLmh0dHBQcm94eSk7
CiAgICAgaWYgKGNvbmZpZ3VyYXRpb24uaHR0cHNQcm94eSkKICAgICAgICAgY29uZmlnLT5zZXRI
VFRQU1Byb3h5KGNvbmZpZ3VyYXRpb24uaHR0cHNQcm94eSk7CisgICAgY29uZmlnLT5zZXREZXZp
Y2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZChjb25maWd1cmF0aW9uLmRldmljZU1hbmFn
ZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKTsKKyAgICBjb25maWctPnNldEFsbExvYWRzQmxvY2tl
ZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoY29uZmlndXJhdGlvbi5h
bGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKTsK
KworICAgIGF1dG8gc2Vzc2lvbklEID0gY29uZmlndXJhdGlvbi5pc1BlcnNpc3RlbnQgPyBQQUw6
OlNlc3Npb25JRDo6Z2VuZXJhdGVQZXJzaXN0ZW50U2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25J
RDo6Z2VuZXJhdGVFcGhlbWVyYWxTZXNzaW9uSUQoKTsKIAotICAgIEFQSTo6T2JqZWN0Ojpjb25z
dHJ1Y3RJbldyYXBwZXI8QVBJOjpXZWJzaXRlRGF0YVN0b3JlPihzZWxmLCBXVEZNb3ZlKGNvbmZp
ZyksIFBBTDo6U2Vzc2lvbklEOjpnZW5lcmF0ZVBlcnNpc3RlbnRTZXNzaW9uSUQoKSk7CisgICAg
QVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OldlYnNpdGVEYXRhU3RvcmU+KHNl
bGYsIFdURk1vdmUoY29uZmlnKSwgc2Vzc2lvbklEKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAppbmRleCA1OWY5ODRlNDg3YWRm
M2YwNDJkOTY3MzdhOWI0N2RhNzllMjJkM2IwLi4wNmE3MGVlNjRjMmQ4NzgyZWFmMzNhMjc5NWIx
Zjg1YzczNzk0MDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApA
QCAtMzIsNiArMzIsMjAgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIFdLX0NMQVNTX0FWQUlM
QUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSkKIEBpbnRlcmZhY2UgX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24gOiBOU09iamVjdAogCistIChpbnN0YW5jZXR5cGUpaW5pdDsgLy8g
Q3JlYXRlcyBhIHBlcnNpc3RlbnQgY29uZmlndXJhdGlvbi4KKy0gKGluc3RhbmNldHlwZSlpbml0
Tm9uUGVyc2lzdGVudENvbmZpZ3VyYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
LCBnZXR0ZXI9aXNQZXJzaXN0ZW50KSBCT09MIHBlcnNpc3RlbnQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKworLy8gVGhlc2UgcHJvcGVydGll
cyBhcHBseSB0byBib3RoIHBlcnNpc3RlbnQgYW5kIG5vbi1wZXJzaXN0ZW50IGRhdGEgc3RvcmVz
LgorQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNl
QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQu
NCksIGlvcygxMi4yKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5T
U3RyaW5nICpzb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBu
dWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhUVFBQcm94eTopIE5TVVJMICpodHRwUHJveHkgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhUVFBTUHJveHk6KSBOU1VSTCAqaHR0
cHNQcm94eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHBy
b3BlcnR5IChub25hdG9taWMpIEJPT0wgZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
KworLy8gVGhlc2UgcHJvcGVydGllcyBvbmx5IG1ha2Ugc2Vuc2UgZm9yIHBlcnNpc3RlbnQgZGF0
YSBzdG9yZXMsIGFuZCB3aWxsIHRocm93CisvLyBhbiBleGNlcHRpb24gaWYgc2V0IGZvciBub24t
cGVyc2lzdGVudCBzdG9yZXMuCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9z
ZXRXZWJTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKl93ZWJTdG9yYWdlRGlyZWN0b3J5OwogQHBy
b3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0SW5kZXhlZERCRGF0YWJhc2VEaXJl
Y3Rvcnk6KSBOU1VSTCAqX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5OwogQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0V2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk6KSBOU1VS
TCAqX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5OwpAQCAtMzksMTAgKzUzLDkgQEAgV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogQHByb3BlcnR5IChub25hdG9taWMs
IGNvcHksIHNldHRlcj1fc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTopIE5TVVJM
ICpfcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEzLjQpLCBpb3MoMTEuMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRl
cj1fc2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKl9jYWNoZVN0b3JhZ2VEaXJlY3Rv
cnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
aXJlY3Rvcnk6KSBOU1VSTCAqX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwot
QHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNlQXBw
bGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQu
NCksIGlvcygxMi4yKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNl
dHRlcj1zZXRIVFRQUHJveHk6KSBOU1VSTCAqaHR0cFByb3h5IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTQuNCksIGlvcygxMi4yKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUs
IGNvcHksIHNldHRlcj1zZXRIVFRQU1Byb3h5OikgTlNVUkwgKmh0dHBzUHJveHkgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKworLy8gVGVzdGluZyBvbmx5Lgor
QHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2Vt
ZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5tbQppbmRleCAyYTA1MTBlYzg5ZjVlYWI4MWM1M2YyN2UyZTBkMDAzNmY2
MGJhMDI5Li4yNjdhM2Y1NGMyNjRkMmZhOGI3NTNiZWY1MWQ2ZGViZjdjM2E1YjA2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCkBAIC0zNiw2ICszNiwzMyBAQCBz
dGF0aWMgdm9pZCBjaGVja1VSTEFyZ3VtZW50KE5TVVJMICp1cmwpCiAKIEBpbXBsZW1lbnRhdGlv
biBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbgogCistIChpbnN0YW5jZXR5cGUpaW5p
dAoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICBy
ZXR1cm4gbmlsOworCisgICAgX2NvbmZpZ3VyYXRpb24tPnNldFBlcnNpc3RlbnQodHJ1ZSk7CisK
KyAgICByZXR1cm4gc2VsZjsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXROb25QZXJzaXN0ZW50
Q29uZmlndXJhdGlvbgoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxm
KQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX2NvbmZpZ3VyYXRpb24tPnNldFBlcnNpc3Rl
bnQoZmFsc2UpOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKEJPT0wpaXNQZXJzaXN0ZW50
Cit7CisgICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT5pc1BlcnNpc3RlbnQoKTsKK30KKwogLSAo
TlNVUkwgKilfd2ViU3RvcmFnZURpcmVjdG9yeQogewogICAgIHJldHVybiBbTlNVUkwgZmlsZVVS
TFdpdGhQYXRoOl9jb25maWd1cmF0aW9uLT53ZWJTdG9yYWdlRGlyZWN0b3J5KCkgaXNEaXJlY3Rv
cnk6WUVTXTsKQEAgLTQzLDYgKzcwLDggQEAgLSAoTlNVUkwgKilfd2ViU3RvcmFnZURpcmVjdG9y
eQogCiAtICh2b2lkKV9zZXRXZWJTdG9yYWdlRGlyZWN0b3J5OihOU1VSTCAqKXVybAogeworICAg
IGlmICghX2NvbmZpZ3VyYXRpb24tPmlzUGVyc2lzdGVudCgpKQorICAgICAgICBbTlNFeGNlcHRp
b24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiQ2Fubm90IHNldCBf
d2ViU3RvcmFnZURpcmVjdG9yeSBvbiBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLiJdOwogICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKICAgICBfY29u
ZmlndXJhdGlvbi0+c2V0V2ViU3RvcmFnZURpcmVjdG9yeSh1cmwucGF0aCk7CiB9CkBAIC01NCw2
ICs4Myw4IEBAIC0gKE5TVVJMICopX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5CiAKIC0gKHZv
aWQpX3NldEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5OihOU1VSTCAqKXVybAogeworICAgIGlm
ICghX2NvbmZpZ3VyYXRpb24tPmlzUGVyc2lzdGVudCgpKQorICAgICAgICBbTlNFeGNlcHRpb24g
cmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiQ2Fubm90IHNldCBfaW5k
ZXhlZERCRGF0YWJhc2VEaXJlY3Rvcnkgb24gYSBub24tcGVyc2lzdGVudCBfV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi4iXTsKICAgICBjaGVja1VSTEFyZ3VtZW50KHVybCk7CiAgICAg
X2NvbmZpZ3VyYXRpb24tPnNldEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KHVybC5wYXRoKTsK
IH0KQEAgLTY1LDYgKzk2LDggQEAgLSAoTlNVUkwgKilfd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkK
IAogLSAodm9pZClfc2V0V2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk6KE5TVVJMICopdXJsCiB7Cisg
ICAgaWYgKCFfY29uZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50KCkpCisgICAgICAgIFtOU0V4Y2Vw
dGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJDYW5ub3Qgc2V0
IF93ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSBvbiBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLiJdOwogICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKICAg
ICBfY29uZmlndXJhdGlvbi0+c2V0V2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkodXJsLnBhdGgpOwog
fQpAQCAtOTYsNiArMTI5LDggQEAgLSAoTlNVUkwgKilfY29va2llU3RvcmFnZUZpbGUKIAogLSAo
dm9pZClfc2V0Q29va2llU3RvcmFnZUZpbGU6KE5TVVJMICopdXJsCiB7CisgICAgaWYgKCFfY29u
ZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50KCkpCisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpO
U0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJDYW5ub3Qgc2V0IF9jb29raWVTdG9y
YWdlRmlsZSBvbiBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uLiJdOwogICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKICAgICBpZiAoW3VybCBoYXNEaXJl
Y3RvcnlQYXRoXSkKICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50
RXhjZXB0aW9uIGZvcm1hdDpAIlRoZSBjb29raWUgc3RvcmFnZSBwYXRoIG11c3QgcG9pbnQgdG8g
YSBmaWxlLCBub3QgYSBkaXJlY3RvcnkuIl07CkBAIC0xMTAsNiArMTQ1LDggQEAgLSAoTlNVUkwg
KilfcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeQogCiAtICh2b2lkKV9zZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OihOU1VSTCAqKXVybAogeworICAgIGlmICghX2NvbmZp
Z3VyYXRpb24tPmlzUGVyc2lzdGVudCgpKQorICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJ
bnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiQ2Fubm90IHNldCBfcmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RpcmVjdG9yeSBvbiBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLiJdOwogICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKICAgICBfY29u
ZmlndXJhdGlvbi0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSh1cmwucGF0aCk7
CiB9CkBAIC0xMjEsNiArMTU4LDggQEAgLSAoTlNVUkwgKilfY2FjaGVTdG9yYWdlRGlyZWN0b3J5
CiAKIC0gKHZvaWQpX3NldENhY2hlU3RvcmFnZURpcmVjdG9yeTooTlNVUkwgKil1cmwKIHsKKyAg
ICBpZiAoIV9jb25maWd1cmF0aW9uLT5pc1BlcnNpc3RlbnQoKSkKKyAgICAgICAgW05TRXhjZXB0
aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIkNhbm5vdCBzZXQg
X2NhY2hlU3RvcmFnZURpcmVjdG9yeSBvbiBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLiJdOwogICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKICAgICBf
Y29uZmlndXJhdGlvbi0+c2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5KHVybC5wYXRoKTsKIH0KQEAg
LTEzMiw2ICsxNzEsOCBAQCAtIChOU1VSTCAqKV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGly
ZWN0b3J5CiAKIC0gKHZvaWQpX3NldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnk6
KE5TVVJMICopdXJsCiB7CisgICAgaWYgKCFfY29uZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50KCkp
CisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBm
b3JtYXQ6QCJDYW5ub3Qgc2V0IF9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IG9u
IGEgbm9uLXBlcnNpc3RlbnQgX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uIl07CiAg
ICAgY2hlY2tVUkxBcmd1bWVudCh1cmwpOwogICAgIF9jb25maWd1cmF0aW9uLT5zZXRTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KHVybC5wYXRoKTsKIH0KQEAgLTE1Niw2ICsxOTcs
MjYgQEAgLSAodm9pZClzZXRTb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI6KE5T
U3RyaW5nICopaWRlbnRpZmllcgogICAgIF9jb25maWd1cmF0aW9uLT5zZXRTb3VyY2VBcHBsaWNh
dGlvblNlY29uZGFyeUlkZW50aWZpZXIoaWRlbnRpZmllcik7CiB9CiAKKy0gKEJPT0wpZGV2aWNl
TWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQKK3sKKyAgICByZXR1cm4gX2NvbmZpZ3VyYXRp
b24tPmRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKCk7Cit9CisKKy0gKHZvaWQp
c2V0RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQ6KEJPT0wpZW5hYmxlZAorewor
ICAgIF9jb25maWd1cmF0aW9uLT5zZXREZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxl
ZChlbmFibGVkKTsKK30KKworLSAoQk9PTClhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1l
bnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nCit7CisgICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT5h
bGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKCk7
Cit9CisKKy0gKHZvaWQpc2V0QWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJp
Y3Rpb25zRm9yVGVzdGluZzooQk9PTClibG9ja2VkCit7CisgICAgX2NvbmZpZ3VyYXRpb24tPnNl
dEFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rpbmco
YmxvY2tlZCk7Cit9CisKIC0gKEFQSTo6T2JqZWN0JilfYXBpT2JqZWN0CiB7CiAgICAgcmV0dXJu
ICpfY29uZmlndXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQppbmRl
eCAwNTQyNWMwNzUxZTIzOGVlMTkyNTliM2QwMjU0ZjA2OTFjYTM0N2RhLi4yYTU2YTc0MzZlOGEw
MDg2MGE1YzBiZDExMjA1MzMzOTIzMTljMjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9y
ZUNvY29hLm1tCkBAIC0xMzEsNiArMTMxLDggQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMg
V2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgICAgIGZhbHNlLAogICAgICAgICBz
aG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLAogICAgICAgICBl
bmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlLAorICAgICAgICBtX2NvbmZpZ3Vy
YXRpb24tPmRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKCksCisgICAgICAgIG1f
Y29uZmlndXJhdGlvbi0+YWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rp
b25zRm9yVGVzdGluZygpLAogICAgICAgICBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NN
YW51YWxQcmV2YWxlbnRSZXNvdXJjZSksCiAgICAgICAgIFdURk1vdmUobG9jYWxTdG9yYWdlRGly
ZWN0b3J5KSwKICAgICAgICAgV1RGTW92ZShsb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggOTlm
NTdlNGFlM2E0ZTE0MzdiNTRiMjUyNTBmNzIxN2EzMTIwYTJlZS4uYWViODBjZGM2MjUyZjg4MjRj
MTBiMDRjZGY4Y2UxNzQxNjdiYWU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLmNwcApAQCAtMzksNiArMzksOCBAQCBSZWY8V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24+IFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpjb3B5KCkKIHsKICAgICBhdXRv
IGNvcHkgPSBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6Y3JlYXRlKCk7CiAKKyAgICBj
b3B5LT5tX2lzUGVyc2lzdGVudCA9IHRoaXMtPm1faXNQZXJzaXN0ZW50OworCiAgICAgY29weS0+
bV9jYWNoZVN0b3JhZ2VEaXJlY3RvcnkgPSB0aGlzLT5tX2NhY2hlU3RvcmFnZURpcmVjdG9yeTsK
ICAgICBjb3B5LT5tX3Blck9yaWdpblN0b3JhZ2VRdW90YSA9IHRoaXMtPm1fcGVyT3JpZ2luU3Rv
cmFnZVF1b3RhOwogICAgIGNvcHktPm1fbmV0d29ya0NhY2hlRGlyZWN0b3J5ID0gdGhpcy0+bV9u
ZXR3b3JrQ2FjaGVEaXJlY3Rvcnk7CkBAIC01OSw2ICs2MSw4IEBAIFJlZjxXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbj4gV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkoKQog
ICAgIGNvcHktPm1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyID0gdGhpcy0+
bV9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI7CiAgICAgY29weS0+bV9odHRw
UHJveHkgPSB0aGlzLT5tX2h0dHBQcm94eTsKICAgICBjb3B5LT5tX2h0dHBzUHJveHkgPSB0aGlz
LT5tX2h0dHBzUHJveHk7CisgICAgY29weS0+bV9kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25z
RW5hYmxlZCA9IHRoaXMtPm1fZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQ7Cisg
ICAgY29weS0+bV9hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNG
b3JUZXN0aW5nID0gdGhpcy0+bV9hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0
cmljdGlvbnNGb3JUZXN0aW5nOwogCiAgICAgcmV0dXJuIGNvcHk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uaAppbmRleCBkZjE3YWRjNWU0ZDMyZDAyMTU1OGU2NDk0YTNl
MzY5Nzg3ZjU5ZjcwLi5lYTNkOGUyZjE5ZDA1NjVjZjRiYzVmYWI2NmE0YmZhYWJkNWJiYmQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTM4LDcgKzM4LDEwIEBA
IHB1YmxpYzoKIAogICAgIFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4gY29weSgp
OwogCi0gICAgdWludDY0X3QgcGVyT3JpZ2luU3RvcmFnZVF1b3RhKCkgeyByZXR1cm4gbV9wZXJP
cmlnaW5TdG9yYWdlUXVvdGE7IH0KKyAgICBib29sIGlzUGVyc2lzdGVudCgpIGNvbnN0IHsgcmV0
dXJuIG1faXNQZXJzaXN0ZW50OyB9CisgICAgdm9pZCBzZXRQZXJzaXN0ZW50KGJvb2wgaXNQZXJz
aXN0ZW50KSB7IG1faXNQZXJzaXN0ZW50ID0gaXNQZXJzaXN0ZW50OyB9CisKKyAgICB1aW50NjRf
dCBwZXJPcmlnaW5TdG9yYWdlUXVvdGEoKSBjb25zdCB7IHJldHVybiBtX3Blck9yaWdpblN0b3Jh
Z2VRdW90YTsgfQogICAgIHZvaWQgc2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhKHVpbnQ2NF90IHF1
b3RhKSB7IG1fcGVyT3JpZ2luU3RvcmFnZVF1b3RhID0gcXVvdGE7IH0KIAogICAgIGNvbnN0IFN0
cmluZyYgYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbGlj
YXRpb25DYWNoZURpcmVjdG9yeTsgfQpAQCAtOTgsOSArMTAxLDE3IEBAIHB1YmxpYzoKICAgICBj
b25zdCBVUkwmIGh0dHBzUHJveHkoKSBjb25zdCB7IHJldHVybiBtX2h0dHBzUHJveHk7IH0KICAg
ICB2b2lkIHNldEhUVFBTUHJveHkoVVJMJiYgcHJveHkpIHsgbV9odHRwc1Byb3h5ID0gV1RGTW92
ZShwcm94eSk7IH0KIAorICAgIGJvb2wgZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVk
OyB9CisgICAgdm9pZCBzZXREZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZChib29s
IGVuYWJsZWQpIHsgbV9kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCA9IGVuYWJs
ZWQ7IH0KKworICAgIGJvb2wgYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJp
Y3Rpb25zRm9yVGVzdGluZygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsTG9hZHNCbG9ja2VkQnlEZXZp
Y2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzsgfQorICAgIHZvaWQgc2V0QWxsTG9h
ZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyhib29sIGJs
b2NrZWQpIHsgbV9hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNG
b3JUZXN0aW5nID0gYmxvY2tlZDsgfQorCiBwcml2YXRlOgogICAgIFdlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uKCk7CiAKKyAgICBib29sIG1faXNQZXJzaXN0ZW50IHsgZmFsc2UgfTsKKwog
ICAgIFN0cmluZyBtX2NhY2hlU3RvcmFnZURpcmVjdG9yeTsKICAgICB1aW50NjRfdCBtX3Blck9y
aWdpblN0b3JhZ2VRdW90YSB7IFdlYkNvcmU6OlN0b3JhZ2VRdW90YU1hbmFnZXI6OmRlZmF1bHRR
dW90YSgpIH07CiAgICAgU3RyaW5nIG1fbmV0d29ya0NhY2hlRGlyZWN0b3J5OwpAQCAtMTIxLDYg
KzEzMiw4IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fc291cmNlQXBwbGljYXRpb25TZWNvbmRh
cnlJZGVudGlmaWVyOwogICAgIFVSTCBtX2h0dHBQcm94eTsKICAgICBVUkwgbV9odHRwc1Byb3h5
OworICAgIGJvb2wgbV9kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCB7IGZhbHNl
IH07CisgICAgYm9vbCBtX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0
aW9uc0ZvclRlc3RpbmcgeyBmYWxzZSB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGRiM2EzMDAwY2FlZjcyMzVjMjY0
NmNkMGY0MDQ4Y2JjZWI1NjBhMi4uOTU3MzI4YzAxOTg2NmQwZWRjNjdjNDY0MzA5ZTAzYmMxMzc3
YzVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC00MzAsNiArNDMwLDggQEAKIAkJMjk4NEY1ODkxNjRCQTA5NTAwNEJDMEM2IC8qIExl
Z2FjeUN1c3RvbVByb3RvY29sTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTg0RjU4NzE2NEJBMDk1MDA0QkMwQzYgLyogTGVn
YWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKIAkJMjlBRDMwOTMxNjRC
NEM1RDAwNzJERUE5IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUFEMzA5MjE2NEI0QzVE
MDA3MkRFQTkgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkuaCAqLzsgfTsKIAkJ
MjlDRDU1QUExMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RC
YXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUNE
NTVBODEyOEUyOTRGMDAxMzNDODUgLyogV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2Uu
aCAqLzsgfTsKKwkJMkQwQzU2RkQyMjlGMURFQTAwQkQzM0U3IC8qIERldmljZU1hbmFnZW1lbnRT
b2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkQwQzU2RkIyMjlGMURFQTAwQkQzM0U3IC8qIERldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oICov
OyB9OworCQkyRDBDNTZGRTIyOUYxREVBMDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNvZnRM
aW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQw
QzU2RkMyMjlGMURFQTAwQkQzM0U3IC8qIERldmljZU1hbmFnZW1lbnRTb2Z0TGluay5tbSAqLzsg
fTsKIAkJMkQxMDg3NjExRDJDNTczRTAwQjg1RjgyIC8qIExvYWRQYXJhbWV0ZXJzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDEwODc1RjFEMkM1NzNF
MDBCODVGODIgLyogTG9hZFBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJMkQxMUI3NTEyMTI2QTI4MjAw
NkY4ODc4IC8qIFVuaWZpZWRTb3VyY2UxLW1tLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ3REVDOTQyMTI2OUU0QzAwQjlGNzNDIC8qIFVuaWZpZWRT
b3VyY2UxLW1tLm1tICovOyB9OwogCQkyRDExQjc1MjIxMjZBMjgyMDA2Rjg4NzggLyogVW5pZmll
ZFNvdXJjZTEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkQ3REVENUIyMTI2OUU0RDAwQjlGNzNDIC8qIFVuaWZpZWRTb3VyY2UxLmNwcCAqLzsgfTsK
QEAgLTcwMiw2ICs3MDQsNyBAQAogCQkyREE2NzMxQTIwQzc1NEIxMDAzQ0I0MDEgLyogRHluYW1p
Y1ZpZXdwb3J0U2l6ZVVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkRBNjczMTkyMEM3NTRCMTAwM0NCNDAxIC8qIER5bmFtaWNWaWV3cG9ydFNp
emVVcGRhdGUuaCAqLzsgfTsKIAkJMkRBOTQ0QTAxODg0RTRGMDAwRUQ4NkRCIC8qIFdlYklPU0V2
ZW50RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkRBOTQ0OTkxODg0RTRGMDAwRUQ4NkRCIC8qIFdlYklPU0V2ZW50RmFjdG9yeS5oICovOyB9
OwogCQkyREE5NDRBNDE4ODRFNEYwMDBFRDg2REIgLyogR2VzdHVyZVR5cGVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREE5NDQ5RDE4ODRFNEYwMDBF
RDg2REIgLyogR2VzdHVyZVR5cGVzLmggKi87IH07CisJCTJEQUFEQThGMjI5OEMyMTAwMEUzNkIw
QyAvKiBEZXZpY2VNYW5hZ2VtZW50U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyREFBREE4RTIyOThDMjEwMDBFMzZCMEMgLyogRGV2aWNlTWFuYWdl
bWVudFNQSS5oICovOyB9OwogCQkyREFCQTc3MjFBODE3QjE3MDBFRjBGMUEgLyogV0tQYWdlUmVu
ZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBQkE3NzExQTgxN0IxNzAwRUYwRjFBIC8qIFdLUGFnZVJl
bmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaCAqLzsgfTsKIAkJMkRBQkE3NzQxQTgxN0VF
NjAwRUYwRjFBIC8qIFdLUGx1Z2luTG9hZFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBQkE3NzMxQTgxN0VFNjAwRUYwRjFBIC8qIFdLUGx1
Z2luTG9hZFBvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTJEQUJBNzc2MUE4MkI0MjEwMEVGMEYxQSAvKiBBUElIaXN0b3J5Q2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREFCQTc3NTFB
ODJCNDIxMDBFRjBGMUEgLyogQVBJSGlzdG9yeUNsaWVudC5oICovOyB9OwpAQCAtMjUwNiw2ICsy
NTA5LDggQEAKIAkJMjlEMDRFMjgyMUY3QzczRDAwNzY3NDFEIC8qIEFjY2Vzc2liaWxpdHlQcml2
U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlQcml2U1BJLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJEMDAzNTIyMUJDNzQxNDgwMERBODcxNiAvKiBQREZQbHVnaW4u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUERGUGx1Z2luLmg7IHBhdGggPSBQ
REYvUERGUGx1Z2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMDAzNTIzMUJD
NzQxNDgwMERBODcxNiAvKiBQREZQbHVnaW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IG5hbWUgPSBQREZQbHVnaW4ubW07IHBhdGggPSBQREYvUERGUGx1Z2luLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDBDNTZGQjIyOUYxREVBMDBCRDMzRTcgLyogRGV2
aWNlTWFuYWdlbWVudFNvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkyRDBDNTZGQzIyOUYxREVBMDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGV2aWNlTWFuYWdlbWVu
dFNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDBDRjY0QjIxRjJB
ODAzMDA3ODc1NjYgLyogVGV4dENoZWNraW5nQ29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFRleHRDaGVja2luZ0NvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTJEMENGNjRDMjFGMkE4MDMwMDc4NzU2NiAvKiBUZXh0Q2hlY2tpbmdDb250cm9sbGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRDaGVja2luZ0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkQxMDg3NUUxRDJDNTczRTAwQjg1RjgyIC8qIExvYWRQYXJhbWV0
ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRQYXJhbWV0
ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3OTgsNiArMjgwMyw3IEBA
CiAJCTJEQTk0NEFDMTg4NEU5QkEwMEVEODZEQiAvKiBXZWJQcm9jZXNzUHJveHlJT1MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJQcm9jZXNzUHJveHlJT1Mu
bW07IHBhdGggPSBpb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyREE5NDRCNjE4ODRFQTM1MDBFRDg2REIgLyogV2ViUGFnZUlPUy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYlBhZ2VJT1MubW07IHBhdGgg
PSBpb3MvV2ViUGFnZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRBOTQ0
QkMxODg1MTFFNzAwRUQ4NkRCIC8qIE5ldHdvcmtQcm9jZXNzSU9TLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NJT1MubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEQUFEQThFMjI5OEMyMTAwMEUzNkIwQyAvKiBEZXZpY2VN
YW5hZ2VtZW50U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZU1h
bmFnZW1lbnRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRBQkE3NzExQTgx
N0IxNzAwRUYwRjFBIC8qIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NF
dmVudHNJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREFCQTc3MzFB
ODE3RUU2MDBFRjBGMUEgLyogV0tQbHVnaW5Mb2FkUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdLUGx1Z2luTG9hZFBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyREFCQTc3NTFBODJCNDIxMDBFRjBGMUEgLyogQVBJSGlzdG9yeUNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElIaXN0b3J5Q2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MTA1LDYgKzYxMTEsNyBAQAogCQkJCTM3QzIx
Q0FEMUU5OTRDMEMwMDI5RDVGOSAvKiBDb3JlUHJlZGljdGlvblNQSS5oICovLAogCQkJCUExRkI2
ODI2MUY2RTUxQzEwMEM0M0Y5RiAvKiBDcmFzaFJlcG9ydGVyQ2xpZW50U1BJLmggKi8sCiAJCQkJ
NTdEQ0VEQUEyMTRCOUI0MzAwMTZCODQ3IC8qIERldmljZUlkZW50aXR5U1BJLmggKi8sCisJCQkJ
MkRBQURBOEUyMjk4QzIxMDAwRTM2QjBDIC8qIERldmljZU1hbmFnZW1lbnRTUEkuaCAqLywKIAkJ
CQkzNzU0RDU0NDFCM0EyOUZEMDAzQTRDN0YgLyogTlNJbnZvY2F0aW9uU1BJLmggKi8sCiAJCQkJ
MzdCNDdFMkMxRDY0REI3NjAwNUY0RUZGIC8qIG9iamNTUEkuaCAqLywKIAkJCQkwRTk3RDc0QzIw
MEU4RkYzMDBCRjY2NDMgLyogU2FmZUJyb3dzaW5nU1BJLmggKi8sCkBAIC03MTM2LDYgKzcxNDMs
OCBAQAogCQk3RUM0RjBGODE4RTRBOTIyMDA4MDU2QUYgLyogY29jb2EgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJEMEM1NkZCMjI5RjFERUEwMEJEMzNF
NyAvKiBEZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaCAqLywKKwkJCQkyRDBDNTZGQzIyOUYxREVB
MDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1tICovLAogCQkJCTUzMTU4NzZC
MjA3NkI3MTMwMDRCRjlGMyAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyQ29jb2EubW0gKi8sCiAJ
CQkJNTMyMTU5NEYxREJBRTZENzAwNTRBQTNDIC8qIE5ldHdvcmtEYXRhVGFza0NvY29hLmggKi8s
CiAJCQkJNUNCQzlCOEIxQzY1MjU3MzAwQThGRENGIC8qIE5ldHdvcmtEYXRhVGFza0NvY29hLm1t
ICovLApAQCAtOTIyMyw2ICs5MjMyLDggQEAKIAkJCQlCQzAzMkRBNjEwRjQzN0QxMDA1OEMxNUEg
LyogRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdEQ0VEQUIyMTRDNjAwOTAwMTZCODQ3
IC8qIERldmljZUlkZW50aXR5U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzI5N0Y5RjFDMTdC
QkVBMDE1RjA3MzUgLyogRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAor
CQkJCTJEMEM1NkZEMjI5RjFERUEwMEJEMzNFNyAvKiBEZXZpY2VNYW5hZ2VtZW50U29mdExpbmsu
aCBpbiBIZWFkZXJzICovLAorCQkJCTJEQUFEQThGMjI5OEMyMTAwMEUzNkIwQyAvKiBEZXZpY2VN
YW5hZ2VtZW50U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mzg5MUI2QzFBNjhDMzBCMDAzMEYz
ODYgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxODE3
MzYxMjA1ODQyNDcwMERGREE2NSAvKiBEaXNwbGF5TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUMxNDI3MDIxQzIzRjg0QzAwRDQxMTgzIC8qIERvd25sb2FkLmggaW4gSGVhZGVycyAqLywKQEAg
LTEwOTgyLDYgKzEwOTkzLDcgQEAKIAkJCQkyRDkyQTc3RDIxMkI2QTcxMDBGNDkzRkQgLyogQ29u
bmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc3RTIxMkI2QTcxMDBGNDkzRkQg
LyogRGF0YVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc3RjIxMkI2QTcx
MDBGNDkzRkQgLyogRGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRDBDNTZGRTIyOUYx
REVBMDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUFCN0Q2MTkxMjg4QjlEOTAwQ0ZEMDhDIC8qIERvd25sb2FkUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2NDIyOTkxMkREMDI5MjAwQ0FBRTJDIC8q
IERyYXdpbmdBcmVhTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNjQy
MzA4MTJERDA5RUIwMENBQUUyQyAvKiBEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDI3OGI2MDE4NDc5ZjM2NTkwMzQ4Yzg5
NTE4NTVhY2Y0M2RjYjU5ZjguLjE1MjU2NzMzYjVkMmI5ODE4MGZjZjUzYjZmYmM3MjMyY2IzMTY3
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRl
clN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJM
b2FkZXJTdHJhdGVneS5jcHAKQEAgLTMzNSw2ICszMzUsOCBAQCB2b2lkIFdlYkxvYWRlclN0cmF0
ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJlc291
cmNlTAogCiAgICAgbG9hZFBhcmFtZXRlcnMuaXNNYWluRnJhbWVOYXZpZ2F0aW9uID0gcmVzb3Vy
Y2VMb2FkZXIuZnJhbWUoKSAmJiByZXNvdXJjZUxvYWRlci5mcmFtZSgpLT5pc01haW5GcmFtZSgp
ICYmIHJlc291cmNlTG9hZGVyLm9wdGlvbnMoKS5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6
TmF2aWdhdGU7CiAKKyAgICBsb2FkUGFyYW1ldGVycy5pc01haW5SZXNvdXJjZU5hdmlnYXRpb25G
b3JBbnlGcmFtZSA9IHJlc291cmNlTG9hZGVyLmZyYW1lKCkgJiYgcmVzb3VyY2VMb2FkZXIub3B0
aW9ucygpLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZTsKKwogICAgIGxvYWRQ
YXJhbWV0ZXJzLnNob3VsZEVuYWJsZUNyb3NzT3JpZ2luUmVzb3VyY2VQb2xpY3kgPSBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmNyb3NzT3JpZ2luUmVzb3VyY2VQb2xp
Y3lFbmFibGVkKCkgJiYgIWxvYWRQYXJhbWV0ZXJzLmlzTWFpbkZyYW1lTmF2aWdhdGlvbjsKIAog
ICAgIGlmIChyZXNvdXJjZUxvYWRlci5vcHRpb25zKCkubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1v
ZGU6Ok5hdmlnYXRlKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371075</attachid>
            <date>2019-05-31 12:17:02 -0700</date>
            <delta_ts>2019-05-31 13:00:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198318-20190531121701.patch</filename>
            <type>text/plain</type>
            <size>90488</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDgxMGUxOGQ0ZDkyMGFlYmYxZWVjYWM1
OWZmY2U5YjA0NmFmOTEyM2QuLjhjOWU2NmU5N2RjOTU5ZjZiOTM2M2I0NzI4ZTAyM2JiY2RlMDMz
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDUtMzAgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgT3B0aW9uYWxseSByZXNwZWN0IGRldmljZSBt
YW5hZ2VtZW50IHJlc3RyaWN0aW9ucyB3aGVuIGxvYWRpbmcgZnJvbSB0aGUgbmV0d29yaworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MzE4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NDI2MzgwNj4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4
IENocmlzdGVuc2VuLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisgICAgICAgIEFkZCBh
IEhBVkUgZmxhZyBmb3IgRGV2aWNlTWFuYWdlbWVudC5mcmFtZXdvcmsuCisgICAgICAgIEl0IGRv
ZXMgZXhpc3QgaW4gdGhlIHNpbXVsYXRvciwgYnV0IGRvZXMgbm90IGZ1bmN0aW9uOyBwcmV0ZW5k
IGl0IGRvZXNuJ3QgZXhpc3QuCisKIDIwMTktMDUtMjkgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRh
ZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI0NTg1Ny4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiOWNhY2VlZWM2MTZmMGY3ODM2MjI4NTY2NDM3YzQxNGY2YzZhNTE4Li4x
ZjI2YzNiOTIzN2NmMGU2OTlkZmEzOGJlZDEyYWU1OTU0Y2ZhY2VhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTktMDUtMzAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgT3B0aW9uYWxseSByZXNwZWN0IGRldmljZSBtYW5hZ2VtZW50IHJl
c3RyaWN0aW9ucyB3aGVuIGxvYWRpbmcgZnJvbSB0aGUgbmV0d29yaworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MzE4CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NDI2MzgwNj4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2Vu
LgorCisgICAgICAgICogZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczoKKwogMjAxOS0wNS0y
OSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMjQ1ODU3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhNWQxOTk3NGJlNzc5N2UzZjc2
YTQ3ODM2MTdjY2RlNGNlOTY5NmFjLi5kYmEwYWY4NTdkNjlmNDM1ZTkxM2QxZTRlYjRjYzc4YzI1
M2M5MGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNSBAQAorMjAxOS0wNS0zMCAgVGltIEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpb25hbGx5IHJlc3Bl
Y3QgZGV2aWNlIG1hbmFnZW1lbnQgcmVzdHJpY3Rpb25zIHdoZW4gbG9hZGluZyBmcm9tIHRoZSBu
ZXR3b3JrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTgzMTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ0MjYzODA2PgorCisgICAgICAgIFJldmll
d2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9OZXR3
b3JrLWlPUy5lbnRpdGxlbWVudHM6CisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxl
cy9pb3MvY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiOgorICAgICAgICBBZGQgc29tZSBl
bnRpdGxlbWVudHMgYW5kIHNhbmRib3ggaG9sZXMgcmVxdWlyZWQgdG8gdGFsayB0byBEZXZpY2VN
YW5hZ2VtZW50LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGln
aHRDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NPUlNQcmVmbGlnaHRDaGVj
a2VyOjp3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6Ondhc0Jsb2Nr
ZWRCeVJlc3RyaWN0aW9ucyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlBpbmdMb2FkOjp3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnMpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1BpbmdMb2FkLmg6CisgICAgICAgICogU2hhcmVkL1dlYkVycm9ycy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ondhc0Jsb2NrZWRCeVJlc3RyaWN0aW9uc0Vycm9yKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViRXJyb3JzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Rh
dGFUYXNrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OmZhaWx1cmVUaW1lckZpcmVkKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaDoKKyAgICAgICAgKiBTaGFy
ZWQvQVBJL0FQSUVycm9yLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYuY3Bw
OgorICAgICAgICAoV0tFcnJvckdldEVycm9yQ29kZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9j
L1dLRXJyb3JSZWYuaDoKKyAgICAgICAgUGx1bWIgYSBuZXcgZXJyb3IgZm9yIGxvYWRzIHRoYXQg
YXJlIGJsb2NrZWQgYnkgZGV2aWNlIG1hbmFnZW1lbnQgcmVzdHJpY3Rpb25zLgorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJv
Y2Vzcyk6CisgICAgICAgIFBsdW1iIGEgbmV3IGJpdCB0aGF0IGluZGljYXRlcyB3aGV0aGVyIGEg
bG9hZCBpcyBmb3IgdGhlIG1haW4gcmVzb3VyY2Ugb2YgYSBmcmFtZS4KKyAgICAgICAgV2Ugd2ls
bCBvbmx5IGFwcGx5IGRldmljZSBtYW5hZ2VtZW50IHJlc3RyaWN0aW9ucyB0byBtYWluIHJlc291
cmNlcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBh
cmFtZXRlcnM6OnByaXZhdGVTZXNzaW9uUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgor
ICAgICAgICBQbHVtYiBhIG5ldyBiaXQgaW5kaWNhdGluZyB3aGV0aGVyIGEgbmV0d29yayBzZXNz
aW9uIHNob3VsZCByZXNwZWN0IGRldmljZSBtYW5nZW1lbnQKKyAgICAgICAgcmVzdHJpY3Rpb25z
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFz
a0NvY29hKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6OnJlc3VtZSk6
CisgICAgICAgIERlZmVyIHJlc3VtaW5nIHRoZSBsb2FkIHVudGlsIHdlIGhhdmUgYSByZXBseSBm
cm9tIERldmljZU1hbmFnZW1lbnQgZnJhbWV3b3JrCisgICAgICAgIGFib3V0IHdoZXRoZXIgdGhl
IFVSTCBzaG91bGQgYmUgYmxvY2tlZC4gSWYgaXQgaXMgYmxvY2tlZCwgaW5zdGVhZCBmYWlsIHRo
ZSBsb2FkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29j
b2EubW06CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSBVUkxTZXNzaW9uOmRh
dGFUYXNrOmRpZFJlY2VpdmVSZXNwb25zZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmRldmljZU1hbmFnZW1lbnRQb2xpY3lN
b25pdG9yKToKKyAgICAgICAgQ2FjaGUgYSBzaW5nbGUgRE1GV2Vic2l0ZVBvbGljeU1vbml0b3Ig
aW5zdGFuY2UgcGVyIE5ldHdvcmtTZXNzaW9uLgorICAgICAgICAKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoQVBJOjpXZWJzaXRlRGF0
YVN0b3JlOjpkZWZhdWx0RGF0YVN0b3JlQ29uZmlndXJhdGlvbik6CisgICAgICAgIFRoZSBkZWZh
dWx0IGRhdGEgc3RvcmUgaXMgcGVyc2lzdGVudDsgaXRzIGNvbmZpZ3VyYXRpb24gc2hvdWxkIHJl
ZmxlY3QgdGhhdC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bC5tbToKKyAgICAgICAgKC1bV0tQcm9jZXNzUG9vbCBfc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNh
dGVGb3JTZXJ2aWNlV29ya2VyOl0pOiBTdHlsZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3Rv
cmUgX2luaXRXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0
byBjcmVhdGUgYSBub24tcGVyc2lzdGVudCBXS1dlYnNpdGVEYXRhU3RvcmUgZnJvbSBhCisgICAg
ICAgIGNvbmZpZ3VyYXRpb24sIGFuZCBlbnN1cmUgdGhhdCBpdCBkb2VzIG5vdCBoYXZlIGFueSBw
ZXJzaXN0ZW50IHN0b3JhZ2UgZGlyZWN0b3JpZXMgc2V0LgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW06
CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGluaXRdKToKKyAg
ICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gaW5pdFdpdGhOb25QZXJz
aXN0ZW50Q29uZmlndXJhdGlvbl0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbiBpc1BlcnNpc3RlbnRdKToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24gX3NldFdlYlN0b3JhZ2VEaXJlY3Rvcnk6XSk6CisgICAgICAgICgtW19X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIF9zZXRJbmRleGVkREJEYXRhYmFzZURpcmVj
dG9yeTpdKToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gX3Nl
dFdlYlNRTERhdGFiYXNlRGlyZWN0b3J5Ol0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbiBfc2V0Q29va2llU3RvcmFnZUZpbGU6XSk6CisgICAgICAgICgtW19X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGlyZWN0b3J5Ol0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
biBfc2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5Ol0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbiBfc2V0U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9y
eTpdKToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gZGV2aWNl
TWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWRdKToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJs
ZWQ6XSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb246OmNvcHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbjo6aXNQZXJzaXN0ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OnNldFBlcnNpc3RlbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6cGVyT3JpZ2luU3RvcmFnZVF1
b3RhIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b246OmRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OnNldERldmljZU1hbmFnZW1l
bnRSZXN0cmljdGlvbnNFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb246OnBlck9yaWdpblN0b3JhZ2VRdW90YSk6IERlbGV0ZWQuCisgICAgICAg
IE1ha2UgaXQgcG9zc2libGUgdG8gY3JlYXRlIGEgX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24gdGhhdCB3aWxsIGNyZWF0ZSBhIG5vbi1wZXJzaXN0ZW50CisgICAgICAgIGRhdGEgc3Rv
cmUuIEFkZCBhIGJpdCB0byBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiB0aGF0IGNv
bnRyb2xzIHdoZXRoZXIgdGhlIG5ldHdvcmsgCisgICAgICAgIHNlc3Npb24gd2lsbCByZXNwZWN0
IGRldmljZSBtYW5hZ2VtZW50IHJlc3RyaWN0aW9ucy4KKworICAgICAgICAqIFdlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9EZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaDoKKyAgICAgICAgKiBXZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1tOgorICAgICAgICAqIFdl
YktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvRGV2aWNlTWFuYWdlbWVudFNQSS5oOgorICAgICAgICBB
ZGQgc29tZSBzb2Z0LWxpbmtpbmcgYW5kIFNQSSBoZWFkZXJzLgorCiAyMDE5LTA1LTI5ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyNDU4NTcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5o
IGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAppbmRleCA0NDdiYjE4YThmMDI4YzI5NTAxZDM5
MzFmYjk1NTdhOGQ1M2EyNjA3Li4zMzJlYjNlN2E4YzIyM2Q3YzA5MWI2ZWFiZmFhMWQ4YThiYzI0
YzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKQEAgLTE1NDcsNiArMTU0NywxMCBAQAogI2RlZmluZSBIQVZFX1JP
VVRFX1NIQVJJTkdfUE9MSUNZX0xPTkdfRk9STV9WSURFTyAxCiAjZW5kaWYKIAorI2lmIChQTEFU
Rk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCAm
JiAhUExBVEZPUk0oSU9TX1NJTVVMQVRPUikpCisjZGVmaW5lIEhBVkVfREVWSUNFX01BTkFHRU1F
TlQgMQorI2VuZGlmCisKICNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
QVhfQUxMT1dFRCA8IDEwMTUwMAogI2RlZmluZSBVU0VfUkVBTFBBVEhfRk9SX0RMT1BFTl9QUkVG
TElHSFQgMQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2Nh
bGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3Ry
aW5ncwppbmRleCBmMzU5N2EzOGZjYTM0YzgxY2RlNjc1OGUxMzY0MzY4ZjU3NTdhZjkxLi5hMzgx
MDY5NzM2MjMxZWM3ZThkN2NlYjdlYWVjNGYyNjMwYzBmYzMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTgwMiw2ICs4MDIsOSBAQAogLyogV2Vi
S2l0RXJyb3JGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50RmlsdGVyIGRlc2NyaXB0aW9uICovCiAi
VGhlIFVSTCB3YXMgYmxvY2tlZCBieSBhIGNvbnRlbnQgZmlsdGVyIiA9ICJUaGUgVVJMIHdhcyBi
bG9ja2VkIGJ5IGEgY29udGVudCBmaWx0ZXIiOwogCisvKiBXZWJLaXRFcnJvckZyYW1lTG9hZEJs
b2NrZWRCeVJlc3RyaWN0aW9ucyBkZXNjcmlwdGlvbiAqLworIlRoZSBVUkwgd2FzIGJsb2NrZWQg
YnkgZGV2aWNlIHJlc3RyaWN0aW9ucyIgPSAiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBkZXZpY2Ug
cmVzdHJpY3Rpb25zIjsKKwogLyogV0tFcnJvcldlYlZpZXdJbnZhbGlkYXRlZCBkZXNjcmlwdGlv
biAqLwogIlRoZSBXS1dlYlZpZXcgd2FzIGludmFsaWRhdGVkIiA9ICJUaGUgV0tXZWJWaWV3IHdh
cyBpbnZhbGlkYXRlZCI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlv
bnMvTmV0d29yay1pT1MuZW50aXRsZW1lbnRzIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9u
cy9OZXR3b3JrLWlPUy5lbnRpdGxlbWVudHMKaW5kZXggMmVlNjk2NjM4ZjY3MmU2MjM3ZGEwYjc0
NzhhZmU5OTM2YjQ4ODYzYS4uNTNkZmQ1NjM1NDA5OWVmMDMwOTFkMWQ1YzU5NGIzZjE3M2IyODU5
MSAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSAyNDQKemNtWEBhQHx7VTRzVVJuX3hXdkhW
SXdLUF4zbzlFdDJMfjRpNVgxeztQZ1o4c3d1bCN5T1V9PkxPRHJoSk4hMlNUCnokfUNHUE4hODB1
JkNNXldFR3xoYkRKX2x7NUcrbmpFSjtldURiWHpgJTFfSjhOZD0wQE8jQ1JyOTUwfGJjP1A0Vgp6
NXxFMiZNb01tcVVPfDNOV14hZWBmWSF1flQ0fGh8MyVUUDNxIUI4XlE8SjxpT1o1Q3dPVW08JHZO
UUEySWV+ekkKeGdGJjNabF84Q3hpZVY8aFFIQ2RzZnthM3AhaT1KZiMqOE02cmleOWBWOEZ4KHAm
MTBBRz9aZEEyTFFyKksycmJ5CgpsaXRlcmFsIDU3OAp6Y21hKSgtJUc8VjVYWWFsemFyK25pTjEr
KzlsQXt6aiM7b0dLNCM1MUwoP1dDKlZYPl9VYmxqWiFoQWl4S1IkUHQKeiZPZDYpNGlLVm8mNVUx
KE9VfEd2b2lAI1cjLUVHKDxlSmEzWD9uNElUb2tZUWlne315dmkkak92dEJUc05PfGtNCnoxdTIp
c2xJNUhBUV42PWglR0gpTHsqTEh4cjBsdipzNmkhNFJ9YUR7XldaIUw+XkJzYWtVP25Gb043KyNL
WDdRTwp6T15NbGJsMipgWDZmdVU/dHduPD5SKWl7STl9I001UTg3fDVFZlo1WT0qZm5tMV5MX1dS
Yk5BY0xScClydlY/ZnYKejV6SWokMnZXUFkhNjxmWnFiKFI2eT5vQWJha2c+e3NHKVgmaCF3V35F
XlBvaTdiKzI1U3BnOypFYkl5OUA1JUBZCnljVklFYGZ4cyskd1d0dShhRnQwS0YlYV4lZ1RCRC0h
SnljbGlqTTF5OGFrcEpqajIzK0JiQ1FyV3okYXEwbTN1QAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNw
cAppbmRleCAyYjBhMWMzNzllY2Q4NjYyYjAwODFmNGRiMmVlNTE3OTA1YTk1NWM0Li45NGYxMjc3
MjgyYjk1MzIxZjY2NjVjZDRmYjY2Yjc5MmRjODM0OWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIu
Y3BwCkBAIC0xNjMsNiArMTYzLDEyIEBAIHZvaWQgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2Vy
OjpjYW5ub3RTaG93VVJMKCkKICAgICBtX2NvbXBsZXRpb25DYWxsYmFjayhSZXNvdXJjZUVycm9y
IHsgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgbV9wYXJhbWV0ZXJzLm9yaWdpbmFsUmVx
dWVzdC51cmwoKSwgIlByZWZsaWdodCByZXNwb25zZSB3YXMgYmxvY2tlZCJfcywgUmVzb3VyY2VF
cnJvcjo6VHlwZTo6QWNjZXNzQ29udHJvbCB9KTsKIH0KIAordm9pZCBOZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXI6Ondhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucygpCit7CisgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgid2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zIik7CisgICAgbV9jb21wbGV0
aW9uQ2FsbGJhY2soUmVzb3VyY2VFcnJvciB7IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAs
IG1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3QudXJsKCksICJQcmVmbGlnaHQgcmVzcG9uc2Ug
d2FzIGJsb2NrZWQiX3MsIFJlc291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRyb2wgfSk7Cit9
CisKIE5ldHdvcmtUcmFuc2FjdGlvbkluZm9ybWF0aW9uIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hl
Y2tlcjo6dGFrZUluZm9ybWF0aW9uKCkKIHsKICAgICBBU1NFUlQobV9zaG91bGRDYXB0dXJlRXh0
cmFOZXR3b3JrTG9hZE1ldHJpY3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmgKaW5kZXggNGQzZDE2OWY2
YWY5ZjQzYjc2MTA4MWNmYmZlNjBhZmM1YTM5M2ZkNC4uODcyNDhmMGUwZTEyODQ5M2E1NTZlNWNm
YjFjMzViZDUzNGQ5MWVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCkBAIC03Miw2ICs3Miw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5dGVzU2VudCwg
dWludDY0X3QgdG90YWxCeXRlc0V4cGVjdGVkVG9TZW5kKSBmaW5hbDsKICAgICB2b2lkIHdhc0Js
b2NrZWQoKSBmaW5hbDsKICAgICB2b2lkIGNhbm5vdFNob3dVUkwoKSBmaW5hbDsKKyAgICB2b2lk
IHdhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucygpIGZpbmFsOwogCiAgICAgUGFyYW1ldGVycyBtX3Bh
cmFtZXRlcnM7CiAgICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9jZXNzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4
IGYxZjAxMTE1ZDIzMWFhYmQ3ZGUwZWQwMGMwNzg0ZjE4OGYwOWNjNTQuLmJjYmFlOWQzMWZiZjhl
NzYwZTRkNmZmNjYwMDEyODZkMDI1NGFhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgUmVmPE5ldHdv
cmtEYXRhVGFzaz4gTmV0d29ya0RhdGFUYXNrOjpjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIE5ldHdvcmtEYXQKIHsKICAgICBBU1NFUlQoIXBhcmFtZXRlcnMucmVxdWVzdC51cmwoKS5w
cm90b2NvbElzQmxvYigpKTsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICByZXR1cm4gTmV0d29y
a0RhdGFUYXNrQ29jb2E6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVz
dCwgcGFyYW1ldGVycy53ZWJGcmFtZUlELCBwYXJhbWV0ZXJzLndlYlBhZ2VJRCwgcGFyYW1ldGVy
cy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xp
Y3ksIHBhcmFtZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMu
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgcGFyYW1ldGVycy5zaG91
bGRQcmVjb25uZWN0T25seSwgcGFyYW1ldGVycy5pc01haW5GcmFtZU5hdmlnYXRpb24sIHBhcmFt
ZXRlcnMubmV0d29ya0FjdGl2aXR5VHJhY2tlcik7CisgICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFz
a0NvY29hOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFt
ZXRlcnMud2ViRnJhbWVJRCwgcGFyYW1ldGVycy53ZWJQYWdlSUQsIHBhcmFtZXRlcnMuc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJh
bWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29u
bmVjdE9ubHksIHBhcmFtZXRlcnMuaXNNYWluRnJhbWVOYXZpZ2F0aW9uLCBwYXJhbWV0ZXJzLmlz
TWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBwYXJhbWV0ZXJzLm5ldHdvcmtBY3Rp
dml0eVRyYWNrZXIpOwogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgcmV0dXJuIE5ldHdvcmtE
YXRhVGFza1NvdXA6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwg
cGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25p
ZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIHBh
cmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgcGFyYW1l
dGVycy5pc01haW5GcmFtZU5hdmlnYXRpb24pOwpAQCAtMTMzLDYgKzEzMywxMSBAQCB2b2lkIE5l
dHdvcmtEYXRhVGFzazo6ZmFpbHVyZVRpbWVyRmlyZWQoKQogICAgICAgICBpZiAobV9jbGllbnQp
CiAgICAgICAgICAgICBtX2NsaWVudC0+Y2Fubm90U2hvd1VSTCgpOwogICAgICAgICByZXR1cm47
CisgICAgY2FzZSBSZXN0cmljdGVkVVJMRmFpbHVyZToKKyAgICAgICAgbV9zY2hlZHVsZWRGYWls
dXJlVHlwZSA9IE5vRmFpbHVyZTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAg
bV9jbGllbnQtPndhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucygpOworICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBOb0ZhaWx1cmU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0RhdGFUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFz
ay5oCmluZGV4IGNlN2IyYWQ1MDYzNjVhNDMyOGJhNTczYWYxNjE3MDk2MGJhYmZiY2EuLjlmNWZl
MWY0YjM4Mzk2NDkwY2NiNGY0MzE1YzQyZTEyYmViNjdkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaApAQCAtNjUsNiArNjUsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFNlbmREYXRhKHVpbnQ2NF90IHRvdGFsQnl0ZXNTZW50
LCB1aW50NjRfdCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1NlbmQpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgd2FzQmxvY2tlZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hvd1VSTCgpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zKCkgPSAwOwogCiAg
ICAgdmlydHVhbCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcygpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKQEAgLTEzNCw3ICsxMzUsOCBAQCBwcm90ZWN0ZWQ6CiAg
ICAgZW51bSBGYWlsdXJlVHlwZSB7CiAgICAgICAgIE5vRmFpbHVyZSwKICAgICAgICAgQmxvY2tl
ZEZhaWx1cmUsCi0gICAgICAgIEludmFsaWRVUkxGYWlsdXJlCisgICAgICAgIEludmFsaWRVUkxG
YWlsdXJlLAorICAgICAgICBSZXN0cmljdGVkVVJMRmFpbHVyZQogICAgIH07CiAgICAgdm9pZCBm
YWlsdXJlVGltZXJGaXJlZCgpOwogICAgIHZvaWQgc2NoZWR1bGVGYWlsdXJlKEZhaWx1cmVUeXBl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKaW5kZXgg
NzM1ZjM2OWExY2EwNmMyN2M2MWE4MzBlNjgxNzcyOTgyMzlkYzZiYy4uOTEwN2ZlYzFlMzRkYjQ0
ODgxNjIyODY4NjIyYzhmYmViNWIzODgzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTI3Niw2ICsyNzYsMTAgQEAgdm9pZCBOZXR3b3JrTG9h
ZDo6Y2Fubm90U2hvd1VSTCgpCiAgICAgbV9jbGllbnQuZ2V0KCkuZGlkRmFpbExvYWRpbmcoY2Fu
bm90U2hvd1VSTEVycm9yKG1fY3VycmVudFJlcXVlc3QpKTsKIH0KIAordm9pZCBOZXR3b3JrTG9h
ZDo6d2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zKCkKK3sKKyAgICBtX2NsaWVudC5nZXQoKS5kaWRG
YWlsTG9hZGluZyh3YXNCbG9ja2VkQnlSZXN0cmljdGlvbnNFcnJvcihtX2N1cnJlbnRSZXF1ZXN0
KSk7Cit9CiAKIFN0cmluZyBOZXR3b3JrTG9hZDo6ZGVzY3JpcHRpb24oKSBjb25zdAogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCmluZGV4IGE1ZWJhYjYwZjcy
ZWVhM2Y3MTkxYTU1ODZlM2E2MjBjMjRmMTA2Y2MuLmQ0MTVkMDRhMjliZjIzZjdiNWNjZjMzYjg0
ODA0MDU5ODM2NzRiNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkLmgKQEAgLTgwLDYgKzgwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFNlbmREYXRhKHVp
bnQ2NF90IHRvdGFsQnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1NlbmQp
IGZpbmFsOwogICAgIHZvaWQgd2FzQmxvY2tlZCgpIGZpbmFsOwogICAgIHZvaWQgY2Fubm90U2hv
d1VSTCgpIGZpbmFsOworICAgIHZvaWQgd2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zKCkgZmluYWw7
CiAKICAgICB2b2lkIG5vdGlmeURpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiYsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCB0aHJvdHRs
ZURlbGF5Q29tcGxldGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAppbmRleCA4OTczMGNmOWZkMjY5OWJjZmQzMmRkYzM4
ZWY4Y2UwMzc0NmEzMDM0Li5jZmIyYzc1YzBjZDc5MmEwMGE1MDVjODBiNjk4YzE2MGE4MDIxMzU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQ
YXJhbWV0ZXJzLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCB7IHRydWUgfTsKICAgICBib29sIG5lZWRz
Q2VydGlmaWNhdGVJbmZvIHsgZmFsc2UgfTsKICAgICBib29sIGlzTWFpbkZyYW1lTmF2aWdhdGlv
biB7IGZhbHNlIH07CisgICAgYm9vbCBpc01haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFt
ZSB7IGZhbHNlIH07CiAgICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZl
cmVuY2U+PiBibG9iRmlsZVJlZmVyZW5jZXM7CiAgICAgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJl
Y29ubmVjdE9ubHkgeyBQcmVjb25uZWN0T25seTo6Tm8gfTsKICAgICBPcHRpb25hbDxOZXR3b3Jr
QWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzLmNwcAppbmRleCAzM2NkYzRkMTdkYmUyZTA4NjZlMzYxMmVmMjI3NjFhMzgyMzgwNTli
Li4wZTQ0NTk0Yjg5ZTY2NjQ4OWFmZjEyOGY4YzUxYzBjNmMxYWNlMjQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzLmNwcApAQCAtNzgsNiArNzgsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVu
Y29kZXIgPDwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdDsKICAgICBl
bmNvZGVyIDw8IG5lZWRzQ2VydGlmaWNhdGVJbmZvOwogICAgIGVuY29kZXIgPDwgaXNNYWluRnJh
bWVOYXZpZ2F0aW9uOworICAgIGVuY29kZXIgPDwgaXNNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9y
QW55RnJhbWU7CiAgICAgZW5jb2RlciA8PCBtYXhpbXVtQnVmZmVyaW5nVGltZTsKIAogICAgIGVu
Y29kZXIgPDwgc3RhdGljX2Nhc3Q8Ym9vbD4oc291cmNlT3JpZ2luKTsKQEAgLTE2OSw2ICsxNzAs
OCBAQCBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyLCBOZXR3b3JrUmVzb3VyYwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNNYWluRnJhbWVOYXZpZ2F0aW9uKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzTWFpblJl
c291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1heGltdW1CdWZmZXJpbmdUaW1lKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4
IDI2YmYxOWQ5YWNjYjk5M2IwYWY1MzE5YjExYjI3NWMxZTIzZTQ4NzIuLjkwZGVkYTQyMTA5NTk3
YjM5MDFkMjYyMGNkNTJmYTAyZmUzNGYwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRl
cnMuY3BwCkBAIC01MCw3ICs1MCw3IEBAIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpwcml2YXRlU2Vzc2lvCiAjaWYgVVNF
KENVUkwpCiAgICAgICAgICwgeyB9LCB7IH0KICNlbmRpZgotICAgICAgICAsIHsgfSwgeyB9LCBm
YWxzZSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0KKyAgICAgICAgLCB7IH0sIHsgfSwgZmFsc2Us
IHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfQogICAgIH07CiB9CiAKQEAgLTg0LDcg
Kzg0LDEwIEBAIHZvaWQgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBlbmFibGVSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOwogICAgIGVuY29kZXIgPDwgcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01hbnVhbFByZXZhbGVudFJlc291cmNlOwogCi0gICAgZW5jb2RlciA8PCBsb2NhbFN0
b3JhZ2VEaXJlY3RvcnkgPDwgIGxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsK
KyAgICBlbmNvZGVyIDw8IGxvY2FsU3RvcmFnZURpcmVjdG9yeSA8PCBsb2NhbFN0b3JhZ2VEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGU7CisKKyAgICBlbmNvZGVyIDw8IGRldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNFbmFibGVkOworICAgIGVuY29kZXIgPDwgYWxsTG9hZHNCbG9ja2VkQnlEZXZp
Y2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzsKIH0KIAogT3B0aW9uYWw8TmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpAQCAtMjA4LDYgKzIxMSwxNiBAQCBP
cHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nlc3Npb25D
cmVhdGlvblBhcmFtZXRlcnM6OmRlYwogICAgIGlmICghbG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCisgICAgT3B0aW9u
YWw8Ym9vbD4gZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQ7CisgICAgZGVjb2Rl
ciA+PiBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDsKKyAgICBpZiAoIWRldmlj
ZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4gYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2Vt
ZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzsKKyAgICBkZWNvZGVyID4+IGFsbExvYWRzQmxvY2tl
ZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rpbmc7CisgICAgaWYgKCFhbGxM
b2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAgcmV0dXJuIHt7CiAgICAgICAgIHNlc3Np
b25JRAogICAgICAgICAsIFdURk1vdmUoKmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcikKQEAgLTIz
NSw2ICsyNDgsOCBAQCBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycz4g
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlYwogICAgICAgICAsIFdURk1vdmUo
KmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3MpCiAgICAgICAgICwgV1RGTW92ZSgqc2hvdWxk
SW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcykKICAgICAgICAgLCBXVEZN
b3ZlKCplbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKQorICAgICAgICAsIFdU
Rk1vdmUoKmRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKQorICAgICAgICAsIFdU
Rk1vdmUoKmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRl
c3RpbmcpCiAgICAgICAgICwgV1RGTW92ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFBy
ZXZhbGVudFJlc291cmNlKQogICAgICAgICAsIFdURk1vdmUoKmxvY2FsU3RvcmFnZURpcmVjdG9y
eSkKICAgICAgICAgLCBXVEZNb3ZlKCpsb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNmZjMDdhZWQyNGI0MGE2N2Rh
ZjRjMTc2ZTRmN2RiZjE1YjBiNzBjNS4uNjU1OTk0N2YwMGRiNTc2ZmE0MTg0YTU2OTc1ODZhM2Q1
YWQyODAyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtODYsNiArODYsOCBA
QCBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgZW5h
YmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcyB7IGZhbHNlIH07CiAgICAgYm9vbCBzaG91bGRJbmNs
dWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHsgdHJ1ZSB9OwogICAgIGJvb2wg
ZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSB7IGZhbHNlIH07CisgICAgYm9v
bCBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCB7IGZhbHNlIH07CisgICAgYm9v
bCBhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5n
IHsgZmFsc2UgfTsKICAgICBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UgeyB9OwogCiAgICAgU3RyaW5nIGxvY2Fs
U3RvcmFnZURpcmVjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUGluZ0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5j
cHAKaW5kZXggMjFiYzdhNGU5YjIzZTIyNzE1MWQwMTBlNDk1NTRkOWNjYzVmNGIyZS4uZmU4ZjAz
YWJmOTlkYmNkZGFlZTBkYjJlNTZhMmMyYTczYzAxM2FjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKQEAgLTIwMCw2ICsyMDAsMTIgQEAgdm9pZCBQaW5nTG9h
ZDo6Y2Fubm90U2hvd1VSTCgpCiAgICAgZGlkRmluaXNoKGNhbm5vdFNob3dVUkxFcnJvcihSZXNv
dXJjZVJlcXVlc3QgeyBjdXJyZW50VVJMKCkgfSkpOwogfQogCit2b2lkIFBpbmdMb2FkOjp3YXNC
bG9ja2VkQnlSZXN0cmljdGlvbnMoKQoreworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndh
c0Jsb2NrZWRCeVJlc3RyaWN0aW9ucyIpOworICAgIGRpZEZpbmlzaCh3YXNCbG9ja2VkQnlSZXN0
cmljdGlvbnNFcnJvcihSZXNvdXJjZVJlcXVlc3QgeyBjdXJyZW50VVJMKCkgfSkpOworfQorCiB2
b2lkIFBpbmdMb2FkOjp0aW1lb3V0VGltZXJGaXJlZCgpCiB7CiAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgidGltZW91dFRpbWVyRmlyZWQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UGluZ0xvYWQuaAppbmRleCBjN2UxMmJiMTMwZDA0OWM1ZDBhNTk3YzAxZmU1YmZmYzhiMjIxYmY5
Li41MDU5MmI3NTI5OGUyZGQzNTIxY2NlNjgwMDkwNWZiOGFhZjVjYjFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5oCkBAIC01OCw2ICs1OCw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5dGVzU2VudCwgdWludDY0X3QgdG90
YWxCeXRlc0V4cGVjdGVkVG9TZW5kKSBmaW5hbDsKICAgICB2b2lkIHdhc0Jsb2NrZWQoKSBmaW5h
bDsKICAgICB2b2lkIGNhbm5vdFNob3dVUkwoKSBmaW5hbDsKKyAgICB2b2lkIHdhc0Jsb2NrZWRC
eVJlc3RyaWN0aW9ucygpIGZpbmFsOwogICAgIHZvaWQgdGltZW91dFRpbWVyRmlyZWQoKTsKIAog
ICAgIHZvaWQgbG9hZFJlcXVlc3QoTmV0d29ya1Byb2Nlc3MmLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L0RldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9EZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzgzN2E2YmFm
ODNmOGM1NDc0MWQ3ZjJhY2QwMmM2OGJiMDc5Zjg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9EZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaApA
QCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBIQVZFKERF
VklDRV9NQU5BR0VNRU5UKQorCisjaW1wb3J0ICJEZXZpY2VNYW5hZ2VtZW50U1BJLmgiCisjaW1w
b3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVS
KFdlYktpdCwgRGV2aWNlTWFuYWdlbWVudCk7CitTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihX
ZWJLaXQsIERNRldlYnNpdGVQb2xpY3lNb25pdG9yKTsKKworI2VuZGlmIC8vIEhBVkUoREVWSUNF
X01BTkFHRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL0RldmljZU1hbmFnZW1lbnRTb2Z0TGluay5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5N2M1
ZTBkOTA3MWI3ZTc3NDYwMjFmYTg5MzhmZTI1MTIxZTgwZTAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL0RldmljZU1hbmFnZW1lbnRTb2Z0TGlu
ay5tbQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisK
KyNpZiBIQVZFKERFVklDRV9NQU5BR0VNRU5UKQorCisjaW1wb3J0ICJEZXZpY2VNYW5hZ2VtZW50
U1BJLmgiCisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX1BSSVZBVEVf
RlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViS2l0LCBEZXZpY2VNYW5hZ2VtZW50KTsKK1NPRlRfTElO
S19DTEFTU19GT1JfU09VUkNFKFdlYktpdCwgRGV2aWNlTWFuYWdlbWVudCwgRE1GV2Vic2l0ZVBv
bGljeU1vbml0b3IpOworCisjZW5kaWYgLy8gSEFWRShERVZJQ0VfTUFOQUdFTUVOVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNr
Q29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFU
YXNrQ29jb2EuaAppbmRleCAyZGQwZTdkNDZiYzcxOWU5NmZhMTUwNzRmZWQwMGIxYzg4NjY1NjU4
Li43NzFiM2FiNTkxMTNlMzUxOTdiYjllZDI4NGQwZWNiMGUyMzBjNmUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tD
b2NvYS5oCkBAIC00Miw5ICs0Miw5IEBAIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBjbGFz
cyBOZXR3b3JrRGF0YVRhc2tDb2NvYSBmaW5hbCA6IHB1YmxpYyBOZXR3b3JrRGF0YVRhc2sgewog
ICAgIGZyaWVuZCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5l
dHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYs
IFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qs
IFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JN
YWluRnJhbWVOYXZpZ2F0aW9uLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3
b3JrQWN0aXZpdHlUcmFja2VyKQorICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVh
dGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIHVpbnQ2NF90IGZyYW1l
SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlm
ZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1Nu
aWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNv
bm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRh
dGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5l
dHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9uLCBj
bGllbnQsIHJlcXVlc3QsIGZyYW1lSUQsIHBhZ2VJRCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ks
IHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNvbm5lY3RPbmx5LCBk
YXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgbmV0d29ya0FjdGl2aXR5VHJhY2tlcikp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNz
aW9uLCBjbGllbnQsIHJlcXVlc3QsIGZyYW1lSUQsIHBhZ2VJRCwgc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIHNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNvbm5lY3RP
bmx5LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgZGF0YVRhc2tJc0Zvck1haW5S
ZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgbmV0d29ya0FjdGl2aXR5VHJhY2tlcikpOwog
ICAgIH0KIAogICAgIH5OZXR3b3JrRGF0YVRhc2tDb2NvYSgpOwpAQCAtNzUsNyArNzUsNyBAQCBw
dWJsaWM6CiAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZh
dGU6Ci0gICAgTmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0
YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBm
cmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2ViQ29yZTo6Q29udGVu
dEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFt
ZU5hdmlnYXRpb24sIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+KTsKKyAgICBOZXR3
b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2Vi
Q29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlm
ZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
LCBQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwg
Ym9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRp
b25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPik7CiAKICAgICBib29sIHRyeVBhc3N3b3JkQmFz
ZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYs
IENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7CiAgICAgdm9pZCBhcHBseVNuaWZmaW5nUG9s
aWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVkZWQoX19zdHJvbmcgTlNVUkxSZXF1
ZXN0KiYsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNvZGlu
Z1NuaWZmKTsKQEAgLTk4LDYgKzk4LDggQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQogICAgIGJvb2wgbV9oYXNCZWVuU2V0VG9Vc2VTdGF0ZWxlc3NDb29r
aWVTdG9yYWdlIHsgZmFsc2UgfTsKICNlbmRpZgorCisgICAgYm9vbCBtX2lzRm9yTWFpblJlc291
cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lIHsgZmFsc2UgfTsKIH07CiAKIFdlYkNvcmU6OkNyZWRl
bnRpYWwgc2VydmVyVHJ1c3RDcmVkZW50aWFsKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQppbmRleCAyOGEwNWU4MGRiNjg1YWY2N2Iy
ODRjODQyMzE3MTk0Zjk3ZTg3ZTNlLi5kOWE5YjgwYjAyMDlhMzI1ZGYzMWI4MTA2NGU5NDA2ZjRh
NzBjYTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtEYXRhVGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2ltcG9y
dCAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbi5oIgogI2ltcG9ydCAiQXV0aGVu
dGljYXRpb25NYW5hZ2VyLmgiCisjaW1wb3J0ICJEZXZpY2VNYW5hZ2VtZW50U1BJLmgiCiAjaW1w
b3J0ICJEb3dubG9hZC5oIgogI2ltcG9ydCAiRG93bmxvYWRQcm94eU1lc3NhZ2VzLmgiCiAjaW1w
b3J0ICJMb2dnaW5nLmgiCkBAIC0zOSw2ICs0MCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2ltcG9y
dCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KKyNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgog
I2ltcG9ydCA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAj
aW1wb3J0IDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgpAQCAtMTYwLDEwICsxNjIsMTEgQEAgc3Rh
dGljIHZvaWQgdXBkYXRlVGFza1dpdGhGaXJzdFBhcnR5Rm9yU2FtZVNpdGVDb29raWVzKE5TVVJM
U2Vzc2lvbkRhdGFUYXNrKiB0YXMKICNlbmRpZgogfQogCi1OZXR3b3JrRGF0YVRhc2tDb2NvYTo6
TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRh
VGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3RXaXRoQ3JlZGVudGlhbHMsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50
U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRl
bnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVk
aXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNr
SXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2Vy
PiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQorTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtE
YXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGll
bnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENy
ZWRlbnRpYWxzLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBX
ZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2Rp
bmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQ
cmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFp
bkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlv
bkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0
aXZpdHlUcmFja2VyKQogICAgIDogTmV0d29ya0RhdGFUYXNrKHNlc3Npb24sIGNsaWVudCwgcmVx
dWVzdFdpdGhDcmVkZW50aWFscywgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZp
Z2F0aW9uKQogICAgICwgbV9mcmFtZUlEKGZyYW1lSUQpCiAgICAgLCBtX3BhZ2VJRChwYWdlSUQp
CisgICAgLCBtX2lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lKGRhdGFUYXNr
SXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUpCiB7CiAgICAgaWYgKG1fc2No
ZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAgICAgICByZXR1cm47CkBAIC00ODks
NiArNDkyLDM2IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQ29jb2E6OnJlc3VtZSgpCiB7CiAgICAg
aWYgKG1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAgICAgICBtX2ZhaWx1
cmVUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKKworICAgIGF1dG8mIGNvY29hU2Vzc2lvbiA9IHN0
YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EmPihtX3Nlc3Npb24uZ2V0KCkpOworICAgIGlm
IChjb2NvYVNlc3Npb24uZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoKSAmJiBt
X2lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lKSB7CisgICAgICAgIGF1dG8g
ZGlkRGV0ZXJtaW5lRGV2aWNlUmVzdHJpY3Rpb25Qb2xpY3lGb3JVUkwgPSBtYWtlQmxvY2tQdHIo
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oQk9PTCBpc0Jsb2NrZWQpIHsK
KyAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgaXNCbG9ja2VkXSB7CisgICAgICAgICAgICAgICAgaWYgKGlzQmxvY2tlZCkg
eworICAgICAgICAgICAgICAgICAgICBzY2hlZHVsZUZhaWx1cmUoUmVzdHJpY3RlZFVSTEZhaWx1
cmUpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgICAgW21fdGFzayByZXN1bWVdOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0pOworCisjaWYgSEFWRShERVZJQ0VfTUFOQUdFTUVOVCkKKyAgICAgICAgaWYgKGNvY29hU2Vz
c2lvbi5hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0
aW5nKCkpCisgICAgICAgICAgICBkaWREZXRlcm1pbmVEZXZpY2VSZXN0cmljdGlvblBvbGljeUZv
clVSTCh0cnVlKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBSZXRhaW5QdHI8TlNVUkw+
IHVybFRvQ2hlY2sgPSBbbV90YXNrIGN1cnJlbnRSZXF1ZXN0XS5VUkw7CisgICAgICAgICAgICBb
Y29jb2FTZXNzaW9uLmRldmljZU1hbmFnZW1lbnRQb2xpY3lNb25pdG9yKCkgcmVxdWVzdFBvbGlj
aWVzRm9yV2Vic2l0ZXM6QFsgdXJsVG9DaGVjay5nZXQoKSBdIGNvbXBsZXRpb25IYW5kbGVyOm1h
a2VCbG9ja1B0cihbZGlkRGV0ZXJtaW5lRGV2aWNlUmVzdHJpY3Rpb25Qb2xpY3lGb3JVUkwsIHVy
bFRvQ2hlY2tdIChOU0RpY3Rpb25hcnk8TlNVUkwgKiwgTlNOdW1iZXIgKj4gKnBvbGljaWVzLCBO
U0Vycm9yICplcnJvcikgeworICAgICAgICAgICAgICAgIGJvb2wgaXNCbG9ja2VkID0gZXJyb3Ig
fHwgcG9saWNpZXNbdXJsVG9DaGVjay5nZXQoKV0uaW50ZWdlclZhbHVlICE9IERNRlBvbGljeU9L
OworICAgICAgICAgICAgICAgIGRpZERldGVybWluZURldmljZVJlc3RyaWN0aW9uUG9saWN5Rm9y
VVJMKGlzQmxvY2tlZCk7CisgICAgICAgICAgICB9KS5nZXQoKV07CisgICAgICAgIH0KKyNlbHNl
CisgICAgICAgIGRpZERldGVybWluZURldmljZVJlc3RyaWN0aW9uUG9saWN5Rm9yVVJMKGNvY29h
U2Vzc2lvbi5hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JU
ZXN0aW5nKCkpOworI2VuZGlmCisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBbbV90YXNr
IHJlc3VtZV07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKaW5kZXggM2QxYTQ5ZjI3MzI1ZjQ5Njc1NDEy
NTQwMDU3ZWYxMTA2NjIxNDBiMi4uMmMzMWQ4Nzg0OTliY2VjYTE5MTEyYWYzYTYxYTY2OTdiMGEy
MjkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrU2Vzc2lvbkNvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNl
CiAKK09CSkNfQ0xBU1MgRE1GV2Vic2l0ZVBvbGljeU1vbml0b3I7CiBPQkpDX0NMQVNTIE5TRGF0
YTsKIE9CSkNfQ0xBU1MgTlNVUkxTZXNzaW9uOwogT0JKQ19DTEFTUyBOU1VSTFNlc3Npb25Eb3du
bG9hZFRhc2s7CkBAIC02OSw2ICs3MCwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvbnRpbnVl
RGlkUmVjZWl2ZUNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYsIE5ldHdvcmtEYXRhVGFza0NvY29hOjpUYXNrSWRlbnRpZmllciwgTmV0d29ya0RhdGFUYXNr
Q29jb2EqLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFs
bGVuZ2VEaXNwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYpPiYmKTsKIAorICAg
IGJvb2wgZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkOyB9CisgICAgYm9vbCBhbGxM
b2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKCkgY29u
c3QgeyByZXR1cm4gbV9hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlv
bnNGb3JUZXN0aW5nOyB9CisgICAgRE1GV2Vic2l0ZVBvbGljeU1vbml0b3IgKmRldmljZU1hbmFn
ZW1lbnRQb2xpY3lNb25pdG9yKCk7CisKIHByaXZhdGU6CiAgICAgTmV0d29ya1Nlc3Npb25Db2Nv
YShOZXR3b3JrUHJvY2VzcyYsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwog
CkBAIC05Myw2ICs5OCw5IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fc291cmNlQXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyOwogICAgIFN0cmluZyBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25k
YXJ5SWRlbnRpZmllcjsKICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBtX3Byb3h5Q29u
ZmlndXJhdGlvbjsKKyAgICBSZXRhaW5QdHI8RE1GV2Vic2l0ZVBvbGljeU1vbml0b3I+IG1fZGV2
aWNlTWFuYWdlbWVudFBvbGljeU1vbml0b3I7CisgICAgYm9vbCBtX2RldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fYWxsTG9hZHNCbG9ja2Vk
QnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX3Nob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uIHsgZmFsc2UgfTsKICAgICBTZWNvbmRz
IG1fbG9hZFRocm90dGxlTGF0ZW5jeTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggYzRjYTM5
MWRmN2ViODE5YTY4NmRiYmNmMDFmYmNkNjQ3Y2VlNzFkYi4uOWY4Y2YwZWMyMThmYTliZGNiNzIx
YmQyYzY1OWI1ZjA0YWUyYWQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtNTEsNiArNTEsNyBA
QAogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvT2JqQ1J1bnRp
bWVFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CisjaW1wb3J0IDx3
dGYvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9VUkwuaD4KICNpbXBvcnQgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCkBAIC01OCw2ICs1OSw4IEBACiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRp
b25zL05ldHdvcmtTZXNzaW9uQ29jb2FBZGRpdGlvbnMuaD4KICNlbmRpZgogCisjaW1wb3J0ICJE
ZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaCIKKwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAog
Q0ZTdHJpbmdSZWYgY29uc3QgV2ViS2l0MkhUVFBQcm94eURlZmF1bHRzS2V5ID0gc3RhdGljX2Nh
c3Q8Q0ZTdHJpbmdSZWY+KEAiV2ViS2l0MkhUVFBQcm94eSIpOwpAQCAtNzEzLDcgKzcxNiw3IEBA
IC0gKHZvaWQpVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiBkYXRhVGFzazooTlNV
UkxTZXNzaW9uRGF0YVRhc2sgKilkYXRhCiAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7CiAgICAgICAgIAogICAgICAgICAvLyBBdm9pZCBNSU1FIHR5cGUgc25pZmZpbmcgaWYgdGhl
IHJlc3BvbnNlIGNvbWVzIGJhY2sgYXMgMzA0IE5vdCBNb2RpZmllZC4KLSAgICAgICAgaW50IHN0
YXR1c0NvZGUgPSBbcmVzcG9uc2UgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzdGF0dXND
b2RlKV0gPyBbKGlkKXJlc3BvbnNlIHN0YXR1c0NvZGVdIDogMDsKKyAgICAgICAgaW50IHN0YXR1
c0NvZGUgPSBbcmVzcG9uc2UgaXNLaW5kT2ZDbGFzczpOU0hUVFBVUkxSZXNwb25zZS5jbGFzc10g
PyBbKE5TSFRUUFVSTFJlc3BvbnNlICopcmVzcG9uc2Ugc3RhdHVzQ29kZV0gOiAwOwogICAgICAg
ICBpZiAoc3RhdHVzQ29kZSAhPSAzMDQpIHsKICAgICAgICAgICAgIGJvb2wgaXNNYWluUmVzb3Vy
Y2VMb2FkID0gbmV0d29ya0RhdGFUYXNrLT5maXJzdFJlcXVlc3QoKS5yZXF1ZXN0ZXIoKSA9PSBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbjsKICAgICAgICAgICAgIFdl
YkNvcmU6OmFkanVzdE1JTUVUeXBlSWZOZWNlc3NhcnkocmVzcG9uc2UuX0NGVVJMUmVzcG9uc2Us
IGlzTWFpblJlc291cmNlTG9hZCk7CkBAIC05ODEsNiArOTg0LDkgQEAgTmV0d29ya1Nlc3Npb25D
b2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3Ms
IE5ldHdvcmsKICAgICBtX3N0YXRlbGVzc1Nlc3Npb25EZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXS05l
dHdvcmtTZXNzaW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoTmV0d29ya1Nlc3Npb246KnRoaXMg
d2l0aENyZWRlbnRpYWxzOmZhbHNlXSk7CiAgICAgbV9zdGF0ZWxlc3NTZXNzaW9uID0gW05TVVJM
U2Vzc2lvbiBzZXNzaW9uV2l0aENvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbiBkZWxlZ2F0ZTpz
dGF0aWNfY2FzdDxpZD4obV9zdGF0ZWxlc3NTZXNzaW9uRGVsZWdhdGUuZ2V0KCkpIGRlbGVnYXRl
UXVldWU6W05TT3BlcmF0aW9uUXVldWUgbWFpblF1ZXVlXV07CiAKKyAgICBtX2RldmljZU1hbmFn
ZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkID0gcGFyYW1ldGVycy5kZXZpY2VNYW5hZ2VtZW50UmVz
dHJpY3Rpb25zRW5hYmxlZDsKKyAgICBtX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVu
dFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcgPSBwYXJhbWV0ZXJzLmFsbExvYWRzQmxvY2tlZEJ5RGV2
aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rpbmc7CisKICNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9y
eSA9IHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsKICAgICBtX3No
b3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBwYXJhbWV0ZXJz
LnNob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MgPyBTaG91bGRJ
bmNsdWRlTG9jYWxob3N0OjpZZXMgOiBTaG91bGRJbmNsdWRlTG9jYWxob3N0OjpObzsKQEAgLTEx
NjcsNCArMTE3MywxNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ29jb2E6OmNvbnRpbnVlRGlkUmVj
ZWl2ZUNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdAogICAgIG5ldHdvcmtEYXRh
VGFzay0+ZGlkUmVjZWl2ZUNoYWxsZW5nZShXVEZNb3ZlKGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KSwgV1RGTW92ZShjaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlcikpOwogfQogCitETUZXZWJzaXRl
UG9saWN5TW9uaXRvciAqTmV0d29ya1Nlc3Npb25Db2NvYTo6ZGV2aWNlTWFuYWdlbWVudFBvbGlj
eU1vbml0b3IoKQoreworI2lmIEhBVkUoREVWSUNFX01BTkFHRU1FTlQpCisgICAgQVNTRVJUKG1f
ZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQpOworICAgIGlmICghbV9kZXZpY2VN
YW5hZ2VtZW50UG9saWN5TW9uaXRvcikKKyAgICAgICAgbV9kZXZpY2VNYW5hZ2VtZW50UG9saWN5
TW9uaXRvciA9IGFkb3B0TlMoW2FsbG9jRE1GV2Vic2l0ZVBvbGljeU1vbml0b3JJbnN0YW5jZSgp
IGluaXRXaXRoUG9saWN5Q2hhbmdlSGFuZGxlcjpuaWxdKTsKKyAgICByZXR1cm4gbV9kZXZpY2VN
YW5hZ2VtZW50UG9saWN5TW9uaXRvci5nZXQoKTsKKyNlbHNlCisgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbmlsOworI2VuZGlmCit9CisKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0RldmljZU1hbmFnZW1lbnRTUEku
aCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0RldmljZU1hbmFnZW1lbnRTUEku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hMWNmZDViNWU1ZTkwMTE3NzA2YTc4NTgxNTJjODljMmIzNTQ1ZDE2Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvRGV2aWNl
TWFuYWdlbWVudFNQSS5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEhBVkUoREVWSUNFX01BTkFHRU1FTlQpCisKKyNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQorCisjaW1wb3J0IDxEZXZpY2VNYW5hZ2VtZW50L0RldmljZU1hbmFnZW1lbnQuaD4K
KworI2Vsc2UKKworQGludGVyZmFjZSBETUZXZWJzaXRlUG9saWN5TW9uaXRvciA6IE5TT2JqZWN0
CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBvbGljeUNoYW5nZUhhbmRsZXI6KHZvaWQoXiko
dm9pZCkpY2hhbmdlSGFuZGxlcjsKKy0gKHZvaWQpcmVxdWVzdFBvbGljaWVzRm9yV2Vic2l0ZXM6
KE5TQXJyYXk8TlNVUkwgKj4gKil3ZWJzaXRlVVJMcyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
XikoTlNEaWN0aW9uYXJ5PE5TVVJMICosIE5TTnVtYmVyICo+ICpwb2xpY2llcywgTlNFcnJvciAq
ZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyOworCitAZW5kCisKK3R5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIERNRlBvbGljeSkgeworICAgIERNRlBvbGljeU9LID0gMCwKKyAgICBETUZQb2xpY3lC
bG9ja2VkID0gNCwKK307CisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisj
ZW5kaWYgLy8gSEFWRShERVZJQ0VfTUFOQUdFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5OZXR3b3Jr
aW5nLnNiIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20u
YXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IKaW5kZXggZGE2MGIxYmJmZTJjOTYwYzBhYjg4ZTMy
YjgyYTAyZDU3MDA3MDUyYS4uODA3MTZlYzY0MzQ4YmZiNDQ4ZWRlNjc2MmQ0YzBkZDljMTljZGY3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lv
cy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IKKysrIGIvU291cmNlL1dlYktpdC9SZXNv
dXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IK
QEAgLTgyLDYgKzgyLDExIEBACiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUucGFzc2QuaW4t
YXBwLXBheW1lbnQiKQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnBhc3NkLmxpYnJhcnki
KSkKIAorKGFsbG93IG1hY2gtbG9va3VwCisgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuZG1k
LnBvbGljeSIpCisgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuc2lyaS5jb250ZXh0LnNlcnZp
Y2UiKQorICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmN0Y2F0ZWdvcmllcy5zZXJ2aWNlIikp
CisKIChkZW55IGZpbGUtd3JpdGUtY3JlYXRlCiAgICAgICAgKHZub2RlLXR5cGUgU1lNTElOSykp
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElFcnJvci5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUVycm9yLmgKaW5kZXggNDQyZDY3NmVkMjc0OTlmMGYy
YTJiZDRjZDU0NzJkNzQxMzlkZDNkZC4uODczNjdjZDI0MzE1OGYxMDdkY2MzYjAzYWIyYTgwNmI3
OWQwZDA3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUVycm9yLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUVycm9yLmgKQEAgLTY1LDcgKzY1LDgg
QEAgcHVibGljOgogICAgICAgICBGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlID0g
MTAyLAogICAgICAgICBDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCA9IDEwMywKICAgICAgICAgRnJh
bWVMb2FkQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIgPSAxMDQsCi0gICAgICAgIEZyYW1lTG9hZEJs
b2NrZWRCeUNvbnRlbnRGaWx0ZXIgPSAxMDUKKyAgICAgICAgRnJhbWVMb2FkQmxvY2tlZEJ5Q29u
dGVudEZpbHRlciA9IDEwNSwKKyAgICAgICAgRnJhbWVMb2FkQmxvY2tlZEJ5UmVzdHJpY3Rpb25z
ID0gMTA2LAogICAgIH07CiAgICAgc3RhdGljIGNvbnN0IFdURjo6U3RyaW5nJiB3ZWJLaXRQb2xp
Y3lFcnJvckRvbWFpbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
Yy9XS0Vycm9yUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYu
Y3BwCmluZGV4IDQ3OTNhNTdmZDJmMTU0ZmVjNzFkOTg0Yjc4ZmI0OGFkODQ5MjkxMmUuLmU2Y2U2
ZDk0YTEzNzgyNjkwODk2ZWM3YjMwNzIyMzQwMGIzZmUzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FQSS9jL1dLRXJyb3JSZWYuY3BwCkBAIC01OCw2ICs1OCw4IEBAIGludCBXS0Vycm9yR2V0
RXJyb3JDb2RlKFdLRXJyb3JSZWYgZXJyb3JSZWYpCiAgICAgICAgIHJldHVybiBrV0tFcnJvckNv
ZGVDYW5ub3RVc2VSZXN0cmljdGVkUG9ydDsKICAgICBjYXNlIEFQSTo6RXJyb3I6OlBvbGljeTo6
RnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEJsb2NrZXI6CiAgICAgICAgIHJldHVybiBrV0tFcnJv
ckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50QmxvY2tlcjsKKyAgICBjYXNlIEFQSTo6RXJy
b3I6OlBvbGljeTo6RnJhbWVMb2FkQmxvY2tlZEJ5UmVzdHJpY3Rpb25zOgorICAgICAgICByZXR1
cm4ga1dLRXJyb3JDb2RlRnJhbWVMb2FkQmxvY2tlZEJ5UmVzdHJpY3Rpb25zOwogICAgIGNhc2Ug
QVBJOjpFcnJvcjo6UG9saWN5OjpGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50RmlsdGVyOgogICAg
ICAgICByZXR1cm4ga1dLRXJyb3JDb2RlRnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEZpbHRlcjsK
ICAgICBjYXNlIEFQSTo6RXJyb3I6OlBsdWdpbjo6Q2Fubm90RmluZFBsdWdJbjoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYuaAppbmRleCAwZDc2Mzg0ZDM0NGEwMTA1YTc3OGE1
ZTVkN2I3OGZjNDY4MzAzNjhkLi5lOTkwYzQ0MjlkNDcyMTY5Mzg1MGE5MDU3NzljZjg2YzQxNjdi
Y2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Vycm9yUmVmLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tFcnJvclJlZi5oCkBAIC0zOSw2ICsz
OSw3IEBAIGVudW0gewogICAgIGtXS0Vycm9yQ29kZUNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0ID0g
ICAgICAgICAgICAgICAgICAgICAgICAxMDMsCiAgICAga1dLRXJyb3JDb2RlRnJhbWVMb2FkQmxv
Y2tlZEJ5Q29udGVudEJsb2NrZXIgPSAgICAgICAgICAgICAgIDEwNCwKICAgICBrV0tFcnJvckNv
ZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50RmlsdGVyID0gICAgICAgICAgICAgICAgMTA1LAor
ICAgIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEJsb2NrZWRCeVJlc3RyaWN0aW9ucyA9ICAgICAgICAg
ICAgICAgICAxMDYsCiAgICAga1dLRXJyb3JDb2RlQ2Fubm90RmluZFBsdWdJbiA9ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDIwMCwKICAgICBrV0tFcnJvckNvZGVDYW5ub3RMb2FkUGx1
Z0luID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAxLAogICAgIGtXS0Vycm9yQ29k
ZUphdmFVbmF2YWlsYWJsZSA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMDIsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFcnJvcnMuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViRXJyb3JzLmNwcAppbmRleCBiNmRjNTBjZWI1NWNhZjY1YmJlMTlhZjZl
MzI3ZDUxMjAwOWEzZmE4Li42Y2ZhMjVjNjZhZGQxN2FkN2IzMTRlZWFiNzVlZmI0MWNlN2M1MjU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFcnJvcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkVycm9ycy5jcHAKQEAgLTUyLDYgKzUyLDExIEBAIFJlc291
cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKICAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRQb2xpY3lFcnJv
ckRvbWFpbigpLCBBUEk6OkVycm9yOjpQb2xpY3k6OkNhbm5vdFNob3dVUkwsIHJlcXVlc3QudXJs
KCksIFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwgY2Fu4oCZdCBiZSBzaG93biIsICJXZWJLaXRFcnJv
ckNhbm5vdFNob3dVUkwgZGVzY3JpcHRpb24iKSk7CiB9CiAKK1Jlc291cmNlRXJyb3Igd2FzQmxv
Y2tlZEJ5UmVzdHJpY3Rpb25zRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQor
eworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdFBvbGljeUVycm9y
RG9tYWluKCksIEFQSTo6RXJyb3I6OlBvbGljeTo6RnJhbWVMb2FkQmxvY2tlZEJ5UmVzdHJpY3Rp
b25zLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIHdhcyBibG9ja2VkIGJ5
IGRldmljZSByZXN0cmljdGlvbnMiLCAiV2ViS2l0RXJyb3JGcmFtZUxvYWRCbG9ja2VkQnlSZXN0
cmljdGlvbnMgZGVzY3JpcHRpb24iKSk7Cit9CisKIFJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRG
b3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAg
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0UG9saWN5RXJyb3JEb21h
aW4oKSwgQVBJOjpFcnJvcjo6UG9saWN5OjpGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hh
bmdlLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJGcmFtZSBsb2FkIGludGVycnVwdGVk
IiwgIldlYktpdEVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSBkZXNjcmlw
dGlvbiIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkVycm9ycy5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXJyb3JzLmgKaW5kZXggN2Q2MDBjNmQyM2I1NWRjYzM5
NjMwOTkwNDA3Y2U3NDQ0NDZjYjQ4Ni4uOWYwYTAwMmI2Y2IxYTYxNTJhMWQ4ODM3YWVhOWI0YzJm
OGEyYWIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXJyb3JzLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXJyb3JzLmgKQEAgLTM5LDYgKzM5LDcgQEAgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmKTsKIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2Vk
QnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwog
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0Jik7CitXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHdhc0Jsb2NrZWRCeVJl
c3RyaWN0aW9uc0Vycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBmYWlsZWRD
dXN0b21Qcm90b2NvbFN5bmNMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwog
I2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBmNzRiMmM1ZGI5N2YxMmQ4
MjUwNjIwNmU3ODk2ZWNiYjI5NjBkZjVmLi45NDk5NzQwMjQ4MDBmYjIzN2Y1M2NhZjhkZjhkYzFi
MmE2OThjNzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vi
c2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdl
YnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xNDUsNiArMTQ1LDggQEAgUmVmPFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHREYXRhU3Rv
cmVDb24KIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBXZWJLaXQ6OldlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uOjpjcmVhdGUoKTsKIAorICAgIGNvbmZpZ3VyYXRpb24tPnNldFBlcnNp
c3RlbnQodHJ1ZSk7CisKICAgICBjb25maWd1cmF0aW9uLT5zZXRBcHBsaWNhdGlvbkNhY2hlRGly
ZWN0b3J5KGRlZmF1bHRBcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KCkpOwogICAgIGNvbmZpZ3Vy
YXRpb24tPnNldEFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUoIkZpbGVz
Iik7CiAgICAgY29uZmlndXJhdGlvbi0+c2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5KGRlZmF1bHRD
YWNoZVN0b3JhZ2VEaXJlY3RvcnkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tFcnJvclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS0Vycm9yUHJpdmF0ZS5oCmluZGV4IGY5YzEyZDIzY2U2N2RhMTUxYmY2OWJj
ZTJlNDYzMmNmNjM0MjIzY2UuLmI1ZDRjM2RjMTViMzVhNTA2MjUwOGQ4MDQ2MDMzM2EyNWYwOTll
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9y
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9y
UHJpdmF0ZS5oCkBAIC0yOSw2ICsyOSw3IEBAIFdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9X
S0xlZ2FjeUVycm9yRG9tYWluIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpCiAKIHR5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0xlZ2FjeUVycm9yQ29kZSkgewogICAgIF9XS0Vy
cm9yQ29kZUZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMSksIGlvcyg5LjApKSA9IDEwMiwKKyAgICBfV0tFcnJvckNvZGVGcmFtZUxv
YWRCbG9ja2VkQnlSZXN0cmljdGlvbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKSA9IDEwNiwKICAgICBfV0tMZWdhY3lFcnJvclBsdWdJbldpbGxI
YW5kbGVMb2FkID0gMjA0LAogfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDgu
MykpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nl
c3NQb29sLm1tCmluZGV4IDE2ODhhMGFjYTgxOTYwNDRlNjZmMmUxNDc1MTM2ZGE2ODVhMDc0YjYu
LmIwYWM3NmJlZjEyMjlkMGIzZjA3ZmU4NmY5NzFhYjMxYzYwNDYxYjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC01ODQs
NyArNTg0LDcgQEAgLSAodm9pZClfc3ludGhlc2l6ZUFwcElzQmFja2dyb3VuZDooQk9PTCliYWNr
Z3JvdW5kCiAgICAgX3Byb2Nlc3NQb29sLT5zeW50aGVzaXplQXBwSXNCYWNrZ3JvdW5kKGJhY2tn
cm91bmQpOwogfQogCi0tICh2b2lkKV9zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZp
Y2VXb3JrZXI6KEJPT0wpIGFsbG93cworLSAodm9pZClfc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNh
dGVGb3JTZXJ2aWNlV29ya2VyOihCT09MKWFsbG93cwogewogI2lmIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKICAgICBfcHJvY2Vzc1Bvb2wtPnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yU2Vy
dmljZVdvcmtlcihhbGxvd3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggMjYyOThlYmNlYzU3NzRlMzQw
NjYxZWE5ZmIxYTRiMjhlYTUwYTM0My4uM2RiMjZjMWQ5ODg4MjhkNjIxMmJlZmJiYTQ4NTA5MGQ3
MDE0Nzg2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC0yMjksMjIgKzIyOSwzNSBAQCAtIChpbnN0YW5j
ZXR5cGUpX2luaXRXaXRoQ29uZmlndXJhdGlvbjooX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24gKiljb25maQogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICBy
ZXR1cm4gbmlsOwogCi0gICAgYXV0byBjb25maWcgPSBBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRl
ZmF1bHREYXRhU3RvcmVDb25maWd1cmF0aW9uKCk7Ci0KLSAgICBpZiAoY29uZmlndXJhdGlvbi5f
d2ViU3RvcmFnZURpcmVjdG9yeSkKLSAgICAgICAgY29uZmlnLT5zZXRMb2NhbFN0b3JhZ2VEaXJl
Y3RvcnkoY29uZmlndXJhdGlvbi5fd2ViU3RvcmFnZURpcmVjdG9yeS5wYXRoKTsKLSAgICBpZiAo
Y29uZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkpCi0gICAgICAgIGNvbmZpZy0+
c2V0V2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoY29uZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJhc2VE
aXJlY3RvcnkucGF0aCk7Ci0gICAgaWYgKGNvbmZpZ3VyYXRpb24uX2luZGV4ZWREQkRhdGFiYXNl
RGlyZWN0b3J5KQotICAgICAgICBjb25maWctPnNldEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5
KGNvbmZpZ3VyYXRpb24uX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5LnBhdGgpOwotICAgIGlm
IChjb25maWd1cmF0aW9uLl9jb29raWVTdG9yYWdlRmlsZSkKLSAgICAgICAgY29uZmlnLT5zZXRD
b29raWVTdG9yYWdlRmlsZShjb25maWd1cmF0aW9uLl9jb29raWVTdG9yYWdlRmlsZS5wYXRoKTsK
LSAgICBpZiAoY29uZmlndXJhdGlvbi5fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSkK
LSAgICAgICAgY29uZmlnLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KGNvbmZp
Z3VyYXRpb24uX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkucGF0aCk7Ci0gICAgaWYg
KGNvbmZpZ3VyYXRpb24uX2NhY2hlU3RvcmFnZURpcmVjdG9yeSkKLSAgICAgICAgY29uZmlnLT5z
ZXRDYWNoZVN0b3JhZ2VEaXJlY3RvcnkoY29uZmlndXJhdGlvbi5fY2FjaGVTdG9yYWdlRGlyZWN0
b3J5LnBhdGgpOwotICAgIGlmIChjb25maWd1cmF0aW9uLl9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGlyZWN0b3J5KQotICAgICAgICBjb25maWctPnNldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EaXJlY3RvcnkoY29uZmlndXJhdGlvbi5fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVj
dG9yeS5wYXRoKTsKKyAgICBhdXRvIGNvbmZpZyA9IGNvbmZpZ3VyYXRpb24uaXNQZXJzaXN0ZW50
ID8gQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0RGF0YVN0b3JlQ29uZmlndXJhdGlvbigp
IDogV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6Y3JlYXRlKCk7CisKKyAg
ICBSRUxFQVNFX0FTU0VSVChjb25maWctPmlzUGVyc2lzdGVudCgpID09IGNvbmZpZ3VyYXRpb24u
aXNQZXJzaXN0ZW50KTsKKworICAgIGlmIChjb25maWd1cmF0aW9uLmlzUGVyc2lzdGVudCkgewor
ICAgICAgICBpZiAoY29uZmlndXJhdGlvbi5fd2ViU3RvcmFnZURpcmVjdG9yeSkKKyAgICAgICAg
ICAgIGNvbmZpZy0+c2V0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uX3dlYlN0
b3JhZ2VEaXJlY3RvcnkucGF0aCk7CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uLl93ZWJTUUxE
YXRhYmFzZURpcmVjdG9yeSkKKyAgICAgICAgICAgIGNvbmZpZy0+c2V0V2ViU1FMRGF0YWJhc2VE
aXJlY3RvcnkoY29uZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkucGF0aCk7Cisg
ICAgICAgIGlmIChjb25maWd1cmF0aW9uLl9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSkKKyAg
ICAgICAgICAgIGNvbmZpZy0+c2V0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoY29uZmlndXJh
dGlvbi5faW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkucGF0aCk7CisgICAgICAgIGlmIChjb25m
aWd1cmF0aW9uLl9jb29raWVTdG9yYWdlRmlsZSkKKyAgICAgICAgICAgIGNvbmZpZy0+c2V0Q29v
a2llU3RvcmFnZUZpbGUoY29uZmlndXJhdGlvbi5fY29va2llU3RvcmFnZUZpbGUucGF0aCk7Cisg
ICAgICAgIGlmIChjb25maWd1cmF0aW9uLl9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
KQorICAgICAgICAgICAgY29uZmlnLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
KGNvbmZpZ3VyYXRpb24uX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkucGF0aCk7Cisg
ICAgICAgIGlmIChjb25maWd1cmF0aW9uLl9jYWNoZVN0b3JhZ2VEaXJlY3RvcnkpCisgICAgICAg
ICAgICBjb25maWctPnNldENhY2hlU3RvcmFnZURpcmVjdG9yeShjb25maWd1cmF0aW9uLl9jYWNo
ZVN0b3JhZ2VEaXJlY3RvcnkucGF0aCk7CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uLl9zZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KQorICAgICAgICAgICAgY29uZmlnLT5zZXRT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uX3NlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkucGF0aCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
UkVMRUFTRV9BU1NFUlQoIWNvbmZpZ3VyYXRpb24uX3dlYlN0b3JhZ2VEaXJlY3RvcnkpOworICAg
ICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJhc2VEaXJlY3Rv
cnkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5faW5kZXhlZERCRGF0
YWJhc2VEaXJlY3RvcnkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5f
Y29va2llU3RvcmFnZUZpbGUpOworICAgICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlv
bi5fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSk7CisgICAgICAgIFJFTEVBU0VfQVNT
RVJUKCFjb25maWd1cmF0aW9uLl9jYWNoZVN0b3JhZ2VEaXJlY3RvcnkpOworICAgICAgICBSRUxF
QVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVj
dG9yeSk7CisgICAgfQorCiAgICAgaWYgKGNvbmZpZ3VyYXRpb24uc291cmNlQXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyKQogICAgICAgICBjb25maWctPnNldFNvdXJjZUFwcGxpY2F0aW9uQnVu
ZGxlSWRlbnRpZmllcihjb25maWd1cmF0aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRp
Zmllcik7CiAgICAgaWYgKGNvbmZpZ3VyYXRpb24uc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJ
ZGVudGlmaWVyKQpAQCAtMjUzLDggKzI2NiwxMiBAQCAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRo
Q29uZmlndXJhdGlvbjooX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gKiljb25maQog
ICAgICAgICBjb25maWctPnNldEhUVFBQcm94eShjb25maWd1cmF0aW9uLmh0dHBQcm94eSk7CiAg
ICAgaWYgKGNvbmZpZ3VyYXRpb24uaHR0cHNQcm94eSkKICAgICAgICAgY29uZmlnLT5zZXRIVFRQ
U1Byb3h5KGNvbmZpZ3VyYXRpb24uaHR0cHNQcm94eSk7CisgICAgY29uZmlnLT5zZXREZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZChjb25maWd1cmF0aW9uLmRldmljZU1hbmFnZW1l
bnRSZXN0cmljdGlvbnNFbmFibGVkKTsKKyAgICBjb25maWctPnNldEFsbExvYWRzQmxvY2tlZEJ5
RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoY29uZmlndXJhdGlvbi5hbGxM
b2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKTsKKwor
ICAgIGF1dG8gc2Vzc2lvbklEID0gY29uZmlndXJhdGlvbi5pc1BlcnNpc3RlbnQgPyBQQUw6OlNl
c3Npb25JRDo6Z2VuZXJhdGVQZXJzaXN0ZW50U2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25JRDo6
Z2VuZXJhdGVFcGhlbWVyYWxTZXNzaW9uSUQoKTsKIAotICAgIEFQSTo6T2JqZWN0Ojpjb25zdHJ1
Y3RJbldyYXBwZXI8QVBJOjpXZWJzaXRlRGF0YVN0b3JlPihzZWxmLCBXVEZNb3ZlKGNvbmZpZyks
IFBBTDo6U2Vzc2lvbklEOjpnZW5lcmF0ZVBlcnNpc3RlbnRTZXNzaW9uSUQoKSk7CisgICAgQVBJ
OjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OldlYnNpdGVEYXRhU3RvcmU+KHNlbGYs
IFdURk1vdmUoY29uZmlnKSwgc2Vzc2lvbklEKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAppbmRleCA1OWY5ODRlNDg3YWRmM2Yw
NDJkOTY3MzdhOWI0N2RhNzllMjJkM2IwLi4wNmE3MGVlNjRjMmQ4NzgyZWFmMzNhMjc5NWIxZjg1
YzczNzk0MDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAt
MzIsNiArMzIsMjAgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIFdLX0NMQVNTX0FWQUlMQUJM
RShtYWNvcygxMC4xMyksIGlvcygxMS4wKSkKIEBpbnRlcmZhY2UgX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24gOiBOU09iamVjdAogCistIChpbnN0YW5jZXR5cGUpaW5pdDsgLy8gQ3Jl
YXRlcyBhIHBlcnNpc3RlbnQgY29uZmlndXJhdGlvbi4KKy0gKGluc3RhbmNldHlwZSlpbml0Tm9u
UGVyc2lzdGVudENvbmZpZ3VyYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKKworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBn
ZXR0ZXI9aXNQZXJzaXN0ZW50KSBCT09MIHBlcnNpc3RlbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKworLy8gVGhlc2UgcHJvcGVydGllcyBh
cHBseSB0byBib3RoIHBlcnNpc3RlbnQgYW5kIG5vbi1wZXJzaXN0ZW50IGRhdGEgc3RvcmVzLgor
QHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNlQXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCks
IGlvcygxMi4yKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3Ry
aW5nICpzb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxs
YWJsZSwgY29weSwgc2V0dGVyPXNldEhUVFBQcm94eTopIE5TVVJMICpodHRwUHJveHkgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhUVFBTUHJveHk6KSBOU1VSTCAqaHR0cHNQ
cm94eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwor
Ly8gVGhlc2UgcHJvcGVydGllcyBvbmx5IG1ha2Ugc2Vuc2UgZm9yIHBlcnNpc3RlbnQgZGF0YSBz
dG9yZXMsIGFuZCB3aWxsIHRocm93CisvLyBhbiBleGNlcHRpb24gaWYgc2V0IGZvciBub24tcGVy
c2lzdGVudCBzdG9yZXMuCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRX
ZWJTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKl93ZWJTdG9yYWdlRGlyZWN0b3J5OwogQHByb3Bl
cnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rv
cnk6KSBOU1VSTCAqX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5OwogQHByb3BlcnR5IChub25h
dG9taWMsIGNvcHksIHNldHRlcj1fc2V0V2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk6KSBOU1VSTCAq
X3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5OwpAQCAtMzksMTAgKzUzLDkgQEAgV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogQHByb3BlcnR5IChub25hdG9taWMsIGNv
cHksIHNldHRlcj1fc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTopIE5TVVJMICpf
cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEzLjQpLCBpb3MoMTEuMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1f
c2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKl9jYWNoZVN0b3JhZ2VEaXJlY3Rvcnkg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJl
Y3Rvcnk6KSBOU1VSTCAqX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwotQHBy
b3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNlQXBwbGlj
YXRpb25TZWNvbmRhcnlJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCks
IGlvcygxMi4yKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRl
cj1zZXRIVFRQUHJveHk6KSBOU1VSTCAqaHR0cFByb3h5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTQuNCksIGlvcygxMi4yKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNv
cHksIHNldHRlcj1zZXRIVFRQU1Byb3h5OikgTlNVUkwgKmh0dHBzUHJveHkgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKworLy8gVGVzdGluZyBvbmx5LgorQHBy
b3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50
UmVzdHJpY3Rpb25zRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5tbQppbmRleCAyYTA1MTBlYzg5ZjVlYWI4MWM1M2YyN2UyZTBkMDAzNmY2MGJh
MDI5Li4yNjdhM2Y1NGMyNjRkMmZhOGI3NTNiZWY1MWQ2ZGViZjdjM2E1YjA2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCkBAIC0zNiw2ICszNiwzMyBAQCBzdGF0
aWMgdm9pZCBjaGVja1VSTEFyZ3VtZW50KE5TVVJMICp1cmwpCiAKIEBpbXBsZW1lbnRhdGlvbiBf
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbgogCistIChpbnN0YW5jZXR5cGUpaW5pdAor
eworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1
cm4gbmlsOworCisgICAgX2NvbmZpZ3VyYXRpb24tPnNldFBlcnNpc3RlbnQodHJ1ZSk7CisKKyAg
ICByZXR1cm4gc2VsZjsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXROb25QZXJzaXN0ZW50Q29u
ZmlndXJhdGlvbgoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQor
ICAgICAgICByZXR1cm4gbmlsOworCisgICAgX2NvbmZpZ3VyYXRpb24tPnNldFBlcnNpc3RlbnQo
ZmFsc2UpOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKEJPT0wpaXNQZXJzaXN0ZW50Cit7
CisgICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT5pc1BlcnNpc3RlbnQoKTsKK30KKwogLSAoTlNV
UkwgKilfd2ViU3RvcmFnZURpcmVjdG9yeQogewogICAgIHJldHVybiBbTlNVUkwgZmlsZVVSTFdp
dGhQYXRoOl9jb25maWd1cmF0aW9uLT53ZWJTdG9yYWdlRGlyZWN0b3J5KCkgaXNEaXJlY3Rvcnk6
WUVTXTsKQEAgLTQzLDYgKzcwLDggQEAgLSAoTlNVUkwgKilfd2ViU3RvcmFnZURpcmVjdG9yeQog
CiAtICh2b2lkKV9zZXRXZWJTdG9yYWdlRGlyZWN0b3J5OihOU1VSTCAqKXVybAogeworICAgIGlm
ICghX2NvbmZpZ3VyYXRpb24tPmlzUGVyc2lzdGVudCgpKQorICAgICAgICBbTlNFeGNlcHRpb24g
cmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiQ2Fubm90IHNldCBfd2Vi
U3RvcmFnZURpcmVjdG9yeSBvbiBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLiJdOwogICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKICAgICBfY29uZmln
dXJhdGlvbi0+c2V0V2ViU3RvcmFnZURpcmVjdG9yeSh1cmwucGF0aCk7CiB9CkBAIC01NCw2ICs4
Myw4IEBAIC0gKE5TVVJMICopX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5CiAKIC0gKHZvaWQp
X3NldEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5OihOU1VSTCAqKXVybAogeworICAgIGlmICgh
X2NvbmZpZ3VyYXRpb24tPmlzUGVyc2lzdGVudCgpKQorICAgICAgICBbTlNFeGNlcHRpb24gcmFp
c2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiQ2Fubm90IHNldCBfaW5kZXhl
ZERCRGF0YWJhc2VEaXJlY3Rvcnkgb24gYSBub24tcGVyc2lzdGVudCBfV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbi4iXTsKICAgICBjaGVja1VSTEFyZ3VtZW50KHVybCk7CiAgICAgX2Nv
bmZpZ3VyYXRpb24tPnNldEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KHVybC5wYXRoKTsKIH0K
QEAgLTY1LDYgKzk2LDggQEAgLSAoTlNVUkwgKilfd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkKIAog
LSAodm9pZClfc2V0V2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk6KE5TVVJMICopdXJsCiB7CisgICAg
aWYgKCFfY29uZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50KCkpCisgICAgICAgIFtOU0V4Y2VwdGlv
biByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJDYW5ub3Qgc2V0IF93
ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSBvbiBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLiJdOwogICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKICAgICBf
Y29uZmlndXJhdGlvbi0+c2V0V2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkodXJsLnBhdGgpOwogfQpA
QCAtOTYsNiArMTI5LDggQEAgLSAoTlNVUkwgKilfY29va2llU3RvcmFnZUZpbGUKIAogLSAodm9p
ZClfc2V0Q29va2llU3RvcmFnZUZpbGU6KE5TVVJMICopdXJsCiB7CisgICAgaWYgKCFfY29uZmln
dXJhdGlvbi0+aXNQZXJzaXN0ZW50KCkpCisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0lu
dmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJDYW5ub3Qgc2V0IF9jb29raWVTdG9yYWdl
RmlsZSBvbiBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
LiJdOwogICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKICAgICBpZiAoW3VybCBoYXNEaXJlY3Rv
cnlQYXRoXSkKICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhj
ZXB0aW9uIGZvcm1hdDpAIlRoZSBjb29raWUgc3RvcmFnZSBwYXRoIG11c3QgcG9pbnQgdG8gYSBm
aWxlLCBub3QgYSBkaXJlY3RvcnkuIl07CkBAIC0xMTAsNiArMTQ1LDggQEAgLSAoTlNVUkwgKilf
cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeQogCiAtICh2b2lkKV9zZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5OihOU1VSTCAqKXVybAogeworICAgIGlmICghX2NvbmZpZ3Vy
YXRpb24tPmlzUGVyc2lzdGVudCgpKQorICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZh
bGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiQ2Fubm90IHNldCBfcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RpcmVjdG9yeSBvbiBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLiJdOwogICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKICAgICBfY29uZmln
dXJhdGlvbi0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSh1cmwucGF0aCk7CiB9
CkBAIC0xMjEsNiArMTU4LDggQEAgLSAoTlNVUkwgKilfY2FjaGVTdG9yYWdlRGlyZWN0b3J5CiAK
IC0gKHZvaWQpX3NldENhY2hlU3RvcmFnZURpcmVjdG9yeTooTlNVUkwgKil1cmwKIHsKKyAgICBp
ZiAoIV9jb25maWd1cmF0aW9uLT5pc1BlcnNpc3RlbnQoKSkKKyAgICAgICAgW05TRXhjZXB0aW9u
IHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIkNhbm5vdCBzZXQgX2Nh
Y2hlU3RvcmFnZURpcmVjdG9yeSBvbiBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLiJdOwogICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKICAgICBfY29u
ZmlndXJhdGlvbi0+c2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5KHVybC5wYXRoKTsKIH0KQEAgLTEz
Miw2ICsxNzEsOCBAQCAtIChOU1VSTCAqKV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0
b3J5CiAKIC0gKHZvaWQpX3NldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnk6KE5T
VVJMICopdXJsCiB7CisgICAgaWYgKCFfY29uZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50KCkpCisg
ICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3Jt
YXQ6QCJDYW5ub3Qgc2V0IF9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IG9uIGEg
bm9uLXBlcnNpc3RlbnQgX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uIl07CiAgICAg
Y2hlY2tVUkxBcmd1bWVudCh1cmwpOwogICAgIF9jb25maWd1cmF0aW9uLT5zZXRTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KHVybC5wYXRoKTsKIH0KQEAgLTE1Niw2ICsxOTcsMjYg
QEAgLSAodm9pZClzZXRTb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI6KE5TU3Ry
aW5nICopaWRlbnRpZmllcgogICAgIF9jb25maWd1cmF0aW9uLT5zZXRTb3VyY2VBcHBsaWNhdGlv
blNlY29uZGFyeUlkZW50aWZpZXIoaWRlbnRpZmllcik7CiB9CiAKKy0gKEJPT0wpZGV2aWNlTWFu
YWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQKK3sKKyAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24t
PmRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKCk7Cit9CisKKy0gKHZvaWQpc2V0
RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQ6KEJPT0wpZW5hYmxlZAoreworICAg
IF9jb25maWd1cmF0aW9uLT5zZXREZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZChl
bmFibGVkKTsKK30KKworLSAoQk9PTClhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNGb3JUZXN0aW5nCit7CisgICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT5hbGxM
b2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKCk7Cit9
CisKKy0gKHZvaWQpc2V0QWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rp
b25zRm9yVGVzdGluZzooQk9PTClibG9ja2VkCit7CisgICAgX2NvbmZpZ3VyYXRpb24tPnNldEFs
bExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoYmxv
Y2tlZCk7Cit9CisKIC0gKEFQSTo6T2JqZWN0JilfYXBpT2JqZWN0CiB7CiAgICAgcmV0dXJuICpf
Y29uZmlndXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQppbmRleCAw
NTQyNWMwNzUxZTIzOGVlMTkyNTliM2QwMjU0ZjA2OTFjYTM0N2RhLi4yYTU2YTc0MzZlOGEwMDg2
MGE1YzBiZDExMjA1MzMzOTIzMTljMjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNv
Y29hLm1tCkBAIC0xMzEsNiArMTMxLDggQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vi
c2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgICAgIGZhbHNlLAogICAgICAgICBzaG91
bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLAogICAgICAgICBlbmFi
bGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlLAorICAgICAgICBtX2NvbmZpZ3VyYXRp
b24tPmRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKCksCisgICAgICAgIG1fY29u
ZmlndXJhdGlvbi0+YWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25z
Rm9yVGVzdGluZygpLAogICAgICAgICBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51
YWxQcmV2YWxlbnRSZXNvdXJjZSksCiAgICAgICAgIFdURk1vdmUobG9jYWxTdG9yYWdlRGlyZWN0
b3J5KSwKICAgICAgICAgV1RGTW92ZShsb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggOTlmNTdl
NGFlM2E0ZTE0MzdiNTRiMjUyNTBmNzIxN2EzMTIwYTJlZS4uYWViODBjZGM2MjUyZjg4MjRjMTBi
MDRjZGY4Y2UxNzQxNjdiYWU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uLmNwcApAQCAtMzksNiArMzksOCBAQCBSZWY8V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24+IFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpjb3B5KCkKIHsKICAgICBhdXRvIGNv
cHkgPSBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6Y3JlYXRlKCk7CiAKKyAgICBjb3B5
LT5tX2lzUGVyc2lzdGVudCA9IHRoaXMtPm1faXNQZXJzaXN0ZW50OworCiAgICAgY29weS0+bV9j
YWNoZVN0b3JhZ2VEaXJlY3RvcnkgPSB0aGlzLT5tX2NhY2hlU3RvcmFnZURpcmVjdG9yeTsKICAg
ICBjb3B5LT5tX3Blck9yaWdpblN0b3JhZ2VRdW90YSA9IHRoaXMtPm1fcGVyT3JpZ2luU3RvcmFn
ZVF1b3RhOwogICAgIGNvcHktPm1fbmV0d29ya0NhY2hlRGlyZWN0b3J5ID0gdGhpcy0+bV9uZXR3
b3JrQ2FjaGVEaXJlY3Rvcnk7CkBAIC01OSw2ICs2MSw4IEBAIFJlZjxXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbj4gV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkoKQogICAg
IGNvcHktPm1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyID0gdGhpcy0+bV9z
b3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI7CiAgICAgY29weS0+bV9odHRwUHJv
eHkgPSB0aGlzLT5tX2h0dHBQcm94eTsKICAgICBjb3B5LT5tX2h0dHBzUHJveHkgPSB0aGlzLT5t
X2h0dHBzUHJveHk7CisgICAgY29weS0+bV9kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5h
YmxlZCA9IHRoaXMtPm1fZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQ7CisgICAg
Y29weS0+bV9hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JU
ZXN0aW5nID0gdGhpcy0+bV9hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmlj
dGlvbnNGb3JUZXN0aW5nOwogCiAgICAgcmV0dXJuIGNvcHk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uaAppbmRleCBkZjE3YWRjNWU0ZDMyZDAyMTU1OGU2NDk0YTNlMzY5
Nzg3ZjU5ZjcwLi5lYTNkOGUyZjE5ZDA1NjVjZjRiYzVmYWI2NmE0YmZhYWJkNWJiYmQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTM4LDcgKzM4LDEwIEBAIHB1
YmxpYzoKIAogICAgIFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4gY29weSgpOwog
Ci0gICAgdWludDY0X3QgcGVyT3JpZ2luU3RvcmFnZVF1b3RhKCkgeyByZXR1cm4gbV9wZXJPcmln
aW5TdG9yYWdlUXVvdGE7IH0KKyAgICBib29sIGlzUGVyc2lzdGVudCgpIGNvbnN0IHsgcmV0dXJu
IG1faXNQZXJzaXN0ZW50OyB9CisgICAgdm9pZCBzZXRQZXJzaXN0ZW50KGJvb2wgaXNQZXJzaXN0
ZW50KSB7IG1faXNQZXJzaXN0ZW50ID0gaXNQZXJzaXN0ZW50OyB9CisKKyAgICB1aW50NjRfdCBw
ZXJPcmlnaW5TdG9yYWdlUXVvdGEoKSBjb25zdCB7IHJldHVybiBtX3Blck9yaWdpblN0b3JhZ2VR
dW90YTsgfQogICAgIHZvaWQgc2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhKHVpbnQ2NF90IHF1b3Rh
KSB7IG1fcGVyT3JpZ2luU3RvcmFnZVF1b3RhID0gcXVvdGE7IH0KIAogICAgIGNvbnN0IFN0cmlu
ZyYgYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbGljYXRp
b25DYWNoZURpcmVjdG9yeTsgfQpAQCAtOTgsOSArMTAxLDE3IEBAIHB1YmxpYzoKICAgICBjb25z
dCBVUkwmIGh0dHBzUHJveHkoKSBjb25zdCB7IHJldHVybiBtX2h0dHBzUHJveHk7IH0KICAgICB2
b2lkIHNldEhUVFBTUHJveHkoVVJMJiYgcHJveHkpIHsgbV9odHRwc1Byb3h5ID0gV1RGTW92ZShw
cm94eSk7IH0KIAorICAgIGJvb2wgZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkOyB9
CisgICAgdm9pZCBzZXREZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZChib29sIGVu
YWJsZWQpIHsgbV9kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCA9IGVuYWJsZWQ7
IH0KKworICAgIGJvb2wgYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rp
b25zRm9yVGVzdGluZygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzsgfQorICAgIHZvaWQgc2V0QWxsTG9hZHNC
bG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyhib29sIGJsb2Nr
ZWQpIHsgbV9hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JU
ZXN0aW5nID0gYmxvY2tlZDsgfQorCiBwcml2YXRlOgogICAgIFdlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uKCk7CiAKKyAgICBib29sIG1faXNQZXJzaXN0ZW50IHsgZmFsc2UgfTsKKwogICAg
IFN0cmluZyBtX2NhY2hlU3RvcmFnZURpcmVjdG9yeTsKICAgICB1aW50NjRfdCBtX3Blck9yaWdp
blN0b3JhZ2VRdW90YSB7IFdlYkNvcmU6OlN0b3JhZ2VRdW90YU1hbmFnZXI6OmRlZmF1bHRRdW90
YSgpIH07CiAgICAgU3RyaW5nIG1fbmV0d29ya0NhY2hlRGlyZWN0b3J5OwpAQCAtMTIxLDYgKzEz
Miw4IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJ
ZGVudGlmaWVyOwogICAgIFVSTCBtX2h0dHBQcm94eTsKICAgICBVUkwgbV9odHRwc1Byb3h5Owor
ICAgIGJvb2wgbV9kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCB7IGZhbHNlIH07
CisgICAgYm9vbCBtX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9u
c0ZvclRlc3RpbmcgeyBmYWxzZSB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGRiM2EzMDAwY2FlZjcyMzVjMjY0NmNk
MGY0MDQ4Y2JjZWI1NjBhMi4uOTU3MzI4YzAxOTg2NmQwZWRjNjdjNDY0MzA5ZTAzYmMxMzc3YzVl
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC00MzAsNiArNDMwLDggQEAKIAkJMjk4NEY1ODkxNjRCQTA5NTAwNEJDMEM2IC8qIExlZ2Fj
eUN1c3RvbVByb3RvY29sTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTg0RjU4NzE2NEJBMDk1MDA0QkMwQzYgLyogTGVnYWN5
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKIAkJMjlBRDMwOTMxNjRCNEM1
RDAwNzJERUE5IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUFEMzA5MjE2NEI0QzVEMDA3
MkRFQTkgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkuaCAqLzsgfTsKIAkJMjlD
RDU1QUExMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUNENTVB
ODEyOEUyOTRGMDAxMzNDODUgLyogV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UuaCAq
LzsgfTsKKwkJMkQwQzU2RkQyMjlGMURFQTAwQkQzM0U3IC8qIERldmljZU1hbmFnZW1lbnRTb2Z0
TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQw
QzU2RkIyMjlGMURFQTAwQkQzM0U3IC8qIERldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oICovOyB9
OworCQkyRDBDNTZGRTIyOUYxREVBMDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5r
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQwQzU2
RkMyMjlGMURFQTAwQkQzM0U3IC8qIERldmljZU1hbmFnZW1lbnRTb2Z0TGluay5tbSAqLzsgfTsK
IAkJMkQxMDg3NjExRDJDNTczRTAwQjg1RjgyIC8qIExvYWRQYXJhbWV0ZXJzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDEwODc1RjFEMkM1NzNFMDBC
ODVGODIgLyogTG9hZFBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJMkQxMUI3NTEyMTI2QTI4MjAwNkY4
ODc4IC8qIFVuaWZpZWRTb3VyY2UxLW1tLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkQ3REVDOTQyMTI2OUU0QzAwQjlGNzNDIC8qIFVuaWZpZWRTb3Vy
Y2UxLW1tLm1tICovOyB9OwogCQkyRDExQjc1MjIxMjZBMjgyMDA2Rjg4NzggLyogVW5pZmllZFNv
dXJjZTEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkQ3REVENUIyMTI2OUU0RDAwQjlGNzNDIC8qIFVuaWZpZWRTb3VyY2UxLmNwcCAqLzsgfTsKQEAg
LTcwMiw2ICs3MDQsNyBAQAogCQkyREE2NzMxQTIwQzc1NEIxMDAzQ0I0MDEgLyogRHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkRBNjczMTkyMEM3NTRCMTAwM0NCNDAxIC8qIER5bmFtaWNWaWV3cG9ydFNpemVV
cGRhdGUuaCAqLzsgfTsKIAkJMkRBOTQ0QTAxODg0RTRGMDAwRUQ4NkRCIC8qIFdlYklPU0V2ZW50
RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkRBOTQ0OTkxODg0RTRGMDAwRUQ4NkRCIC8qIFdlYklPU0V2ZW50RmFjdG9yeS5oICovOyB9Owog
CQkyREE5NDRBNDE4ODRFNEYwMDBFRDg2REIgLyogR2VzdHVyZVR5cGVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREE5NDQ5RDE4ODRFNEYwMDBFRDg2
REIgLyogR2VzdHVyZVR5cGVzLmggKi87IH07CisJCTJEQUFEQThGMjI5OEMyMTAwMEUzNkIwQyAv
KiBEZXZpY2VNYW5hZ2VtZW50U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyREFBREE4RTIyOThDMjEwMDBFMzZCMEMgLyogRGV2aWNlTWFuYWdlbWVu
dFNQSS5oICovOyB9OwogCQkyREFCQTc3MjFBODE3QjE3MDBFRjBGMUEgLyogV0tQYWdlUmVuZGVy
aW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkRBQkE3NzExQTgxN0IxNzAwRUYwRjFBIC8qIFdLUGFnZVJlbmRl
cmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaCAqLzsgfTsKIAkJMkRBQkE3NzQxQTgxN0VFNjAw
RUYwRjFBIC8qIFdLUGx1Z2luTG9hZFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBQkE3NzMxQTgxN0VFNjAwRUYwRjFBIC8qIFdLUGx1Z2lu
TG9hZFBvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTJEQUJBNzc2MUE4MkI0MjEwMEVGMEYxQSAvKiBBUElIaXN0b3J5Q2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREFCQTc3NTFBODJC
NDIxMDBFRjBGMUEgLyogQVBJSGlzdG9yeUNsaWVudC5oICovOyB9OwpAQCAtMjUwNiw2ICsyNTA5
LDggQEAKIAkJMjlEMDRFMjgyMUY3QzczRDAwNzY3NDFEIC8qIEFjY2Vzc2liaWxpdHlQcml2U1BJ
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlQcml2U1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJEMDAzNTIyMUJDNzQxNDgwMERBODcxNiAvKiBQREZQbHVnaW4uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUERGUGx1Z2luLmg7IHBhdGggPSBQREYv
UERGUGx1Z2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMDAzNTIzMUJDNzQx
NDgwMERBODcxNiAvKiBQREZQbHVnaW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBQREZQbHVnaW4ubW07IHBhdGggPSBQREYvUERGUGx1Z2luLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyRDBDNTZGQjIyOUYxREVBMDBCRDMzRTcgLyogRGV2aWNl
TWFuYWdlbWVudFNvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERl
dmljZU1hbmFnZW1lbnRTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
RDBDNTZGQzIyOUYxREVBMDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGV2aWNlTWFuYWdlbWVudFNv
ZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDBDRjY0QjIxRjJBODAz
MDA3ODc1NjYgLyogVGV4dENoZWNraW5nQ29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFRleHRDaGVja2luZ0NvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJEMENGNjRDMjFGMkE4MDMwMDc4NzU2NiAvKiBUZXh0Q2hlY2tpbmdDb250cm9sbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFRleHRDaGVja2luZ0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkQxMDg3NUUxRDJDNTczRTAwQjg1RjgyIC8qIExvYWRQYXJhbWV0ZXJz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRQYXJhbWV0ZXJz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3OTgsNiArMjgwMyw3IEBACiAJ
CTJEQTk0NEFDMTg4NEU5QkEwMEVEODZEQiAvKiBXZWJQcm9jZXNzUHJveHlJT1MubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJQcm9jZXNzUHJveHlJT1MubW07
IHBhdGggPSBpb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyREE5NDRCNjE4ODRFQTM1MDBFRDg2REIgLyogV2ViUGFnZUlPUy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYlBhZ2VJT1MubW07IHBhdGggPSBp
b3MvV2ViUGFnZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRBOTQ0QkMx
ODg1MTFFNzAwRUQ4NkRCIC8qIE5ldHdvcmtQcm9jZXNzSU9TLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NJT1MubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTJEQUFEQThFMjI5OEMyMTAwMEUzNkIwQyAvKiBEZXZpY2VNYW5h
Z2VtZW50U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZU1hbmFn
ZW1lbnRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRBQkE3NzExQTgxN0Ix
NzAwRUYwRjFBIC8qIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVu
dHNJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREFCQTc3MzFBODE3
RUU2MDBFRjBGMUEgLyogV0tQbHVnaW5Mb2FkUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLUGx1Z2luTG9hZFBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyREFCQTc3NTFBODJCNDIxMDBFRjBGMUEgLyogQVBJSGlzdG9yeUNsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElIaXN0b3J5Q2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MTA1LDYgKzYxMTEsNyBAQAogCQkJCTM3QzIxQ0FE
MUU5OTRDMEMwMDI5RDVGOSAvKiBDb3JlUHJlZGljdGlvblNQSS5oICovLAogCQkJCUExRkI2ODI2
MUY2RTUxQzEwMEM0M0Y5RiAvKiBDcmFzaFJlcG9ydGVyQ2xpZW50U1BJLmggKi8sCiAJCQkJNTdE
Q0VEQUEyMTRCOUI0MzAwMTZCODQ3IC8qIERldmljZUlkZW50aXR5U1BJLmggKi8sCisJCQkJMkRB
QURBOEUyMjk4QzIxMDAwRTM2QjBDIC8qIERldmljZU1hbmFnZW1lbnRTUEkuaCAqLywKIAkJCQkz
NzU0RDU0NDFCM0EyOUZEMDAzQTRDN0YgLyogTlNJbnZvY2F0aW9uU1BJLmggKi8sCiAJCQkJMzdC
NDdFMkMxRDY0REI3NjAwNUY0RUZGIC8qIG9iamNTUEkuaCAqLywKIAkJCQkwRTk3RDc0QzIwMEU4
RkYzMDBCRjY2NDMgLyogU2FmZUJyb3dzaW5nU1BJLmggKi8sCkBAIC03MTM2LDYgKzcxNDMsOCBA
QAogCQk3RUM0RjBGODE4RTRBOTIyMDA4MDU2QUYgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJEMEM1NkZCMjI5RjFERUEwMEJEMzNFNyAv
KiBEZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaCAqLywKKwkJCQkyRDBDNTZGQzIyOUYxREVBMDBC
RDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1tICovLAogCQkJCTUzMTU4NzZCMjA3
NkI3MTMwMDRCRjlGMyAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyQ29jb2EubW0gKi8sCiAJCQkJ
NTMyMTU5NEYxREJBRTZENzAwNTRBQTNDIC8qIE5ldHdvcmtEYXRhVGFza0NvY29hLmggKi8sCiAJ
CQkJNUNCQzlCOEIxQzY1MjU3MzAwQThGRENGIC8qIE5ldHdvcmtEYXRhVGFza0NvY29hLm1tICov
LApAQCAtOTIyMyw2ICs5MjMyLDggQEAKIAkJCQlCQzAzMkRBNjEwRjQzN0QxMDA1OEMxNUEgLyog
RGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdEQ0VEQUIyMTRDNjAwOTAwMTZCODQ3IC8q
IERldmljZUlkZW50aXR5U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzI5N0Y5RjFDMTdCQkVB
MDE1RjA3MzUgLyogRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTJEMEM1NkZEMjI5RjFERUEwMEJEMzNFNyAvKiBEZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaCBp
biBIZWFkZXJzICovLAorCQkJCTJEQUFEQThGMjI5OEMyMTAwMEUzNkIwQyAvKiBEZXZpY2VNYW5h
Z2VtZW50U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mzg5MUI2QzFBNjhDMzBCMDAzMEYzODYg
LyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxODE3MzYx
MjA1ODQyNDcwMERGREE2NSAvKiBEaXNwbGF5TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMx
NDI3MDIxQzIzRjg0QzAwRDQxMTgzIC8qIERvd25sb2FkLmggaW4gSGVhZGVycyAqLywKQEAgLTEw
OTgyLDYgKzEwOTkzLDcgQEAKIAkJCQkyRDkyQTc3RDIxMkI2QTcxMDBGNDkzRkQgLyogQ29ubmVj
dGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc3RTIxMkI2QTcxMDBGNDkzRkQgLyog
RGF0YVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc3RjIxMkI2QTcxMDBG
NDkzRkQgLyogRGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRDBDNTZGRTIyOUYxREVB
MDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUFCN0Q2MTkxMjg4QjlEOTAwQ0ZEMDhDIC8qIERvd25sb2FkUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2NDIyOTkxMkREMDI5MjAwQ0FBRTJDIC8qIERy
YXdpbmdBcmVhTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNjQyMzA4
MTJERDA5RUIwMENBQUUyQyAvKiBEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDI3OGI2MDE4NDc5ZjM2NTkwMzQ4Yzg5NTE4
NTVhY2Y0M2RjYjU5ZjguLjE1MjU2NzMzYjVkMmI5ODE4MGZjZjUzYjZmYmM3MjMyY2IzMTY3MmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2Fk
ZXJTdHJhdGVneS5jcHAKQEAgLTMzNSw2ICszMzUsOCBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5
OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJlc291cmNl
TAogCiAgICAgbG9hZFBhcmFtZXRlcnMuaXNNYWluRnJhbWVOYXZpZ2F0aW9uID0gcmVzb3VyY2VM
b2FkZXIuZnJhbWUoKSAmJiByZXNvdXJjZUxvYWRlci5mcmFtZSgpLT5pc01haW5GcmFtZSgpICYm
IHJlc291cmNlTG9hZGVyLm9wdGlvbnMoKS5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2
aWdhdGU7CiAKKyAgICBsb2FkUGFyYW1ldGVycy5pc01haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JB
bnlGcmFtZSA9IHJlc291cmNlTG9hZGVyLmZyYW1lKCkgJiYgcmVzb3VyY2VMb2FkZXIub3B0aW9u
cygpLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZTsKKwogICAgIGxvYWRQYXJh
bWV0ZXJzLnNob3VsZEVuYWJsZUNyb3NzT3JpZ2luUmVzb3VyY2VQb2xpY3kgPSBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmNyb3NzT3JpZ2luUmVzb3VyY2VQb2xpY3lF
bmFibGVkKCkgJiYgIWxvYWRQYXJhbWV0ZXJzLmlzTWFpbkZyYW1lTmF2aWdhdGlvbjsKIAogICAg
IGlmIChyZXNvdXJjZUxvYWRlci5vcHRpb25zKCkubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6
Ok5hdmlnYXRlKSB7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggYTJjY2M4Zjg1N2U4NDEyYWE1OGVkZDMwODVmNjk4MzNlNDI4ZjJiMS4uZWM4YjQ0
YWVhMDc0Mzc3ZmNlYmJjYTQ2OWJiYzM2NGEyNjZmM2E3YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE5LTA1LTMw
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIE9wdGlv
bmFsbHkgcmVzcGVjdCBkZXZpY2UgbWFuYWdlbWVudCByZXN0cmljdGlvbnMgd2hlbiBsb2FkaW5n
IGZyb20gdGhlIG5ldHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5ODMxOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQyNjM4MDY+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0
aW9ucy5tbTogQWRkZWQuCisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAg
ICAgIENsb25lIGEgdGVzdCB0aGF0IHRlc3RzIG5vbi1wZXJzaXN0ZW50IGRhdGEgc3RvcmVzIGFu
ZCBlbnN1cmUKKyAgICAgICAgdGhhdCBpdCB3b3JrcyBpZiB0aGUgZGF0YSBzdG9yZSBpcyBjcmVh
dGVkIHZpYSBhIGNvbmZpZ3VyYXRpb24gYXMgd2VsbC4KKworICAgICAgICBBZGQgYSB0ZXN0IHRo
YXQgZW5zdXJlcyB0aGF0IHlvdSBjYW4ndCBjcmVhdGUgYSBkYXRhIHN0b3JlIGNvbmZpZ3VyYXRp
b24KKyAgICAgICAgd2l0aCBhbiBpbnZhbGlkIHNldCBvZiBvcHRpb25zLgorCisgICAgICAgIEFk
ZCBhIHRlc3QgdGhhdCBkZXZpY2UgbWFuYWdlbWVudCByZXN0cmljdGlvbnMgKHdoZW4gbW9ja2Vk
KSBjb3JyZWN0bHkKKyAgICAgICAgZmFpbCB0aGUgbG9hZCB3aXRoIGEgbmV3LCBhcHByb3ByaWF0
ZSBlcnJvci4KKwogMjAxOS0wNS0yOSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ1ODU3LgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA1N2FhN2QxODJlOGZjZjAwNTM5MGUyMmI2NTRmMzA2MDQ1ZTljMzdm
Li5lNmU2NzI2YzllOWQ4MTYwMTY2ODUwYjdmYWI3Yzk4YmY3YzE2YmU0IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtOTYsNiArOTYsNyBAQAogCQkyRDFDMDRBNzFENzYyOThCMDAwQTY4MTYg
LyogVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJEMUMwNEE2MUQ3NjI5OEIwMDBBNjgxNiAvKiBUZXN0TmF2aWdh
dGlvbkRlbGVnYXRlLm1tICovOyB9OwogCQkyRDIxRkU1OTFGMDQ2NDI5MDBCNThFN0QgLyogV0tQ
REZWaWV3U3RhYmxlUHJlc2VudGF0aW9uVXBkYXRlQ2FsbGJhY2subW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDIxRkU1ODFGMDQ2NDI4MDBCNThFN0Qg
LyogV0tQREZWaWV3U3RhYmxlUHJlc2VudGF0aW9uVXBkYXRlQ2FsbGJhY2subW0gKi87IH07CiAJ
CTJEMkJFQjJEMjIzMjRFNUYwMDU1NDRDQSAvKiBSZXF1ZXN0VGV4dElucHV0Q29udGV4dC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMkJFQjJDMjIz
MjRFNUYwMDU1NDRDQSAvKiBSZXF1ZXN0VGV4dElucHV0Q29udGV4dC5tbSAqLzsgfTsKKwkJMkQy
RDEzQjMyMjlGNDA4QjAwNTA2OEFGIC8qIERldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDJEMTNCMjIy
OUY0MDhCMDA1MDY4QUYgLyogRGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9ucy5tbSAqLzsgfTsK
IAkJMkQzQ0EzQTgyMjFERjRCNDAwODhFODAzIC8qIFBhZ2VPdmVybGF5UGx1Z2luLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQzQ0EzQTQyMjFERjIz
OTAwODhFODAzIC8qIFBhZ2VPdmVybGF5UGx1Z2luLm1tICovOyB9OwogCQkyRDRDRjhCRDFEODM2
MENDMDAwMUNFOEQgLyogV0tUaHVtYm5haWxWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ0Q0Y4QkMxRDgzNjBDQzAwMDFDRThEIC8qIFdLVGh1
bWJuYWlsVmlldy5tbSAqLzsgfTsKIAkJMkQ1MUEwQzcxQzhCRjAwQzAwNzY1QzQ1IC8qIERPTUhU
TUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkQ1MUEwQzUxQzhCRjAwNDAwNzY1QzQ1IC8qIERPTUhUTUxWaWRlb0Vs
ZW1lbnRXcmFwcGVyLm1tICovOyB9OwpAQCAtMTQ3MSw2ICsxNDcyLDcgQEAKIAkJMkQxRkUwQUYx
QUQ0NjVDMTAwNkNEOUU2IC8qIEZpeGVkTGF5b3V0U2l6ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZpeGVkTGF5b3V0U2l6ZS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkQyMUZFNTgxRjA0NjQyODAwQjU4RTdEIC8qIFdLUERGVmlld1N0YWJs
ZVByZXNlbnRhdGlvblVwZGF0ZUNhbGxiYWNrLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV0tQREZWaWV3U3RhYmxlUHJlc2VudGF0aW9uVXBkYXRlQ2FsbGJhY2su
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMkJFQjJDMjIzMjRFNUYwMDU1NDRD
QSAvKiBSZXF1ZXN0VGV4dElucHV0Q29udGV4dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFJlcXVlc3RUZXh0SW5wdXRDb250ZXh0Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyRDJEMTNCMjIyOUY0MDhCMDA1MDY4QUYgLyogRGV2aWNlTWFuYWdl
bWVudFJlc3RyaWN0aW9ucy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJEM0NBM0E0MjIxREYyMzkwMDg4RTgwMyAvKiBQYWdlT3ZlcmxheVBsdWdpbi5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBhZ2VPdmVybGF5UGx1
Z2luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDRDRjhCQzFEODM2MENDMDAw
MUNFOEQgLyogV0tUaHVtYm5haWxWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gV0tUaHVtYm5haWxWaWV3Lm1tOyBwYXRoID0gV2ViS2l0L1dLVGh1bWJuYWls
Vmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ1MUEwQzUxQzhCRjAwNDAw
NzY1QzQ1IC8qIERPTUhUTUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTFZpZGVvRWxlbWVudFdyYXBwZXIubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTkxLDYgKzI1OTMsNyBAQAogCQkJCTQ2QTkx
MTU4MjEwOEU2NkIwMDc4RDQwRCAvKiBDdXN0b21Vc2VyQWdlbnQubW0gKi8sCiAJCQkJMkRDNENG
NzYxRDJEOUREODAwRUNDQzk0IC8qIERhdGFEZXRlY3Rpb24ubW0gKi8sCiAJCQkJNTE4RUU1MUMy
MEE3OEQzMzAwRTAyNEYzIC8qIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24ubW0gKi8s
CisJCQkJMkQyRDEzQjIyMjlGNDA4QjAwNTA2OEFGIC8qIERldmljZU1hbmFnZW1lbnRSZXN0cmlj
dGlvbnMubW0gKi8sCiAJCQkJNDY5MThFRkIyMjM3MjgzNTAwNDY4REZFIC8qIERldmljZU9yaWVu
dGF0aW9uLm1tICovLAogCQkJCUNFQTdGNTdCMjA4OTVGNUIwMDc4RUY2RSAvKiBEaWRSZXNpZ25J
bnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2UubW0gKi8sCiAJCQkJNTE4RUU1MUEy
MEE3OENGQjAwRTAyNEYzIC8qIERvQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlQWZ0ZXJDcmFz
aC5tbSAqLywKQEAgLTQxMjEsNiArNDEyNCw3IEBACiAJCQkJOUJBRDdGM0UyMjY5MEYyMDAwRjhE
QTY2IC8qIERlYWxsb2NXZWJWaWV3SW5FdmVudExpc3RlbmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTE4RUU1MUQyMEE3OEQzNjAwRTAyNEYzIC8qIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDE2NDZFMjFEMTg2MkNEMDAwMTVBMUEgLyog
RGVmZXJyZWRWaWV3SW5XaW5kb3dTdGF0ZUNoYW5nZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTJE
MkQxM0IzMjI5RjQwOEIwMDUwNjhBRiAvKiBEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDY5MThFRkMyMjM3MjgzQzAwNDY4REZFIC8qIERldmljZU9y
aWVudGF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQjkxQTQxMUE3RTAwNDQ3QzRD
IC8qIERldmljZVNjYWxlRmFjdG9ySW5EYXNoYm9hcmRSZWdpb25zLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NDRTdFQkExQTQxMUE3RTAwNDQ3QzRDIC8qIERldmljZVNjYWxlRmFjdG9yT25CYWNr
Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnMubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnMu
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTg3YmI3MDAyODhkNmUwNjEyYzhhYmRlZGQwOWI2Yzg1NmIzZDg5NAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9ucy5tbQpAQCAtMCwwICsxLDYzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5o
IgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgor
I2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLRXJyb3JQcml2YXRl
Lmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oPgorI2ltcG9y
dCA8V2ViS2l0L1dlYktpdC5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK1RFU1QoV2ViS2l0
LCBEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zKQoreworICAgIFJldGFpblB0cjxfV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4gZGF0YVN0b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdE5vblBlcnNp
c3RlbnRDb25maWd1cmF0aW9uXSk7CisgICAgW2RhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0RGV2
aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQ6WUVTXTsKKyAgICBbZGF0YVN0b3JlQ29u
ZmlndXJhdGlvbiBzZXRBbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlv
bnNGb3JUZXN0aW5nOllFU107CisKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlv
bj4gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0
YVN0b3JlOltbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlv
bjpkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSBhdXRvcmVsZWFzZV1dOworCisgICAgUmV0
YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJvIGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZp
Z3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisKKyAgICBSZXRhaW5QdHI8VGVzdE5h
dmlnYXRpb25EZWxlZ2F0ZT4gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdE5hdmlnYXRpb25EZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpk
ZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOworICAgIFtk
ZWxlZ2F0ZSBzZXREaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uOl4oV0tXZWJWaWV3ICp3ZWJW
aWV3LCBXS05hdmlnYXRpb24gKm5hdmlnYXRpb24sIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAg
IEVYUEVDVF9XS19TVFJFUShfV0tMZWdhY3lFcnJvckRvbWFpbiwgZXJyb3IuZG9tYWluKTsKKyAg
ICAgICAgRVhQRUNUX0VRKF9XS0Vycm9yQ29kZUZyYW1lTG9hZEJsb2NrZWRCeVJlc3RyaWN0aW9u
cywgZXJyb3IuY29kZSk7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworCisgICAgTlNV
UkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVu
ZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRoRXh0ZW5zaW9uOkAi
aHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS1dlYnNpdGVEYXRhc3RvcmUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbQppbmRleCAzZjk1M2E3MDc1MThmZTM4
MjA2NzNlYTEwMzIzNDYwY2I5Mjk0ZDQ2Li44N2M0MTI0M2M2ODIwNzE4NmFiYzNjNTAyNGNjNWJh
NWMzODIwYzBmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbQpAQCAtMzMsNiArMzMsNyBAQAogI2lt
cG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdC5o
PgorI2ltcG9ydCA8V2ViS2l0L19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg+CiAj
aW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogc3RhdGljIGJvb2wgcmVhZHlUb0NvbnRp
bnVlOwpAQCAtMzA0LDQgKzMwNSw0OSBAQCBURVNUKFdLV2Vic2l0ZURhdGFTdG9yZSwgUmVtb3Zl
Tm9uUGVyc2lzdGVudENyZWRlbnRpYWxzKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CiB9CiAKK1RFU1QoV2ViS2l0LCBTZXR0aW5nTm9uUGVyc2lzdGVudERhdGFTdG9yZVBh
dGhzVGhyb3dzRXhjZXB0aW9uKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdE5vblBlcnNpc3Rl
bnRDb25maWd1cmF0aW9uXSk7CisKKyAgICBhdXRvIHNob3VsZFRocm93RXhjZXB0aW9uV2hlblVz
ZWQgPSBbXShGdW5jdGlvbjx2b2lkKHZvaWQpPiYmIG1vZGlmaWVyKSB7CisgICAgICAgIEB0cnkg
eworICAgICAgICAgICAgbW9kaWZpZXIoKTsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGZhbHNl
KTsKKyAgICAgICAgfSBAY2F0Y2ggKE5TRXhjZXB0aW9uICpleGNlcHRpb24pIHsKKyAgICAgICAg
ICAgIEVYUEVDVF9XS19TVFJFUShOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiwgZXhjZXB0aW9u
Lm5hbWUpOworICAgICAgICB9CisgICAgfTsKKworICAgIE5TVVJMICpmaWxlVVJMID0gW05TVVJM
IGZpbGVVUkxXaXRoUGF0aDpAIi90bXAiXTsKKworICAgIHNob3VsZFRocm93RXhjZXB0aW9uV2hl
blVzZWQoWyZdIHsKKyAgICAgICAgW2NvbmZpZ3VyYXRpb24gX3NldFdlYlN0b3JhZ2VEaXJlY3Rv
cnk6ZmlsZVVSTF07CisgICAgfSk7CisgICAgc2hvdWxkVGhyb3dFeGNlcHRpb25XaGVuVXNlZChb
Jl0geworICAgICAgICBbY29uZmlndXJhdGlvbiBfc2V0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rv
cnk6ZmlsZVVSTF07CisgICAgfSk7CisgICAgc2hvdWxkVGhyb3dFeGNlcHRpb25XaGVuVXNlZChb
Jl0geworICAgICAgICBbY29uZmlndXJhdGlvbiBfc2V0V2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk6
ZmlsZVVSTF07CisgICAgfSk7CisgICAgc2hvdWxkVGhyb3dFeGNlcHRpb25XaGVuVXNlZChbJl0g
eworICAgICAgICBbY29uZmlndXJhdGlvbiBfc2V0Q29va2llU3RvcmFnZUZpbGU6ZmlsZVVSTF07
CisgICAgfSk7CisgICAgc2hvdWxkVGhyb3dFeGNlcHRpb25XaGVuVXNlZChbJl0geworICAgICAg
ICBbY29uZmlndXJhdGlvbiBfc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTpmaWxl
VVJMXTsKKyAgICB9KTsKKyAgICBzaG91bGRUaHJvd0V4Y2VwdGlvbldoZW5Vc2VkKFsmXSB7Cisg
ICAgICAgIFtjb25maWd1cmF0aW9uIF9zZXRDYWNoZVN0b3JhZ2VEaXJlY3Rvcnk6ZmlsZVVSTF07
CisgICAgfSk7CisgICAgc2hvdWxkVGhyb3dFeGNlcHRpb25XaGVuVXNlZChbJl0geworICAgICAg
ICBbY29uZmlndXJhdGlvbiBfc2V0U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeTpm
aWxlVVJMXTsKKyAgICB9KTsKKworICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgc2hvdWxkbid0IHRo
cm93IGV4Y2VwdGlvbnMgd2hlbiBzZXQgb24gYSBub24tcGVyc2lzdGVudCBkYXRhIHN0b3JlLgor
ICAgIFtjb25maWd1cmF0aW9uIHNldERldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVk
OllFU107CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0SFRUUFByb3h5OltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAiaHR0cDovL3d3dy5hcHBsZS5jb20vIl1dOworICAgIFtjb25maWd1cmF0aW9uIHNldEhU
VFBTUHJveHk6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL3d3dy5hcHBsZS5jb20vIl1d
OworICAgIFtjb25maWd1cmF0aW9uIHNldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmll
cjpAImNvbS5hcHBsZS5TYWZhcmkiXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRTb3VyY2VBcHBs
aWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI6QCJjb20uYXBwbGUuU2FmYXJpIl07Cit9CisKIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0
ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0KaW5kZXggNzA1ZmM0MjRhYmQy
NjRjMTM4NjE2MDE4MDBiMmU3YjBjMWUxNWZkNy4uZTRlZTAyMDY2MzVjY2JmNzA3ZDg5NDdjZDVl
ZWZjY2E3ZGIzMWQ0ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0K
QEAgLTQyNyw2ICs0MjcsNTIgQEAgVEVTVChXZWJLaXQsIFdlYnNpdGVEYXRhU3RvcmVFcGhlbWVy
YWwpCiAKICAgICBFWFBFQ1RfVFJVRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZp
bGVFeGlzdHNBdFBhdGg6ZGVmYXVsdFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXRoLnBhdGhdKTsK
ICAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhp
c3RzQXRQYXRoOmRlZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlsZVBhdGgucGF0aF0pOwor
CisgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSByZW1vdmVJdGVtQXRVUkw6ZGVm
YXVsdFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXRoIGVycm9yOm5pbF07Cit9CisKK1RFU1QoV2Vi
S2l0LCBXZWJzaXRlRGF0YVN0b3JlRXBoZW1lcmFsVmlhQ29uZmlndXJhdGlvbikKK3sKKyAgICBS
ZXRhaW5QdHI8V2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzTWVzc2FnZUhhbmRsZXI+IGhhbmRs
ZXIgPSBhZG9wdE5TKFtbV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzTWVzc2FnZUhhbmRsZXIg
YWxsb2NdIGluaXRdKTsKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0
TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAidGVzdEhhbmRsZXIiXTsKKworICAg
IE5TVVJMICpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhdGggPSBbTlNVUkwgZmlsZVVS
TFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9XZWJzaXRlRGF0YS9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF0gaXNE
aXJlY3Rvcnk6WUVTXTsKKworICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gcmVt
b3ZlSXRlbUF0VVJMOmRlZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGF0aCBlcnJvcjpuaWxd
OworCisgICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmls
ZUV4aXN0c0F0UGF0aDpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhdGgucGF0aF0pOwor
CisgICAgUmV0YWluUHRyPF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiBkYXRhU3Rv
cmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0Tm9uUGVyc2lzdGVudENvbmZpZ3VyYXRpb25dKTsKKyAgICBjb25maWd1
cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBbW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxs
b2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246ZGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0g
YXV0b3JlbGVhc2VdOworICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUg
X3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOllFU107CisKKyAgICAvLyBXZSBleHBl
Y3QgdGhlIGRpcmVjdG9yeSB0byBiZSBjcmVhdGVkIGJ5IHN0YXJ0aW5nIHVwIHRoZSBkYXRhIHN0
b3JlIG1hY2hpbmVyeSwgYnV0IG5vdCB0aGUgZGF0YSBmaWxlLgorICAgIEVYUEVDVF9UUlVFKFtb
TlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpkZWZhdWx0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc1BhdGgucGF0aF0pOworCisgICAgTlNVUkwgKmRlZmF1bHRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRmlsZVBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4v
TGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9XZWJzaXRlRGF0YS9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2Z1bGxfYnJvd3Npbmdfc2Vzc2lvbl9yZXNvdXJjZUxvZy5wbGlzdCIgc3RyaW5nQnlF
eHBhbmRpbmdUaWxkZUluUGF0aF0gaXNEaXJlY3Rvcnk6Tk9dOworICAgIEVYUEVDVF9GQUxTRShb
W05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZGVmYXVsdFJl
c291cmNlTG9hZFN0YXRpc3RpY3NGaWxlUGF0aC5wYXRoXSk7CisKKyAgICBSZXRhaW5QdHI8V0tX
ZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24u
Z2V0KCldKTsKKworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIldlYnNp
dGVEYXRhU3RvcmVDdXN0b21QYXRocyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOworCisgICAgW1tbd2ViVmlldyBjb25maWd1cmF0aW9uXSBwcm9jZXNzUG9vbF0g
X3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXNdOworCisgICAgLy8gRm9yY2libHkgc2h1dCBkb3du
IGV2ZXJ5dGhpbmcgb2YgV2ViS2l0IHRoYXQgd2UgY2FuLgorICAgIGF1dG8gcGlkID0gW3dlYlZp
ZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBpZiAocGlkKQorICAgICAgICBraWxsKHBp
ZCwgU0lHS0lMTCk7CisKKyAgICB3ZWJWaWV3ID0gbmlsOworICAgIGhhbmRsZXIgPSBuaWw7Cisg
ICAgY29uZmlndXJhdGlvbiA9IG5pbDsKKworICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdl
ciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpkZWZhdWx0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1BhdGgucGF0aF0pOworICAgIEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVm
YXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZGVmYXVsdFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NGaWxlUGF0aC5wYXRoXSk7CisKKyAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJd
IHJlbW92ZUl0ZW1BdFVSTDpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhdGggZXJyb3I6
bmlsXTsKIH0KIAogVEVTVChXZWJLaXQsIERvTG9hZFdpdGhOb25EZWZhdWx0RGF0YVN0b3JlQWZ0
ZXJUZXJtaW5hdGluZ05ldHdvcmtQcm9jZXNzKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>