<?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>193323</bug_id>
          
          <creation_ts>2019-01-10 09:39:08 -0800</creation_ts>
          <short_desc>Add a new SPI to request for cache storage quota increase</short_desc>
          <delta_ts>2023-12-10 10:26:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=193633</see_also>
          <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>193296</dependson>
          <blocked>266189</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1493325</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-10 09:39:08 -0800</bug_when>
    <thetext>Add a new SPI to request for cache storage quota increase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493372</commentid>
    <comment_count>1</comment_count>
      <attachid>358810</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-10 11:22:43 -0800</bug_when>
    <thetext>Created attachment 358810
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495172</commentid>
    <comment_count>2</comment_count>
      <attachid>359292</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-16 12:41:18 -0800</bug_when>
    <thetext>Created attachment 359292
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495176</commentid>
    <comment_count>3</comment_count>
      <attachid>359293</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-16 12:43:14 -0800</bug_when>
    <thetext>Created attachment 359293
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495350</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-16 17:21:10 -0800</bug_when>
    <thetext>Attachment 359293 did not pass style-queue:


ERROR: Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:74:  The parameter name &quot;quota&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 21 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>1495518</commentid>
    <comment_count>5</comment_count>
      <attachid>359386</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-17 10:04:59 -0800</bug_when>
    <thetext>Created attachment 359386
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495519</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-17 10:07:27 -0800</bug_when>
    <thetext>Attachment 359386 did not pass style-queue:


ERROR: Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:74:  The parameter name &quot;quota&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 20 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>1495557</commentid>
    <comment_count>7</comment_count>
      <attachid>359394</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-17 11:17:21 -0800</bug_when>
    <thetext>Created attachment 359394
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495559</commentid>
    <comment_count>8</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-17 11:20:54 -0800</bug_when>
    <thetext>Attachment 359394 did not pass style-queue:


ERROR: Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:74:  The parameter name &quot;quota&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 20 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>1495561</commentid>
    <comment_count>9</comment_count>
      <attachid>359394</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-17 11:23:41 -0800</bug_when>
    <thetext>Comment on attachment 359394
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKStorageQuotaDelegatePrivate.h:32
&gt; +@protocol WKStorageQuotaDelegatePrivate &lt;NSObject&gt;

_WKWebsiteDataStoreDelegate since this is not public API, then the callback selectors don&apos;t need underscores.
Also, needs availability macros.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStoreInternal.h:44
&gt; +    RetainPtr&lt;id &lt;WKStorageQuotaDelegatePrivate&gt; &gt; _quotaDelegate;

Other delegates use a WeakObjCPtr.  I see no compelling reason to not do the same here, especially since the ObjC property is labeled weak.

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreQuotaManager.h:36
&gt; +class WebsiteDataStoreQuotaManager {

Why not make this more general so we can add other callbacks here? WebsiteDataStoreDelegate

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreQuotaManager.h:40
&gt; +    virtual void requestCacheStorageSpace(const WebCore::SecurityOriginData&amp; topOrigin, const WebCore::SecurityOriginData&amp; frameOrigin, uint64_t quota, uint64_t currentSize, uint64_t spaceRequired, WTF::CompletionHandler&lt;void(Optional&lt;uint64_t&gt;)&gt;&amp;&amp; completionHandler)

WTF:: is unnecessary here.

&gt; LayoutTests/http/wpt/cache-storage/cache-quota.any.js:157
&gt;     }).then(() =&gt; {

You could also add a space here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495583</commentid>
    <comment_count>10</comment_count>
      <attachid>359400</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-17 12:03:16 -0800</bug_when>
    <thetext>Created attachment 359400
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495584</commentid>
    <comment_count>11</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-17 12:05:05 -0800</bug_when>
    <thetext>Attachment 359400 did not pass style-queue:


ERROR: Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:74:  The parameter name &quot;quota&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 21 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>1495611</commentid>
    <comment_count>12</comment_count>
      <attachid>359400</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-17 13:05:21 -0800</bug_when>
    <thetext>Comment on attachment 359400
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm:48
&gt; +class WebsiteDataStoreManager : public WebKit::WebsiteDataStoreManager {

I like &quot;Client&quot; more than &quot;Manager&quot;

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreManager.h:36
&gt; +class WebsiteDataStoreManager {

This doesn&apos;t really manage anything.  It&apos;s more of a client.

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreManager.h:42
&gt; +        completionHandler({ });

WTF::nullopt

&gt; Source/WebKit/WebKit.xcodeproj/project.pbxproj:9838
&gt; +				4118DC1F21E7BF5D00DE04C7 /* _WKWebsiteDataStoreDelegate.h in Headers */,
&gt; +				4118DC1F21E7BF5D00DE04C7 /* _WKWebsiteDataStoreDelegate.h in Headers */,

This should probably not be duplicated.

&gt; Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:58
&gt; +@interface WebsiteDataStoreDelegateManager: NSObject &lt;_WKWebsiteDataStoreDelegate&gt; {

This doesn&apos;t manage delegates.

&gt; Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:60
&gt; +    BOOL shouldAllowRaisingQuota;

ivars typically start with an underscore.

&gt; Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:116
&gt; +    globalWebsiteDataStoreDelegateManager = [[WebsiteDataStoreDelegateManager alloc] init];

It seems like this should be owned by the TestController.

&gt; Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:293
&gt; +    globalWebsiteDataStoreDelegateManager-&gt;shouldAllowRaisingQuota = false;

This should call a setter.

&gt; Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:430
&gt; +    globalWebsiteDataStoreDelegateManager-&gt;shouldAllowRaisingQuota = true;

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495649</commentid>
    <comment_count>13</comment_count>
      <attachid>359413</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-17 14:29:40 -0800</bug_when>
    <thetext>Created attachment 359413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495651</commentid>
    <comment_count>14</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-17 14:31:06 -0800</bug_when>
    <thetext>Attachment 359413 did not pass style-queue:


ERROR: Tools/WebKitTestRunner/cocoa/TestWebsiteDataStoreDelegate.mm:40:  The parameter name &quot;quota&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 23 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>1495653</commentid>
    <comment_count>15</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-17 14:32:09 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm:48
&gt; &gt; +class WebsiteDataStoreManager : public WebKit::WebsiteDataStoreManager {
&gt; 
&gt; I like &quot;Client&quot; more than &quot;Manager&quot;

Moved from Manager to Client.

&gt; &gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreManager.h:42
&gt; &gt; +        completionHandler({ });
&gt; 
&gt; WTF::nullopt

I kept { }.
This is equivalent, terse and is not WTF specific.

&gt; &gt; Source/WebKit/WebKit.xcodeproj/project.pbxproj:9838
&gt; &gt; +				4118DC1F21E7BF5D00DE04C7 /* _WKWebsiteDataStoreDelegate.h in Headers */,
&gt; &gt; +				4118DC1F21E7BF5D00DE04C7 /* _WKWebsiteDataStoreDelegate.h in Headers */,
&gt; 
&gt; This should probably not be duplicated.

Not sure what happened there.


&gt; &gt; Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:60
&gt; &gt; +    BOOL shouldAllowRaisingQuota;
&gt; 
&gt; ivars typically start with an underscore.

OK

&gt; &gt; Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:116
&gt; &gt; +    globalWebsiteDataStoreDelegateManager = [[WebsiteDataStoreDelegateManager alloc] init];
&gt; 
&gt; It seems like this should be owned by the TestController.

TestController is fully C++ so I am not really sure how to handle the includes properly.
I kept it as a global.

&gt; &gt; Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:293
&gt; &gt; +    globalWebsiteDataStoreDelegateManager-&gt;shouldAllowRaisingQuota = false;
&gt; 
&gt; This should call a setter.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495690</commentid>
    <comment_count>16</comment_count>
      <attachid>359428</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-17 16:59:34 -0800</bug_when>
    <thetext>Created attachment 359428
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495692</commentid>
    <comment_count>17</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-17 17:02:21 -0800</bug_when>
    <thetext>Attachment 359428 did not pass style-queue:


ERROR: Tools/WebKitTestRunner/cocoa/TestWebsiteDataStoreDelegate.mm:40:  The parameter name &quot;quota&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 23 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>1495733</commentid>
    <comment_count>18</comment_count>
      <attachid>359428</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-17 21:46:58 -0800</bug_when>
    <thetext>Comment on attachment 359428
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreDelegate.h:32
&gt; +@protocol _WKWebsiteDataStoreDelegate &lt;NSObject&gt;

This needs availability macros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495878</commentid>
    <comment_count>19</comment_count>
      <attachid>359497</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-18 09:04:10 -0800</bug_when>
    <thetext>Created attachment 359497
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495879</commentid>
    <comment_count>20</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-18 09:07:20 -0800</bug_when>
    <thetext>Attachment 359497 did not pass style-queue:


ERROR: Tools/WebKitTestRunner/cocoa/TestWebsiteDataStoreDelegate.mm:40:  The parameter name &quot;quota&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 23 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>1495908</commentid>
    <comment_count>21</comment_count>
      <attachid>359497</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-18 10:19:47 -0800</bug_when>
    <thetext>Comment on attachment 359497
Patch for landing

Clearing flags on attachment: 359497

Committed r240156: &lt;https://trac.webkit.org/changeset/240156&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495909</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-18 10:19:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495910</commentid>
    <comment_count>23</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-18 10:20:36 -0800</bug_when>
    <thetext>&lt;rdar://problem/47388418&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358810</attachid>
            <date>2019-01-10 11:22:43 -0800</date>
            <delta_ts>2019-01-16 12:41:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193323-20190110112242.patch</filename>
            <type>text/plain</type>
            <size>35245</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5Nzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU2MWY4NTQzNjIxZWVlMDk3
YmI5ZjNmZTNiNGEwNzI0MmQ4ZDljODQuLmUzY2VjN2M1ZWQ2NGJiMWQ1Mjg5NDRlMzc0NDg1YWJk
ZDczY2NmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTktMDEtMTAgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgdG8gcmVx
dWVzdCBmb3IgY2FjaGUgc3RvcmFnZSBxdW90YSBpbmNyZWFzZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMzIzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgZGVsZWdhdGUgb24gdGhlIFdlYlNp
dGVEYXRhU3RvcmUgZm9yIFdlYktpdCB0byBhc2sgZm9yIHF1b3RhIHVwZGF0ZS4KKyAgICAgICAg
VGhlIGN1cnJlbnQgU1BJIGlzIGN1cnJlbnRseSBDYWNoZVN0b3JhZ2Ugc3BlY2lmaWMgYnV0IGZ1
dHVyZSB3b3JrIHNob3VsZAorICAgICAgICBtYWtlIGl0IHNvIHRoYXQgb3RoZXIgc3RvcmFnZSBs
aWtlIElEQiB1c2UgdGhlIHNhbWUgbWVjaGFuaXNtLgorICAgICAgICBCeSBkZWZhdWx0LCBxdW90
YSByZW1haW5zIHVuY2hhbmdlZCBpZiBkZWxlZ2F0ZSBpcyBub3QgaW1wbGVtZW50ZWQuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAg
ICAgICAgKFdlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXI6OldlYnNpdGVEYXRhU3RvcmVRdW90
YU1hbmFnZXIpOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX3F1b3RhRGVsZWdhdGVd
KToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIHNldF9xdW90YURlbGVnYXRlOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdENhY2hlU3Rv
cmFnZVNwYWNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvRGF0YVN0b3JlUXVv
dGFNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpEYXRhU3RvcmVRdW90YU1hbmFn
ZXI6OnJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0
YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
OjpxdW90YU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpzZXRR
dW90YU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlUXVvdGFNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0
YVN0b3JlUXVvdGFNYW5hZ2VyOjp+V2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdlcik6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXI6OnJlcXVlc3RDYWNoZVN0
b3JhZ2VTcGFjZSk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisKIDIwMTktMDEtMDkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFBpcGUgY2FjaGUgcXVvdGEgcmVxdWVzdCBmcm9tIE5ldHdvcmsgUHJvY2VzcyB0byBVSVBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKaW5kZXggYjA3NmJkMDcyN2E2OTI5ZmFjN2RmOGVkNjIyZGU4MDE1MWE1N2RmNy4uNjZiZTgz
ZjdlODRjZTg5YThmNGI4NmI5ODg3NDg4YzVkOTgxZjFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTYzLDcgKzYzLDYgQEAKICNp
bmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBh
cmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVR5cGUuaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL0NsaWVudE9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRE5TLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9EZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rp
YWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tTdG9yYWdlUXVvdGFEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjkyZTFmMGNmNDJmYTc4NjZmNDhkYTdkNzgxMDI3MTY0MWYyMWFjNDcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTdG9y
YWdlUXVvdGFEZWxlZ2F0ZVByaXZhdGUuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKwor
I2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKK0Bwcm90b2NvbCBXS1N0b3JhZ2VR
dW90YURlbGVnYXRlUHJpdmF0ZSA8TlNPYmplY3Q+CisKK0BvcHRpb25hbAorCistICh2b2lkKV9y
ZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2U6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lT3JpZ2lu
OihOU1VSTCAqKWZyYW1lVVJMIHF1b3RhOihOU1VJbnRlZ2VyKXF1b3RhIGN1cnJlbnRTaXplOihO
U1VJbnRlZ2VyKWN1cnJlbnRTaXplIHNwYWNlUmVxdWlyZWQ6KE5TVUludGVnZXIpc3BhY2VSZXF1
aXJlZCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkp
ZGVjaXNpb25IYW5kbGVyOworCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggMmQx
NjBlYTNiMTI4OGZlODRkYzFkODI5M2MwYTMyODM4MWZlYjI2YS4uYjA4ODAwZDQzZTRlZjYxODZm
NmU0ZjE1NDYzNDFkMTljMTYxNDczZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC0yOSw4ICsyOSwxMCBA
QAogI2lmIFdLX0FQSV9FTkFCTEVECiAKICNpbXBvcnQgIkFQSVN0cmluZy5oIgorI2ltcG9ydCAi
Q29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIgogI2ltcG9ydCAiV0tIVFRQQ29va2llU3Rv
cmVJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tOU0FycmF5LmgiCisjaW1wb3J0ICJXS1N0b3JhZ2VR
dW90YURlbGVnYXRlUHJpdmF0ZS5oIgogI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwuaCIKICNp
bXBvcnQgIldLV2Vic2l0ZURhdGFSZWNvcmRJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViUGFnZVBy
b3h5LmgiCkBAIC00Miw2ICs0NCwzOSBAQAogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1w
b3J0IDx3dGYvVVJMLmg+CiAKK2NsYXNzIFdlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIgOiBw
dWJsaWMgV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyIHsKK3B1YmxpYzoKKyAg
ICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyKGlkIDxXS1N0b3JhZ2VRdW90
YURlbGVnYXRlUHJpdmF0ZT4gZGVsZWdhdGUpCisgICAgICAgIDogbV9xdW90YURlbGVnYXRlKGRl
bGVnYXRlKQorICAgIHsKKyAgICAgICAgbV9oYXNSZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2VTZWxl
Y3RvciA9IFttX3F1b3RhRGVsZWdhdGUuZ2V0KCkgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihfcmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlOiBmcmFtZU9yaWdpbjogcXVvdGE6IGN1cnJlbnRT
aXplOiBzcGFjZVJlcXVpcmVkOiBkZWNpc2lvbkhhbmRsZXI6KV07CisgICAgfQorcHJpdmF0ZToK
KyAgICB2b2lkIHJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZShjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiBmcmFtZU9yaWdpbiwgdWludDY0X3QgcXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRTaXplLCB1aW50
NjRfdCBzcGFjZVJlcXVpcmVkLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
dWludDY0X3Q+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKKyAgICB7CisgICAgICAgIGlm
ICghbV9oYXNSZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2VTZWxlY3RvcikgeworICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIGF1dG8gY2hlY2tlciA9IFdlYktpdDo6Q29tcGxldGlvbkhhbmRsZXJDYWxsQ2hl
Y2tlcjo6Y3JlYXRlKG1fcXVvdGFEZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKF9yZXF1ZXN0Q2Fj
aGVTdG9yYWdlU3BhY2U6IGZyYW1lT3JpZ2luOiBxdW90YTogY3VycmVudFNpemU6IHNwYWNlUmVx
dWlyZWQ6IGRlY2lzaW9uSGFuZGxlcjopKTsKKyAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIg
PSBtYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXSh1bnNpZ25lZCBsb25nIGxvbmcgcXVv
dGEpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVy
SGFzQmVlbkNhbGxlZCgpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGNo
ZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIocXVvdGEpOworICAgICAgICB9KTsKKworICAgICAgICBVUkwgbWFpbkZyYW1lVVJM
KFVSTCgpLCB0b3BPcmlnaW4udG9TdHJpbmcoKSk7CisgICAgICAgIFVSTCBmcmFtZVVSTChVUkwo
KSwgZnJhbWVPcmlnaW4udG9TdHJpbmcoKSk7CisKKyAgICAgICAgW21fcXVvdGFEZWxlZ2F0ZS5n
ZXQoKSBfcmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlOm1haW5GcmFtZVVSTCBmcmFtZU9yaWdpbjpm
cmFtZVVSTCBxdW90YTpxdW90YSBjdXJyZW50U2l6ZTpjdXJyZW50U2l6ZSBzcGFjZVJlcXVpcmVk
OnNwYWNlUmVxdWlyZWQgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07Cisg
ICAgfQorCisgICAgUmV0YWluUHRyPGlkIDxXS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZT4g
PiBtX3F1b3RhRGVsZWdhdGU7CisgICAgYm9vbCBtX2hhc1JlcXVlc3RDYWNoZVN0b3JhZ2VTcGFj
ZVNlbGVjdG9yIHsgZmFsc2UgfTsKK307CisKIEBpbXBsZW1lbnRhdGlvbiBXS1dlYnNpdGVEYXRh
U3RvcmUKIAogKyAoV0tXZWJzaXRlRGF0YVN0b3JlICopZGVmYXVsdERhdGFTdG9yZQpAQCAtMzgz
LDYgKzQxOCwxNyBAQCAtIChib29sKV9oYXNSZWdpc3RlcmVkU2VydmljZVdvcmtlcgogICAgIHJl
dHVybiBXZWJLaXQ6OlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6Omhhc1JlZ2lzdGVyZWRTZXJ2
aWNlV29ya2Vycyhfd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpLnNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoKSk7CiB9CiAKKy0gKGlkIDxXS1N0b3JhZ2VRdW90
YURlbGVnYXRlUHJpdmF0ZT4pX3F1b3RhRGVsZWdhdGUKK3sKKyAgICByZXR1cm4gX3F1b3RhRGVs
ZWdhdGUuZ2V0KCk7Cit9CisKKy0gKHZvaWQpc2V0X3F1b3RhRGVsZWdhdGU6KGlkIDxXS1N0b3Jh
Z2VRdW90YURlbGVnYXRlUHJpdmF0ZT4pcXVvdGFEZWxlZ2F0ZQoreworICAgIF9xdW90YURlbGVn
YXRlID0gcXVvdGFEZWxlZ2F0ZTsKKyAgICBfd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFT
dG9yZSgpLnNldFF1b3RhTWFuYWdlcihtYWtlVW5pcXVlUmVmPFdlYnNpdGVEYXRhU3RvcmVRdW90
YU1hbmFnZXI+KHF1b3RhRGVsZWdhdGUpKTsKK30KKwogQGVuZAogCiAjZW5kaWYgLy8gV0tfQVBJ
X0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgKaW5kZXggZDg2MTg3NTI3M2JhN2Rm
NjdlMjg2NmQxNDU1Yjk2YjdmM2RjNDdmNi4uZTMxZjNiNjdmYjM4OTBiOTJlM2NiOTJhNTA2YTFl
ZTkyMTE4NDQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgKQEAgLTQxLDYgKzQxLDcg
QEAgdGVtcGxhdGU8PiBzdHJ1Y3QgV3JhcHBlclRyYWl0czxBUEk6OldlYnNpdGVEYXRhU3RvcmU+
IHsKIEBpbnRlcmZhY2UgV0tXZWJzaXRlRGF0YVN0b3JlICgpIDxXS09iamVjdD4gewogQHBhY2th
Z2UKICAgICBBUEk6Ok9iamVjdFN0b3JhZ2U8QVBJOjpXZWJzaXRlRGF0YVN0b3JlPiBfd2Vic2l0
ZURhdGFTdG9yZTsKKyAgICBSZXRhaW5QdHI8aWQgPFdLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2
YXRlPiA+IF9xdW90YURlbGVnYXRlOwogfQogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUu
aAppbmRleCA3NGE4YTAyZjJmMWQ5ZWU5NWM5N2FmOWE5NmUzYzYwMTMxOTIwMTYxLi5hZDA0Y2U4
OGE5YjQ0NWEyMDQ4MTc4YmQ5NTFlN2RhMGEyYTYxNjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2
YXRlLmgKQEAgLTMyLDYgKzMyLDggQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIEBjbGFzcyBf
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjsKIEBjbGFzcyBXS1dlYlZpZXc7CiAKK0Bw
cm90b2NvbCBXS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZTsKKwogdHlwZWRlZiBOU19PUFRJ
T05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9wdGlvbnMpIHsKICAgICBf
V0tXZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25Db21wdXRlU2l6ZXMgPSAxIDw8IDAsCiB9IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKQEAgLTYyLDYgKzY0LDkg
QEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRj
aE9wdGlvbnMpIHsKICsgKHZvaWQpX2FsbG93V2Vic2l0ZURhdGFSZWNvcmRzRm9yQWxsT3JpZ2lu
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKIC0gKGJvb2wp
X2hhc1JlZ2lzdGVyZWRTZXJ2aWNlV29ya2VyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0
KSwgaW9zKDEyLjApKTsKIAorLyohIEBhYnN0cmFjdCBUaGUgc3RvcmFnZSBxdW90YSBkZWxlZ2F0
ZS4gKi8KK0Bwcm9wZXJ0eSAobnVsbGFibGUsIG5vbmF0b21pYywgd2VhaykgaWQgPFdLU3RvcmFn
ZVF1b3RhRGVsZWdhdGVQcml2YXRlPiBfcXVvdGFEZWxlZ2F0ZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogQGVuZAogCiBOU19BU1NVTUVf
Tk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDE0N2RiNTUyZDhkNzYzYTZiNjIwYjYzNmI4
NTU3MGM5ZmM3MTRhMWMuLmZiNDI3YTE2MDc5NzhiZjFlYmJmM2QwNmFjNTM5YzAxZjJkZTNjODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcApAQCAtNDMsNiArNDMsOCBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NQ
b29sLmgiCiAjaW5jbHVkZSAiV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaCIKICNpbmNs
dWRlICJXZWJzaXRlRGF0YS5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFn
ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudE9yaWdpbi5oPgogI2luY2x1ZGUgPHd0Zi9D
b21wbGV0aW9uSGFuZGxlci5oPgogCiAjaWYgRU5BQkxFKFNFQ19JVEVNX1NISU0pCkBAIC03Mjgs
NyArNzMwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojplc3RhYmxpc2hXb3JrZXJDb250
ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3NGb3JFeHAKIH0KICNlbmRpZgogCi12b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OkRPTUNhY2hlUXVvdGFFeHRlbnNpb25SZXF1ZXN0SWRlbnRp
ZmllciByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgdWlu
dDY0X3QgcXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRTaXplLCB1aW50NjRfdCBzcGFjZVJlcXVpcmVk
KQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2UoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpET01DYWNoZVF1b3RhRXh0ZW5zaW9uUmVx
dWVzdElkZW50aWZpZXIgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYgb3JpZ2luLCB1aW50NjRfdCBxdW90YSwgdWludDY0X3QgY3VycmVudFNpemUsIHVpbnQ2
NF90IHNwYWNlUmVxdWlyZWQpCiB7CiAgICAgYXV0byogc3RvcmUgPSB3ZWJzaXRlRGF0YVN0b3Jl
RnJvbVNlc3Npb25JRChzZXNzaW9uSUQpOwogCkBAIC03MzcsOCArNzM5LDkgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2UoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBB
c2sgV2Vic2l0ZURhdGFTdG9yZSBhYm91dCB1cGRhdGluZyB0aGUgcXVvdGEgZm9yIHRoaXMgb3Jp
Z2luLgotICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpSZXF1ZXN0Q2FjaGVTdG9y
YWdlU3BhY2VDb21wbGV0ZWQgeyBzZXNzaW9uSUQsIHJlcXVlc3RJZGVudGlmaWVyLCBxdW90YSB9
LCAwKTsKKyAgICBzdG9yZS0+cXVvdGFNYW5hZ2VyKCkucmVxdWVzdENhY2hlU3RvcmFnZVNwYWNl
KG9yaWdpbi50b3BPcmlnaW4sIG9yaWdpbi5jbGllbnRPcmlnaW4sIHF1b3RhLCBjdXJyZW50U2l6
ZSwgc3BhY2VSZXF1aXJlZCwgW2Nvbm5lY3Rpb24gPSBtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBz
ZXNzaW9uSUQsIHJlcXVlc3RJZGVudGlmaWVyXSAoT3B0aW9uYWw8dWludDY0X3Q+IHF1b3RhKSBt
dXRhYmxlIHsKKyAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OlJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZUNvbXBsZXRlZCB7IHNlc3Npb25JRCwgcmVxdWVz
dElkZW50aWZpZXIsIHF1b3RhIH0sIDApOworICAgIH0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0Rh
dGFTdG9yZVF1b3RhTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvRGF0YVN0b3JlUXVvdGFNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODI5MDAzOTdlM2QzMThiN2Rk
NzE1ODBiMmU2ZTcxNzkzYzJkOGMzZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL0RhdGFTdG9yZVF1b3RhTWFuYWdlci5oCkBAIC0wLDAgKzEs
NDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Db21wbGV0
aW9uSGFuZGxlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBTZWN1cml0eU9yaWdp
bkRhdGE7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBEYXRhU3RvcmVRdW90YU1h
bmFnZXIgeworcHVibGljOgorcHJpdmF0ZToKKyAgICBjbGFzcyBXZWJzaXRlRGF0CisgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZShjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiBmcmFtZU9yaWdpbiwgdWludDY0X3QgcXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRTaXplLCB1aW50
NjRfdCBzcGFjZVJlcXVpcmVkLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
dWludDY0X3Q+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICB7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKHsgfSk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCmluZGV4IDRkN2Y1MTE0ZjgyOGNiZjNlNTBlMmU1MTM4NzA5YjI3NmJjYjUyNjIu
LjY1OWFlZTFiMjNhNjJjZjZlZjA0Mjc0ZDk5ZmQyNmFmNjI5YWJjZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2Uu
aCIKICNpbmNsdWRlICJNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCIKICNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFu
YWdlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29va2ll
TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCkBAIC05Nyw2
ICs5OCw3IEBAIFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoUmVmPFdlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uPiYmIGNvbmZpZ3VyCiAjaWYgRU5BQkxFKFdFQl9BVVRITikK
ICAgICAsIG1fYXV0aGVudGljYXRvck1hbmFnZXIobWFrZVVuaXF1ZVJlZjxBdXRoZW50aWNhdG9y
TWFuYWdlcj4oKSkKICNlbmRpZgorICAgICwgbV9xdW90YU1hbmFnZXIobWFrZVVuaXF1ZVJlZjxX
ZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyPigpKQogewogICAgIFdURjo6c2V0UHJvY2Vzc1By
aXZpbGVnZXMoYWxsUHJpdmlsZWdlcygpKTsKICAgICBtYXliZVJlZ2lzdGVyV2l0aFNlc3Npb25J
RE1hcCgpOwpAQCAtMTEzLDYgKzExNSw3IEBAIFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRh
U3RvcmUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAg
ICAgLCBtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyKG1ha2VVbmlxdWVSZWY8QXV0aGVudGljYXRvck1h
bmFnZXI+KCkpCiAjZW5kaWYKKyAgICAsIG1fcXVvdGFNYW5hZ2VyKG1ha2VVbmlxdWVSZWY8V2Vi
c2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdlcj4oKSkKIHsKICAgICBtYXliZVJlZ2lzdGVyV2l0aFNl
c3Npb25JRE1hcCgpOwogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4
IDdjNTM0M2UyMTU4NTk0MDc5YzIwODY4MjljMDliYmY3YmQxM2NjMmQuLjQ5OTRlODk1MWZjZWVh
NzRiYTEwNGU2NWJjZTBmNTI5MGYyZWI2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTI4LDYgKzI4LDcg
QEAKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5h
Z2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nl
Y3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5IYXNo
Lmg+CkBAIC01OCw2ICs1OSw3IEBAIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOworY2xhc3MgV2Vic2l0ZURhdGFT
dG9yZVF1b3RhTWFuYWdlcjsKIGNsYXNzIFNlY0tleVByb3h5U3RvcmU7CiBjbGFzcyBTdG9yYWdl
TWFuYWdlcjsKIGNsYXNzIERldmljZUlkSGFzaFNhbHRTdG9yYWdlOwpAQCAtMTg4LDYgKzE5MCw5
IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uJiBj
b25maWd1cmF0aW9uKCkgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmdldCgpOyB9CiAKKyAgICBX
ZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyJiBxdW90YU1hbmFnZXIoKSB7IHJldHVybiBtX3F1
b3RhTWFuYWdlci5nZXQoKTsgfQorICAgIHZvaWQgc2V0UXVvdGFNYW5hZ2VyKFVuaXF1ZVJlZjxX
ZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyPiYmIG1hbmFnZXIpIHsgbV9xdW90YU1hbmFnZXIg
PSBXVEZNb3ZlKG1hbmFnZXIpOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2Vic2l0ZURh
dGFTdG9yZShQQUw6OlNlc3Npb25JRCk7CiAgICAgZXhwbGljaXQgV2Vic2l0ZURhdGFTdG9yZShS
ZWY8V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+JiYsIFBBTDo6U2Vzc2lvbklEKTsKQEAg
LTI1Niw2ICsyNjEsOCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAgICAgVW5p
cXVlUmVmPEF1dGhlbnRpY2F0b3JNYW5hZ2VyPiBtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyOwogI2Vu
ZGlmCisKKyAgICBVbmlxdWVSZWY8V2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdlcj4gbV9xdW90
YU1hbmFnZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjA0YWI0YTdjZjYyY2JmOGJkODI0ZWE1ZDBiNmY1YmJkZjE4ZWU0YgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmVRdW90YU1hbmFnZXIuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIgeworcHVibGlj
OgorICAgIHZpcnR1YWwgfldlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIoKSB7IH0KKworICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2UoY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYgZnJhbWVPcmlnaW4sIHVpbnQ2NF90IHF1b3RhLCB1aW50NjRfdCBjdXJyZW50U2l6ZSwg
dWludDY0X3Qgc3BhY2VSZXF1aXJlZCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPHVpbnQ2NF90Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgeworICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcih7IH0pOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
OWM4MjUxNzgzMjYzNDE4YTg3MWU1ZTliMzM4NzQ1NDM5MTU2N2UwMC4uM2QyNDg1MWNjZTNiZGVj
YmRkNTU5YzA2ZWY0N2Y1NzRmNDg2NGY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NjIsNiArODYyLDcgQEAKIAkJNDExMkVEREUy
MEU0MDdBNTAwQkVBOTJBIC8qIGNvbS5jZmNhLm5wU2VjRWRpdEN0bC5NQUMuQk9DLnBsdWdpbi5z
YiBpbiBDb3B5IFBsdWctaW4gU2FuZGJveCBQcm9maWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTEyRUREMzIwRTQwNzc0MDBCRUE5MkEgLyogY29tLmNmY2EubnBTZWNF
ZGl0Q3RsLk1BQy5CT0MucGx1Z2luLnNiICovOyB9OwogCQk0MTEyRURERjIwRTQwN0E1MDBCRUE5
MkEgLyogY29tLmNtYmNoaW5hLkNNQlNlY3VyaXR5LnNiIGluIENvcHkgUGx1Zy1pbiBTYW5kYm94
IFByb2ZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTJFREQ1MjBF
NDA3NzQwMEJFQTkyQSAvKiBjb20uY21iY2hpbmEuQ01CU2VjdXJpdHkuc2IgKi87IH07CiAJCTQx
MTJFREUwMjBFNDA3QTUwMEJFQTkyQSAvKiBjb20uZnRzYWZlLk5QQVBJLUNvcmUtU2FmZS1Tb2Z0
S2V5YmFvcmQucGx1Z2luLnJmYzEwMzRpZGVudGlmaWVyLnNiIGluIENvcHkgUGx1Zy1pbiBTYW5k
Ym94IFByb2ZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTJFREQy
MjBFNDA3NzMwMEJFQTkyQSAvKiBjb20uZnRzYWZlLk5QQVBJLUNvcmUtU2FmZS1Tb2Z0S2V5YmFv
cmQucGx1Z2luLnJmYzEwMzRpZGVudGlmaWVyLnNiICovOyB9OworCQk0MTE4REMxRjIxRTdCRjVE
MDBERTA0QzcgLyogV0tTdG9yYWdlUXVvdGFEZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMThEQzFEMjFFNkREMjcwMERFMDRD
NyAvKiBXS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMUE4RERCMjBEREQxQUMwMDYwRDM0RiAv
KiBXS01vY2tNZWRpYURldmljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDExQThERDkyMEREQjYwNTAwNjBEMzRGIC8qIFdLTW9ja01lZGlhRGV2aWNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDEx
QjIyNjQxRTM3MUJBNjAwNEY3MzYzIC8qIExpYldlYlJUQ05ldHdvcmsuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMUIyMjYyMUUzNzEyNDQwMDRGNzM2
MyAvKiBMaWJXZWJSVENOZXR3b3JrLmggKi87IH07CiAJCTQxMzA3NUFCMURFODVGMzMwMDM5RUM2
OSAvKiBOZXR3b3JrUlRDU29ja2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTMwNzU5OTFERTg0RkIwMDAzOUVDNjkgLyogTmV0d29ya1JUQ1NvY2tl
dC5oICovOyB9OwpAQCAtMzAxMiw2ICszMDEzLDkgQEAKIAkJNDExMkVERDcyMEU0MDc3NTAwQkVB
OTJBIC8qIGNvbS5hcHBsZS5OUFNhZmVTdWJtaXQuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
Y29tLmFwcGxlLk5QU2FmZVN1Ym1pdC5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDExMkVERDgyMEU0MDc3NTAwQkVBOTJBIC8qIGNvbS5hcHBsZS5OUFNhZmVJbnB1dC5zYiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuTlBTYWZlSW5wdXQuc2I7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxMTJFREQ5MjBFNDA3NzUwMEJFQTkyQSAvKiBjb20uYXBwbGUu
Qm9jb21TdWJtaXRDdHJsLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5Cb2Nv
bVN1Ym1pdEN0cmwuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMThEQzFCMjFF
NkQxMUEwMERFMDRDNyAvKiBXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDExOERDMUMyMUU2RDM1QjAwREUwNEM3IC8q
IERhdGFTdG9yZVF1b3RhTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEYXRhU3RvcmVRdW90YU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDExOERDMUQyMUU2REQyNzAwREUwNEM3IC8qIFdLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLU3RvcmFnZVF1b3RhRGVsZWdh
dGVQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMUE4REQ5MjBEREI2
MDUwMDYwRDM0RiAvKiBXS01vY2tNZWRpYURldmljZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS01vY2tNZWRpYURldmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTFBOEREQTIwRERCNjA1MDA2MEQzNEYgLyogV0tNb2NrTWVkaWFEZXZpY2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tNb2NrTWVkaWFEZXZpY2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTFCMjI2MjFFMzcxMjQ0MDA0RjczNjMg
LyogTGliV2ViUlRDTmV0d29yay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBM
aWJXZWJSVENOZXR3b3JrLmg7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3Jr
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODcwLDYgKzQ4NzQsOCBAQAogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxQTQ4MzJDMDFBOTY1QTMzMDA4
QjRERkUgLyogQ29jb2EgKi8sCisJCQkJNDExOERDMUMyMUU2RDM1QjAwREUwNEM3IC8qIERhdGFT
dG9yZVF1b3RhTWFuYWdlci5oICovLAorCQkJCTQxMThEQzFCMjFFNkQxMUEwMERFMDRDNyAvKiBX
ZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyLmggKi8sCiAJCQkJMUE0ODMyRDgxQTlEMUZEMjAw
OEI0REZFIC8qIFdlYnNpdGVEYXRhUmVjb3JkLmNwcCAqLywKIAkJCQkxQTQ4MzJDRjFBOUJEODIx
MDA4QjRERkUgLyogV2Vic2l0ZURhdGFSZWNvcmQuaCAqLywKIAkJCQkxQTUzQzJBNDFBMzI1NjlG
MDA0RThDNzAgLyogV2Vic2l0ZURhdGFTdG9yZS5jcHAgKi8sCkBAIC02MTY0LDYgKzYxNzAsNyBA
QAogCQkJCTUxQ0QxQzYxMUIzNEI5QzkwMDE0MkNBNSAvKiBXS1NlY3VyaXR5T3JpZ2luSW50ZXJu
YWwuaCAqLywKIAkJCQk5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZp
Z3VyYXRpb24uaCAqLywKIAkJCQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkgLyogV0tTbmFwc2hv
dENvbmZpZ3VyYXRpb24ubW0gKi8sCisJCQkJNDExOERDMUQyMUU2REQyNzAwREUwNEM3IC8qIFdL
U3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRlLmggKi8sCiAJCQkJMUFEODc5MDkxOEI2QzM4QTAw
NkNBRkQ3IC8qIFdLVUlEZWxlZ2F0ZS5oICovLAogCQkJCTM3NDM5MjU3MThCQzRDNjAwMDFDODY3
NSAvKiBXS1VJRGVsZWdhdGVQcml2YXRlLmggKi8sCiAJCQkJNTFEMTI0MkQxRTZERERENzAwMkIy
ODIwIC8qIFdLVVJMU2NoZW1lSGFuZGxlci5oICovLApAQCAtOTkyOSw2ICs5OTM2LDcgQEAKIAkJ
CQkxRjc1MDZCNTE4NTkxNjU0MDBFQzBGRjcgLyogV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29y
bGRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0ODMyQ0MxQTlCQzQ2NTAwOEI0REZF
IC8qIFdLV2Vic2l0ZURhdGFSZWNvcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNDgzMkNFMUE5
QkM0ODQwMDhCNERGRSAvKiBXS1dlYnNpdGVEYXRhUmVjb3JkSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQxMThEQzFGMjFFN0JGNUQwMERFMDRDNyAvKiBXS1N0b3JhZ2VRdW90YURlbGVn
YXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBNjU0RDExQjE0RjcxNDAwQkYxRDNF
IC8qIFdLV2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NUE4
RDJDODE4N0NDRkFCMDBDMzlDOUUgLyogV0tXZWJzaXRlRGF0YVN0b3JlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk3NUE4RDJENjE4N0QxQzBFMDBDMzlDOUUgLyogV0tXZWJzaXRlRGF0YVN0b3JlSW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGRhYzRlNjIzMzRlNDlhOTU1MWRlNDczNjExODA4NGFiNTI3MjUw
YmQuLmRmZjYxNGUxN2EwOTRlYjY4YzI3Y2JmOTEyZjNmZjMzYzJmOTczMzcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAor
MjAxOS0wMS0xMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIGEgbmV3IFNQSSB0byByZXF1ZXN0IGZvciBjYWNoZSBzdG9yYWdlIHF1b3RhIGluY3JlYXNl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTMzMjMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1l
bnQgV2Vic2l0ZURhdGFTdG9yZSBxdW90YSBkZWxlZ2F0ZSB0byBoYW5kbGUgcXVvdGEgcmVxdWVz
dHMuCisgICAgICAgIEJ5IGRlZmF1bHQsIGRvIG5vdCB1cGRhdGUgcXVvdGEuCisgICAgICAgIFVw
ZGF0ZSBxdW90YSBpZiB0ZXN0IGNhbGxzIHRoZSBuZXcgdGVzdFJ1bm5lci5hbGxvd0NhY2hlU3Rv
cmFnZVF1b3RhSW5jcmVhc2UgbWV0aG9kLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpU
ZXN0UnVubmVyOjphbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6YWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlKToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRS
ZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW06CisgICAgICAgICgt
W0NhY2hlU3RvcmFnZVF1b3RhTWFuYWdlciBpbml0XSk6CisgICAgICAgICgtW0NhY2hlU3RvcmFn
ZVF1b3RhTWFuYWdlciBfcmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlOmZyYW1lT3JpZ2luOnF1b3Rh
OmN1cnJlbnRTaXplOnNwYWNlUmVxdWlyZWQ6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAo
V1RSOjppbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6Y29jb2FSZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OmFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSk6CisK
IDIwMTktMDEtMDkgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtld3MtYnVpbGRdIEFkZCBsaW5rIHRvIGJ1ZyBhbG9uZyB3aXRoIGJ1ZyB0aXRsZQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggZGEwMjJjNGYwYzc2OTJlN2M2ZGY0ZDYyZTQ1OTZm
MTg5ZWFkYmM1ZS4uMjQ3NDg3NzJmMDIzMjU2Mjg5NjdlNWRkZTEwNjg1OWRlYzQyMjI1NSAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC02Miw2ICs2Miw3IEBAIGludGVyZmFjZSBUZXN0
UnVubmVyIHsKICAgICB2b2lkIGNsZWFyRE9NQ2FjaGUoRE9NU3RyaW5nIG9yaWdpbik7CiAgICAg
Ym9vbGVhbiBoYXNET01DYWNoZShET01TdHJpbmcgb3JpZ2luKTsKICAgICB1bnNpZ25lZCBsb25n
IGRvbUNhY2hlU2l6ZShET01TdHJpbmcgb3JpZ2luKTsKKyAgICB2b2lkIGFsbG93Q2FjaGVTdG9y
YWdlUXVvdGFJbmNyZWFzZSgpOwogCiAgICAgLy8gU3BlY2lhbCBvcHRpb25zLgogICAgIHZvaWQg
a2VlcFdlYkhpc3RvcnkoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDI0ZDM0MGYwMDZlZDU4YzMwZjVjNzEzODkw
MTE4NjY1OGExNTJjMjMuLjlhYTdiZThjYjdmMjI0OTZhZWJkYjkzYzAyN2VkYzE1OGY0NTE4YzEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcApAQCAtMjM1OCw2ICsyMzU4LDEyIEBAIHVpbnQ2NF90IFRlc3RSdW5uZXI6OmRv
bUNhY2hlU2l6ZShKU1N0cmluZ1JlZiBvcmlnaW4pCiAgICAgcmV0dXJuIFdLVUludDY0R2V0VmFs
dWUoc3RhdGljX2Nhc3Q8V0tVSW50NjRSZWY+KHJldHVybkRhdGEpKTsKIH0KIAordm9pZCBUZXN0
UnVubmVyOjphbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UoKQoreworICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiQWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlIikpOworICAgIFdLQnVu
ZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVu
ZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRyLCBudWxscHRyKTsKK30KKwogdm9pZCBU
ZXN0UnVubmVyOjpnZXRBcHBsaWNhdGlvbk1hbmlmZXN0VGhlbihKU1ZhbHVlUmVmIGNhbGxiYWNr
KQogewogICAgIGNhY2hlVGVzdFJ1bm5lckNhbGxiYWNrKEdldEFwcGxpY2F0aW9uTWFuaWZlc3RD
YWxsYmFja0lELCBjYWxsYmFjayk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDEyMGVmYzgyNjNlYzc3MjQ5YjNiMGQ3ZGE2
MTQ3NmEzYzhhN2FmMTcuLjBlNTEzZDNlODM5YzIwMWY5ZDQ4NjA0YTc2MmRmMTBjMjQxZWZiNDYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oCkBAIC0xNzUsNiArMTc1LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJET01DYWNo
ZXMoKTsKICAgICBib29sIGhhc0RPTUNhY2hlKEpTU3RyaW5nUmVmIG9yaWdpbik7CiAgICAgdWlu
dDY0X3QgZG9tQ2FjaGVTaXplKEpTU3RyaW5nUmVmIG9yaWdpbik7CisgICAgdm9pZCBhbGxvd0Nh
Y2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UoKTsKIAogICAgIC8vIEluZGV4ZWREQgogICAgIHZvaWQg
c2V0SURCUGVyT3JpZ2luUXVvdGEodWludDY0X3QpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAppbmRleCA2ZDRkZmZiNDk2NTY1MjRjNjRkOTYyZTc5ZmUyMzgzODRj
NjljMGM2Li5kYzg0Yjk1ZGYzODdiZGFkZmQ5YjUxNmVkZTE2ZGMwNmM2ZTJmMzU1IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMjgyOCw2ICsyODI4LDEz
IEBAIHVpbnQ2NF90IFRlc3RDb250cm9sbGVyOjpkb21DYWNoZVNpemUoV0tTdHJpbmdSZWYgb3Jp
Z2luKQogICAgIHJldHVybiBjb250ZXh0LnJlc3VsdDsKIH0KIAorI2lmICFQTEFURk9STShDT0NP
QSkKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSgp
Cit7CisgICAgLy8gRklYTUU6IFRvIGltcGxlbWVudC4KK30KKyNlbmRpZgorCiBzdHJ1Y3QgUmVz
b3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0IHsKICAgICBleHBsaWNpdCBSZXNvdXJjZVN0
YXRpc3RpY3NDYWxsYmFja0NvbnRleHQoVGVzdENvbnRyb2xsZXImIGNvbnRyb2xsZXIpCiAgICAg
ICAgIDogdGVzdENvbnRyb2xsZXIoY29udHJvbGxlcikKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuaAppbmRleCAxM2EzOWM2OTA1ZjBkODdiYTg3YjlkYjU3ZjhkYWQ1YzE3YWM3
MWJjLi4xNDI1Y2JmZDUxYTc2MDRhZTEwYzU3OTQ0NTU3YWEwNmEyMGVhYzgwIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0yNDgsNiArMjQ4LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgY2xlYXJET01DYWNoZXMoKTsKICAgICBib29sIGhhc0RPTUNhY2hlKFdLU3Ry
aW5nUmVmIG9yaWdpbik7CiAgICAgdWludDY0X3QgZG9tQ2FjaGVTaXplKFdLU3RyaW5nUmVmIG9y
aWdpbik7CisgICAgdm9pZCBhbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UoKTsKIAogICAg
IHZvaWQgc2V0SURCUGVyT3JpZ2luUXVvdGEodWludDY0X3QpOwogCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDFhOTFlYjI4NDM0ZDRlZDdkMWI5NjEyMjAw
NjM4NTA1NDBhZDc4MmIuLmJlNWRkYTM5NzMyY2Q4NTY0ODdlMmFiZDA0NTU1ZmEzM2RiYjlmNDIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xNDIwLDYg
KzE0MjAsMTEgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVj
ZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdl
TmFtZSwgIkFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSIpKSB7CisgICAgICAgIFRlc3RD
b250cm9sbGVyOjpzaW5nbGV0b24oKS5hbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UoKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVh
bFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRJREJQZXJPcmlnaW5RdW90YSIpKSB7CiAg
ICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tVSW50NjRHZXRUeXBl
SUQoKSk7CiAgICAgICAgIFdLVUludDY0UmVmIHF1b3RhID0gc3RhdGljX2Nhc3Q8V0tVSW50NjRS
ZWY+KG1lc3NhZ2VCb2R5KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29j
b2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2Ev
VGVzdENvbnRyb2xsZXJDb2NvYS5tbQppbmRleCAxMWIwZTNhZTM0ZmJiZTdlMWJhOWUxNzIxYTRk
MTE4ZDMzMDI2Nzk2Li5hYjc2ZDViNTI5NjNhYmVjZjMzZjg5MTZlNWQyZDFiODc0MTMyNjYxIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29j
b2EubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNv
Y29hLm1tCkBAIC0zNyw2ICszNyw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tDb29raWVNYW5hZ2Vy
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaD4KICNpbXBvcnQg
PFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLU3RvcmFn
ZVF1b3RhRGVsZWdhdGVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tTdHJpbmdDRi5oPgog
I2ltcG9ydCA8V2ViS2l0L1dLVXNlckNvbnRlbnRDb250cm9sbGVyUHJpdmF0ZS5oPgogI2ltcG9y
dCA8V2ViS2l0L1dLV2ViVmlldy5oPgpAQCAtNTEsMTAgKzUyLDQwIEBACiAjaW1wb3J0IDxXZWJL
aXQvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9N
YWluVGhyZWFkLmg+CiAKKworI2lmIFdLX0FQSV9FTkFCTEVECisKK0BpbnRlcmZhY2UgQ2FjaGVT
dG9yYWdlUXVvdGFNYW5hZ2VyOiBOU09iamVjdCA8V0tTdG9yYWdlUXVvdGFEZWxlZ2F0ZVByaXZh
dGU+IHsKK0BwdWJsaWMKKyAgICBCT09MIHNob3VsZEFsbG93UmFpc2luZ1F1b3RhOworfQorLSAo
aW5zdGFuY2V0eXBlKWluaXQ7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBDYWNoZVN0b3JhZ2VR
dW90YU1hbmFnZXIgeyB9CistIChpbnN0YW5jZXR5cGUpaW5pdAoreworICAgIHNob3VsZEFsbG93
UmFpc2luZ1F1b3RhID0gZmFsc2U7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpX3Jl
cXVlc3RDYWNoZVN0b3JhZ2VTcGFjZTooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVPcmlnaW46
KE5TVVJMICopZnJhbWVVUkwgcXVvdGE6KE5TVUludGVnZXIpcXVvdGEgY3VycmVudFNpemU6KE5T
VUludGVnZXIpY3VycmVudFNpemUgc3BhY2VSZXF1aXJlZDooTlNVSW50ZWdlcilzcGFjZVJlcXVp
cmVkIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKSlk
ZWNpc2lvbkhhbmRsZXIKK3sKKyAgICBkZWNpc2lvbkhhbmRsZXIoc2hvdWxkQWxsb3dSYWlzaW5n
UXVvdGEgPyAyICogcXVvdGEgOiBxdW90YSk7Cit9CisKK0BlbmQKKworI2VuZGlmCisKIG5hbWVz
cGFjZSBXVFIgewogCiBzdGF0aWMgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqZ2xvYmFsV2ViVmll
d0NvbmZpZ3VyYXRpb247CiAKKyNpZiBXS19BUElfRU5BQkxFRAorc3RhdGljIENhY2hlU3RvcmFn
ZVF1b3RhTWFuYWdlciAqZ2xvYmFsQ2FjaGVTdG9yYWdlUXVvdGFNYW5hZ2VyOworI2VuZGlmCisK
IHZvaWQgaW5pdGlhbGl6ZVdlYlZpZXdDb25maWd1cmF0aW9uKGNvbnN0IGNoYXIqIGxpYnJhcnlQ
YXRoLCBXS1N0cmluZ1JlZiBpbmplY3RlZEJ1bmRsZVBhdGgsIFdLQ29udGV4dFJlZiBjb250ZXh0
LCBXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbnRleHRDb25maWd1cmF0aW9uKQogewogI2lm
IFdLX0FQSV9FTkFCTEVECkBAIC04MCw2ICsxMTEsMTIgQEAgdm9pZCBpbml0aWFsaXplV2ViVmll
d0NvbmZpZ3VyYXRpb24oY29uc3QgY2hhciogbGlicmFyeVBhdGgsIFdLU3RyaW5nUmVmIGluamVj
dGUKICAgICBbZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSBfc2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQ6WUVTXTsKICAgICBbZ2xvYmFsV2ViVmlld0Nv
bmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSBfcmVzb3VyY2VMb2FkU3RhdGlzdGljc1NldFNo
b3VsZFN1Ym1pdFRlbGVtZXRyeTpOT107CiAKKyNpZiBXS19BUElfRU5BQkxFRAorICAgIFtnbG9i
YWxDYWNoZVN0b3JhZ2VRdW90YU1hbmFnZXIgcmVsZWFzZV07CisgICAgZ2xvYmFsQ2FjaGVTdG9y
YWdlUXVvdGFNYW5hZ2VyID0gW1tDYWNoZVN0b3JhZ2VRdW90YU1hbmFnZXIgYWxsb2NdIGluaXRd
OworICAgIFtnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlIHNldF9x
dW90YURlbGVnYXRlOmdsb2JhbENhY2hlU3RvcmFnZVF1b3RhTWFuYWdlcl07CisjZW5kaWYKKwog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24u
YWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjayA9IFlFUzsKICAgICBnbG9iYWxXZWJWaWV3Q29uZmln
dXJhdGlvbi5faW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUg
PSBOTzsKQEAgLTI0OSw2ICsyODYsOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjb2NvYVJlc2V0
U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbgogICAgICAg
ICBpZiAob3B0aW9ucy5zaG91bGRTaG93U3BlbGxDaGVja2luZ0RvdHMpCiAgICAgICAgICAgICBb
cGxhdGZvcm1WaWV3IHRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nOm5pbF07CiAgICAgfQor
CisgICAgZ2xvYmFsQ2FjaGVTdG9yYWdlUXVvdGFNYW5hZ2VyLT5zaG91bGRBbGxvd1JhaXNpbmdR
dW90YSA9IGZhbHNlOwogI2VuZGlmCiB9CiAKQEAgLTM4Miw0ICs0MjEsMTEgQEAgYm9vbCBUZXN0
Q29udHJvbGxlcjo6a2V5RXhpc3RzSW5LZXljaGFpbihjb25zdCBTdHJpbmcmIGF0dHJMYWJlbCwg
Y29uc3QgU3RyaW5nJgogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxl
cjo6YWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlKCkKK3sKKyNpZiBXS19BUElfRU5BQkxF
RAorICAgIGdsb2JhbENhY2hlU3RvcmFnZVF1b3RhTWFuYWdlci0+c2hvdWxkQWxsb3dSYWlzaW5n
UXVvdGEgPSB0cnVlOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDlj
MWMzYmE2MmRlNDYyMmQ1ZGU3ZTQxZWY3YWY5NjFlN2RlNWUxMzguLmNlNjUxOGRmNTUzYzMyNTY0
OTBhZjlmNGY2ZjhkZDYyNjRkZjcwZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wMS0x
MCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbmV3
IFNQSSB0byByZXF1ZXN0IGZvciBjYWNoZSBzdG9yYWdlIHF1b3RhIGluY3JlYXNlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTMzMjMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHRlc3RSdW5u
ZXIgbWV0aG9kIHRvIGJ1bXAgdGhlIGNhY2hlIHF1b3RhIGFuZCB2ZXJpZnkgYWRkaW5nIGEKKyAg
ICAgICAgY2FjaGUgZW50cnkgd29ya3Mgd2hlbiBidW1waW5nIHRoZSBjcWNoZSBxdW90YS4KKwor
ICAgICAgICAqIGh0dHAvd3B0L2NhY2hlLXN0b3JhZ2UvY2FjaGUtcXVvdGEuYW55LmpzOgorICAg
ICAgICAocHJvbWlzZV90ZXN0KToKKwogMjAxOS0wMS0wOSAgWmFsYW4gQnVqdGFzICA8emFsYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtEYXRhbGlzdF0gQ3Jhc2ggd2hlbiBpbnB1dCB3aXRoIGRh
dGFsaXN0IGlzIGR5bmFtaWNhbGx5IGFkZGVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvY2FjaGUtc3RvcmFnZS9jYWNoZS1xdW90YS5hbnkuanMgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC9jYWNoZS1zdG9yYWdlL2NhY2hlLXF1b3RhLmFueS5qcwppbmRleCA1YTk0ZDViNzhmM2I2
MzljYTcwZGNiZjEzZmYyODhhNWRiMmUyMzkzLi5jYTI5MmRjOWI1NDliYzEzZTUzYzI2ZDllMjYx
ZTFmZjA2ODFiMDY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jYWNoZS1zdG9y
YWdlL2NhY2hlLXF1b3RhLmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jYWNoZS1z
dG9yYWdlL2NhY2hlLXF1b3RhLmFueS5qcwpAQCAtMTE0LDcgKzExNCw3IEBAIHByb21pc2VfdGVz
dCgodGVzdCkgPT4gewogICAgICAgICByZXR1cm4gY2FjaGUucHV0KCIxa28tdjIiLCByZXNwb25z
ZTFrby5jbG9uZSgpKS50aGVuKGFzc2VydF91bnJlYWNoZWQsIChlKSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIlF1b3RhRXhjZWVkZWRFcnJvciIpOwogICAgICAgICB9
KTsKLSAgIH0pLnRoZW4oKCkgPT4geworICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICByZXR1
cm4gY2FjaGUuZGVsZXRlKCIxa28tdjEiKTsKICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
cmV0dXJuIGNhY2hlLnB1dCgiMWtvLXYyIiwgcmVzcG9uc2Uxa28uY2xvbmUoKSk7CkBAIC0xNTEs
NiArMTUxLDkgQEAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CiAgICAgICAgIHJldHVybiBjYWNo
ZS5wdXQoIjFrbyIsIHJlc3BvbnNlMWtvLmNsb25lKCkpLnRoZW4oYXNzZXJ0X3VucmVhY2hlZCwg
KGUpID0+IHsKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1lLCAiUXVvdGFFeGNlZWRl
ZEVycm9yIik7CiAgICAgICAgIH0pOworICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICB0ZXN0
UnVubmVyLmFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSgpOworICAgICAgICByZXR1cm4g
Y2FjaGUucHV0KCIxa28iLCByZXNwb25zZTFrby5jbG9uZSgpKTsKICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICByZXR1cm4gY2FjaGUuZGVsZXRlKCIxa28tcGFkZGVkLXRvLTIwMGtvIik7CiAg
ICAgfSkudGhlbigoKSA9PiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359292</attachid>
            <date>2019-01-16 12:41:18 -0800</date>
            <delta_ts>2019-01-16 12:43:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193323-20190116124117.patch</filename>
            <type>text/plain</type>
            <size>18516</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5OTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg1M2ZmZDhlZWJkYjg1MDVk
Mzc5NTUwMzBiZDVhNmJkZDkyYzMzMmMuLjljOTYyYzE5N2Q3MjQ5NGE5NmY3ODIyMjFjMWRhZWJk
NDNiMDM0YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTktMDEtMTYgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFBpcGUgY2FjaGUgcXVvdGEgcmVx
dWVzdCBmcm9tIE5ldHdvcmsgUHJvY2VzcyB0byBVSVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzI5NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gY2FjaGUgc3RvcmFnZSBoaXRzIHF1
b3RhIGZvciBhIGdpdmVuIG9yaWdpbiwgcGlwZSB0aGUgcmVxdWVzdCBiYWNrIHRvIE5ldHdvcmtQ
cm9jZXNzLgorICAgICAgICBObyByZWNvcmQgd2lsbCBiZSBwdXQgdW50aWwgdGhlIHF1b3RhIHJl
cXVlc3QgaXMgYW5zd2VyZWQuCisgICAgICAgIFRoZSByZXF1ZXN0IGlzIHNlbnQgZnJvbSBDYWNo
ZVN0b3JhZ2U6OkNhY2hlcyB0byBDYWNoZVN0b3JhZ2U6OkVuZ2luZSBhbmQgdG8gTmV0d29ya1By
b2Nlc3MuCisgICAgICAgIE5ldHdvcmtQcm9jZXNzIHRoZW4gc2VuZHMgaXQgdG8gTmV0d29ya1By
b2Nlc3NQcm94eS4KKyAgICAgICAgQ3VycmVudGx5IE5ldHdvcmtQcm9jZXNzUHJveHkganVzdCBh
bnN3ZXJzIGJ5IGtlZXBpbmcgdGhlIHF1b3RhIGFzIGl0IGlzLgorICAgICAgICBJbiB0aGUgZnV0
dXJlLCBOZXR3b3JrUHJvY2Vzc1Byb3h5IHNob3VsZCBtYWtlIGEgZGVsZWdhdGUgY2FsbCB0byBs
ZXQgdGhlIGFwcCB1c2luZyBXZWJLaXQKKyAgICAgICAgbWFrZSBhIGRlY2lzaW9uIG9uIHRoZSBx
dW90YS4gVGhpcyB3aWxsIGFsbG93IHByb21wdGluZyB1c2VyIHRvIGJ1bXAgaXQgYXMgZG9uZSBm
b3Igb3RoZXIgZGF0YS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnJlcXVlc3RDYWNoZVN0b3Jh
Z2VTcGFjZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6fkVuZ2luZSk6CisgICAgICAgIChX
ZWJLaXQ6OkNhY2hlU3RvcmFnZTo6RW5naW5lOjpmcm9tKToKKyAgICAgICAgKFdlYktpdDo6Q2Fj
aGVTdG9yYWdlOjpFbmdpbmU6OkVuZ2luZSk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFn
ZTo6RW5naW5lOjpyZXF1ZXN0U3BhY2UpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6
OkVuZ2luZTo6cmVxdWVzdFNwYWNlQ29tcGxldGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9j
YWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNhY2hl
U3RvcmFnZTo6Q2FjaGU6OnB1dCk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6Q2Fj
aGU6OnJldHJ5UHV0dGluZ1BlbmRpbmdSZWNvcmRzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkNhY2hlU3RvcmFnZTo6Q2FjaGVzOjpyZXF1ZXN0U3BhY2UpOgorICAgICAgICAoV2ViS2l0OjpD
YWNoZVN0b3JhZ2U6OkNhY2hlczo6bm90aWZ5Q2FjaGVzT2ZSZXF1ZXN0U3BhY2VFbmQpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5oOgor
ICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkNhY2hlczo6aXNSZXF1ZXN0aW5nU3BhY2Ug
Y29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0Q2FjaGVT
dG9yYWdlU3BhY2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluOgorCiAyMDE5LTAxLTE1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KIAogICAgICAgICBTZXJ2aWNlV29ya2VyQ29udGFpbmVyIGlzIGxlYWtpbmcgZHVlIHRv
IGEgcmVmIGN5Y2xlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCmluZGV4IDBjZDE1MjRlYjYxYzU5OGM2Y2IwZDVhNDE1ZTIzM2EyZTY5NTg5YTcu
LjRlOTdhOWM0MzAxMGFjZmI0MmI5MmExZmY2ZjAyODU3MTA1YWJhZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0xNDEwLDYgKzE0
MTAsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6YWRkU2VydmljZVdvcmtlclNlc3Npb24oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcmIHMKIH0KICNlbmRpZiAvLyBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlcXVlc3RDYWNoZVN0b3JhZ2VT
cGFjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2lu
LCB1aW50NjRfdCBxdW90YSwgdWludDY0X3QgY3VycmVudFNpemUsIHVpbnQ2NF90IHNwYWNlUmVx
dWlyZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8dWludDY0X3Q+KT4mJiBjYWxs
YmFjaykKK3sKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFj
ZSB7IHNlc3Npb25JRCwgb3JpZ2luLCBxdW90YSwgY3VycmVudFNpemUsIHNwYWNlUmVxdWlyZWQg
fSwgV1RGTW92ZShjYWxsYmFjayksIDApOworfQorCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBhOGE1MTI0YmI1ZWRkODg2NzZmYjQ5MTAyMmYyN2Vj
ZWMwYzY3ZjZhLi5hZWMzZWE0MGRhY2IxNjA0OTU1MGU3NzFiZDgwMGI2OWZhNTg2MWU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC00NCw2
ICs0NCw3IEBACiAjaW5jbHVkZSA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgogI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIEZvcm1EYXRh
UmVmZXJlbmNlOwpAQCAtNjEsNiArNjIsNyBAQCBjbGFzcyBOZXR3b3JrU3RvcmFnZVNlc3Npb247
CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgU1dTZXJ2ZXI7CiBlbnVtIGNsYXNzIFN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5IDogYm9vbDsKK3N0cnVjdCBDbGllbnRPcmlnaW47CiBzdHJ1Y3Qg
TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM7CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwogc3Ry
dWN0IFNvdXBOZXR3b3JrUHJveHlTZXR0aW5nczsKQEAgLTk2LDYgKzk4LDcgQEAgY2xhc3MgTmV0
d29ya1Byb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzLCBwcml2YXRlIERvd25sb2FkTWFuYWdl
cjo6Q2xpZW50LCBwdWIKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICAsIHB1Ymxp
YyBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVy
CiAjZW5kaWYKKyAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxOZXR3b3JrUHJvY2Vzcz4KIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShOZXR3b3JrUHJvY2Vzcyk7CiBwdWJsaWM6CkBAIC0y
MjIsMTEgKzIyNSwxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlZigpIGNvbnN0IG92ZXJyaWRl
IHsgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TmV0d29ya1Byb2Nlc3M+OjpyZWYoKTsgfQogICAgIHZv
aWQgZGVyZWYoKSBjb25zdCBvdmVycmlkZSB7IFRocmVhZFNhZmVSZWZDb3VudGVkPE5ldHdvcmtQ
cm9jZXNzPjo6ZGVyZWYoKTsgfQotICAgIAorCiAgICAgQ2FjaGVTdG9yYWdlOjpFbmdpbmUqIGZp
bmRDYWNoZUVuZ2luZShjb25zdCBQQUw6OlNlc3Npb25JRCYpOwogICAgIENhY2hlU3RvcmFnZTo6
RW5naW5lJiBlbnN1cmVDYWNoZUVuZ2luZShjb25zdCBQQUw6OlNlc3Npb25JRCYsIEZ1bmN0aW9u
PFJlZjxDYWNoZVN0b3JhZ2U6OkVuZ2luZT4oKT4mJik7CiAgICAgdm9pZCByZW1vdmVDYWNoZUVu
Z2luZShjb25zdCBQQUw6OlNlc3Npb25JRCYpOwotICAgIAorICAgIHZvaWQgcmVxdWVzdENhY2hl
U3RvcmFnZVNwYWNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4m
LCB1aW50NjRfdCBxdW90YSwgdWludDY0X3QgY3VycmVudFNpemUsIHVpbnQ2NF90IHNwYWNlUmVx
dWlyZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8dWludDY0X3Q+KT4mJik7CisK
IHByaXZhdGU6CiAgICAgTmV0d29ya1Byb2Nlc3MoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCmluZGV4
IDgwMWQyMmUyYWRlODJlODVkOWI4NWMwZDVhNTI3NGI3OGFlYTg3MDkuLmIyYjVkYzY2MzkyMjVj
OTJkYWM1ODQ2MGQwNTJiYjc4ZmIxOGYxNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKQEAgLTg1LDcg
Kzg1LDcgQEAgdm9pZCBFbmdpbmU6OmZyb20oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNz
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIEZ1bmMKIAogICAgIG5ldHdvcmtQcm9jZXNzLmNh
Y2hlU3RvcmFnZVBhcmFtZXRlcnMoc2Vzc2lvbklELCBbbmV0d29ya1Byb2Nlc3MgPSBtYWtlUmVm
KG5ldHdvcmtQcm9jZXNzKSwgc2Vzc2lvbklELCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XSAoYXV0byYmIHJvb3RQYXRoLCBhdXRvIHF1b3RhKSBtdXRhYmxlIHsKICAgICAgICAgY2FsbGJh
Y2sobmV0d29ya1Byb2Nlc3MtPmVuc3VyZUNhY2hlRW5naW5lKHNlc3Npb25JRCwgWyZdIHsKLSAg
ICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVuZ2luZSB7IFN0cmluZyB7IHJvb3RQYXRo
IH0sIHF1b3RhIH0pOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRW5naW5lIHsg
c2Vzc2lvbklELCBuZXR3b3JrUHJvY2Vzcy5nZXQoKSwgU3RyaW5nIHsgcm9vdFBhdGggfSwgcXVv
dGEgfSk7CiAgICAgICAgIH0pKTsKICAgICB9KTsKIH0KQEAgLTE4OCw4ICsxODgsMTAgQEAgdm9p
ZCBFbmdpbmU6OmNsZWFyQ2FjaGVzRm9yT3JpZ2luKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJv
Y2VzcywgUEFMOjpTZXNzaW9uSUQKICAgICB9KTsKIH0KIAotRW5naW5lOjpFbmdpbmUoU3RyaW5n
JiYgcm9vdFBhdGgsIHVpbnQ2NF90IHF1b3RhKQotICAgIDogbV9yb290UGF0aChXVEZNb3ZlKHJv
b3RQYXRoKSkKK0VuZ2luZTo6RW5naW5lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgTmV0d29y
a1Byb2Nlc3MmIHByb2Nlc3MsIFN0cmluZyYmIHJvb3RQYXRoLCB1aW50NjRfdCBxdW90YSkKKyAg
ICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKKyAgICAsIG1fbmV0d29ya1Byb2Nlc3MobWFrZVdl
YWtQdHIocHJvY2VzcykpCisgICAgLCBtX3Jvb3RQYXRoKFdURk1vdmUocm9vdFBhdGgpKQogICAg
ICwgbV9xdW90YShxdW90YSkKIHsKICAgICBpZiAoIW1fcm9vdFBhdGguaXNOdWxsKCkpCkBAIC02
NTEsNiArNjUzLDE1IEBAIFN0cmluZyBFbmdpbmU6OnJlcHJlc2VudGF0aW9uKCkKICAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOwogfQogCit2b2lkIEVuZ2luZTo6cmVxdWVzdFNwYWNlKGNv
bnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCB1aW50NjRfdCBxdW90YSwgdWludDY0
X3QgY3VycmVudFNpemUsIHVpbnQ2NF90IHNwYWNlUmVxdWlyZWQsIFJlcXVlc3RTcGFjZUNhbGxi
YWNrJiYgY2FsbGJhY2spCit7CisgICAgaWYgKCFtX25ldHdvcmtQcm9jZXNzKSB7CisgICAgICAg
IGNhbGxiYWNrKHsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9uZXR3b3JrUHJv
Y2Vzcy0+cmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlKG1fc2Vzc2lvbklELCBvcmlnaW4sIHF1b3Rh
LCBjdXJyZW50U2l6ZSwgc3BhY2VSZXF1aXJlZCwgV1RGTW92ZShjYWxsYmFjaykpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBDYWNoZVN0b3JhZ2UKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVu
Z2luZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VF
bmdpbmUuaAppbmRleCAxZWJjYjczNjE2NTcwZGY1MDczY2ZmZDViNWVkMDg1NDE0ZDhkMjE2Li5h
ODEzOTQ5Y2ZhMTlmMTg5MWJmN2E2Nzg1NzgwNmIxOTE5YWRjMDEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmgK
QEAgLTkwLDggKzkwLDExIEBAIHB1YmxpYzoKICAgICBjb25zdCBOZXR3b3JrQ2FjaGU6OlNhbHQm
IHNhbHQoKSBjb25zdCB7IHJldHVybiBtX3NhbHQudmFsdWUoKTsgfQogICAgIHVpbnQ2NF90IG5l
eHRDYWNoZUlkZW50aWZpZXIoKSB7IHJldHVybiArK21fbmV4dENhY2hlSWRlbnRpZmllcjsgfQog
CisgICAgdXNpbmcgUmVxdWVzdFNwYWNlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPHVpbnQ2NF90Pik+OworICAgIHZvaWQgcmVxdWVzdFNwYWNlKGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYsIHVpbnQ2NF90IHF1b3RhLCB1aW50NjRfdCBjdXJyZW50U2l6ZSwg
dWludDY0X3Qgc3BhY2VSZXF1aXJlZCwgUmVxdWVzdFNwYWNlQ2FsbGJhY2smJik7CisKIHByaXZh
dGU6Ci0gICAgRW5naW5lKFN0cmluZyYmIHJvb3RQYXRoLCB1aW50NjRfdCBxdW90YSk7CisgICAg
RW5naW5lKFBBTDo6U2Vzc2lvbklELCBOZXR3b3JrUHJvY2VzcyYsIFN0cmluZyYmIHJvb3RQYXRo
LCB1aW50NjRfdCBxdW90YSk7CiAKICAgICB2b2lkIG9wZW4oY29uc3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJiwgY29uc3QgU3RyaW5nJiBjYWNoZU5hbWUsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5l
OjpDYWNoZUlkZW50aWZpZXJDYWxsYmFjayYmKTsKICAgICB2b2lkIHJlbW92ZSh1aW50NjRfdCBj
YWNoZUlkZW50aWZpZXIsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNoZUlkZW50aWZpZXJD
YWxsYmFjayYmKTsKQEAgLTEyOSw2ICsxMzIsOCBAQCBwcml2YXRlOgogCiAgICAgQ2FjaGUqIGNh
Y2hlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcik7CiAKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nl
c3Npb25JRDsKKyAgICBXZWFrUHRyPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9jZXNzOwog
ICAgIEhhc2hNYXA8V2ViQ29yZTo6Q2xpZW50T3JpZ2luLCBSZWZQdHI8Q2FjaGVzPj4gbV9jYWNo
ZXM7CiAgICAgdWludDY0X3QgbV9uZXh0Q2FjaGVJZGVudGlmaWVyIHsgMCB9OwogICAgIFN0cmlu
ZyBtX3Jvb3RQYXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNwcAppbmRleCBlNDUyZGJhNWUz
MzEzNTQ1OTJjZTkyMGNjMjg0YmE2NjIzZjBhYTVhLi41ZTFlOTRhMTYwZWI5YmI2M2QwMTc0ZGI5
Nzk2ZTg3M2I3NjJmYmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNwcApAQCAtNDAwLDEw
ICs0MDAsMTUgQEAgdm9pZCBDYWNoZTo6c3RvcmVSZWNvcmRzKFZlY3RvcjxSZWNvcmQ+JiYgcmVj
b3JkcywgUmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmIGMKICAgICB9CiB9CiAKLXZvaWQgQ2Fj
aGU6OnB1dChWZWN0b3I8UmVjb3JkPiYmIHJlY29yZHMsIFJlY29yZElkZW50aWZpZXJzQ2FsbGJh
Y2smJiBjYWxsYmFjaykKK3ZvaWQgQ2FjaGU6OnB1dChWZWN0b3I8UmVjb3JkPiYmIHJlY29yZHMs
IFJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJiBjYWxsYmFjaywgQ2FuUmVxdWVzdE1vcmVTcGFj
ZSBjYW5SZXF1ZXN0TW9yZVNwYWNlKQogewogICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpP
cGVuKTsKIAorICAgIGlmIChtX2NhY2hlcy5pc1JlcXVlc3RpbmdTcGFjZSgpKSB7CisgICAgICAg
IG1fcGVuZGluZ1B1dFJlcXVlc3RzLmFwcGVuZCh7IFdURk1vdmUocmVjb3JkcyksIFdURk1vdmUo
Y2FsbGJhY2spIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgV2ViQ29yZTo6Q2Fj
aGVRdWVyeU9wdGlvbnMgb3B0aW9uczsKICAgICB1aW50NjRfdCBzcGFjZVJlcXVpcmVkID0gMDsK
IApAQCAtNDIzLDE5ICs0MjgsMzMgQEAgdm9pZCBDYWNoZTo6cHV0KFZlY3RvcjxSZWNvcmQ+JiYg
cmVjb3JkcywgUmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmIGNhbGxiYWNrKQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCisgICAgaWYgKGNhblJlcXVlc3RNb3JlU3BhY2UgPT0gQ2FuUmVxdWVz
dE1vcmVTcGFjZTo6Tm8pIHsKKyAgICAgICAgY2FsbGJhY2sobWFrZVVuZXhwZWN0ZWQoRE9NQ2Fj
aGVFbmdpbmU6OkVycm9yOjpRdW90YUV4Y2VlZGVkKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKICAgICBtX2NhY2hlcy5yZXF1ZXN0U3BhY2Uoc3BhY2VSZXF1aXJlZCwgW2NhY2hlcyA9IG1h
a2VSZWYobV9jYWNoZXMpLCBpZGVudGlmaWVyID0gbV9pZGVudGlmaWVyLCByZWNvcmRzID0gV1RG
TW92ZShyZWNvcmRzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oT3B0aW9uYWw8RE9N
Q2FjaGVFbmdpbmU6OkVycm9yPiYmIGVycm9yKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGVycm9y
KSB7CiAgICAgICAgICAgICBjYWxsYmFjayhtYWtlVW5leHBlY3RlZChlcnJvci52YWx1ZSgpKSk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgYXV0byogY2FjaGUgPSBj
YWNoZXMtPmZpbmQoaWRlbnRpZmllcik7Ci0gICAgICAgIGlmICghY2FjaGUpCisgICAgICAgIGlm
ICghY2FjaGUpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKG1ha2VVbmV4cGVjdGVkKERPTUNhY2hl
RW5naW5lOjpFcnJvcjo6SW50ZXJuYWwpKTsKICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQogCi0gICAgICAgIGNhY2hlLT5zdG9yZVJlY29yZHMoV1RGTW92ZShyZWNvcmRzKSwgV1RGTW92
ZShjYWxsYmFjaykpOworICAgICAgICBjYWNoZS0+cHV0KFdURk1vdmUocmVjb3JkcyksIFdURk1v
dmUoY2FsbGJhY2spLCBDYW5SZXF1ZXN0TW9yZVNwYWNlOjpObyk7CiAgICAgfSk7CiB9CiAKK3Zv
aWQgQ2FjaGU6OnJldHJ5UHV0dGluZ1BlbmRpbmdSZWNvcmRzKCkKK3sKKyAgICBhdXRvIHBlbmRp
bmdQdXRSZXF1ZXN0cyA9IFdURk1vdmUobV9wZW5kaW5nUHV0UmVxdWVzdHMpOworICAgIGZvciAo
YXV0byYgcmVxdWVzdCA6IHBlbmRpbmdQdXRSZXF1ZXN0cykKKyAgICAgICAgcHV0KFdURk1vdmUo
cmVxdWVzdC5yZWNvcmRzKSwgV1RGTW92ZShyZXF1ZXN0LmNhbGxiYWNrKSk7Cit9CisKIHZvaWQg
Q2FjaGU6OnJlbW92ZShXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBXZWJDb3Jl
OjpDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsIFJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2sm
JiBjYWxsYmFjaykKIHsKICAgICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6T3Blbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVu
Z2luZUNhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3Rv
cmFnZUVuZ2luZUNhY2hlLmgKaW5kZXggY2YxYjNiNjEzZTE1MWZkMGI2MjcwOTkyYjI2YWU5MTQ1
NTIxOWMyOS4uYWU4NDM2Zjk1MjkxNGUzYTM1NjIwMzQ1YzdiYzZjNTNlNDc0N2ZhYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdp
bmVDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVT
dG9yYWdlRW5naW5lQ2FjaGUuaApAQCAtNjksNyArNjksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZXRyaWV2ZVJlY29yZHMoY29uc3QgVVJMJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29y
ZHNDYWxsYmFjayYmKTsKICAgICBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q2FjaGVJbmZvIGlu
Zm8oKSBjb25zdCB7IHJldHVybiB7IG1faWRlbnRpZmllciwgbV9uYW1lIH07IH0KIAotICAgIHZv
aWQgcHV0KFZlY3RvcjxXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkPiYmLCBXZWJDb3Jl
OjpET01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKTsKKyAgICBlbnVt
IGNsYXNzIENhblJlcXVlc3RNb3JlU3BhY2UgeyBObywgWWVzIH07CisgICAgdm9pZCBwdXQoVmVj
dG9yPFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmQ+JiYsIFdlYkNvcmU6OkRPTUNhY2hl
RW5naW5lOjpSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYsIENhblJlcXVlc3RNb3JlU3BhY2Ug
PSBDYW5SZXF1ZXN0TW9yZVNwYWNlOjpZZXMpOwogICAgIHZvaWQgcmVtb3ZlKFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpDYWNoZVF1ZXJ5T3B0aW9ucyYmLCBXZWJDb3JlOjpE
T01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKTsKIAogICAgIFZlY3Rv
cjxOZXR3b3JrQ2FjaGU6OktleT4ga2V5cygpIGNvbnN0OwpAQCAtNzcsNiArNzgsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBkaXNwb3NlKCk7CiAgICAgdm9pZCBjbGVhck1lbW9yeVJlcHJlc2VudGF0
aW9uKCk7CiAKKyAgICB2b2lkIHJldHJ5UHV0dGluZ1BlbmRpbmdSZWNvcmRzKCk7CisKICAgICBz
dGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4gZGVjb2RlKGNv
bnN0IE5ldHdvcmtDYWNoZTo6U3RvcmFnZTo6UmVjb3JkJik7CiAgICAgc3RhdGljIE5ldHdvcmtD
YWNoZTo6U3RvcmFnZTo6UmVjb3JkIGVuY29kZShjb25zdCBSZWNvcmRJbmZvcm1hdGlvbiYsIGNv
bnN0IFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmQmKTsKIApAQCAtMTIwLDYgKzEyMywx
MiBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8UmVjb3JkSW5mb3JtYXRp
b24+PiBtX3JlY29yZHM7CiAgICAgdWludDY0X3QgbV9uZXh0UmVjb3JkSWRlbnRpZmllciB7IDAg
fTsKICAgICBWZWN0b3I8V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OkNvbXBsZXRpb25DYWxsYmFj
az4gbV9wZW5kaW5nT3BlbmluZ0NhbGxiYWNrczsKKworICAgIHN0cnVjdCBQZW5kaW5nUHV0UmVx
dWVzdCB7CisgICAgICAgIFZlY3RvcjxXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkPiBy
ZWNvcmRzOworICAgICAgICBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmll
cnNDYWxsYmFjayBjYWxsYmFjazsKKyAgICB9OworICAgIFZlY3RvcjxQZW5kaW5nUHV0UmVxdWVz
dD4gbV9wZW5kaW5nUHV0UmVxdWVzdHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBDYWNoZVN0b3Jh
Z2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVT
dG9yYWdlRW5naW5lQ2FjaGVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmNwcAppbmRleCBmYWE4OGM5NjNjMzZmNzYyMjI4
N2Q3OGI1N2VlYjEzNDU5YWRlNWU1Li4xOTEzNDcwY2RkMjIwY2UzYmU5NzVkZjk5MDBlZjM1MGQw
NzE3NjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0Nh
Y2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwCkBAIC00ODEsOSArNDgxLDM1
IEBAIHZvaWQgQ2FjaGVzOjpyZWFkUmVjb3Jkc0xpc3QoQ2FjaGUmIGNhY2hlLCBOZXR3b3JrQ2Fj
aGU6OlN0b3JhZ2U6OlRyYXZlcnNlSGFuZGxlCiAKIHZvaWQgQ2FjaGVzOjpyZXF1ZXN0U3BhY2Uo
dWludDY0X3Qgc3BhY2VSZXF1aXJlZCwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OkNvbXBsZXRp
b25DYWxsYmFjayYmIGNhbGxiYWNrKQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgcXVvdGEg
aW5jcmVhc2UgcmVxdWVzdC4KKyAgICBBU1NFUlQoIW1faXNSZXF1ZXN0aW5nU3BhY2UpOworCiAg
ICAgQVNTRVJUKG1fcXVvdGEgPCBtX3NpemUgKyBzcGFjZVJlcXVpcmVkKTsKLSAgICBjYWxsYmFj
ayhFcnJvcjo6UXVvdGFFeGNlZWRlZCk7CisKKyAgICBpZiAoIW1fZW5naW5lKSB7CisgICAgICAg
IGNhbGxiYWNrKEVycm9yOjpRdW90YUV4Y2VlZGVkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIG1faXNSZXF1ZXN0aW5nU3BhY2UgPSB0cnVlOworICAgIG1fZW5naW5lLT5yZXF1ZXN0
U3BhY2UobV9vcmlnaW4sIG1fcXVvdGEsIG1fc2l6ZSwgc3BhY2VSZXF1aXJlZCwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0gKE9wdGlvbmFsPHVpbnQ2NF90PiBuZXdRdW90YSkgeworICAgICAgICBtX2lzUmVxdWVzdGlu
Z1NwYWNlID0gZmFsc2U7CisgICAgICAgIGlmICghbmV3UXVvdGEpIHsKKyAgICAgICAgICAgIGNh
bGxiYWNrKEVycm9yOjpRdW90YUV4Y2VlZGVkKTsKKyAgICAgICAgICAgIG5vdGlmeUNhY2hlc09m
UmVxdWVzdFNwYWNlRW5kKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgbV9xdW90YSA9ICpuZXdRdW90YTsKKyAgICAgICAgY2FsbGJhY2soeyB9KTsKKyAgICAgICAg
bm90aWZ5Q2FjaGVzT2ZSZXF1ZXN0U3BhY2VFbmQoKTsKKyAgICB9KTsKK30KKwordm9pZCBDYWNo
ZXM6Om5vdGlmeUNhY2hlc09mUmVxdWVzdFNwYWNlRW5kKCkKK3sKKyAgICBmb3IgKGF1dG8mIGNh
Y2hlIDogbV9jYWNoZXMpCisgICAgICAgIGNhY2hlLnJldHJ5UHV0dGluZ1BlbmRpbmdSZWNvcmRz
KCk7CisgICAgZm9yIChhdXRvJiBjYWNoZSA6IG1fcmVtb3ZlZENhY2hlcykKKyAgICAgICAgY2Fj
aGUucmV0cnlQdXR0aW5nUGVuZGluZ1JlY29yZHMoKTsKIH0KIAogdm9pZCBDYWNoZXM6OndyaXRl
UmVjb3JkKGNvbnN0IENhY2hlJiBjYWNoZSwgY29uc3QgUmVjb3JkSW5mb3JtYXRpb24mIHJlY29y
ZEluZm9ybWF0aW9uLCBSZWNvcmQmJiByZWNvcmQsIHVpbnQ2NF90IHByZXZpb3VzUmVjb3JkU2l6
ZSwgQ29tcGxldGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMu
aAppbmRleCBmOGU3MmJmZWU3MjkxNWYwMzIzYTYwMzUyYTQ4MmRiNDZlODUyNTQ0Li40ODk2MjJj
ZWVkMTNiYzVlODNiNWI5MWJlODI0YWIwODhlYjYxNGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2Fj
aGVzLmgKQEAgLTYxLDYgKzYxLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVhZFJlY29yZChjb25z
dCBOZXR3b3JrQ2FjaGU6OktleSYsIFdURjo6RnVuY3Rpb248dm9pZChFeHBlY3RlZDxXZWJDb3Jl
OjpET01DYWNoZUVuZ2luZTo6UmVjb3JkLCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6RXJyb3I+
JiYpPiYmKTsKIAogICAgIGJvb2wgaGFzRW5vdWdoU3BhY2UodWludDY0X3Qgc3BhY2VSZXF1aXJl
ZCkgY29uc3QgeyByZXR1cm4gbV9xdW90YSA+PSBtX3NpemUgKyBzcGFjZVJlcXVpcmVkOyB9Cisg
ICAgYm9vbCBpc1JlcXVlc3RpbmdTcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNSZXF1ZXN0aW5n
U3BhY2U7IH0KICAgICB2b2lkIHJlcXVlc3RTcGFjZSh1aW50NjRfdCBzcGFjZVJlcXVpcmVkLCBX
ZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q29tcGxldGlvbkNhbGxiYWNrJiYpOwogICAgIHZvaWQg
d3JpdGVSZWNvcmQoY29uc3QgQ2FjaGUmLCBjb25zdCBSZWNvcmRJbmZvcm1hdGlvbiYsIFdlYkNv
cmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmQmJiwgdWludDY0X3QgcHJldmlvdXNSZWNvcmRTaXpl
LCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q29tcGxldGlvbkNhbGxiYWNrJiYpOwogCkBAIC05
Myw3ICs5NCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgbWFrZURpcnR5KCkgeyArK21fdXBkYXRl
Q291bnRlcjsgfQogICAgIGJvb2wgaXNEaXJ0eSh1aW50NjRfdCB1cGRhdGVDb3VudGVyKSBjb25z
dDsKIAorICAgIHZvaWQgbm90aWZ5Q2FjaGVzT2ZSZXF1ZXN0U3BhY2VFbmQoKTsKKwogICAgIGJv
b2wgbV9pc0luaXRpYWxpemVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNSZXF1ZXN0aW5nU3Bh
Y2UgeyBmYWxzZSB9OwogICAgIEVuZ2luZSogbV9lbmdpbmUgeyBudWxscHRyIH07CiAgICAgdWlu
dDY0X3QgbV91cGRhdGVDb3VudGVyIHsgMCB9OwogICAgIFdlYkNvcmU6OkNsaWVudE9yaWdpbiBt
X29yaWdpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQ0ZDMyMDQ5ZjM5NjZmZWQ4NGM0NTUwMWIyM2E1
ZjE0MTMzNzMwYjMuLjYwMGMwYmMzOWFlYzM5MjY5YThkZmVkOWY1YWVjZTkwZTM0MjI0YjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcApAQCAtNzM0LDYgKzczNCwxOSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzc0ZvckV4
cAogfQogI2VuZGlmCiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdENhY2hlU3Rv
cmFnZVNwYWNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJiBvcmlnaW4sIHVpbnQ2NF90IHF1b3RhLCB1aW50NjRfdCBjdXJyZW50U2l6ZSwgdWlu
dDY0X3Qgc3BhY2VSZXF1aXJlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDx1aW50
NjRfdD4gcXVvdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8qIHN0b3JlID0g
d2Vic2l0ZURhdGFTdG9yZUZyb21TZXNzaW9uSUQoc2Vzc2lvbklEKTsKKworICAgIGlmICghc3Rv
cmUpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIC8vIEZJWE1FOiBBc2sgV2Vic2l0ZURhdGFTdG9yZSBhYm91dCB1cGRhdGlu
ZyB0aGUgcXVvdGEgZm9yIHRoaXMgb3JpZ2luLgorICAgIGNvbXBsZXRpb25IYW5kbGVyKHF1b3Rh
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBNRVNTQUdFX0NIRUNLCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oCmluZGV4IGUzNDhhODViOTU0ZGUyOGZhNTExYzM4ZjEyZGE1MDZjODg4MTk3ODYuLmJm
YThiOGM1N2EwYmYxNmNmZTA0YjM3Mzg4NDUzYmUwZWQ5NzhjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0x
NjYsNiArMTY2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGVzdGFibGlzaFdvcmtlckNvbnRleHRD
b25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzc0ZvckV4cGxpY2l0U2Vzc2lvbihXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiwgUEFMOjpTZXNzaW9uSUQpOwogI2VuZGlmCiAKKyAgICB2b2lkIHJl
cXVlc3RDYWNoZVN0b3JhZ2VTcGFjZShQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6Q2xp
ZW50T3JpZ2luJiwgdWludDY0X3QgcXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRTaXplLCB1aW50NjRf
dCBzcGFjZVJlcXVpcmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPHVpbnQ2NF90
PiBxdW90YSk+JiYpOworCiAgICAgV2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdG9yZUZy
b21TZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpD
bGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCAyYWFlM2ViNGE4NzJhZmI1
MDcxMzdhMzEzY2Y3OGNhYTY4YWMxYzMwLi45NTkyNjdjYzRmYmMyODE1ZWVjMDZkN2FkNWI3MjE2
ZGRiNGNlODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC02Myw0ICs2Myw2
IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAg
IEVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhzdHJ1Y3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbikKICAgICBFc3RhYmxpc2hXb3JrZXJD
b250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3NGb3JFeHBsaWNpdFNlc3Npb24oc3RydWN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4sIFBBTDo6U2Vzc2lvbklEIGV4cGxp
Y2l0U2Vzc2lvbikKICNlbmRpZgorCisgICAgUmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4s
IHVpbnQ2NF90IHF1b3RhLCB1aW50NjRfdCBjdXJyZW50U2l6ZSwgdWludDY0X3Qgc3BhY2VSZXF1
aXJlZCkgLT4gKE9wdGlvbmFsPHVpbnQ2NF90PiBuZXdRdW90YSkgQXN5bmMKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359293</attachid>
            <date>2019-01-16 12:43:14 -0800</date>
            <delta_ts>2019-01-17 10:04:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193323-20190116124313.patch</filename>
            <type>text/plain</type>
            <size>33763</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5OTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDljOTYyYzE5N2Q3MjQ5NGE5
NmY3ODIyMjFjMWRhZWJkNDNiMDM0YmMuLmY4MTA5YzI0Mzc1MzQ4ZjFiNmI5NmM1YjU0MmMxYjEx
NmQ5YzI3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTktMDEtMTYgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgdG8gcmVx
dWVzdCBmb3IgY2FjaGUgc3RvcmFnZSBxdW90YSBpbmNyZWFzZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMzIzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgZGVsZWdhdGUgb24gdGhlIFdlYlNp
dGVEYXRhU3RvcmUgZm9yIFdlYktpdCB0byBhc2sgZm9yIHF1b3RhIHVwZGF0ZS4KKyAgICAgICAg
VGhlIGN1cnJlbnQgU1BJIGlzIGN1cnJlbnRseSBDYWNoZVN0b3JhZ2Ugc3BlY2lmaWMgYnV0IGZ1
dHVyZSB3b3JrIHNob3VsZAorICAgICAgICBtYWtlIGl0IHNvIHRoYXQgb3RoZXIgc3RvcmFnZSBs
aWtlIElEQiB1c2UgdGhlIHNhbWUgbWVjaGFuaXNtLgorICAgICAgICBCeSBkZWZhdWx0LCBxdW90
YSByZW1haW5zIHVuY2hhbmdlZCBpZiBkZWxlZ2F0ZSBpcyBub3QgaW1wbGVtZW50ZWQuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAg
ICAgICAgKFdlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXI6OldlYnNpdGVEYXRhU3RvcmVRdW90
YU1hbmFnZXIpOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX3F1b3RhRGVsZWdhdGVd
KToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIHNldF9xdW90YURlbGVnYXRlOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdENhY2hlU3Rv
cmFnZVNwYWNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvRGF0YVN0b3JlUXVv
dGFNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpEYXRhU3RvcmVRdW90YU1hbmFn
ZXI6OnJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0
YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
OjpxdW90YU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpzZXRR
dW90YU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlUXVvdGFNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0
YVN0b3JlUXVvdGFNYW5hZ2VyOjp+V2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdlcik6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXI6OnJlcXVlc3RDYWNoZVN0
b3JhZ2VTcGFjZSk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisKIDIwMTktMDEtMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFBpcGUgY2FjaGUgcXVvdGEgcmVxdWVzdCBmcm9tIE5ldHdvcmsgUHJvY2VzcyB0byBVSVBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1N0
b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJlMWYw
Y2Y0MmZhNzg2NmY0OGRhN2Q3ODEwMjcxNjQxZjIxYWM0NwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJp
dmF0ZS5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tG
b3VuZGF0aW9uLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0IDxGb3VuZGF0aW9u
L0ZvdW5kYXRpb24uaD4KKworQHByb3RvY29sIFdLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRl
IDxOU09iamVjdD4KKworQG9wdGlvbmFsCisKKy0gKHZvaWQpX3JlcXVlc3RDYWNoZVN0b3JhZ2VT
cGFjZTooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVPcmlnaW46KE5TVVJMICopZnJhbWVVUkwg
cXVvdGE6KE5TVUludGVnZXIpcXVvdGEgY3VycmVudFNpemU6KE5TVUludGVnZXIpY3VycmVudFNp
emUgc3BhY2VSZXF1aXJlZDooTlNVSW50ZWdlcilzcGFjZVJlcXVpcmVkIGRlY2lzaW9uSGFuZGxl
cjoodm9pZCAoXikodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKSlkZWNpc2lvbkhhbmRsZXI7CisK
K0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQppbmRleCAyZDE2MGVhM2IxMjg4ZmU4NGRjMWQ4
MjkzYzBhMzI4MzgxZmViMjZhLi5iMDg4MDBkNDNlNGVmNjE4NmY2ZTRmMTU0NjM0MWQxOWMxNjE0
NzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTI5LDggKzI5LDEwIEBACiAjaWYgV0tfQVBJX0VOQUJM
RUQKIAogI2ltcG9ydCAiQVBJU3RyaW5nLmgiCisjaW1wb3J0ICJDb21wbGV0aW9uSGFuZGxlckNh
bGxDaGVja2VyLmgiCiAjaW1wb3J0ICJXS0hUVFBDb29raWVTdG9yZUludGVybmFsLmgiCiAjaW1w
b3J0ICJXS05TQXJyYXkuaCIKKyNpbXBvcnQgIldLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRl
LmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJzaXRlRGF0
YVJlY29yZEludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKQEAgLTQyLDYgKzQ0
LDM5IEBACiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KICNpbXBvcnQgPHd0Zi9VUkwuaD4KIAor
Y2xhc3MgV2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdlciA6IHB1YmxpYyBXZWJLaXQ6OldlYnNp
dGVEYXRhU3RvcmVRdW90YU1hbmFnZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IFdlYnNpdGVE
YXRhU3RvcmVRdW90YU1hbmFnZXIoaWQgPFdLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRlPiBk
ZWxlZ2F0ZSkKKyAgICAgICAgOiBtX3F1b3RhRGVsZWdhdGUoZGVsZWdhdGUpCisgICAgeworICAg
ICAgICBtX2hhc1JlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZVNlbGVjdG9yID0gW21fcXVvdGFEZWxl
Z2F0ZS5nZXQoKSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9yZXF1ZXN0Q2FjaGVTdG9y
YWdlU3BhY2U6IGZyYW1lT3JpZ2luOiBxdW90YTogY3VycmVudFNpemU6IHNwYWNlUmVxdWlyZWQ6
IGRlY2lzaW9uSGFuZGxlcjopXTsKKyAgICB9Citwcml2YXRlOgorICAgIHZvaWQgcmVxdWVzdENh
Y2hlU3RvcmFnZVNwYWNlKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3Jp
Z2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lT3JpZ2luLCB1aW50
NjRfdCBxdW90YSwgdWludDY0X3QgY3VycmVudFNpemUsIHVpbnQ2NF90IHNwYWNlUmVxdWlyZWQs
IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDx1aW50NjRfdD4pPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKSBmaW5hbAorICAgIHsKKyAgICAgICAgaWYgKCFtX2hhc1JlcXVlc3RDYWNo
ZVN0b3JhZ2VTcGFjZVNlbGVjdG9yKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7
IH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYXV0byBjaGVj
a2VyID0gV2ViS2l0OjpDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUobV9xdW90
YURlbGVnYXRlLmdldCgpLCBAc2VsZWN0b3IoX3JlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZTogZnJh
bWVPcmlnaW46IHF1b3RhOiBjdXJyZW50U2l6ZTogc3BhY2VSZXF1aXJlZDogZGVjaXNpb25IYW5k
bGVyOikpOworICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgY2hlY2tlciA9IFdU
Rk1vdmUoY2hlY2tlcildKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkgbXV0YWJsZSB7CisgICAg
ICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBs
ZXRpb25IYW5kbGVyKCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihxdW90YSk7Cisg
ICAgICAgIH0pOworCisgICAgICAgIFVSTCBtYWluRnJhbWVVUkwoVVJMKCksIHRvcE9yaWdpbi50
b1N0cmluZygpKTsKKyAgICAgICAgVVJMIGZyYW1lVVJMKFVSTCgpLCBmcmFtZU9yaWdpbi50b1N0
cmluZygpKTsKKworICAgICAgICBbbV9xdW90YURlbGVnYXRlLmdldCgpIF9yZXF1ZXN0Q2FjaGVT
dG9yYWdlU3BhY2U6bWFpbkZyYW1lVVJMIGZyYW1lT3JpZ2luOmZyYW1lVVJMIHF1b3RhOnF1b3Rh
IGN1cnJlbnRTaXplOmN1cnJlbnRTaXplIHNwYWNlUmVxdWlyZWQ6c3BhY2VSZXF1aXJlZCBkZWNp
c2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKKyAgICB9CisKKyAgICBSZXRhaW5Q
dHI8aWQgPFdLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRlPiA+IG1fcXVvdGFEZWxlZ2F0ZTsK
KyAgICBib29sIG1faGFzUmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlU2VsZWN0b3IgeyBmYWxzZSB9
OworfTsKKwogQGltcGxlbWVudGF0aW9uIFdLV2Vic2l0ZURhdGFTdG9yZQogCiArIChXS1dlYnNp
dGVEYXRhU3RvcmUgKilkZWZhdWx0RGF0YVN0b3JlCkBAIC0zODMsNiArNDE4LDE3IEBAIC0gKGJv
b2wpX2hhc1JlZ2lzdGVyZWRTZXJ2aWNlV29ya2VyCiAgICAgcmV0dXJuIFdlYktpdDo6U2Vydmlj
ZVdvcmtlclByb2Nlc3NQcm94eTo6aGFzUmVnaXN0ZXJlZFNlcnZpY2VXb3JrZXJzKF93ZWJzaXRl
RGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRp
cmVjdG9yeSgpKTsKIH0KIAorLSAoaWQgPFdLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRlPilf
cXVvdGFEZWxlZ2F0ZQoreworICAgIHJldHVybiBfcXVvdGFEZWxlZ2F0ZS5nZXQoKTsKK30KKwor
LSAodm9pZClzZXRfcXVvdGFEZWxlZ2F0ZTooaWQgPFdLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2
YXRlPilxdW90YURlbGVnYXRlCit7CisgICAgX3F1b3RhRGVsZWdhdGUgPSBxdW90YURlbGVnYXRl
OworICAgIF93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2V0UXVvdGFNYW5h
Z2VyKG1ha2VVbmlxdWVSZWY8V2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdlcj4ocXVvdGFEZWxl
Z2F0ZSkpOworfQorCiBAZW5kCiAKICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZUlu
dGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0
YVN0b3JlSW50ZXJuYWwuaAppbmRleCBkODYxODc1MjczYmE3ZGY2N2UyODY2ZDE0NTViOTZiN2Yz
ZGM0N2Y2Li5lMzFmM2I2N2ZiMzg5MGI5MmUzY2I5MmE1MDZhMWVlOTIxMTg0NDNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVN0b3JlSW50ZXJuYWwuaApAQCAtNDEsNiArNDEsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBXcmFwcGVyVHJhaXRzPEFQSTo6V2Vic2l0ZURhdGFTdG9yZT4gewogQGludGVyZmFjZSBXS1dl
YnNpdGVEYXRhU3RvcmUgKCkgPFdLT2JqZWN0PiB7CiBAcGFja2FnZQogICAgIEFQSTo6T2JqZWN0
U3RvcmFnZTxBUEk6OldlYnNpdGVEYXRhU3RvcmU+IF93ZWJzaXRlRGF0YVN0b3JlOworICAgIFJl
dGFpblB0cjxpZCA8V0tTdG9yYWdlUXVvdGFEZWxlZ2F0ZVByaXZhdGU+ID4gX3F1b3RhRGVsZWdh
dGU7CiB9CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCmluZGV4IDc0YThhMDJmMmYx
ZDllZTk1Yzk3YWY5YTk2ZTNjNjAxMzE5MjAxNjEuLmFkMDRjZTg4YTliNDQ1YTIwNDgxNzhiZDk1
MWU3ZGEwYTJhNjE2NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaApAQCAtMzIsNiArMzIs
OCBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogQGNsYXNzIF9XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uOwogQGNsYXNzIFdLV2ViVmlldzsKIAorQHByb3RvY29sIFdLU3RvcmFnZVF1
b3RhRGVsZWdhdGVQcml2YXRlOworCiB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dL
V2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucykgewogICAgIF9XS1dlYnNpdGVEYXRhU3RvcmVG
ZXRjaE9wdGlvbkNvbXB1dGVTaXplcyA9IDEgPDwgMCwKIH0gV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTIpLCBpb3MoMTAuMCkpOwpAQCAtNjIsNiArNjQsOSBAQCB0eXBlZGVmIE5TX09QVElP
TlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucykgewogKyAodm9p
ZClfYWxsb3dXZWJzaXRlRGF0YVJlY29yZHNGb3JBbGxPcmlnaW5zIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOwogLSAoYm9vbClfaGFzUmVnaXN0ZXJlZFNlcnZp
Y2VXb3JrZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwogCisv
KiEgQGFic3RyYWN0IFRoZSBzdG9yYWdlIHF1b3RhIGRlbGVnYXRlLiAqLworQHByb3BlcnR5IChu
dWxsYWJsZSwgbm9uYXRvbWljLCB3ZWFrKSBpZCA8V0tTdG9yYWdlUXVvdGFEZWxlZ2F0ZVByaXZh
dGU+IF9xdW90YURlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworCiBAZW5kCiAKIE5TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAKaW5kZXggNjAwYzBiYzM5YWVjMzkyNjlhOGRmZWQ5ZjVhZWNlOTBlMzQyMjRiOS4uNTY4
ZjNhOWE4ZDdkMDY4Nzc3YmFiNzAzOWQ3MTkyOTIyYjM0ZTZmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBA
IC00Myw2ICs0Myw4IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNsdWRlICJX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgi
CisjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdlci5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvQ2xpZW50T3JpZ2luLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+
CiAKICNpZiBFTkFCTEUoU0VDX0lURU1fU0hJTSkKQEAgLTc0Myw4ICs3NDUsNyBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gRklYTUU6
IEFzayBXZWJzaXRlRGF0YVN0b3JlIGFib3V0IHVwZGF0aW5nIHRoZSBxdW90YSBmb3IgdGhpcyBv
cmlnaW4uCi0gICAgY29tcGxldGlvbkhhbmRsZXIocXVvdGEpOworICAgIHN0b3JlLT5xdW90YU1h
bmFnZXIoKS5yZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2Uob3JpZ2luLnRvcE9yaWdpbiwgb3JpZ2lu
LmNsaWVudE9yaWdpbiwgcXVvdGEsIGN1cnJlbnRTaXplLCBzcGFjZVJlcXVpcmVkLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvRGF0YVN0b3JlUXVvdGFN
YW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9EYXRhU3RvcmVR
dW90YU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MjkwMDM5N2UzZDMxOGI3ZGQ3MTU4MGIyZTZlNzE3
OTNjMmQ4YzNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvRGF0YVN0b3JlUXVvdGFNYW5hZ2VyLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luRGF0YTsKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIERhdGFTdG9yZVF1b3RhTWFuYWdlciB7CitwdWJs
aWM6Citwcml2YXRlOgorICAgIGNsYXNzIFdlYnNpdGVEYXQKKyAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdENhY2hlU3RvcmFnZVNwYWNlKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
dG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lT3JpZ2lu
LCB1aW50NjRfdCBxdW90YSwgdWludDY0X3QgY3VycmVudFNpemUsIHVpbnQ2NF90IHNwYWNlUmVx
dWlyZWQsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDx1aW50NjRfdD4pPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQorICAgIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9
KTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5k
ZXggMGFhYmJlNDhkYjEzNWQ4NmJmMjg0YjA1NTQyMTQzYTE3YmQ4ZTlhMC4uYmEyMTYzYWE2Mzgz
N2FmNzBiNjI2ZTgxNWE0M2FjZGI1YWEwMjQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTQxLDYg
KzQxLDcgQEAKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRGF0YWJhc2VUcmFja2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVt
Lmg+CkBAIC05Nyw2ICs5OCw3IEBAIFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUo
UmVmPFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiYmIGNvbmZpZ3VyCiAjaWYgRU5BQkxF
KFdFQl9BVVRITikKICAgICAsIG1fYXV0aGVudGljYXRvck1hbmFnZXIobWFrZVVuaXF1ZVJlZjxB
dXRoZW50aWNhdG9yTWFuYWdlcj4oKSkKICNlbmRpZgorICAgICwgbV9xdW90YU1hbmFnZXIobWFr
ZVVuaXF1ZVJlZjxXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyPigpKQogewogICAgIFdURjo6
c2V0UHJvY2Vzc1ByaXZpbGVnZXMoYWxsUHJpdmlsZWdlcygpKTsKICAgICBtYXliZVJlZ2lzdGVy
V2l0aFNlc3Npb25JRE1hcCgpOwpAQCAtMTE0LDYgKzExNiw3IEBAIFdlYnNpdGVEYXRhU3RvcmU6
OldlYnNpdGVEYXRhU3RvcmUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogI2lmIEVOQUJMRShX
RUJfQVVUSE4pCiAgICAgLCBtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyKG1ha2VVbmlxdWVSZWY8QXV0
aGVudGljYXRvck1hbmFnZXI+KCkpCiAjZW5kaWYKKyAgICAsIG1fcXVvdGFNYW5hZ2VyKG1ha2VV
bmlxdWVSZWY8V2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdlcj4oKSkKIHsKICAgICBtYXliZVJl
Z2lzdGVyV2l0aFNlc3Npb25JRE1hcCgpOwogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oCmluZGV4IDkxMmQ4ZTQ3NWNkNmEyMTc5OTlhMDkwMTc4ZWI2NThmYzIxNzljNjkuLmI0
YWU1NWNjZmEzZmJhZmNjZDhmZGMxODY4NjFhNThhOGU3OTQ1MWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAg
LTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAi
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YVN0
b3JlUXVvdGFNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJp
dHlPcmlnaW5IYXNoLmg+CkBAIC01OCw2ICs1OSw3IEBAIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOworY2xhc3Mg
V2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdlcjsKIGNsYXNzIFNlY0tleVByb3h5U3RvcmU7CiBj
bGFzcyBTdG9yYWdlTWFuYWdlcjsKIGNsYXNzIERldmljZUlkSGFzaFNhbHRTdG9yYWdlOwpAQCAt
MTg4LDYgKzE5MCw5IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFdlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKCkgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmdldCgp
OyB9CiAKKyAgICBXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyJiBxdW90YU1hbmFnZXIoKSB7
IHJldHVybiBtX3F1b3RhTWFuYWdlci5nZXQoKTsgfQorICAgIHZvaWQgc2V0UXVvdGFNYW5hZ2Vy
KFVuaXF1ZVJlZjxXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyPiYmIG1hbmFnZXIpIHsgbV9x
dW90YU1hbmFnZXIgPSBXVEZNb3ZlKG1hbmFnZXIpOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgV2Vic2l0ZURhdGFTdG9yZShQQUw6OlNlc3Npb25JRCk7CiAgICAgZXhwbGljaXQgV2Vic2l0
ZURhdGFTdG9yZShSZWY8V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+JiYsIFBBTDo6U2Vz
c2lvbklEKTsKQEAgLTI1Niw2ICsyNjEsOCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJfQVVU
SE4pCiAgICAgVW5pcXVlUmVmPEF1dGhlbnRpY2F0b3JNYW5hZ2VyPiBtX2F1dGhlbnRpY2F0b3JN
YW5hZ2VyOwogI2VuZGlmCisKKyAgICBVbmlxdWVSZWY8V2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFu
YWdlcj4gbV9xdW90YU1hbmFnZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlUXVvdGFN
YW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjA0YWI0YTdjZjYyY2JmOGJkODI0ZWE1ZDBiNmY1YmJkZjE4
ZWU0YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIuaApAQCAtMCwwICsxLDQ2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKK30K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFn
ZXIgeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIo
KSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2UoY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVPcmlnaW4sIHVpbnQ2NF90IHF1b3RhLCB1aW50NjRfdCBj
dXJyZW50U2l6ZSwgdWludDY0X3Qgc3BhY2VSZXF1aXJlZCwgV1RGOjpDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPHVpbnQ2NF90Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgewor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworICAgIH0KK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggZGVkYmFkY2NkMzRmMGE0MzRkNmRlMTQ1NGM0NGE5ODkyMmNhMDFjZC4uZTMz
NzRlNzA5NDJhYTU3NjgyZTc5NzdhNWFlMjUyYjU1ZTI1YjEzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NTksNiArODU5LDcgQEAK
IAkJNDExMkVEREUyMEU0MDdBNTAwQkVBOTJBIC8qIGNvbS5jZmNhLm5wU2VjRWRpdEN0bC5NQUMu
Qk9DLnBsdWdpbi5zYiBpbiBDb3B5IFBsdWctaW4gU2FuZGJveCBQcm9maWxlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEyRUREMzIwRTQwNzc0MDBCRUE5MkEgLyogY29t
LmNmY2EubnBTZWNFZGl0Q3RsLk1BQy5CT0MucGx1Z2luLnNiICovOyB9OwogCQk0MTEyRURERjIw
RTQwN0E1MDBCRUE5MkEgLyogY29tLmNtYmNoaW5hLkNNQlNlY3VyaXR5LnNiIGluIENvcHkgUGx1
Zy1pbiBTYW5kYm94IFByb2ZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxMTJFREQ1MjBFNDA3NzQwMEJFQTkyQSAvKiBjb20uY21iY2hpbmEuQ01CU2VjdXJpdHkuc2Ig
Ki87IH07CiAJCTQxMTJFREUwMjBFNDA3QTUwMEJFQTkyQSAvKiBjb20uZnRzYWZlLk5QQVBJLUNv
cmUtU2FmZS1Tb2Z0S2V5YmFvcmQucGx1Z2luLnJmYzEwMzRpZGVudGlmaWVyLnNiIGluIENvcHkg
UGx1Zy1pbiBTYW5kYm94IFByb2ZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxMTJFREQyMjBFNDA3NzMwMEJFQTkyQSAvKiBjb20uZnRzYWZlLk5QQVBJLUNvcmUtU2Fm
ZS1Tb2Z0S2V5YmFvcmQucGx1Z2luLnJmYzEwMzRpZGVudGlmaWVyLnNiICovOyB9OworCQk0MTE4
REMxRjIxRTdCRjVEMDBERTA0QzcgLyogV0tTdG9yYWdlUXVvdGFEZWxlZ2F0ZVByaXZhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMThEQzFEMjFF
NkREMjcwMERFMDRDNyAvKiBXS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMUE4RERCMjBEREQx
QUMwMDYwRDM0RiAvKiBXS01vY2tNZWRpYURldmljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExQThERDkyMEREQjYwNTAwNjBEMzRGIC8qIFdLTW9j
a01lZGlhRGV2aWNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNDExQjIyNjQxRTM3MUJBNjAwNEY3MzYzIC8qIExpYldlYlJUQ05ldHdvcmsuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMUIyMjYyMUUz
NzEyNDQwMDRGNzM2MyAvKiBMaWJXZWJSVENOZXR3b3JrLmggKi87IH07CiAJCTQxMzA3NUFCMURF
ODVGMzMwMDM5RUM2OSAvKiBOZXR3b3JrUlRDU29ja2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTMwNzU5OTFERTg0RkIwMDAzOUVDNjkgLyogTmV0
d29ya1JUQ1NvY2tldC5oICovOyB9OwpAQCAtMjk4Niw2ICsyOTg3LDkgQEAKIAkJNDExMkVERDcy
MEU0MDc3NTAwQkVBOTJBIC8qIGNvbS5hcHBsZS5OUFNhZmVTdWJtaXQuc2IgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gY29tLmFwcGxlLk5QU2FmZVN1Ym1pdC5zYjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDExMkVERDgyMEU0MDc3NTAwQkVBOTJBIC8qIGNvbS5hcHBsZS5OUFNhZmVJ
bnB1dC5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuTlBTYWZlSW5wdXQuc2I7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTJFREQ5MjBFNDA3NzUwMEJFQTkyQSAv
KiBjb20uYXBwbGUuQm9jb21TdWJtaXRDdHJsLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNv
bS5hcHBsZS5Cb2NvbVN1Ym1pdEN0cmwuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxMThEQzFCMjFFNkQxMUEwMERFMDRDNyAvKiBXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVRdW90
YU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDExOERDMUMyMUU2RDM1
QjAwREUwNEM3IC8qIERhdGFTdG9yZVF1b3RhTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEYXRhU3RvcmVRdW90YU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDExOERDMUQyMUU2REQyNzAwREUwNEM3IC8qIFdLU3RvcmFnZVF1b3RhRGVs
ZWdhdGVQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLU3RvcmFn
ZVF1b3RhRGVsZWdhdGVQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
MUE4REQ5MjBEREI2MDUwMDYwRDM0RiAvKiBXS01vY2tNZWRpYURldmljZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS01vY2tNZWRpYURldmljZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTFBOEREQTIwRERCNjA1MDA2MEQzNEYgLyogV0tNb2NrTWVkaWFE
ZXZpY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tNb2NrTWVk
aWFEZXZpY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTFCMjI2MjFFMzcx
MjQ0MDA0RjczNjMgLyogTGliV2ViUlRDTmV0d29yay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBMaWJXZWJSVENOZXR3b3JrLmg7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENOZXR3b3JrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODMxLDYgKzQ4
MzUsOCBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxQTQ4MzJD
MDFBOTY1QTMzMDA4QjRERkUgLyogQ29jb2EgKi8sCisJCQkJNDExOERDMUMyMUU2RDM1QjAwREUw
NEM3IC8qIERhdGFTdG9yZVF1b3RhTWFuYWdlci5oICovLAorCQkJCTQxMThEQzFCMjFFNkQxMUEw
MERFMDRDNyAvKiBXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyLmggKi8sCiAJCQkJMUE0ODMy
RDgxQTlEMUZEMjAwOEI0REZFIC8qIFdlYnNpdGVEYXRhUmVjb3JkLmNwcCAqLywKIAkJCQkxQTQ4
MzJDRjFBOUJEODIxMDA4QjRERkUgLyogV2Vic2l0ZURhdGFSZWNvcmQuaCAqLywKIAkJCQkxQTUz
QzJBNDFBMzI1NjlGMDA0RThDNzAgLyogV2Vic2l0ZURhdGFTdG9yZS5jcHAgKi8sCkBAIC02MTIz
LDYgKzYxMjksNyBAQAogCQkJCTUxQ0QxQzYxMUIzNEI5QzkwMDE0MkNBNSAvKiBXS1NlY3VyaXR5
T3JpZ2luSW50ZXJuYWwuaCAqLywKIAkJCQk5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tT
bmFwc2hvdENvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkg
LyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW0gKi8sCisJCQkJNDExOERDMUQyMUU2REQyNzAw
REUwNEM3IC8qIFdLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRlLmggKi8sCiAJCQkJMUFEODc5
MDkxOEI2QzM4QTAwNkNBRkQ3IC8qIFdLVUlEZWxlZ2F0ZS5oICovLAogCQkJCTM3NDM5MjU3MThC
QzRDNjAwMDFDODY3NSAvKiBXS1VJRGVsZWdhdGVQcml2YXRlLmggKi8sCiAJCQkJNTFEMTI0MkQx
RTZERERENzAwMkIyODIwIC8qIFdLVVJMU2NoZW1lSGFuZGxlci5oICovLApAQCAtOTg4Nyw2ICs5
ODk0LDcgQEAKIAkJCQkxRjc1MDZCNTE4NTkxNjU0MDBFQzBGRjcgLyogV0tXZWJQcm9jZXNzUGx1
Z0luU2NyaXB0V29ybGRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0ODMyQ0MxQTlC
QzQ2NTAwOEI0REZFIC8qIFdLV2Vic2l0ZURhdGFSZWNvcmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBNDgzMkNFMUE5QkM0ODQwMDhCNERGRSAvKiBXS1dlYnNpdGVEYXRhUmVjb3JkSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxMThEQzFGMjFFN0JGNUQwMERFMDRDNyAvKiBXS1N0b3Jh
Z2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBNjU0RDExQjE0
RjcxNDAwQkYxRDNFIC8qIFdLV2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk3NUE4RDJDODE4N0NDRkFCMDBDMzlDOUUgLyogV0tXZWJzaXRlRGF0YVN0b3JlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3NUE4RDJENjE4N0QxQzBFMDBDMzlDOUUgLyogV0tXZWJzaXRl
RGF0YVN0b3JlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGJmN2RiOWU4YjBkYTViYWI5MTI5MTUwODE5
YTVhYWE0NzFiMzkzMmMuLjliMzI1NjI4MzEzMDhmYjk1ZTNlOWFiMzI4MjZkYTlhZTkyYWU3NzYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxOS0wMS0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRkIGEgbmV3IFNQSSB0byByZXF1ZXN0IGZvciBjYWNoZSBzdG9yYWdlIHF1
b3RhIGluY3JlYXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTMzMjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgV2Vic2l0ZURhdGFTdG9yZSBxdW90YSBkZWxlZ2F0ZSB0byBoYW5kbGUg
cXVvdGEgcmVxdWVzdHMuCisgICAgICAgIEJ5IGRlZmF1bHQsIGRvIG5vdCB1cGRhdGUgcXVvdGEu
CisgICAgICAgIFVwZGF0ZSBxdW90YSBpZiB0ZXN0IGNhbGxzIHRoZSBuZXcgdGVzdFJ1bm5lci5h
bGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UgbWV0aG9kLgorCisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAg
ICAgICAoV1RSOjpUZXN0UnVubmVyOjphbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UpOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6YWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlKToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZv
Y2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW06
CisgICAgICAgICgtW0NhY2hlU3RvcmFnZVF1b3RhTWFuYWdlciBpbml0XSk6CisgICAgICAgICgt
W0NhY2hlU3RvcmFnZVF1b3RhTWFuYWdlciBfcmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlOmZyYW1l
T3JpZ2luOnF1b3RhOmN1cnJlbnRTaXplOnNwYWNlUmVxdWlyZWQ6ZGVjaXNpb25IYW5kbGVyOl0p
OgorICAgICAgICAoV1RSOjppbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24pOgorICAgICAg
ICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y29jb2FSZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVz
KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJ
bmNyZWFzZSk6CisKIDIwMTktMDEtMTUgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUu
Y29tPgogCiAgICAgICAgIHdlYmtpdHB5OiBJbXBsZW1lbnQgZGV2aWNlIHR5cGUgc3BlY2lmaWMg
ZXhwZWN0ZWQgcmVzdWx0cyAoUGFydCAxKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXgg
NjdmYzkzZTkxNjIyYmRkMzMzMTg1YzdmNmIyMDhhMzlmZWU0NDUxNi4uZjE1NTUwZjUzMGVkMGYz
ZDUxOTQ3ODAyMjY5NTIwMWU5MDJjYmFiMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBA
IC02Miw2ICs2Miw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICB2b2lkIGNsZWFyRE9N
Q2FjaGUoRE9NU3RyaW5nIG9yaWdpbik7CiAgICAgYm9vbGVhbiBoYXNET01DYWNoZShET01TdHJp
bmcgb3JpZ2luKTsKICAgICB1bnNpZ25lZCBsb25nIGRvbUNhY2hlU2l6ZShET01TdHJpbmcgb3Jp
Z2luKTsKKyAgICB2b2lkIGFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSgpOwogCiAgICAg
Ly8gU3BlY2lhbCBvcHRpb25zLgogICAgIHZvaWQga2VlcFdlYkhpc3RvcnkoKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmlu
ZGV4IGY5N2FlNDdiOGQ1ZmIyZWFkMWJlNGY5NTk3ZTE1NjhmNzZkZjAxNmEuLmQ3YTlkMjQ4Mjlk
ZjhiNzRhZDhiY2Q5MWRkZDk2MDk0YjJjZTU4NTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMjM2Nyw2ICsyMzY3
LDEyIEBAIHVpbnQ2NF90IFRlc3RSdW5uZXI6OmRvbUNhY2hlU2l6ZShKU1N0cmluZ1JlZiBvcmln
aW4pCiAgICAgcmV0dXJuIFdLVUludDY0R2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tVSW50NjRSZWY+
KHJldHVybkRhdGEpKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjphbGxvd0NhY2hlU3RvcmFnZVF1
b3RhSW5jcmVhc2UoKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFt
ZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiQWxsb3dDYWNoZVN0b3Jh
Z2VRdW90YUluY3JlYXNlIikpOworICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJ
bmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBu
dWxscHRyLCBudWxscHRyKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjpnZXRBcHBsaWNhdGlvbk1h
bmlmZXN0VGhlbihKU1ZhbHVlUmVmIGNhbGxiYWNrKQogewogICAgIGNhY2hlVGVzdFJ1bm5lckNh
bGxiYWNrKEdldEFwcGxpY2F0aW9uTWFuaWZlc3RDYWxsYmFja0lELCBjYWxsYmFjayk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
aCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmlu
ZGV4IDIyMTRkNzdiOGMzOTc5YTQ3YzVlOGVkYWE1ZDMyNzEyZDE0MzQxZDkuLmE0MDE5OTlmNDEy
ZTliZDM5MzJhYjgxYzg0Yjc3NzNkNWRmMDczZjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0xNzUsNiArMTc1LDcgQEAg
cHVibGljOgogICAgIHZvaWQgY2xlYXJET01DYWNoZXMoKTsKICAgICBib29sIGhhc0RPTUNhY2hl
KEpTU3RyaW5nUmVmIG9yaWdpbik7CiAgICAgdWludDY0X3QgZG9tQ2FjaGVTaXplKEpTU3RyaW5n
UmVmIG9yaWdpbik7CisgICAgdm9pZCBhbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UoKTsK
IAogICAgIC8vIEluZGV4ZWREQgogICAgIHZvaWQgc2V0SURCUGVyT3JpZ2luUXVvdGEodWludDY0
X3QpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA3Yzg4
ZTAwMjdmM2Q3NTBiZTYxNTY3MjMyYTg4MWFkY2RmYjRkZGE4Li43Y2I3ZjVjZDllODVkNTdmNjM0
YTcwYjQxMTdmNTdmMzQ4NTU4ZDc3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcApAQCAtMjgzMCw2ICsyODMwLDEzIEBAIHVpbnQ2NF90IFRlc3RDb250cm9sbGVy
Ojpkb21DYWNoZVNpemUoV0tTdHJpbmdSZWYgb3JpZ2luKQogICAgIHJldHVybiBjb250ZXh0LnJl
c3VsdDsKIH0KIAorI2lmICFQTEFURk9STShDT0NPQSkKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmFs
bG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSgpCit7CisgICAgLy8gRklYTUU6IFRvIGltcGxl
bWVudC4KK30KKyNlbmRpZgorCiBzdHJ1Y3QgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250
ZXh0IHsKICAgICBleHBsaWNpdCBSZXNvdXJjZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRleHQoVGVz
dENvbnRyb2xsZXImIGNvbnRyb2xsZXIpCiAgICAgICAgIDogdGVzdENvbnRyb2xsZXIoY29udHJv
bGxlcikKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCAxM2EzOWM2
OTA1ZjBkODdiYTg3YjlkYjU3ZjhkYWQ1YzE3YWM3MWJjLi4xNDI1Y2JmZDUxYTc2MDRhZTEwYzU3
OTQ0NTU3YWEwNmEyMGVhYzgwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5oCkBAIC0yNDgsNiArMjQ4LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJET01DYWNoZXMo
KTsKICAgICBib29sIGhhc0RPTUNhY2hlKFdLU3RyaW5nUmVmIG9yaWdpbik7CiAgICAgdWludDY0
X3QgZG9tQ2FjaGVTaXplKFdLU3RyaW5nUmVmIG9yaWdpbik7CisgICAgdm9pZCBhbGxvd0NhY2hl
U3RvcmFnZVF1b3RhSW5jcmVhc2UoKTsKIAogICAgIHZvaWQgc2V0SURCUGVyT3JpZ2luUXVvdGEo
dWludDY0X3QpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmlu
ZGV4IDBjNmM4NzdmZjFkYWI3NTVhZGUyOGU5ZTIzNGY0NGU1NWZkOTRjMjcuLjFkOGQ3ZDliZTA1
NWI0ODY2MmFkMzBlMzM3MDdmMDI3YWVlYzVlYjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwCkBAIC0xNDI4LDYgKzE0MjgsMTEgQEAgV0tSZXRhaW5QdHI8V0tU
eXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21J
bmplY3RlZEIKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIkFsbG93Q2FjaGVTdG9yYWdlUXVv
dGFJbmNyZWFzZSIpKSB7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5hbGxv
d0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UoKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgfQorCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUs
ICJTZXRJREJQZXJPcmlnaW5RdW90YSIpKSB7CiAgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRCht
ZXNzYWdlQm9keSkgPT0gV0tVSW50NjRHZXRUeXBlSUQoKSk7CiAgICAgICAgIFdLVUludDY0UmVm
IHF1b3RhID0gc3RhdGljX2Nhc3Q8V0tVSW50NjRSZWY+KG1lc3NhZ2VCb2R5KTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQppbmRl
eCAyYzFmNmE2M2M5ZTQ5ZTdjY2U4MWRhY2I2MGRkYTJmOGY1YjE4YTgzLi4zNTI5NzJkMGE3Yzg0
MTNjMmJiNTcwNTNiMjk3NWUzYTlkZmMyNWExIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCkBAIC0zNyw2ICszNyw3IEBACiAj
aW1wb3J0IDxXZWJLaXQvV0tDb29raWVNYW5hZ2VyLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVm
ZXJlbmNlc1JlZlByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0
ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRlLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV0tTdHJpbmdDRi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLVXNlckNvbnRl
bnRDb250cm9sbGVyUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlldy5oPgpAQCAt
NTEsMTAgKzUyLDQwIEBACiAjaW1wb3J0IDxXZWJLaXQvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25T
dG9yZVByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAKKworI2lmIFdLX0FQ
SV9FTkFCTEVECisKK0BpbnRlcmZhY2UgQ2FjaGVTdG9yYWdlUXVvdGFNYW5hZ2VyOiBOU09iamVj
dCA8V0tTdG9yYWdlUXVvdGFEZWxlZ2F0ZVByaXZhdGU+IHsKK0BwdWJsaWMKKyAgICBCT09MIHNo
b3VsZEFsbG93UmFpc2luZ1F1b3RhOworfQorLSAoaW5zdGFuY2V0eXBlKWluaXQ7CitAZW5kCisK
K0BpbXBsZW1lbnRhdGlvbiBDYWNoZVN0b3JhZ2VRdW90YU1hbmFnZXIgeyB9CistIChpbnN0YW5j
ZXR5cGUpaW5pdAoreworICAgIHNob3VsZEFsbG93UmFpc2luZ1F1b3RhID0gZmFsc2U7CisgICAg
cmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpX3JlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZTooTlNV
UkwgKiltYWluRnJhbWVVUkwgZnJhbWVPcmlnaW46KE5TVVJMICopZnJhbWVVUkwgcXVvdGE6KE5T
VUludGVnZXIpcXVvdGEgY3VycmVudFNpemU6KE5TVUludGVnZXIpY3VycmVudFNpemUgc3BhY2VS
ZXF1aXJlZDooTlNVSW50ZWdlcilzcGFjZVJlcXVpcmVkIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAo
XikodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKSlkZWNpc2lvbkhhbmRsZXIKK3sKKyAgICBkZWNp
c2lvbkhhbmRsZXIoc2hvdWxkQWxsb3dSYWlzaW5nUXVvdGEgPyAyICogcXVvdGEgOiBxdW90YSk7
Cit9CisKK0BlbmQKKworI2VuZGlmCisKIG5hbWVzcGFjZSBXVFIgewogCiBzdGF0aWMgV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiAqZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb247CiAKKyNpZiBXS19B
UElfRU5BQkxFRAorc3RhdGljIENhY2hlU3RvcmFnZVF1b3RhTWFuYWdlciAqZ2xvYmFsQ2FjaGVT
dG9yYWdlUXVvdGFNYW5hZ2VyOworI2VuZGlmCisKIHZvaWQgaW5pdGlhbGl6ZVdlYlZpZXdDb25m
aWd1cmF0aW9uKGNvbnN0IGNoYXIqIGxpYnJhcnlQYXRoLCBXS1N0cmluZ1JlZiBpbmplY3RlZEJ1
bmRsZVBhdGgsIFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS0NvbnRleHRDb25maWd1cmF0aW9uUmVm
IGNvbnRleHRDb25maWd1cmF0aW9uKQogewogI2lmIFdLX0FQSV9FTkFCTEVECkBAIC04MCw2ICsx
MTEsMTIgQEAgdm9pZCBpbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24oY29uc3QgY2hhciog
bGlicmFyeVBhdGgsIFdLU3RyaW5nUmVmIGluamVjdGUKICAgICBbZ2xvYmFsV2ViVmlld0NvbmZp
Z3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSBfc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQ6WUVTXTsKICAgICBbZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9y
ZSBfcmVzb3VyY2VMb2FkU3RhdGlzdGljc1NldFNob3VsZFN1Ym1pdFRlbGVtZXRyeTpOT107CiAK
KyNpZiBXS19BUElfRU5BQkxFRAorICAgIFtnbG9iYWxDYWNoZVN0b3JhZ2VRdW90YU1hbmFnZXIg
cmVsZWFzZV07CisgICAgZ2xvYmFsQ2FjaGVTdG9yYWdlUXVvdGFNYW5hZ2VyID0gW1tDYWNoZVN0
b3JhZ2VRdW90YU1hbmFnZXIgYWxsb2NdIGluaXRdOworICAgIFtnbG9iYWxXZWJWaWV3Q29uZmln
dXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlIHNldF9xdW90YURlbGVnYXRlOmdsb2JhbENhY2hlU3Rv
cmFnZVF1b3RhTWFuYWdlcl07CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAg
ICAgZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24uYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjayA9
IFlFUzsKICAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5faW5saW5lTWVkaWFQbGF5YmFj
a1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUgPSBOTzsKQEAgLTI1Miw2ICsyODksOCBAQCB2
b2lkIFRlc3RDb250cm9sbGVyOjpjb2NvYVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29u
c3QgVGVzdE9wdGlvbnMmIG9wdGlvbgogICAgICAgICBpZiAob3B0aW9ucy5zaG91bGRTaG93U3Bl
bGxDaGVja2luZ0RvdHMpCiAgICAgICAgICAgICBbcGxhdGZvcm1WaWV3IHRvZ2dsZUNvbnRpbnVv
dXNTcGVsbENoZWNraW5nOm5pbF07CiAgICAgfQorCisgICAgZ2xvYmFsQ2FjaGVTdG9yYWdlUXVv
dGFNYW5hZ2VyLT5zaG91bGRBbGxvd1JhaXNpbmdRdW90YSA9IGZhbHNlOwogI2VuZGlmCiB9CiAK
QEAgLTM4NSw0ICs0MjQsMTEgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6a2V5RXhpc3RzSW5LZXlj
aGFpbihjb25zdCBTdHJpbmcmIGF0dHJMYWJlbCwgY29uc3QgU3RyaW5nJgogICAgIHJldHVybiBm
YWxzZTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6YWxsb3dDYWNoZVN0b3JhZ2VRdW90YUlu
Y3JlYXNlKCkKK3sKKyNpZiBXS19BUElfRU5BQkxFRAorICAgIGdsb2JhbENhY2hlU3RvcmFnZVF1
b3RhTWFuYWdlci0+c2hvdWxkQWxsb3dSYWlzaW5nUXVvdGEgPSB0cnVlOworI2VuZGlmCit9CisK
IH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDA0YTg2ODY2ZWE2MDBkMjAxMDI5MWFiZmJiOTRi
MzcyMWQ1OWRhNTQuLjdhZjdlNGNmMzZmZDU4MDNjMmE2N2I5MmMzYzZiNGIxMmI1ZDk3NTIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wMS0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbmV3IFNQSSB0byByZXF1ZXN0IGZvciBjYWNoZSBz
dG9yYWdlIHF1b3RhIGluY3JlYXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTMzMjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVc2UgbmV3IHRlc3RSdW5uZXIgbWV0aG9kIHRvIGJ1bXAgdGhlIGNhY2hl
IHF1b3RhIGFuZCB2ZXJpZnkgYWRkaW5nIGEKKyAgICAgICAgY2FjaGUgZW50cnkgd29ya3Mgd2hl
biBidW1waW5nIHRoZSBjcWNoZSBxdW90YS4KKworICAgICAgICAqIGh0dHAvd3B0L2NhY2hlLXN0
b3JhZ2UvY2FjaGUtcXVvdGEuYW55LmpzOgorICAgICAgICAocHJvbWlzZV90ZXN0KToKKwogMjAx
OS0wMS0xNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogQXVkaXQ6IHByb3ZpZGUgYSB3YXkgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBn
aXZlIG5vZGUgaGFzIGV2ZW50IGxpc3RlbmVycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvY2FjaGUtc3RvcmFnZS9jYWNoZS1xdW90YS5hbnkuanMgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC9jYWNoZS1zdG9yYWdlL2NhY2hlLXF1b3RhLmFueS5qcwppbmRleCA1YTk0ZDViNzhmM2I2
MzljYTcwZGNiZjEzZmYyODhhNWRiMmUyMzkzLi5jYTI5MmRjOWI1NDliYzEzZTUzYzI2ZDllMjYx
ZTFmZjA2ODFiMDY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jYWNoZS1zdG9y
YWdlL2NhY2hlLXF1b3RhLmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jYWNoZS1z
dG9yYWdlL2NhY2hlLXF1b3RhLmFueS5qcwpAQCAtMTE0LDcgKzExNCw3IEBAIHByb21pc2VfdGVz
dCgodGVzdCkgPT4gewogICAgICAgICByZXR1cm4gY2FjaGUucHV0KCIxa28tdjIiLCByZXNwb25z
ZTFrby5jbG9uZSgpKS50aGVuKGFzc2VydF91bnJlYWNoZWQsIChlKSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIlF1b3RhRXhjZWVkZWRFcnJvciIpOwogICAgICAgICB9
KTsKLSAgIH0pLnRoZW4oKCkgPT4geworICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICByZXR1
cm4gY2FjaGUuZGVsZXRlKCIxa28tdjEiKTsKICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
cmV0dXJuIGNhY2hlLnB1dCgiMWtvLXYyIiwgcmVzcG9uc2Uxa28uY2xvbmUoKSk7CkBAIC0xNTEs
NiArMTUxLDkgQEAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CiAgICAgICAgIHJldHVybiBjYWNo
ZS5wdXQoIjFrbyIsIHJlc3BvbnNlMWtvLmNsb25lKCkpLnRoZW4oYXNzZXJ0X3VucmVhY2hlZCwg
KGUpID0+IHsKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1lLCAiUXVvdGFFeGNlZWRl
ZEVycm9yIik7CiAgICAgICAgIH0pOworICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICB0ZXN0
UnVubmVyLmFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSgpOworICAgICAgICByZXR1cm4g
Y2FjaGUucHV0KCIxa28iLCByZXNwb25zZTFrby5jbG9uZSgpKTsKICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICByZXR1cm4gY2FjaGUuZGVsZXRlKCIxa28tcGFkZGVkLXRvLTIwMGtvIik7CiAg
ICAgfSkudGhlbigoKSA9PiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359386</attachid>
            <date>2019-01-17 10:04:59 -0800</date>
            <delta_ts>2019-01-17 11:17:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193323-20190117100458.patch</filename>
            <type>text/plain</type>
            <size>30721</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0OTJmOGFmMjdmOGUxODQ5
ODI2NDk1YTMwZjY4MzkzYjg3ZmYyMDAuLjM2NDQ5MGI1MDRjZWNkNWI0ZmFmMzc1MTlkNWZlMzAz
YzdlMmM5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTktMDEtMTcgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgdG8gcmVx
dWVzdCBmb3IgY2FjaGUgc3RvcmFnZSBxdW90YSBpbmNyZWFzZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMzIzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgZGVsZWdhdGUgb24gdGhlIFdlYlNp
dGVEYXRhU3RvcmUgZm9yIFdlYktpdCB0byBhc2sgZm9yIHF1b3RhIHVwZGF0ZS4KKyAgICAgICAg
VGhlIGN1cnJlbnQgU1BJIGlzIGN1cnJlbnRseSBDYWNoZVN0b3JhZ2Ugc3BlY2lmaWMgYnV0IGZ1
dHVyZSB3b3JrIHNob3VsZAorICAgICAgICBtYWtlIGl0IHNvIHRoYXQgb3RoZXIgc3RvcmFnZSBs
aWtlIElEQiB1c2UgdGhlIHNhbWUgbWVjaGFuaXNtLgorICAgICAgICBCeSBkZWZhdWx0LCBxdW90
YSByZW1haW5zIHVuY2hhbmdlZCBpZiBkZWxlZ2F0ZSBpcyBub3QgaW1wbGVtZW50ZWQuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAg
ICAgICAgKFdlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXI6OldlYnNpdGVEYXRhU3RvcmVRdW90
YU1hbmFnZXIpOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX3F1b3RhRGVsZWdhdGVd
KToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIHNldF9xdW90YURlbGVnYXRlOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdENhY2hlU3Rv
cmFnZVNwYWNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRh
U3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnF1b3RhTWFuYWdlcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFF1b3RhTWFuYWdlcik6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIu
aDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXI6
On5XZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZVF1b3RhTWFuYWdlcjo6cmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlKToKKyAgICAg
ICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wMS0xNiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgbmV3IFNQSSBm
b3IgY29udHJvbGxpbmcgZ2V0VXNlck1lZGlhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tTdG9yYWdlUXVvdGFEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjkyZTFmMGNmNDJmYTc4NjZmNDhkYTdkNzgxMDI3MTY0MWYyMWFjNDcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tT
dG9yYWdlUXVvdGFEZWxlZ2F0ZVByaXZhdGUuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQK
KworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKK0Bwcm90b2NvbCBXS1N0b3Jh
Z2VRdW90YURlbGVnYXRlUHJpdmF0ZSA8TlNPYmplY3Q+CisKK0BvcHRpb25hbAorCistICh2b2lk
KV9yZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2U6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lT3Jp
Z2luOihOU1VSTCAqKWZyYW1lVVJMIHF1b3RhOihOU1VJbnRlZ2VyKXF1b3RhIGN1cnJlbnRTaXpl
OihOU1VJbnRlZ2VyKWN1cnJlbnRTaXplIHNwYWNlUmVxdWlyZWQ6KE5TVUludGVnZXIpc3BhY2VS
ZXF1aXJlZCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90
YSkpZGVjaXNpb25IYW5kbGVyOworCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXgg
MmQxNjBlYTNiMTI4OGZlODRkYzFkODI5M2MwYTMyODM4MWZlYjI2YS4uYjhkNGMzYThmMDZiM2Rm
ODNhY2VhMTEwNjJhNWY4OTQ0ZjNmNjlhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC0yOSw4ICsyOSwx
MCBAQAogI2lmIFdLX0FQSV9FTkFCTEVECiAKICNpbXBvcnQgIkFQSVN0cmluZy5oIgorI2ltcG9y
dCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIgogI2ltcG9ydCAiV0tIVFRQQ29va2ll
U3RvcmVJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tOU0FycmF5LmgiCisjaW1wb3J0ICJXS1N0b3Jh
Z2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oIgogI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwuaCIK
ICNpbXBvcnQgIldLV2Vic2l0ZURhdGFSZWNvcmRJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViUGFn
ZVByb3h5LmgiCkBAIC00Miw2ICs0NCw0MCBAQAogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAj
aW1wb3J0IDx3dGYvVVJMLmg+CiAKK2NsYXNzIFdlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIg
OiBwdWJsaWMgV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyIHsKK3B1YmxpYzoK
KyAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyKGlkIDxXS1N0b3JhZ2VR
dW90YURlbGVnYXRlUHJpdmF0ZT4gZGVsZWdhdGUpCisgICAgICAgIDogbV9xdW90YURlbGVnYXRl
KGRlbGVnYXRlKQorICAgICAgICAsIG1faGFzUmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlU2VsZWN0
b3IoW21fcXVvdGFEZWxlZ2F0ZS5nZXQoKSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9y
ZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2U6IGZyYW1lT3JpZ2luOiBxdW90YTogY3VycmVudFNpemU6
IHNwYWNlUmVxdWlyZWQ6IGRlY2lzaW9uSGFuZGxlcjopXSkKKyAgICB7CisgICAgfQorCitwcml2
YXRlOgorICAgIHZvaWQgcmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlKGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIGZyYW1lT3JpZ2luLCB1aW50NjRfdCBxdW90YSwgdWludDY0X3QgY3VycmVudFNpemUs
IHVpbnQ2NF90IHNwYWNlUmVxdWlyZWQsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRp
b25hbDx1aW50NjRfdD4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAgIHsKKyAgICAg
ICAgaWYgKCFtX2hhc1JlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZVNlbGVjdG9yKSB7CisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgYXV0byBjaGVja2VyID0gV2ViS2l0OjpDb21wbGV0aW9uSGFuZGxlckNh
bGxDaGVja2VyOjpjcmVhdGUobV9xdW90YURlbGVnYXRlLmdldCgpLCBAc2VsZWN0b3IoX3JlcXVl
c3RDYWNoZVN0b3JhZ2VTcGFjZTogZnJhbWVPcmlnaW46IHF1b3RhOiBjdXJyZW50U2l6ZTogc3Bh
Y2VSZXF1aXJlZDogZGVjaXNpb25IYW5kbGVyOikpOworICAgICAgICBhdXRvIGRlY2lzaW9uSGFu
ZGxlciA9IG1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildKHVuc2lnbmVkIGxvbmcgbG9u
ZyBxdW90YSkgbXV0YWJsZSB7CisgICAgICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhh
bmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihxdW90YSk7CisgICAgICAgIH0pOworCisgICAgICAgIFVSTCBtYWluRnJh
bWVVUkwgeyBVUkwoKSwgdG9wT3JpZ2luLnRvU3RyaW5nKCkgfTsKKyAgICAgICAgVVJMIGZyYW1l
VVJMIHsgVVJMKCksIGZyYW1lT3JpZ2luLnRvU3RyaW5nKCkgfTsKKworICAgICAgICBbbV9xdW90
YURlbGVnYXRlLmdldCgpIF9yZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2U6bWFpbkZyYW1lVVJMIGZy
YW1lT3JpZ2luOmZyYW1lVVJMIHF1b3RhOnF1b3RhIGN1cnJlbnRTaXplOmN1cnJlbnRTaXplIHNw
YWNlUmVxdWlyZWQ6c3BhY2VSZXF1aXJlZCBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVy
LmdldCgpXTsKKyAgICB9CisKKyAgICBSZXRhaW5QdHI8aWQgPFdLU3RvcmFnZVF1b3RhRGVsZWdh
dGVQcml2YXRlPiA+IG1fcXVvdGFEZWxlZ2F0ZTsKKyAgICBib29sIG1faGFzUmVxdWVzdENhY2hl
U3RvcmFnZVNwYWNlU2VsZWN0b3IgeyBmYWxzZSB9OworfTsKKwogQGltcGxlbWVudGF0aW9uIFdL
V2Vic2l0ZURhdGFTdG9yZQogCiArIChXS1dlYnNpdGVEYXRhU3RvcmUgKilkZWZhdWx0RGF0YVN0
b3JlCkBAIC0zODMsNiArNDE5LDE3IEBAIC0gKGJvb2wpX2hhc1JlZ2lzdGVyZWRTZXJ2aWNlV29y
a2VyCiAgICAgcmV0dXJuIFdlYktpdDo6U2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6aGFzUmVn
aXN0ZXJlZFNlcnZpY2VXb3JrZXJzKF93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3Jl
KCkuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSgpKTsKIH0KIAorLSAoaWQgPFdL
U3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRlPilfcXVvdGFEZWxlZ2F0ZQoreworICAgIHJldHVy
biBfcXVvdGFEZWxlZ2F0ZS5nZXQoKTsKK30KKworLSAodm9pZClzZXRfcXVvdGFEZWxlZ2F0ZToo
aWQgPFdLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRlPilxdW90YURlbGVnYXRlCit7CisgICAg
X3F1b3RhRGVsZWdhdGUgPSBxdW90YURlbGVnYXRlOworICAgIF93ZWJzaXRlRGF0YVN0b3JlLT53
ZWJzaXRlRGF0YVN0b3JlKCkuc2V0UXVvdGFNYW5hZ2VyKG1ha2VVbmlxdWVSZWY8V2Vic2l0ZURh
dGFTdG9yZVF1b3RhTWFuYWdlcj4ocXVvdGFEZWxlZ2F0ZSkpOworfQorCiBAZW5kCiAKICNlbmRp
ZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaAppbmRleCBkODYx
ODc1MjczYmE3ZGY2N2UyODY2ZDE0NTViOTZiN2YzZGM0N2Y2Li5lMzFmM2I2N2ZiMzg5MGI5MmUz
Y2I5MmE1MDZhMWVlOTIxMTg0NDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaApAQCAt
NDEsNiArNDEsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBXcmFwcGVyVHJhaXRzPEFQSTo6V2Vic2l0
ZURhdGFTdG9yZT4gewogQGludGVyZmFjZSBXS1dlYnNpdGVEYXRhU3RvcmUgKCkgPFdLT2JqZWN0
PiB7CiBAcGFja2FnZQogICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6OldlYnNpdGVEYXRhU3Rv
cmU+IF93ZWJzaXRlRGF0YVN0b3JlOworICAgIFJldGFpblB0cjxpZCA8V0tTdG9yYWdlUXVvdGFE
ZWxlZ2F0ZVByaXZhdGU+ID4gX3F1b3RhRGVsZWdhdGU7CiB9CiBAZW5kCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlUHJpdmF0ZS5oCmluZGV4IDc0YThhMDJmMmYxZDllZTk1Yzk3YWY5YTk2ZTNjNjAxMzE5MjAx
NjEuLmFkMDRjZTg4YTliNDQ1YTIwNDgxNzhiZDk1MWU3ZGEwYTJhNjE2NjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZVByaXZhdGUuaApAQCAtMzIsNiArMzIsOCBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJ
TgogQGNsYXNzIF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOwogQGNsYXNzIFdLV2Vi
VmlldzsKIAorQHByb3RvY29sIFdLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRlOworCiB0eXBl
ZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9u
cykgewogICAgIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9wdGlvbkNvbXB1dGVTaXplcyA9IDEg
PDwgMCwKIH0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwpAQCAt
NjIsNiArNjQsOSBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZURh
dGFTdG9yZUZldGNoT3B0aW9ucykgewogKyAodm9pZClfYWxsb3dXZWJzaXRlRGF0YVJlY29yZHNG
b3JBbGxPcmlnaW5zIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykp
OwogLSAoYm9vbClfaGFzUmVnaXN0ZXJlZFNlcnZpY2VXb3JrZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwogCisvKiEgQGFic3RyYWN0IFRoZSBzdG9yYWdlIHF1
b3RhIGRlbGVnYXRlLiAqLworQHByb3BlcnR5IChudWxsYWJsZSwgbm9uYXRvbWljLCB3ZWFrKSBp
ZCA8V0tTdG9yYWdlUXVvdGFEZWxlZ2F0ZVByaXZhdGU+IF9xdW90YURlbGVnYXRlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiBAZW5kCiAK
IE5TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggNjAwYzBiYzM5YWVjMzky
NjlhOGRmZWQ5ZjVhZWNlOTBlMzQyMjRiOS4uNTY4ZjNhOWE4ZDdkMDY4Nzc3YmFiNzAzOWQ3MTky
OTIyYjM0ZTZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC00Myw2ICs0Myw4IEBACiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94
eS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCisjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9y
ZVF1b3RhTWFuYWdlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2luLmg+CiAjaW5j
bHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKICNpZiBFTkFCTEUoU0VDX0lURU1fU0hJ
TSkKQEAgLTc0Myw4ICs3NDUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RD
YWNoZVN0b3JhZ2VTcGFjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbgogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgLy8gRklYTUU6IEFzayBXZWJzaXRlRGF0YVN0b3JlIGFib3V0
IHVwZGF0aW5nIHRoZSBxdW90YSBmb3IgdGhpcyBvcmlnaW4uCi0gICAgY29tcGxldGlvbkhhbmRs
ZXIocXVvdGEpOworICAgIHN0b3JlLT5xdW90YU1hbmFnZXIoKS5yZXF1ZXN0Q2FjaGVTdG9yYWdl
U3BhY2Uob3JpZ2luLnRvcE9yaWdpbiwgb3JpZ2luLmNsaWVudE9yaWdpbiwgcXVvdGEsIGN1cnJl
bnRTaXplLCBzcGFjZVJlcXVpcmVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCAwYWFiYmU0OGRiMTM1
ZDg2YmYyODRiMDU1NDIxNDNhMTdiZDhlOWEwLi5iYTIxNjNhYTYzODM3YWY3MGI2MjZlODE1YTQz
YWNkYjVhYTAyNDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1
ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2Vic2l0ZURhdGEuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgor
I2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFz
ZVRyYWNrZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KQEAgLTk3LDYgKzk4
LDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShSZWY8V2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24+JiYgY29uZmlndXIKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogICAg
ICwgbV9hdXRoZW50aWNhdG9yTWFuYWdlcihtYWtlVW5pcXVlUmVmPEF1dGhlbnRpY2F0b3JNYW5h
Z2VyPigpKQogI2VuZGlmCisgICAgLCBtX3F1b3RhTWFuYWdlcihtYWtlVW5pcXVlUmVmPFdlYnNp
dGVEYXRhU3RvcmVRdW90YU1hbmFnZXI+KCkpCiB7CiAgICAgV1RGOjpzZXRQcm9jZXNzUHJpdmls
ZWdlcyhhbGxQcml2aWxlZ2VzKCkpOwogICAgIG1heWJlUmVnaXN0ZXJXaXRoU2Vzc2lvbklETWFw
KCk7CkBAIC0xMTQsNiArMTE2LDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9y
ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAjaWYgRU5BQkxFKFdFQl9BVVRITikKICAgICAs
IG1fYXV0aGVudGljYXRvck1hbmFnZXIobWFrZVVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yTWFuYWdl
cj4oKSkKICNlbmRpZgorICAgICwgbV9xdW90YU1hbmFnZXIobWFrZVVuaXF1ZVJlZjxXZWJzaXRl
RGF0YVN0b3JlUXVvdGFNYW5hZ2VyPigpKQogewogICAgIG1heWJlUmVnaXN0ZXJXaXRoU2Vzc2lv
bklETWFwKCk7CiAgICAgcGxhdGZvcm1Jbml0aWFsaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggOTEy
ZDhlNDc1Y2Q2YTIxNzk5OWEwOTAxNzhlYjY1OGZjMjE3OWM2OS4uYjRhZTU1Y2NmYTNmYmFmY2Nk
OGZkYzE4Njg2MWE1OGE4ZTc5NDUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMjgsNiArMjgsNyBAQAog
I2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJp
dHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkhhc2guaD4K
QEAgLTU4LDYgKzU5LDcgQEAgY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogY2xhc3MgQXV0aGVudGljYXRvck1hbmFnZXI7CitjbGFzcyBXZWJzaXRlRGF0YVN0b3Jl
UXVvdGFNYW5hZ2VyOwogY2xhc3MgU2VjS2V5UHJveHlTdG9yZTsKIGNsYXNzIFN0b3JhZ2VNYW5h
Z2VyOwogY2xhc3MgRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2U7CkBAIC0xODgsNiArMTkwLDkgQEAg
cHVibGljOgogCiAgICAgY29uc3QgV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24mIGNvbmZp
Z3VyYXRpb24oKSB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uZ2V0KCk7IH0KIAorICAgIFdlYnNp
dGVEYXRhU3RvcmVRdW90YU1hbmFnZXImIHF1b3RhTWFuYWdlcigpIHsgcmV0dXJuIG1fcXVvdGFN
YW5hZ2VyLmdldCgpOyB9CisgICAgdm9pZCBzZXRRdW90YU1hbmFnZXIoVW5pcXVlUmVmPFdlYnNp
dGVEYXRhU3RvcmVRdW90YU1hbmFnZXI+JiYgbWFuYWdlcikgeyBtX3F1b3RhTWFuYWdlciA9IFdU
Rk1vdmUobWFuYWdlcik7IH0KKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0
b3JlKFBBTDo6U2Vzc2lvbklEKTsKICAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlKFJlZjxX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4mJiwgUEFMOjpTZXNzaW9uSUQpOwpAQCAtMjU2
LDYgKzI2MSw4IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQl9BVVRITikKICAgICBVbmlxdWVS
ZWY8QXV0aGVudGljYXRvck1hbmFnZXI+IG1fYXV0aGVudGljYXRvck1hbmFnZXI7CiAjZW5kaWYK
KworICAgIFVuaXF1ZVJlZjxXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyPiBtX3F1b3RhTWFu
YWdlcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMDRhYjRhN2NmNjJjYmY4YmQ4MjRlYTVkMGI2ZjViYmRmMThlZTRiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZVF1b3RhTWFuYWdlci5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdlciB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+V2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdlcigpIHsgfQorCisgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZShjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiBmcmFtZU9yaWdpbiwgdWludDY0X3QgcXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRTaXplLCB1aW50
NjRfdCBzcGFjZVJlcXVpcmVkLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
dWludDY0X3Q+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICB7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKHsgfSk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5NzE0
MWU4MzdjNTJiY2RlMGQ1NDI5MzcxMzE5Zjk4Yjg3MWM1M2RmLi41M2JjMjY3OTQ0NTVkNTg3ZjU3
NjE3ODA2NGNmZTJhZmQ4OWZjNGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg1OSw2ICs4NTksNyBAQAogCQk0MTEyRURERTIwRTQw
N0E1MDBCRUE5MkEgLyogY29tLmNmY2EubnBTZWNFZGl0Q3RsLk1BQy5CT0MucGx1Z2luLnNiIGlu
IENvcHkgUGx1Zy1pbiBTYW5kYm94IFByb2ZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxMTJFREQzMjBFNDA3NzQwMEJFQTkyQSAvKiBjb20uY2ZjYS5ucFNlY0VkaXRD
dGwuTUFDLkJPQy5wbHVnaW4uc2IgKi87IH07CiAJCTQxMTJFRERGMjBFNDA3QTUwMEJFQTkyQSAv
KiBjb20uY21iY2hpbmEuQ01CU2VjdXJpdHkuc2IgaW4gQ29weSBQbHVnLWluIFNhbmRib3ggUHJv
ZmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMkVERDUyMEU0MDc3
NDAwQkVBOTJBIC8qIGNvbS5jbWJjaGluYS5DTUJTZWN1cml0eS5zYiAqLzsgfTsKIAkJNDExMkVE
RTAyMEU0MDdBNTAwQkVBOTJBIC8qIGNvbS5mdHNhZmUuTlBBUEktQ29yZS1TYWZlLVNvZnRLZXli
YW9yZC5wbHVnaW4ucmZjMTAzNGlkZW50aWZpZXIuc2IgaW4gQ29weSBQbHVnLWluIFNhbmRib3gg
UHJvZmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMkVERDIyMEU0
MDc3MzAwQkVBOTJBIC8qIGNvbS5mdHNhZmUuTlBBUEktQ29yZS1TYWZlLVNvZnRLZXliYW9yZC5w
bHVnaW4ucmZjMTAzNGlkZW50aWZpZXIuc2IgKi87IH07CisJCTQxMThEQzFGMjFFN0JGNUQwMERF
MDRDNyAvKiBXS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExOERDMUQyMUU2REQyNzAwREUwNEM3IC8q
IFdLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDExQThEREIyMERERDFBQzAwNjBEMzRGIC8qIFdL
TW9ja01lZGlhRGV2aWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTFBOEREOTIwRERCNjA1MDA2MEQzNEYgLyogV0tNb2NrTWVkaWFEZXZpY2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTFCMjI2
NDFFMzcxQkE2MDA0RjczNjMgLyogTGliV2ViUlRDTmV0d29yay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExQjIyNjIxRTM3MTI0NDAwNEY3MzYzIC8q
IExpYldlYlJUQ05ldHdvcmsuaCAqLzsgfTsKIAkJNDEzMDc1QUIxREU4NUYzMzAwMzlFQzY5IC8q
IE5ldHdvcmtSVENTb2NrZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxMzA3NTk5MURFODRGQjAwMDM5RUM2OSAvKiBOZXR3b3JrUlRDU29ja2V0Lmgg
Ki87IH07CkBAIC0yOTg5LDYgKzI5OTAsOCBAQAogCQk0MTEyRURENzIwRTQwNzc1MDBCRUE5MkEg
LyogY29tLmFwcGxlLk5QU2FmZVN1Ym1pdC5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20u
YXBwbGUuTlBTYWZlU3VibWl0LnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEy
RUREODIwRTQwNzc1MDBCRUE5MkEgLyogY29tLmFwcGxlLk5QU2FmZUlucHV0LnNiICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5OUFNhZmVJbnB1dC5zYjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDExMkVERDkyMEU0MDc3NTAwQkVBOTJBIC8qIGNvbS5hcHBsZS5Cb2Nv
bVN1Ym1pdEN0cmwuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLkJvY29tU3Vi
bWl0Q3RybC5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDExOERDMUIyMUU2RDEx
QTAwREUwNEM3IC8qIFdlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTE4REMxRDIxRTZERDI3MDBERTA0QzcgLyogV0tT
dG9yYWdlUXVvdGFEZWxlZ2F0ZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tTdG9yYWdlUXVvdGFEZWxlZ2F0ZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDExQThERDkyMEREQjYwNTAwNjBEMzRGIC8qIFdLTW9ja01lZGlhRGV2aWNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTW9ja01lZGlhRGV2aWNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMUE4RERBMjBEREI2MDUwMDYwRDM0RiAv
KiBXS01vY2tNZWRpYURldmljZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXS01vY2tNZWRpYURldmljZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxMUIyMjYyMUUzNzEyNDQwMDRGNzM2MyAvKiBMaWJXZWJSVENOZXR3b3JrLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ05ldHdvcmsuaDsgcGF0aCA9IE5ldHdv
cmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTYxMzMsNiArNjEzNiw3IEBACiAJCQkJNTFDRDFDNjExQjM0QjlDOTAwMTQyQ0E1IC8qIFdL
U2VjdXJpdHlPcmlnaW5JbnRlcm5hbC5oICovLAogCQkJCTkzRjU0OUIzMUUzMTc0QjcwMDBFNzIz
OSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovLAogCQkJCTkzRjU0OUI1MUUzMTc0REEw
MDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5tbSAqLywKKwkJCQk0MTE4REMxRDIx
RTZERDI3MDBERTA0QzcgLyogV0tTdG9yYWdlUXVvdGFEZWxlZ2F0ZVByaXZhdGUuaCAqLywKIAkJ
CQkxQUQ4NzkwOTE4QjZDMzhBMDA2Q0FGRDcgLyogV0tVSURlbGVnYXRlLmggKi8sCiAJCQkJMzc0
MzkyNTcxOEJDNEM2MDAwMUM4Njc1IC8qIFdLVUlEZWxlZ2F0ZVByaXZhdGUuaCAqLywKIAkJCQk1
MUQxMjQyRDFFNkREREQ3MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVIYW5kbGVyLmggKi8sCkBAIC05
OTAzLDYgKzk5MDcsNyBAQAogCQkJCTFGNzUwNkI1MTg1OTE2NTQwMEVDMEZGNyAvKiBXS1dlYlBy
b2Nlc3NQbHVnSW5TY3JpcHRXb3JsZEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTQ4
MzJDQzFBOUJDNDY1MDA4QjRERkUgLyogV0tXZWJzaXRlRGF0YVJlY29yZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE0ODMyQ0UxQTlCQzQ4NDAwOEI0REZFIC8qIFdLV2Vic2l0ZURhdGFSZWNvcmRJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDExOERDMUYyMUU3QkY1RDAwREUwNEM3IC8q
IFdLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE2
NTREMTFCMTRGNzE0MDBCRjFEM0UgLyogV0tXZWJzaXRlRGF0YVJlY29yZFByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTc1QThEMkM4MTg3Q0NGQUIwMEMzOUM5RSAvKiBXS1dlYnNpdGVEYXRh
U3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1QThEMkQ2MTg3RDFDMEUwMEMzOUM5RSAvKiBX
S1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWJiZTRjMWRjMTQ4YzYwYjk2
N2QxODJmODRkMzZhNzkxYTg4YmQ5MS4uMmYyNjM2YmE2OGEwNjcyMjQyNGMzYWI4ZDI3Njc1MTA5
NDg1MDgzYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMwIEBACisyMDE5LTAxLTE3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KKworICAgICAgICBBZGQgYSBuZXcgU1BJIHRvIHJlcXVlc3QgZm9yIGNhY2hlIHN0
b3JhZ2UgcXVvdGEgaW5jcmVhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5MzMyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcGxlbWVudCBXZWJzaXRlRGF0YVN0b3JlIHF1b3RhIGRlbGVnYXRlIHRv
IGhhbmRsZSBxdW90YSByZXF1ZXN0cy4KKyAgICAgICAgQnkgZGVmYXVsdCwgZG8gbm90IHVwZGF0
ZSBxdW90YS4KKyAgICAgICAgVXBkYXRlIHF1b3RhIGlmIHRlc3QgY2FsbHMgdGhlIG5ldyB0ZXN0
UnVubmVyLmFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSBtZXRob2QuCisKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNy
ZWFzZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjphbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVh
c2UpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRC
dW5kbGUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJD
b2NvYS5tbToKKyAgICAgICAgKC1bQ2FjaGVTdG9yYWdlUXVvdGFNYW5hZ2VyIGluaXRdKToKKyAg
ICAgICAgKC1bQ2FjaGVTdG9yYWdlUXVvdGFNYW5hZ2VyIF9yZXF1ZXN0Q2FjaGVTdG9yYWdlU3Bh
Y2U6ZnJhbWVPcmlnaW46cXVvdGE6Y3VycmVudFNpemU6c3BhY2VSZXF1aXJlZDpkZWNpc2lvbkhh
bmRsZXI6XSk6CisgICAgICAgIChXVFI6OmluaXRpYWxpemVXZWJWaWV3Q29uZmlndXJhdGlvbik6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjb2NvYVJlc2V0U3RhdGVUb0NvbnNpc3Rl
bnRWYWx1ZXMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6YWxsb3dDYWNoZVN0b3Jh
Z2VRdW90YUluY3JlYXNlKToKKwogMjAxOS0wMS0xNyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtMRkNdW0JGQ10gQW4gZWxlbWVudCB3aXRoIHRyYW5zZm9ybSBp
cyBhIGNvbnRhaW5pbmcgYmxvY2sgZm9yIHBvc2l0aW9uZWQgZGVzY2VuZGFudHMuCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbAppbmRleCA2N2ZjOTNlOTE2MjJiZGQzMzMxODVjN2Y2YjIwOGEzOWZl
ZTQ0NTE2Li5mMTU1NTBmNTMwZWQwZjNkNTE5NDc4MDIyNjk1MjAxZTkwMmNiYWIzIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTYyLDYgKzYyLDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5u
ZXIgewogICAgIHZvaWQgY2xlYXJET01DYWNoZShET01TdHJpbmcgb3JpZ2luKTsKICAgICBib29s
ZWFuIGhhc0RPTUNhY2hlKERPTVN0cmluZyBvcmlnaW4pOwogICAgIHVuc2lnbmVkIGxvbmcgZG9t
Q2FjaGVTaXplKERPTVN0cmluZyBvcmlnaW4pOworICAgIHZvaWQgYWxsb3dDYWNoZVN0b3JhZ2VR
dW90YUluY3JlYXNlKCk7CiAKICAgICAvLyBTcGVjaWFsIG9wdGlvbnMuCiAgICAgdm9pZCBrZWVw
V2ViSGlzdG9yeSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggZjk3YWU0N2I4ZDVmYjJlYWQxYmU0Zjk1OTdlMTU2
OGY3NmRmMDE2YS4uZDdhOWQyNDgyOWRmOGI3NGFkOGJjZDkxZGRkOTYwOTRiMmNlNTg1MCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwCkBAIC0yMzY3LDYgKzIzNjcsMTIgQEAgdWludDY0X3QgVGVzdFJ1bm5lcjo6ZG9tQ2Fj
aGVTaXplKEpTU3RyaW5nUmVmIG9yaWdpbikKICAgICByZXR1cm4gV0tVSW50NjRHZXRWYWx1ZShz
dGF0aWNfY2FzdDxXS1VJbnQ2NFJlZj4ocmV0dXJuRGF0YSkpOwogfQogCit2b2lkIFRlc3RSdW5u
ZXI6OmFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSgpCit7CisgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJBbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UiKSk7CisgICAgV0tCdW5kbGVQ
b3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUo
KSwgbWVzc2FnZU5hbWUuZ2V0KCksIG51bGxwdHIsIG51bGxwdHIpOworfQorCiB2b2lkIFRlc3RS
dW5uZXI6OmdldEFwcGxpY2F0aW9uTWFuaWZlc3RUaGVuKEpTVmFsdWVSZWYgY2FsbGJhY2spCiB7
CiAgICAgY2FjaGVUZXN0UnVubmVyQ2FsbGJhY2soR2V0QXBwbGljYXRpb25NYW5pZmVzdENhbGxi
YWNrSUQsIGNhbGxiYWNrKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggMjIxNGQ3N2I4YzM5NzlhNDdjNWU4ZWRhYTVkMzI3
MTJkMTQzNDFkOS4uYTQwMTk5OWY0MTJlOWJkMzkzMmFiODFjODRiNzc3M2Q1ZGYwNzNmMyAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmgKQEAgLTE3NSw2ICsxNzUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckRPTUNhY2hlcygp
OwogICAgIGJvb2wgaGFzRE9NQ2FjaGUoSlNTdHJpbmdSZWYgb3JpZ2luKTsKICAgICB1aW50NjRf
dCBkb21DYWNoZVNpemUoSlNTdHJpbmdSZWYgb3JpZ2luKTsKKyAgICB2b2lkIGFsbG93Q2FjaGVT
dG9yYWdlUXVvdGFJbmNyZWFzZSgpOwogCiAgICAgLy8gSW5kZXhlZERCCiAgICAgdm9pZCBzZXRJ
REJQZXJPcmlnaW5RdW90YSh1aW50NjRfdCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwCmluZGV4IDdjODhlMDAyN2YzZDc1MGJlNjE1NjcyMzJhODgxYWRjZGZiNGRk
YTguLjdjYjdmNWNkOWU4NWQ1N2Y2MzRhNzBiNDExN2Y1N2YzNDg1NThkNzcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0yODMwLDYgKzI4MzAsMTMgQEAg
dWludDY0X3QgVGVzdENvbnRyb2xsZXI6OmRvbUNhY2hlU2l6ZShXS1N0cmluZ1JlZiBvcmlnaW4p
CiAgICAgcmV0dXJuIGNvbnRleHQucmVzdWx0OwogfQogCisjaWYgIVBMQVRGT1JNKENPQ09BKQor
dm9pZCBUZXN0Q29udHJvbGxlcjo6YWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlKCkKK3sK
KyAgICAvLyBGSVhNRTogVG8gaW1wbGVtZW50LgorfQorI2VuZGlmCisKIHN0cnVjdCBSZXNvdXJj
ZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRleHQgewogICAgIGV4cGxpY2l0IFJlc291cmNlU3RhdGlz
dGljc0NhbGxiYWNrQ29udGV4dChUZXN0Q29udHJvbGxlciYgY29udHJvbGxlcikKICAgICAgICAg
OiB0ZXN0Q29udHJvbGxlcihjb250cm9sbGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCmluZGV4IDEzYTM5YzY5MDVmMGQ4N2JhODdiOWRiNTdmOGRhZDVjMTdhYzcxYmMu
LjE0MjVjYmZkNTFhNzYwNGFlMTBjNTc5NDQ1NTdhYTA2YTIwZWFjODAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTI0OCw2ICsyNDgsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjbGVhckRPTUNhY2hlcygpOwogICAgIGJvb2wgaGFzRE9NQ2FjaGUoV0tTdHJpbmdS
ZWYgb3JpZ2luKTsKICAgICB1aW50NjRfdCBkb21DYWNoZVNpemUoV0tTdHJpbmdSZWYgb3JpZ2lu
KTsKKyAgICB2b2lkIGFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSgpOwogCiAgICAgdm9p
ZCBzZXRJREJQZXJPcmlnaW5RdW90YSh1aW50NjRfdCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggMGM2Yzg3N2ZmMWRhYjc1NWFkZTI4ZTllMjM0ZjQ0
ZTU1ZmQ5NGMyNy4uMWQ4ZDdkOWJlMDU1YjQ4NjYyYWQzMGUzMzcwN2YwMjdhZWVjNWViNSAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTE0MjgsNiArMTQy
OCwxMSBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZl
U3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICByZXR1cm4gcmVzdWx0Owog
ICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1l
LCAiQWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlIikpIHsKKyAgICAgICAgVGVzdENvbnRy
b2xsZXI6OnNpbmdsZXRvbigpLmFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSgpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldElEQlBlck9yaWdpblF1b3RhIikpIHsKICAgICAg
ICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS1VJbnQ2NEdldFR5cGVJRCgp
KTsKICAgICAgICAgV0tVSW50NjRSZWYgcXVvdGEgPSBzdGF0aWNfY2FzdDxXS1VJbnQ2NFJlZj4o
bWVzc2FnZUJvZHkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9U
ZXN0Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0
Q29udHJvbGxlckNvY29hLm1tCmluZGV4IDJjMWY2YTYzYzllNDllN2NjZTgxZGFjYjYwZGRhMmY4
ZjViMThhODMuLjM1Mjk3MmQwYTdjODQxM2MyYmI1NzA1M2IyOTc1ZTNhOWRmYzI1YTEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5t
bQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2Eu
bW0KQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS0Nvb2tpZU1hbmFnZXIuaD4K
ICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2Vi
S2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tTdG9yYWdlUXVv
dGFEZWxlZ2F0ZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1N0cmluZ0NGLmg+CiAjaW1w
b3J0IDxXZWJLaXQvV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV0tXZWJWaWV3Lmg+CkBAIC01MSwxMCArNTIsNDAgQEAKICNpbXBvcnQgPFdlYktpdC9f
V0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlUHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL01haW5U
aHJlYWQuaD4KIAorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworQGludGVyZmFjZSBDYWNoZVN0b3Jh
Z2VRdW90YU1hbmFnZXI6IE5TT2JqZWN0IDxXS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZT4g
eworQHB1YmxpYworICAgIEJPT0wgc2hvdWxkQWxsb3dSYWlzaW5nUXVvdGE7Cit9CistIChpbnN0
YW5jZXR5cGUpaW5pdDsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIENhY2hlU3RvcmFnZVF1b3Rh
TWFuYWdlciB7IH0KKy0gKGluc3RhbmNldHlwZSlpbml0Cit7CisgICAgc2hvdWxkQWxsb3dSYWlz
aW5nUXVvdGEgPSBmYWxzZTsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClfcmVxdWVz
dENhY2hlU3RvcmFnZVNwYWNlOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZU9yaWdpbjooTlNV
UkwgKilmcmFtZVVSTCBxdW90YTooTlNVSW50ZWdlcilxdW90YSBjdXJyZW50U2l6ZTooTlNVSW50
ZWdlciljdXJyZW50U2l6ZSBzcGFjZVJlcXVpcmVkOihOU1VJbnRlZ2VyKXNwYWNlUmVxdWlyZWQg
ZGVjaXNpb25IYW5kbGVyOih2b2lkICheKSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpKWRlY2lz
aW9uSGFuZGxlcgoreworICAgIGRlY2lzaW9uSGFuZGxlcihzaG91bGRBbGxvd1JhaXNpbmdRdW90
YSA/IDIgKiBxdW90YSA6IHF1b3RhKTsKK30KKworQGVuZAorCisjZW5kaWYKKwogbmFtZXNwYWNl
IFdUUiB7CiAKIHN0YXRpYyBXS1dlYlZpZXdDb25maWd1cmF0aW9uICpnbG9iYWxXZWJWaWV3Q29u
ZmlndXJhdGlvbjsKIAorI2lmIFdLX0FQSV9FTkFCTEVECitzdGF0aWMgQ2FjaGVTdG9yYWdlUXVv
dGFNYW5hZ2VyICpnbG9iYWxDYWNoZVN0b3JhZ2VRdW90YU1hbmFnZXI7CisjZW5kaWYKKwogdm9p
ZCBpbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24oY29uc3QgY2hhciogbGlicmFyeVBhdGgs
IFdLU3RyaW5nUmVmIGluamVjdGVkQnVuZGxlUGF0aCwgV0tDb250ZXh0UmVmIGNvbnRleHQsIFdL
Q29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29udGV4dENvbmZpZ3VyYXRpb24pCiB7CiAjaWYgV0tf
QVBJX0VOQUJMRUQKQEAgLTgwLDYgKzExMSwxMiBAQCB2b2lkIGluaXRpYWxpemVXZWJWaWV3Q29u
ZmlndXJhdGlvbihjb25zdCBjaGFyKiBsaWJyYXJ5UGF0aCwgV0tTdHJpbmdSZWYgaW5qZWN0ZQog
ICAgIFtnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlIF9zZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOwogICAgIFtnbG9iYWxXZWJWaWV3Q29uZmln
dXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlIF9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2V0U2hvdWxk
U3VibWl0VGVsZW1ldHJ5Ok5PXTsKIAorI2lmIFdLX0FQSV9FTkFCTEVECisgICAgW2dsb2JhbENh
Y2hlU3RvcmFnZVF1b3RhTWFuYWdlciByZWxlYXNlXTsKKyAgICBnbG9iYWxDYWNoZVN0b3JhZ2VR
dW90YU1hbmFnZXIgPSBbW0NhY2hlU3RvcmFnZVF1b3RhTWFuYWdlciBhbGxvY10gaW5pdF07Cisg
ICAgW2dsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgc2V0X3F1b3Rh
RGVsZWdhdGU6Z2xvYmFsQ2FjaGVTdG9yYWdlUXVvdGFNYW5hZ2VyXTsKKyNlbmRpZgorCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5hbGxv
d3NJbmxpbmVNZWRpYVBsYXliYWNrID0gWUVTOwogICAgIGdsb2JhbFdlYlZpZXdDb25maWd1cmF0
aW9uLl9pbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSA9IE5P
OwpAQCAtMjUyLDYgKzI4OSw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNvY29hUmVzZXRTdGF0
ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9uCiAgICAgICAgIGlm
IChvcHRpb25zLnNob3VsZFNob3dTcGVsbENoZWNraW5nRG90cykKICAgICAgICAgICAgIFtwbGF0
Zm9ybVZpZXcgdG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmc6bmlsXTsKICAgICB9CisKKyAg
ICBnbG9iYWxDYWNoZVN0b3JhZ2VRdW90YU1hbmFnZXItPnNob3VsZEFsbG93UmFpc2luZ1F1b3Rh
ID0gZmFsc2U7CiAjZW5kaWYKIH0KIApAQCAtMzg1LDQgKzQyNCwxMSBAQCBib29sIFRlc3RDb250
cm9sbGVyOjprZXlFeGlzdHNJbktleWNoYWluKGNvbnN0IFN0cmluZyYgYXR0ckxhYmVsLCBjb25z
dCBTdHJpbmcmCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjph
bGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UoKQoreworI2lmIFdLX0FQSV9FTkFCTEVECisg
ICAgZ2xvYmFsQ2FjaGVTdG9yYWdlUXVvdGFNYW5hZ2VyLT5zaG91bGRBbGxvd1JhaXNpbmdRdW90
YSA9IHRydWU7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTg1NjI1
NGY2YjUwMDU1MDVmOGExZGQzYzNjOTYxZTg3OTAxZDdjMS4uYWMwNTRhMjc2ZTMwODg5N2ExZGNj
NWM4Y2M2YmU0MzEzZTdhOGY0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTAxLTE3ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBuZXcgU1BJ
IHRvIHJlcXVlc3QgZm9yIGNhY2hlIHN0b3JhZ2UgcXVvdGEgaW5jcmVhc2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzMyMworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgdGVzdFJ1bm5lciBt
ZXRob2QgdG8gYnVtcCB0aGUgY2FjaGUgcXVvdGEgYW5kIHZlcmlmeSBhZGRpbmcgYQorICAgICAg
ICBjYWNoZSBlbnRyeSB3b3JrcyB3aGVuIGJ1bXBpbmcgdGhlIGNxY2hlIHF1b3RhLgorCisgICAg
ICAgICogaHR0cC93cHQvY2FjaGUtc3RvcmFnZS9jYWNoZS1xdW90YS5hbnkuanM6CisgICAgICAg
IChwcm9taXNlX3Rlc3QpOgorCiAyMDE5LTAxLTE2ICBBbGljaWEgQm95YSBHYXJjw61hICA8YWJv
eWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEdUSyBhbmQgV1BFIHRlc3QgZ2Fy
ZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY2FjaGUtc3RvcmFnZS9j
YWNoZS1xdW90YS5hbnkuanMgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jYWNoZS1zdG9yYWdlL2Nh
Y2hlLXF1b3RhLmFueS5qcwppbmRleCA1YTk0ZDViNzhmM2I2MzljYTcwZGNiZjEzZmYyODhhNWRi
MmUyMzkzLi5jYTI5MmRjOWI1NDliYzEzZTUzYzI2ZDllMjYxZTFmZjA2ODFiMDY1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jYWNoZS1zdG9yYWdlL2NhY2hlLXF1b3RhLmFueS5q
cworKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jYWNoZS1zdG9yYWdlL2NhY2hlLXF1b3RhLmFu
eS5qcwpAQCAtMTE0LDcgKzExNCw3IEBAIHByb21pc2VfdGVzdCgodGVzdCkgPT4gewogICAgICAg
ICByZXR1cm4gY2FjaGUucHV0KCIxa28tdjIiLCByZXNwb25zZTFrby5jbG9uZSgpKS50aGVuKGFz
c2VydF91bnJlYWNoZWQsIChlKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmFt
ZSwgIlF1b3RhRXhjZWVkZWRFcnJvciIpOwogICAgICAgICB9KTsKLSAgIH0pLnRoZW4oKCkgPT4g
eworICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICByZXR1cm4gY2FjaGUuZGVsZXRlKCIxa28t
djEiKTsKICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgcmV0dXJuIGNhY2hlLnB1dCgiMWtv
LXYyIiwgcmVzcG9uc2Uxa28uY2xvbmUoKSk7CkBAIC0xNTEsNiArMTUxLDkgQEAgcHJvbWlzZV90
ZXN0KCh0ZXN0KSA9PiB7CiAgICAgICAgIHJldHVybiBjYWNoZS5wdXQoIjFrbyIsIHJlc3BvbnNl
MWtvLmNsb25lKCkpLnRoZW4oYXNzZXJ0X3VucmVhY2hlZCwgKGUpID0+IHsKICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS5uYW1lLCAiUXVvdGFFeGNlZWRlZEVycm9yIik7CiAgICAgICAgIH0p
OworICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICB0ZXN0UnVubmVyLmFsbG93Q2FjaGVTdG9y
YWdlUXVvdGFJbmNyZWFzZSgpOworICAgICAgICByZXR1cm4gY2FjaGUucHV0KCIxa28iLCByZXNw
b25zZTFrby5jbG9uZSgpKTsKICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICByZXR1cm4gY2Fj
aGUuZGVsZXRlKCIxa28tcGFkZGVkLXRvLTIwMGtvIik7CiAgICAgfSkudGhlbigoKSA9PiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359394</attachid>
            <date>2019-01-17 11:17:21 -0800</date>
            <delta_ts>2019-01-17 12:03:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193323-20190117111720.patch</filename>
            <type>text/plain</type>
            <size>30678</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0OTJmOGFmMjdmOGUxODQ5
ODI2NDk1YTMwZjY4MzkzYjg3ZmYyMDAuLjM2NDQ5MGI1MDRjZWNkNWI0ZmFmMzc1MTlkNWZlMzAz
YzdlMmM5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTktMDEtMTcgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgdG8gcmVx
dWVzdCBmb3IgY2FjaGUgc3RvcmFnZSBxdW90YSBpbmNyZWFzZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMzIzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgZGVsZWdhdGUgb24gdGhlIFdlYlNp
dGVEYXRhU3RvcmUgZm9yIFdlYktpdCB0byBhc2sgZm9yIHF1b3RhIHVwZGF0ZS4KKyAgICAgICAg
VGhlIGN1cnJlbnQgU1BJIGlzIGN1cnJlbnRseSBDYWNoZVN0b3JhZ2Ugc3BlY2lmaWMgYnV0IGZ1
dHVyZSB3b3JrIHNob3VsZAorICAgICAgICBtYWtlIGl0IHNvIHRoYXQgb3RoZXIgc3RvcmFnZSBs
aWtlIElEQiB1c2UgdGhlIHNhbWUgbWVjaGFuaXNtLgorICAgICAgICBCeSBkZWZhdWx0LCBxdW90
YSByZW1haW5zIHVuY2hhbmdlZCBpZiBkZWxlZ2F0ZSBpcyBub3QgaW1wbGVtZW50ZWQuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAg
ICAgICAgKFdlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXI6OldlYnNpdGVEYXRhU3RvcmVRdW90
YU1hbmFnZXIpOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX3F1b3RhRGVsZWdhdGVd
KToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIHNldF9xdW90YURlbGVnYXRlOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdENhY2hlU3Rv
cmFnZVNwYWNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRh
U3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnF1b3RhTWFuYWdlcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFF1b3RhTWFuYWdlcik6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIu
aDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXI6
On5XZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZVF1b3RhTWFuYWdlcjo6cmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlKToKKyAgICAg
ICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wMS0xNiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgbmV3IFNQSSBm
b3IgY29udHJvbGxpbmcgZ2V0VXNlck1lZGlhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tTdG9yYWdlUXVvdGFEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjkyZTFmMGNmNDJmYTc4NjZmNDhkYTdkNzgxMDI3MTY0MWYyMWFjNDcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tT
dG9yYWdlUXVvdGFEZWxlZ2F0ZVByaXZhdGUuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQK
KworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKK0Bwcm90b2NvbCBXS1N0b3Jh
Z2VRdW90YURlbGVnYXRlUHJpdmF0ZSA8TlNPYmplY3Q+CisKK0BvcHRpb25hbAorCistICh2b2lk
KV9yZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2U6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lT3Jp
Z2luOihOU1VSTCAqKWZyYW1lVVJMIHF1b3RhOihOU1VJbnRlZ2VyKXF1b3RhIGN1cnJlbnRTaXpl
OihOU1VJbnRlZ2VyKWN1cnJlbnRTaXplIHNwYWNlUmVxdWlyZWQ6KE5TVUludGVnZXIpc3BhY2VS
ZXF1aXJlZCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90
YSkpZGVjaXNpb25IYW5kbGVyOworCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXgg
MmQxNjBlYTNiMTI4OGZlODRkYzFkODI5M2MwYTMyODM4MWZlYjI2YS4uZGMwYTcxOTliYjRhYzA3
YTE5OGYxN2ZhNTM4ODViZDg5ZWI5YmYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC0yOSw4ICsyOSwx
MCBAQAogI2lmIFdLX0FQSV9FTkFCTEVECiAKICNpbXBvcnQgIkFQSVN0cmluZy5oIgorI2ltcG9y
dCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIgogI2ltcG9ydCAiV0tIVFRQQ29va2ll
U3RvcmVJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tOU0FycmF5LmgiCisjaW1wb3J0ICJXS1N0b3Jh
Z2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oIgogI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwuaCIK
ICNpbXBvcnQgIldLV2Vic2l0ZURhdGFSZWNvcmRJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViUGFn
ZVByb3h5LmgiCkBAIC00Miw2ICs0NCw0MCBAQAogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAj
aW1wb3J0IDx3dGYvVVJMLmg+CiAKK2NsYXNzIFdlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIg
OiBwdWJsaWMgV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyIHsKK3B1YmxpYzoK
KyAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyKGlkIDxXS1N0b3JhZ2VR
dW90YURlbGVnYXRlUHJpdmF0ZT4gZGVsZWdhdGUpCisgICAgICAgIDogbV9xdW90YURlbGVnYXRl
KGRlbGVnYXRlKQorICAgICAgICAsIG1faGFzUmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlU2VsZWN0
b3IoW21fcXVvdGFEZWxlZ2F0ZS5nZXQoKSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9y
ZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2U6IGZyYW1lT3JpZ2luOiBxdW90YTogY3VycmVudFNpemU6
IHNwYWNlUmVxdWlyZWQ6IGRlY2lzaW9uSGFuZGxlcjopXSkKKyAgICB7CisgICAgfQorCitwcml2
YXRlOgorICAgIHZvaWQgcmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlKGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIGZyYW1lT3JpZ2luLCB1aW50NjRfdCBxdW90YSwgdWludDY0X3QgY3VycmVudFNpemUs
IHVpbnQ2NF90IHNwYWNlUmVxdWlyZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
dWludDY0X3Q+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKKyAgICB7CisgICAgICAgIGlm
ICghbV9oYXNSZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2VTZWxlY3RvcikgeworICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIGF1dG8gY2hlY2tlciA9IFdlYktpdDo6Q29tcGxldGlvbkhhbmRsZXJDYWxsQ2hl
Y2tlcjo6Y3JlYXRlKG1fcXVvdGFEZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKF9yZXF1ZXN0Q2Fj
aGVTdG9yYWdlU3BhY2U6IGZyYW1lT3JpZ2luOiBxdW90YTogY3VycmVudFNpemU6IHNwYWNlUmVx
dWlyZWQ6IGRlY2lzaW9uSGFuZGxlcjopKTsKKyAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIg
PSBtYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXSh1bnNpZ25lZCBsb25nIGxvbmcgcXVv
dGEpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVy
SGFzQmVlbkNhbGxlZCgpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGNo
ZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIocXVvdGEpOworICAgICAgICB9KTsKKworICAgICAgICBVUkwgbWFpbkZyYW1lVVJM
IHsgVVJMKCksIHRvcE9yaWdpbi50b1N0cmluZygpIH07CisgICAgICAgIFVSTCBmcmFtZVVSTCB7
IFVSTCgpLCBmcmFtZU9yaWdpbi50b1N0cmluZygpIH07CisKKyAgICAgICAgW21fcXVvdGFEZWxl
Z2F0ZS5nZXQoKSBfcmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlOm1haW5GcmFtZVVSTCBmcmFtZU9y
aWdpbjpmcmFtZVVSTCBxdW90YTpxdW90YSBjdXJyZW50U2l6ZTpjdXJyZW50U2l6ZSBzcGFjZVJl
cXVpcmVkOnNwYWNlUmVxdWlyZWQgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQo
KV07CisgICAgfQorCisgICAgUmV0YWluUHRyPGlkIDxXS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJp
dmF0ZT4gPiBtX3F1b3RhRGVsZWdhdGU7CisgICAgYm9vbCBtX2hhc1JlcXVlc3RDYWNoZVN0b3Jh
Z2VTcGFjZVNlbGVjdG9yIHsgZmFsc2UgfTsKK307CisKIEBpbXBsZW1lbnRhdGlvbiBXS1dlYnNp
dGVEYXRhU3RvcmUKIAogKyAoV0tXZWJzaXRlRGF0YVN0b3JlICopZGVmYXVsdERhdGFTdG9yZQpA
QCAtMzgzLDYgKzQxOSwxNyBAQCAtIChib29sKV9oYXNSZWdpc3RlcmVkU2VydmljZVdvcmtlcgog
ICAgIHJldHVybiBXZWJLaXQ6OlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6Omhhc1JlZ2lzdGVy
ZWRTZXJ2aWNlV29ya2Vycyhfd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpLnNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoKSk7CiB9CiAKKy0gKGlkIDxXS1N0b3Jh
Z2VRdW90YURlbGVnYXRlUHJpdmF0ZT4pX3F1b3RhRGVsZWdhdGUKK3sKKyAgICByZXR1cm4gX3F1
b3RhRGVsZWdhdGUuZ2V0KCk7Cit9CisKKy0gKHZvaWQpc2V0X3F1b3RhRGVsZWdhdGU6KGlkIDxX
S1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZT4pcXVvdGFEZWxlZ2F0ZQoreworICAgIF9xdW90
YURlbGVnYXRlID0gcXVvdGFEZWxlZ2F0ZTsKKyAgICBfd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0
ZURhdGFTdG9yZSgpLnNldFF1b3RhTWFuYWdlcihtYWtlVW5pcXVlUmVmPFdlYnNpdGVEYXRhU3Rv
cmVRdW90YU1hbmFnZXI+KHF1b3RhRGVsZWdhdGUpKTsKK30KKwogQGVuZAogCiAjZW5kaWYgLy8g
V0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgKaW5kZXggZDg2MTg3NTI3
M2JhN2RmNjdlMjg2NmQxNDU1Yjk2YjdmM2RjNDdmNi4uZTMxZjNiNjdmYjM4OTBiOTJlM2NiOTJh
NTA2YTFlZTkyMTE4NDQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgKQEAgLTQxLDYg
KzQxLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgV3JhcHBlclRyYWl0czxBUEk6OldlYnNpdGVEYXRh
U3RvcmU+IHsKIEBpbnRlcmZhY2UgV0tXZWJzaXRlRGF0YVN0b3JlICgpIDxXS09iamVjdD4gewog
QHBhY2thZ2UKICAgICBBUEk6Ok9iamVjdFN0b3JhZ2U8QVBJOjpXZWJzaXRlRGF0YVN0b3JlPiBf
d2Vic2l0ZURhdGFTdG9yZTsKKyAgICBSZXRhaW5QdHI8aWQgPFdLU3RvcmFnZVF1b3RhRGVsZWdh
dGVQcml2YXRlPiA+IF9xdW90YURlbGVnYXRlOwogfQogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVBy
aXZhdGUuaAppbmRleCA3NGE4YTAyZjJmMWQ5ZWU5NWM5N2FmOWE5NmUzYzYwMTMxOTIwMTYxLi5h
ZDA0Y2U4OGE5YjQ0NWEyMDQ4MTc4YmQ5NTFlN2RhMGEyYTYxNjYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3Rv
cmVQcml2YXRlLmgKQEAgLTMyLDYgKzMyLDggQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIEBj
bGFzcyBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjsKIEBjbGFzcyBXS1dlYlZpZXc7
CiAKK0Bwcm90b2NvbCBXS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZTsKKwogdHlwZWRlZiBO
U19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9wdGlvbnMpIHsK
ICAgICBfV0tXZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25Db21wdXRlU2l6ZXMgPSAxIDw8IDAs
CiB9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKQEAgLTYyLDYg
KzY0LDkgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3Rv
cmVGZXRjaE9wdGlvbnMpIHsKICsgKHZvaWQpX2FsbG93V2Vic2l0ZURhdGFSZWNvcmRzRm9yQWxs
T3JpZ2lucyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKIC0g
KGJvb2wpX2hhc1JlZ2lzdGVyZWRTZXJ2aWNlV29ya2VyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjE0KSwgaW9zKDEyLjApKTsKIAorLyohIEBhYnN0cmFjdCBUaGUgc3RvcmFnZSBxdW90YSBk
ZWxlZ2F0ZS4gKi8KK0Bwcm9wZXJ0eSAobnVsbGFibGUsIG5vbmF0b21pYywgd2VhaykgaWQgPFdL
U3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRlPiBfcXVvdGFEZWxlZ2F0ZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogQGVuZAogCiBOU19B
U1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDYwMGMwYmMzOWFlYzM5MjY5YThk
ZmVkOWY1YWVjZTkwZTM0MjI0YjkuLjU2OGYzYTlhOGQ3ZDA2ODc3N2JhYjcwMzlkNzE5MjkyMmIz
NGU2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtNDMsNiArNDMsOCBAQAogI2luY2x1ZGUgIldlYlBy
b2Nlc3NQb29sLmgiCiAjaW5jbHVkZSAiV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaCIK
ICNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVRdW90
YU1hbmFnZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudE9yaWdpbi5oPgogI2luY2x1ZGUg
PHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCiAjaWYgRU5BQkxFKFNFQ19JVEVNX1NISU0pCkBA
IC03NDMsOCArNzQ1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0Q2FjaGVT
dG9yYWdlU3BhY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb24KICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBBc2sgV2Vic2l0ZURhdGFTdG9yZSBhYm91dCB1cGRh
dGluZyB0aGUgcXVvdGEgZm9yIHRoaXMgb3JpZ2luLgotICAgIGNvbXBsZXRpb25IYW5kbGVyKHF1
b3RhKTsKKyAgICBzdG9yZS0+cXVvdGFNYW5hZ2VyKCkucmVxdWVzdENhY2hlU3RvcmFnZVNwYWNl
KG9yaWdpbi50b3BPcmlnaW4sIG9yaWdpbi5jbGllbnRPcmlnaW4sIHF1b3RhLCBjdXJyZW50U2l6
ZSwgc3BhY2VSZXF1aXJlZCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMGFhYmJlNDhkYjEzNWQ4NmJm
Mjg0YjA1NTQyMTQzYTE3YmQ4ZTlhMC4uYmEyMTYzYWE2MzgzN2FmNzBiNjI2ZTgxNWE0M2FjZGI1
YWEwMjQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYnNp
dGVEYXRhLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKKyNpbmNs
dWRlICJXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9B
cHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGF0YWJhc2VUcmFj
a2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CkBAIC05Nyw2ICs5OCw3IEBA
IFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoUmVmPFdlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uPiYmIGNvbmZpZ3VyCiAjaWYgRU5BQkxFKFdFQl9BVVRITikKICAgICAsIG1f
YXV0aGVudGljYXRvck1hbmFnZXIobWFrZVVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yTWFuYWdlcj4o
KSkKICNlbmRpZgorICAgICwgbV9xdW90YU1hbmFnZXIobWFrZVVuaXF1ZVJlZjxXZWJzaXRlRGF0
YVN0b3JlUXVvdGFNYW5hZ2VyPigpKQogewogICAgIFdURjo6c2V0UHJvY2Vzc1ByaXZpbGVnZXMo
YWxsUHJpdmlsZWdlcygpKTsKICAgICBtYXliZVJlZ2lzdGVyV2l0aFNlc3Npb25JRE1hcCgpOwpA
QCAtMTE0LDYgKzExNiw3IEBAIFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAgICAgLCBtX2F1
dGhlbnRpY2F0b3JNYW5hZ2VyKG1ha2VVbmlxdWVSZWY8QXV0aGVudGljYXRvck1hbmFnZXI+KCkp
CiAjZW5kaWYKKyAgICAsIG1fcXVvdGFNYW5hZ2VyKG1ha2VVbmlxdWVSZWY8V2Vic2l0ZURhdGFT
dG9yZVF1b3RhTWFuYWdlcj4oKSkKIHsKICAgICBtYXliZVJlZ2lzdGVyV2l0aFNlc3Npb25JRE1h
cCgpOwogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDkxMmQ4ZTQ3
NWNkNmEyMTc5OTlhMDkwMTc4ZWI2NThmYzIxNzljNjkuLmI0YWU1NWNjZmEzZmJhZmNjZDhmZGMx
ODY4NjFhNThhOGU3OTQ1MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNs
dWRlICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYlBy
b2Nlc3NMaWZldGltZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3Jp
Z2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5IYXNoLmg+CkBAIC01
OCw2ICs1OSw3IEBAIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IGNsYXNzIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOworY2xhc3MgV2Vic2l0ZURhdGFTdG9yZVF1b3Rh
TWFuYWdlcjsKIGNsYXNzIFNlY0tleVByb3h5U3RvcmU7CiBjbGFzcyBTdG9yYWdlTWFuYWdlcjsK
IGNsYXNzIERldmljZUlkSGFzaFNhbHRTdG9yYWdlOwpAQCAtMTg4LDYgKzE5MCw5IEBAIHB1Ymxp
YzoKIAogICAgIGNvbnN0IFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uJiBjb25maWd1cmF0
aW9uKCkgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmdldCgpOyB9CiAKKyAgICBXZWJzaXRlRGF0
YVN0b3JlUXVvdGFNYW5hZ2VyJiBxdW90YU1hbmFnZXIoKSB7IHJldHVybiBtX3F1b3RhTWFuYWdl
ci5nZXQoKTsgfQorICAgIHZvaWQgc2V0UXVvdGFNYW5hZ2VyKFVuaXF1ZVJlZjxXZWJzaXRlRGF0
YVN0b3JlUXVvdGFNYW5hZ2VyPiYmIG1hbmFnZXIpIHsgbV9xdW90YU1hbmFnZXIgPSBXVEZNb3Zl
KG1hbmFnZXIpOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2Vic2l0ZURhdGFTdG9yZShQ
QUw6OlNlc3Npb25JRCk7CiAgICAgZXhwbGljaXQgV2Vic2l0ZURhdGFTdG9yZShSZWY8V2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+JiYsIFBBTDo6U2Vzc2lvbklEKTsKQEAgLTI1Niw2ICsy
NjEsOCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAgICAgVW5pcXVlUmVmPEF1
dGhlbnRpY2F0b3JNYW5hZ2VyPiBtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyOwogI2VuZGlmCisKKyAg
ICBVbmlxdWVSZWY8V2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdlcj4gbV9xdW90YU1hbmFnZXI7
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjA0YWI0YTdjZjYyY2JmOGJkODI0ZWE1ZDBiNmY1YmJkZjE4ZWU0YgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVR
dW90YU1hbmFnZXIuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIgeworcHVibGljOgorICAgIHZp
cnR1YWwgfldlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIoKSB7IH0KKworICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2UoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJh
bWVPcmlnaW4sIHVpbnQ2NF90IHF1b3RhLCB1aW50NjRfdCBjdXJyZW50U2l6ZSwgdWludDY0X3Qg
c3BhY2VSZXF1aXJlZCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPHVpbnQ2
NF90Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgeworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcih7IH0pOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTcxNDFlODM3
YzUyYmNkZTBkNTQyOTM3MTMxOWY5OGI4NzFjNTNkZi4uMmMzYTc2YTJkMGFmNDA3Yjg4NmRhZTEz
M2JkZDMxMmVhMmY2ZjNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC04NTksNiArODU5LDcgQEAKIAkJNDExMkVEREUyMEU0MDdBNTAw
QkVBOTJBIC8qIGNvbS5jZmNhLm5wU2VjRWRpdEN0bC5NQUMuQk9DLnBsdWdpbi5zYiBpbiBDb3B5
IFBsdWctaW4gU2FuZGJveCBQcm9maWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTEyRUREMzIwRTQwNzc0MDBCRUE5MkEgLyogY29tLmNmY2EubnBTZWNFZGl0Q3RsLk1B
Qy5CT0MucGx1Z2luLnNiICovOyB9OwogCQk0MTEyRURERjIwRTQwN0E1MDBCRUE5MkEgLyogY29t
LmNtYmNoaW5hLkNNQlNlY3VyaXR5LnNiIGluIENvcHkgUGx1Zy1pbiBTYW5kYm94IFByb2ZpbGVz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTJFREQ1MjBFNDA3NzQwMEJF
QTkyQSAvKiBjb20uY21iY2hpbmEuQ01CU2VjdXJpdHkuc2IgKi87IH07CiAJCTQxMTJFREUwMjBF
NDA3QTUwMEJFQTkyQSAvKiBjb20uZnRzYWZlLk5QQVBJLUNvcmUtU2FmZS1Tb2Z0S2V5YmFvcmQu
cGx1Z2luLnJmYzEwMzRpZGVudGlmaWVyLnNiIGluIENvcHkgUGx1Zy1pbiBTYW5kYm94IFByb2Zp
bGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTJFREQyMjBFNDA3NzMw
MEJFQTkyQSAvKiBjb20uZnRzYWZlLk5QQVBJLUNvcmUtU2FmZS1Tb2Z0S2V5YmFvcmQucGx1Z2lu
LnJmYzEwMzRpZGVudGlmaWVyLnNiICovOyB9OworCQk0MTE4REMxRjIxRTdCRjVEMDBERTA0Qzcg
LyogV0tTdG9yYWdlUXVvdGFEZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMThEQzFEMjFFNkREMjcwMERFMDRDNyAvKiBXS1N0
b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTQxMUE4RERCMjBEREQxQUMwMDYwRDM0RiAvKiBXS01vY2tN
ZWRpYURldmljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDExQThERDkyMEREQjYwNTAwNjBEMzRGIC8qIFdLTW9ja01lZGlhRGV2aWNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDExQjIyNjQxRTM3
MUJBNjAwNEY3MzYzIC8qIExpYldlYlJUQ05ldHdvcmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMUIyMjYyMUUzNzEyNDQwMDRGNzM2MyAvKiBMaWJX
ZWJSVENOZXR3b3JrLmggKi87IH07CiAJCTQxMzA3NUFCMURFODVGMzMwMDM5RUM2OSAvKiBOZXR3
b3JrUlRDU29ja2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTMwNzU5OTFERTg0RkIwMDAzOUVDNjkgLyogTmV0d29ya1JUQ1NvY2tldC5oICovOyB9
OwpAQCAtMjk4OSw2ICsyOTkwLDggQEAKIAkJNDExMkVERDcyMEU0MDc3NTAwQkVBOTJBIC8qIGNv
bS5hcHBsZS5OUFNhZmVTdWJtaXQuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxl
Lk5QU2FmZVN1Ym1pdC5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMkVERDgy
MEU0MDc3NTAwQkVBOTJBIC8qIGNvbS5hcHBsZS5OUFNhZmVJbnB1dC5zYiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBjb20uYXBwbGUuTlBTYWZlSW5wdXQuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxMTJFREQ5MjBFNDA3NzUwMEJFQTkyQSAvKiBjb20uYXBwbGUuQm9jb21TdWJt
aXRDdHJsLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5Cb2NvbVN1Ym1pdEN0
cmwuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMThEQzFCMjFFNkQxMUEwMERF
MDRDNyAvKiBXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDExOERDMUQyMUU2REQyNzAwREUwNEM3IC8qIFdLU3RvcmFn
ZVF1b3RhRGVsZWdhdGVQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxMUE4REQ5MjBEREI2MDUwMDYwRDM0RiAvKiBXS01vY2tNZWRpYURldmljZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS01vY2tNZWRpYURldmljZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTFBOEREQTIwRERCNjA1MDA2MEQzNEYgLyogV0tN
b2NrTWVkaWFEZXZpY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V0tNb2NrTWVkaWFEZXZpY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTFC
MjI2MjFFMzcxMjQ0MDA0RjczNjMgLyogTGliV2ViUlRDTmV0d29yay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENOZXR3b3JrLmg7IHBhdGggPSBOZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02
MTMzLDYgKzYxMzYsNyBAQAogCQkJCTUxQ0QxQzYxMUIzNEI5QzkwMDE0MkNBNSAvKiBXS1NlY3Vy
aXR5T3JpZ2luSW50ZXJuYWwuaCAqLywKIAkJCQk5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyog
V0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcy
MzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW0gKi8sCisJCQkJNDExOERDMUQyMUU2REQy
NzAwREUwNEM3IC8qIFdLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRlLmggKi8sCiAJCQkJMUFE
ODc5MDkxOEI2QzM4QTAwNkNBRkQ3IC8qIFdLVUlEZWxlZ2F0ZS5oICovLAogCQkJCTM3NDM5MjU3
MThCQzRDNjAwMDFDODY3NSAvKiBXS1VJRGVsZWdhdGVQcml2YXRlLmggKi8sCiAJCQkJNTFEMTI0
MkQxRTZERERENzAwMkIyODIwIC8qIFdLVVJMU2NoZW1lSGFuZGxlci5oICovLApAQCAtOTgzMSw2
ICs5ODM1LDcgQEAKIAkJCQk1MTNFNDYyRDFBRDgzNzU2MDAxNjIzNEEgLyogV0tTaGFyaW5nU2Vy
dmljZVBpY2tlckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y1NDlCNDFFMzE3NEI3
MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxMThEQzFGMjFFN0JGNUQwMERFMDRDNyAvKiBXS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDExOERDMUYyMUU3QkY1RDAwREUwNEM3IC8qIFdLU3Rv
cmFnZVF1b3RhRGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYwNjEy
NEZGMDI3MDA2OEYyMEEgLyogV0tTdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjFB
MTI0RkYwMzcwMDY4RjIwQSAvKiBXS1N0cmluZ0NGLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzkw
OTk4MDEyNTZBOTgyMDAwODM3NTYgLyogV0tTdHJpbmdQcml2YXRlLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhYmJl
NGMxZGMxNDhjNjBiOTY3ZDE4MmY4NGQzNmE3OTFhODhiZDkxLi4yZjI2MzZiYTY4YTA2NzIyNDI0
YzNhYjhkMjc2NzUxMDk0ODUwODNiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTktMDEtMTcgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgdG8gcmVxdWVz
dCBmb3IgY2FjaGUgc3RvcmFnZSBxdW90YSBpbmNyZWFzZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFdlYnNpdGVEYXRhU3RvcmUgcXVv
dGEgZGVsZWdhdGUgdG8gaGFuZGxlIHF1b3RhIHJlcXVlc3RzLgorICAgICAgICBCeSBkZWZhdWx0
LCBkbyBub3QgdXBkYXRlIHF1b3RhLgorICAgICAgICBVcGRhdGUgcXVvdGEgaWYgdGVzdCBjYWxs
cyB0aGUgbmV3IHRlc3RSdW5uZXIuYWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlIG1ldGhv
ZC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6YWxsb3dDYWNoZVN0
b3JhZ2VRdW90YUluY3JlYXNlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmFsbG93Q2FjaGVTdG9y
YWdlUXVvdGFJbmNyZWFzZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgor
ICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2Fn
ZUZyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9U
ZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoLVtDYWNoZVN0b3JhZ2VRdW90YU1hbmFn
ZXIgaW5pdF0pOgorICAgICAgICAoLVtDYWNoZVN0b3JhZ2VRdW90YU1hbmFnZXIgX3JlcXVlc3RD
YWNoZVN0b3JhZ2VTcGFjZTpmcmFtZU9yaWdpbjpxdW90YTpjdXJyZW50U2l6ZTpzcGFjZVJlcXVp
cmVkOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKFdUUjo6aW5pdGlhbGl6ZVdlYlZpZXdD
b25maWd1cmF0aW9uKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNvY29hUmVzZXRT
dGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjph
bGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UpOgorCiAyMDE5LTAxLTE3ICBaYWxhbiBCdWp0
YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bQkZDXSBBbiBlbGVtZW50IHdp
dGggdHJhbnNmb3JtIGlzIGEgY29udGFpbmluZyBibG9jayBmb3IgcG9zaXRpb25lZCBkZXNjZW5k
YW50cy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IDY3ZmM5M2U5MTYyMmJkZDMzMzE4
NWM3ZjZiMjA4YTM5ZmVlNDQ1MTYuLmYxNTU1MGY1MzBlZDBmM2Q1MTk0NzgwMjI2OTUyMDFlOTAy
Y2JhYjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtNjIsNiArNjIsNyBAQCBpbnRl
cmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdm9pZCBjbGVhckRPTUNhY2hlKERPTVN0cmluZyBvcmln
aW4pOwogICAgIGJvb2xlYW4gaGFzRE9NQ2FjaGUoRE9NU3RyaW5nIG9yaWdpbik7CiAgICAgdW5z
aWduZWQgbG9uZyBkb21DYWNoZVNpemUoRE9NU3RyaW5nIG9yaWdpbik7CisgICAgdm9pZCBhbGxv
d0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UoKTsKIAogICAgIC8vIFNwZWNpYWwgb3B0aW9ucy4K
ICAgICB2b2lkIGtlZXBXZWJIaXN0b3J5KCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBmOTdhZTQ3YjhkNWZiMmVh
ZDFiZTRmOTU5N2UxNTY4Zjc2ZGYwMTZhLi5kN2E5ZDI0ODI5ZGY4Yjc0YWQ4YmNkOTFkZGQ5NjA5
NGIyY2U1ODUwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTIzNjcsNiArMjM2NywxMiBAQCB1aW50NjRfdCBUZXN0
UnVubmVyOjpkb21DYWNoZVNpemUoSlNTdHJpbmdSZWYgb3JpZ2luKQogICAgIHJldHVybiBXS1VJ
bnQ2NEdldFZhbHVlKHN0YXRpY19jYXN0PFdLVUludDY0UmVmPihyZXR1cm5EYXRhKSk7CiB9CiAK
K3ZvaWQgVGVzdFJ1bm5lcjo6YWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlKCkKK3sKKyAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIkFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSIpKTsK
KyAgICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmds
ZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0cik7Cit9
CisKIHZvaWQgVGVzdFJ1bm5lcjo6Z2V0QXBwbGljYXRpb25NYW5pZmVzdFRoZW4oSlNWYWx1ZVJl
ZiBjYWxsYmFjaykKIHsKICAgICBjYWNoZVRlc3RSdW5uZXJDYWxsYmFjayhHZXRBcHBsaWNhdGlv
bk1hbmlmZXN0Q2FsbGJhY2tJRCwgY2FsbGJhY2spOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCAyMjE0ZDc3YjhjMzk3OWE0
N2M1ZThlZGFhNWQzMjcxMmQxNDM0MWQ5Li5hNDAxOTk5ZjQxMmU5YmQzOTMyYWI4MWM4NGI3Nzcz
ZDVkZjA3M2YzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuaApAQCAtMTc1LDYgKzE3NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNs
ZWFyRE9NQ2FjaGVzKCk7CiAgICAgYm9vbCBoYXNET01DYWNoZShKU1N0cmluZ1JlZiBvcmlnaW4p
OwogICAgIHVpbnQ2NF90IGRvbUNhY2hlU2l6ZShKU1N0cmluZ1JlZiBvcmlnaW4pOworICAgIHZv
aWQgYWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlKCk7CiAKICAgICAvLyBJbmRleGVkREIK
ICAgICB2b2lkIHNldElEQlBlck9yaWdpblF1b3RhKHVpbnQ2NF90KTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggN2M4OGUwMDI3ZjNkNzUwYmU2MTU2NzIz
MmE4ODFhZGNkZmI0ZGRhOC4uN2NiN2Y1Y2Q5ZTg1ZDU3ZjYzNGE3MGI0MTE3ZjU3ZjM0ODU1OGQ3
NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTI4MzAs
NiArMjgzMCwxMyBAQCB1aW50NjRfdCBUZXN0Q29udHJvbGxlcjo6ZG9tQ2FjaGVTaXplKFdLU3Ry
aW5nUmVmIG9yaWdpbikKICAgICByZXR1cm4gY29udGV4dC5yZXN1bHQ7CiB9CiAKKyNpZiAhUExB
VEZPUk0oQ09DT0EpCit2b2lkIFRlc3RDb250cm9sbGVyOjphbGxvd0NhY2hlU3RvcmFnZVF1b3Rh
SW5jcmVhc2UoKQoreworICAgIC8vIEZJWE1FOiBUbyBpbXBsZW1lbnQuCit9CisjZW5kaWYKKwog
c3RydWN0IFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCB7CiAgICAgZXhwbGljaXQg
UmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0KFRlc3RDb250cm9sbGVyJiBjb250cm9s
bGVyKQogICAgICAgICA6IHRlc3RDb250cm9sbGVyKGNvbnRyb2xsZXIpCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggMTNhMzljNjkwNWYwZDg3YmE4N2I5ZGI1N2Y4
ZGFkNWMxN2FjNzFiYy4uMTQyNWNiZmQ1MWE3NjA0YWUxMGM1Nzk0NDU1N2FhMDZhMjBlYWM4MCAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMjQ4LDYgKzI0OCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyRE9NQ2FjaGVzKCk7CiAgICAgYm9vbCBoYXNET01D
YWNoZShXS1N0cmluZ1JlZiBvcmlnaW4pOwogICAgIHVpbnQ2NF90IGRvbUNhY2hlU2l6ZShXS1N0
cmluZ1JlZiBvcmlnaW4pOworICAgIHZvaWQgYWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNl
KCk7CiAKICAgICB2b2lkIHNldElEQlBlck9yaWdpblF1b3RhKHVpbnQ2NF90KTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCAwYzZjODc3ZmYxZGFiNzU1
YWRlMjhlOWUyMzRmNDRlNTVmZDk0YzI3Li4xZDhkN2Q5YmUwNTViNDg2NjJhZDMwZTMzNzA3ZjAy
N2FlZWM1ZWI1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApA
QCAtMTQyOCw2ICsxNDI4LDExIEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRp
b246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQogCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJp
bmcobWVzc2FnZU5hbWUsICJBbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UiKSkgeworICAg
ICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuYWxsb3dDYWNoZVN0b3JhZ2VRdW90YUlu
Y3JlYXNlKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwogICAgIGlmIChXS1N0
cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0SURCUGVyT3JpZ2luUXVv
dGEiKSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLVUlu
dDY0R2V0VHlwZUlEKCkpOwogICAgICAgICBXS1VJbnQ2NFJlZiBxdW90YSA9IHN0YXRpY19jYXN0
PFdLVUludDY0UmVmPihtZXNzYWdlQm9keSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KaW5kZXggMmMxZjZhNjNjOWU0OWU3Y2Nl
ODFkYWNiNjBkZGEyZjhmNWIxOGE4My4uMzUyOTcyZDBhN2M4NDEzYzJiYjU3MDUzYjI5NzVlM2E5
ZGZjMjVhMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29u
dHJvbGxlckNvY29hLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENv
bnRyb2xsZXJDb2NvYS5tbQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLQ29v
a2llTWFuYWdlci5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmg+
CiAjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktp
dC9XS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLU3Ry
aW5nQ0YuaD4KICNpbXBvcnQgPFdlYktpdC9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUu
aD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXcuaD4KQEAgLTUxLDEwICs1Miw0MCBAQAogI2lt
cG9ydCA8V2ViS2l0L19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVQcml2YXRlLmg+CiAjaW1w
b3J0IDx3dGYvTWFpblRocmVhZC5oPgogCisKKyNpZiBXS19BUElfRU5BQkxFRAorCitAaW50ZXJm
YWNlIENhY2hlU3RvcmFnZVF1b3RhTWFuYWdlcjogTlNPYmplY3QgPFdLU3RvcmFnZVF1b3RhRGVs
ZWdhdGVQcml2YXRlPiB7CitAcHVibGljCisgICAgQk9PTCBzaG91bGRBbGxvd1JhaXNpbmdRdW90
YTsKK30KKy0gKGluc3RhbmNldHlwZSlpbml0OworQGVuZAorCitAaW1wbGVtZW50YXRpb24gQ2Fj
aGVTdG9yYWdlUXVvdGFNYW5hZ2VyIHsgfQorLSAoaW5zdGFuY2V0eXBlKWluaXQKK3sKKyAgICBz
aG91bGRBbGxvd1JhaXNpbmdRdW90YSA9IGZhbHNlOworICAgIHJldHVybiBzZWxmOworfQorCist
ICh2b2lkKV9yZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2U6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZy
YW1lT3JpZ2luOihOU1VSTCAqKWZyYW1lVVJMIHF1b3RhOihOU1VJbnRlZ2VyKXF1b3RhIGN1cnJl
bnRTaXplOihOU1VJbnRlZ2VyKWN1cnJlbnRTaXplIHNwYWNlUmVxdWlyZWQ6KE5TVUludGVnZXIp
c3BhY2VSZXF1aXJlZCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKHVuc2lnbmVkIGxvbmcgbG9u
ZyBxdW90YSkpZGVjaXNpb25IYW5kbGVyCit7CisgICAgZGVjaXNpb25IYW5kbGVyKHNob3VsZEFs
bG93UmFpc2luZ1F1b3RhID8gMiAqIHF1b3RhIDogcXVvdGEpOworfQorCitAZW5kCisKKyNlbmRp
ZgorCiBuYW1lc3BhY2UgV1RSIHsKIAogc3RhdGljIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmds
b2JhbFdlYlZpZXdDb25maWd1cmF0aW9uOwogCisjaWYgV0tfQVBJX0VOQUJMRUQKK3N0YXRpYyBD
YWNoZVN0b3JhZ2VRdW90YU1hbmFnZXIgKmdsb2JhbENhY2hlU3RvcmFnZVF1b3RhTWFuYWdlcjsK
KyNlbmRpZgorCiB2b2lkIGluaXRpYWxpemVXZWJWaWV3Q29uZmlndXJhdGlvbihjb25zdCBjaGFy
KiBsaWJyYXJ5UGF0aCwgV0tTdHJpbmdSZWYgaW5qZWN0ZWRCdW5kbGVQYXRoLCBXS0NvbnRleHRS
ZWYgY29udGV4dCwgV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZiBjb250ZXh0Q29uZmlndXJhdGlv
bikKIHsKICNpZiBXS19BUElfRU5BQkxFRApAQCAtODAsNiArMTExLDEyIEBAIHZvaWQgaW5pdGlh
bGl6ZVdlYlZpZXdDb25maWd1cmF0aW9uKGNvbnN0IGNoYXIqIGxpYnJhcnlQYXRoLCBXS1N0cmlu
Z1JlZiBpbmplY3RlCiAgICAgW2dsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLndlYnNpdGVEYXRh
U3RvcmUgX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOllFU107CiAgICAgW2dsb2Jh
bFdlYlZpZXdDb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgX3Jlc291cmNlTG9hZFN0YXRp
c3RpY3NTZXRTaG91bGRTdWJtaXRUZWxlbWV0cnk6Tk9dOwogCisjaWYgV0tfQVBJX0VOQUJMRUQK
KyAgICBbZ2xvYmFsQ2FjaGVTdG9yYWdlUXVvdGFNYW5hZ2VyIHJlbGVhc2VdOworICAgIGdsb2Jh
bENhY2hlU3RvcmFnZVF1b3RhTWFuYWdlciA9IFtbQ2FjaGVTdG9yYWdlUXVvdGFNYW5hZ2VyIGFs
bG9jXSBpbml0XTsKKyAgICBbZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFT
dG9yZSBzZXRfcXVvdGFEZWxlZ2F0ZTpnbG9iYWxDYWNoZVN0b3JhZ2VRdW90YU1hbmFnZXJdOwor
I2VuZGlmCisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGdsb2JhbFdlYlZpZXdDb25m
aWd1cmF0aW9uLmFsbG93c0lubGluZU1lZGlhUGxheWJhY2sgPSBZRVM7CiAgICAgZ2xvYmFsV2Vi
Vmlld0NvbmZpZ3VyYXRpb24uX2lubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5l
QXR0cmlidXRlID0gTk87CkBAIC0yNTIsNiArMjg5LDggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6
Y29jb2FSZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRp
b24KICAgICAgICAgaWYgKG9wdGlvbnMuc2hvdWxkU2hvd1NwZWxsQ2hlY2tpbmdEb3RzKQogICAg
ICAgICAgICAgW3BsYXRmb3JtVmlldyB0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZzpuaWxd
OwogICAgIH0KKworICAgIGdsb2JhbENhY2hlU3RvcmFnZVF1b3RhTWFuYWdlci0+c2hvdWxkQWxs
b3dSYWlzaW5nUXVvdGEgPSBmYWxzZTsKICNlbmRpZgogfQogCkBAIC0zODUsNCArNDI0LDExIEBA
IGJvb2wgVGVzdENvbnRyb2xsZXI6OmtleUV4aXN0c0luS2V5Y2hhaW4oY29uc3QgU3RyaW5nJiBh
dHRyTGFiZWwsIGNvbnN0IFN0cmluZyYKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgVGVz
dENvbnRyb2xsZXI6OmFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSgpCit7CisjaWYgV0tf
QVBJX0VOQUJMRUQKKyAgICBnbG9iYWxDYWNoZVN0b3JhZ2VRdW90YU1hbmFnZXItPnNob3VsZEFs
bG93UmFpc2luZ1F1b3RhID0gdHJ1ZTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlODU2MjU0ZjZiNTAwNTUwNWY4YTFkZDNjM2M5NjFlODc5MDFkN2MxLi5hYzA1NGEy
NzZlMzA4ODk3YTFkY2M1YzhjYzZiZTQzMTNlN2E4ZjRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTktMDEtMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBhIG5ldyBTUEkgdG8gcmVxdWVzdCBmb3IgY2FjaGUgc3RvcmFnZSBxdW90YSBpbmNyZWFz
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMzIz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5l
dyB0ZXN0UnVubmVyIG1ldGhvZCB0byBidW1wIHRoZSBjYWNoZSBxdW90YSBhbmQgdmVyaWZ5IGFk
ZGluZyBhCisgICAgICAgIGNhY2hlIGVudHJ5IHdvcmtzIHdoZW4gYnVtcGluZyB0aGUgY3FjaGUg
cXVvdGEuCisKKyAgICAgICAgKiBodHRwL3dwdC9jYWNoZS1zdG9yYWdlL2NhY2hlLXF1b3RhLmFu
eS5qczoKKyAgICAgICAgKHByb21pc2VfdGVzdCk6CisKIDIwMTktMDEtMTYgIEFsaWNpYSBCb3lh
IEdhcmPDrWEgIDxhYm95YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgR1RLIGFu
ZCBXUEUgdGVzdCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9j
YWNoZS1zdG9yYWdlL2NhY2hlLXF1b3RhLmFueS5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nh
Y2hlLXN0b3JhZ2UvY2FjaGUtcXVvdGEuYW55LmpzCmluZGV4IDVhOTRkNWI3OGYzYjYzOWNhNzBk
Y2JmMTNmZjI4OGE1ZGIyZTIzOTMuLmNhMjkyZGM5YjU0OWJjMTNlNTNjMjZkOWUyNjFlMWZmMDY4
MWIwNjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2NhY2hlLXN0b3JhZ2UvY2Fj
aGUtcXVvdGEuYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2NhY2hlLXN0b3JhZ2Uv
Y2FjaGUtcXVvdGEuYW55LmpzCkBAIC0xMTQsNyArMTE0LDcgQEAgcHJvbWlzZV90ZXN0KCh0ZXN0
KSA9PiB7CiAgICAgICAgIHJldHVybiBjYWNoZS5wdXQoIjFrby12MiIsIHJlc3BvbnNlMWtvLmNs
b25lKCkpLnRoZW4oYXNzZXJ0X3VucmVhY2hlZCwgKGUpID0+IHsKICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS5uYW1lLCAiUXVvdGFFeGNlZWRlZEVycm9yIik7CiAgICAgICAgIH0pOwotICAg
fSkudGhlbigoKSA9PiB7CisgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgIHJldHVybiBjYWNo
ZS5kZWxldGUoIjFrby12MSIpOwogICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICByZXR1cm4g
Y2FjaGUucHV0KCIxa28tdjIiLCByZXNwb25zZTFrby5jbG9uZSgpKTsKQEAgLTE1MSw2ICsxNTEs
OSBAQCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICAgICAgcmV0dXJuIGNhY2hlLnB1dCgi
MWtvIiwgcmVzcG9uc2Uxa28uY2xvbmUoKSkudGhlbihhc3NlcnRfdW5yZWFjaGVkLCAoZSkgPT4g
ewogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5hbWUsICJRdW90YUV4Y2VlZGVkRXJyb3Ii
KTsKICAgICAgICAgfSk7CisgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIHRlc3RSdW5uZXIu
YWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlKCk7CisgICAgICAgIHJldHVybiBjYWNoZS5w
dXQoIjFrbyIsIHJlc3BvbnNlMWtvLmNsb25lKCkpOwogICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgIHJldHVybiBjYWNoZS5kZWxldGUoIjFrby1wYWRkZWQtdG8tMjAwa28iKTsKICAgICB9KS50
aGVuKCgpID0+IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359400</attachid>
            <date>2019-01-17 12:03:16 -0800</date>
            <delta_ts>2019-01-17 14:29:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193323-20190117120316.patch</filename>
            <type>text/plain</type>
            <size>33061</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0OTJmOGFmMjdmOGUxODQ5
ODI2NDk1YTMwZjY4MzkzYjg3ZmYyMDAuLjM2NDQ5MGI1MDRjZWNkNWI0ZmFmMzc1MTlkNWZlMzAz
YzdlMmM5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTktMDEtMTcgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgdG8gcmVx
dWVzdCBmb3IgY2FjaGUgc3RvcmFnZSBxdW90YSBpbmNyZWFzZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMzIzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgZGVsZWdhdGUgb24gdGhlIFdlYlNp
dGVEYXRhU3RvcmUgZm9yIFdlYktpdCB0byBhc2sgZm9yIHF1b3RhIHVwZGF0ZS4KKyAgICAgICAg
VGhlIGN1cnJlbnQgU1BJIGlzIGN1cnJlbnRseSBDYWNoZVN0b3JhZ2Ugc3BlY2lmaWMgYnV0IGZ1
dHVyZSB3b3JrIHNob3VsZAorICAgICAgICBtYWtlIGl0IHNvIHRoYXQgb3RoZXIgc3RvcmFnZSBs
aWtlIElEQiB1c2UgdGhlIHNhbWUgbWVjaGFuaXNtLgorICAgICAgICBCeSBkZWZhdWx0LCBxdW90
YSByZW1haW5zIHVuY2hhbmdlZCBpZiBkZWxlZ2F0ZSBpcyBub3QgaW1wbGVtZW50ZWQuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAg
ICAgICAgKFdlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXI6OldlYnNpdGVEYXRhU3RvcmVRdW90
YU1hbmFnZXIpOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX3F1b3RhRGVsZWdhdGVd
KToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIHNldF9xdW90YURlbGVnYXRlOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdENhY2hlU3Rv
cmFnZVNwYWNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRh
U3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnF1b3RhTWFuYWdlcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFF1b3RhTWFuYWdlcik6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIu
aDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXI6
On5XZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZVF1b3RhTWFuYWdlcjo6cmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlKToKKyAgICAg
ICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wMS0xNiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgbmV3IFNQSSBm
b3IgY29udHJvbGxpbmcgZ2V0VXNlck1lZGlhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQppbmRleCAyZDE2MGVhM2Ix
Mjg4ZmU4NGRjMWQ4MjkzYzBhMzI4MzgxZmViMjZhLi5lM2ZhZmZjNGFlZGRiZjNiNWEwYzZhYThl
OTgxNDlmOWE4MzdkNjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBX
S19BUElfRU5BQkxFRAogCiAjaW1wb3J0ICJBUElTdHJpbmcuaCIKKyNpbXBvcnQgIkNvbXBsZXRp
b25IYW5kbGVyQ2FsbENoZWNrZXIuaCIKICNpbXBvcnQgIldLSFRUUENvb2tpZVN0b3JlSW50ZXJu
YWwuaCIKICNpbXBvcnQgIldLTlNBcnJheS5oIgogI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwu
aCIKQEAgLTM4LDkgKzM5LDQ1IEBACiAjaW1wb3J0ICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
VGVsZW1ldHJ5LmgiCiAjaW1wb3J0ICJXZWJzaXRlRGF0YUZldGNoT3B0aW9uLmgiCiAjaW1wb3J0
ICJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIgorI2ltcG9ydCAiX1dLV2Vic2l0
ZURhdGFTdG9yZURlbGVnYXRlLmgiCiAjaW1wb3J0IDxXZWJLaXQvU2VydmljZVdvcmtlclByb2Nl
c3NQcm94eS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1wb3J0IDx3dGYvVVJMLmg+
CisjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KKworY2xhc3MgV2Vic2l0ZURhdGFTdG9yZU1h
bmFnZXIgOiBwdWJsaWMgV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlTWFuYWdlciB7CitwdWJsaWM6
CisgICAgZXhwbGljaXQgV2Vic2l0ZURhdGFTdG9yZU1hbmFnZXIoaWQgPF9XS1dlYnNpdGVEYXRh
U3RvcmVEZWxlZ2F0ZT4gZGVsZWdhdGUpCisgICAgICAgIDogbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkK
KyAgICAgICAgLCBtX2hhc1JlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZVNlbGVjdG9yKFttX2RlbGVn
YXRlLmdldCgpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocmVxdWVzdENhY2hlU3RvcmFn
ZVNwYWNlOiBmcmFtZU9yaWdpbjogcXVvdGE6IGN1cnJlbnRTaXplOiBzcGFjZVJlcXVpcmVkOiBk
ZWNpc2lvbkhhbmRsZXI6KV0pCisgICAgeworICAgIH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHJl
cXVlc3RDYWNoZVN0b3JhZ2VTcGFjZShjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZU9yaWdp
biwgdWludDY0X3QgcXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRTaXplLCB1aW50NjRfdCBzcGFjZVJl
cXVpcmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPHVpbnQ2NF90Pik+JiYgY29t
cGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgeworICAgICAgICBpZiAoIW1faGFzUmVxdWVzdENh
Y2hlU3RvcmFnZVNwYWNlU2VsZWN0b3IgfHwgIW1fZGVsZWdhdGUpIHsKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBhdXRvIGNoZWNrZXIgPSBXZWJLaXQ6OkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNr
ZXI6OmNyZWF0ZShtX2RlbGVnYXRlLmdldEF1dG9yZWxlYXNlZCgpLCBAc2VsZWN0b3IocmVxdWVz
dENhY2hlU3RvcmFnZVNwYWNlOiBmcmFtZU9yaWdpbjogcXVvdGE6IGN1cnJlbnRTaXplOiBzcGFj
ZVJlcXVpcmVkOiBkZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgICAgIGF1dG8gZGVjaXNpb25IYW5k
bGVyID0gbWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0odW5zaWduZWQgbG9uZyBsb25n
IHF1b3RhKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFu
ZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHF1b3RhKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgVVJMIG1haW5GcmFt
ZVVSTCB7IFVSTCgpLCB0b3BPcmlnaW4udG9TdHJpbmcoKSB9OworICAgICAgICBVUkwgZnJhbWVV
UkwgeyBVUkwoKSwgZnJhbWVPcmlnaW4udG9TdHJpbmcoKSB9OworCisgICAgICAgIFttX2RlbGVn
YXRlLmdldEF1dG9yZWxlYXNlZCgpIHJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZTptYWluRnJhbWVV
UkwgZnJhbWVPcmlnaW46ZnJhbWVVUkwgcXVvdGE6cXVvdGEgY3VycmVudFNpemU6Y3VycmVudFNp
emUgc3BhY2VSZXF1aXJlZDpzcGFjZVJlcXVpcmVkIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhh
bmRsZXIuZ2V0KCldOworICAgIH0KKworICAgIFdlYWtPYmpDUHRyPGlkIDxfV0tXZWJzaXRlRGF0
YVN0b3JlRGVsZWdhdGU+ID4gbV9kZWxlZ2F0ZTsKKyAgICBib29sIG1faGFzUmVxdWVzdENhY2hl
U3RvcmFnZVNwYWNlU2VsZWN0b3IgeyBmYWxzZSB9OworfTsKIAogQGltcGxlbWVudGF0aW9uIFdL
V2Vic2l0ZURhdGFTdG9yZQogCkBAIC0zODMsNiArNDIwLDE3IEBAIC0gKGJvb2wpX2hhc1JlZ2lz
dGVyZWRTZXJ2aWNlV29ya2VyCiAgICAgcmV0dXJuIFdlYktpdDo6U2VydmljZVdvcmtlclByb2Nl
c3NQcm94eTo6aGFzUmVnaXN0ZXJlZFNlcnZpY2VXb3JrZXJzKF93ZWJzaXRlRGF0YVN0b3JlLT53
ZWJzaXRlRGF0YVN0b3JlKCkuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSgpKTsK
IH0KIAorLSAoaWQgPF9XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZT4pX2RlbGVnYXRlCit7Cisg
ICAgcmV0dXJuIF9kZWxlZ2F0ZS5nZXQoKTsKK30KKworLSAodm9pZClzZXRfZGVsZWdhdGU6KGlk
IDxfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGU+KWRlbGVnYXRlCit7CisgICAgX2RlbGVnYXRl
ID0gZGVsZWdhdGU7CisgICAgX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5z
ZXRNYW5hZ2VyKG1ha2VVbmlxdWVSZWY8V2Vic2l0ZURhdGFTdG9yZU1hbmFnZXI+KGRlbGVnYXRl
KSk7Cit9CisKIEBlbmQKIAogI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJu
YWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3Rv
cmVJbnRlcm5hbC5oCmluZGV4IGQ4NjE4NzUyNzNiYTdkZjY3ZTI4NjZkMTQ1NWI5NmI3ZjNkYzQ3
ZjYuLjJjNWI3OGUxNTk5MjdkZWJiZjQ1NDU2YTEyM2YyYmY3ZmU1N2U2MzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVJbnRl
cm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhU3RvcmVJbnRlcm5hbC5oCkBAIC00MSw2ICs0MSw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IFdy
YXBwZXJUcmFpdHM8QVBJOjpXZWJzaXRlRGF0YVN0b3JlPiB7CiBAaW50ZXJmYWNlIFdLV2Vic2l0
ZURhdGFTdG9yZSAoKSA8V0tPYmplY3Q+IHsKIEBwYWNrYWdlCiAgICAgQVBJOjpPYmplY3RTdG9y
YWdlPEFQSTo6V2Vic2l0ZURhdGFTdG9yZT4gX3dlYnNpdGVEYXRhU3RvcmU7CisgICAgUmV0YWlu
UHRyPGlkIDxfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGU+ID4gX2RlbGVnYXRlOwogfQogQGVu
ZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCA3NGE4YTAyZjJmMWQ5ZWU5NWM5N2Fm
OWE5NmUzYzYwMTMxOTIwMTYxLi42MmFhOGFmZDMxZWM0ZGE1OTMwMDc5MTlmMDVmZmQyNDZlMjAy
Y2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAgLTMyLDYgKzMyLDggQEAgTlNfQVNT
VU1FX05PTk5VTExfQkVHSU4KIEBjbGFzcyBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bjsKIEBjbGFzcyBXS1dlYlZpZXc7CiAKK0Bwcm90b2NvbCBfV0tXZWJzaXRlRGF0YVN0b3JlRGVs
ZWdhdGU7CisKIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVN0
b3JlRmV0Y2hPcHRpb25zKSB7CiAgICAgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9uQ29t
cHV0ZVNpemVzID0gMSA8PCAwLAogfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlv
cygxMC4wKSk7CkBAIC02Miw2ICs2NCw5IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2Vy
LCBfV0tXZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25zKSB7CiArICh2b2lkKV9hbGxvd1dlYnNp
dGVEYXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMu
NCksIGlvcygxMS4zKSk7CiAtIChib29sKV9oYXNSZWdpc3RlcmVkU2VydmljZVdvcmtlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7CiAKKy8qISBAYWJzdHJhY3Qg
VGhlIHN0b3JhZ2UgcXVvdGEgZGVsZWdhdGUuICovCitAcHJvcGVydHkgKG51bGxhYmxlLCBub25h
dG9taWMsIHdlYWspIGlkIDxfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGU+IF9kZWxlZ2F0ZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwog
QGVuZAogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tTdG9yYWdlUXVvdGFEZWxlZ2F0ZVByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tTdG9yYWdlUXVvdGFEZWxlZ2F0ZVBy
aXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hMjIxM2RmNDQ3MDc0ODY2YTFhMTZiYTJmZTAwYzYzNmE4OWJj
NWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBXS19BUElfRU5B
QkxFRAorCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKworQHByb3RvY29sIF9X
S1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZSA8TlNPYmplY3Q+CisKK0BvcHRpb25hbAorCistICh2
b2lkKV9yZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2U6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1l
T3JpZ2luOihOU1VSTCAqKWZyYW1lVVJMIHF1b3RhOihOU1VJbnRlZ2VyKXF1b3RhIGN1cnJlbnRT
aXplOihOU1VJbnRlZ2VyKWN1cnJlbnRTaXplIHNwYWNlUmVxdWlyZWQ6KE5TVUludGVnZXIpc3Bh
Y2VSZXF1aXJlZCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKHVuc2lnbmVkIGxvbmcgbG9uZyBx
dW90YSkpZGVjaXNpb25IYW5kbGVyOworCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3Rv
cmVEZWxlZ2F0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4NDg5NWJhNWRlNzE0YzM2YWM3NjNiN2RlNTZiNGFj
MWJjM2E4YzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmgKQEAgLTAsMCArMSw0MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKworI2lmIFdLX0FQSV9F
TkFCTEVECisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCitAcHJvdG9jb2wg
X1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlIDxOU09iamVjdD4KKworQG9wdGlvbmFsCisKKy0g
KHZvaWQpcmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFt
ZU9yaWdpbjooTlNVUkwgKilmcmFtZVVSTCBxdW90YTooTlNVSW50ZWdlcilxdW90YSBjdXJyZW50
U2l6ZTooTlNVSW50ZWdlciljdXJyZW50U2l6ZSBzcGFjZVJlcXVpcmVkOihOU1VJbnRlZ2VyKXNw
YWNlUmVxdWlyZWQgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKSh1bnNpZ25lZCBsb25nIGxvbmcg
cXVvdGEpKWRlY2lzaW9uSGFuZGxlcjsKKworQGVuZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmlu
ZGV4IDYwMGMwYmMzOWFlYzM5MjY5YThkZmVkOWY1YWVjZTkwZTM0MjI0YjkuLjQ2NWRiYWQ3YTYx
N2ZiNmU1MzA5YzVmNmY0MGJmNTk0ZTQxYTk5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtNDMsNiAr
NDMsOCBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCiAjaW5jbHVkZSAiV2ViVXNlckNv
bnRlbnRDb250cm9sbGVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgorI2luY2x1
ZGUgIldlYnNpdGVEYXRhU3RvcmVNYW5hZ2VyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DbGllbnRP
cmlnaW4uaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KIAogI2lmIEVOQUJM
RShTRUNfSVRFTV9TSElNKQpAQCAtNzQzLDggKzc0NSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6cmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBGSVhNRTogQXNrIFdlYnNpdGVE
YXRhU3RvcmUgYWJvdXQgdXBkYXRpbmcgdGhlIHF1b3RhIGZvciB0aGlzIG9yaWdpbi4KLSAgICBj
b21wbGV0aW9uSGFuZGxlcihxdW90YSk7CisgICAgc3RvcmUtPm1hbmFnZXIoKS5yZXF1ZXN0Q2Fj
aGVTdG9yYWdlU3BhY2Uob3JpZ2luLnRvcE9yaWdpbiwgb3JpZ2luLmNsaWVudE9yaWdpbiwgcXVv
dGEsIGN1cnJlbnRTaXplLCBzcGFjZVJlcXVpcmVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCAwYWFi
YmU0OGRiMTM1ZDg2YmYyODRiMDU1NDIxNDNhMTdiZDhlOWEwLi41NTNkNWM4MDlhZmQ3Mzg0OWYy
MmFkNjlmZGZhNzZiNGJlYzhhZTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtNDAsNiArNDAsNyBA
QAogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgogI2luY2x1ZGUg
IldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vi
c2l0ZURhdGEuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlTWFuYWdlci5oIgogI2luY2x1
ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGF0YWJhc2VUcmFja2Vy
Lmg+CkBAIC05Nyw2ICs5OCw3IEBAIFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUo
UmVmPFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiYmIGNvbmZpZ3VyCiAjaWYgRU5BQkxF
KFdFQl9BVVRITikKICAgICAsIG1fYXV0aGVudGljYXRvck1hbmFnZXIobWFrZVVuaXF1ZVJlZjxB
dXRoZW50aWNhdG9yTWFuYWdlcj4oKSkKICNlbmRpZgorICAgICwgbV9tYW5hZ2VyKG1ha2VVbmlx
dWVSZWY8V2Vic2l0ZURhdGFTdG9yZU1hbmFnZXI+KCkpCiB7CiAgICAgV1RGOjpzZXRQcm9jZXNz
UHJpdmlsZWdlcyhhbGxQcml2aWxlZ2VzKCkpOwogICAgIG1heWJlUmVnaXN0ZXJXaXRoU2Vzc2lv
bklETWFwKCk7CkBAIC0xMTQsNiArMTE2LDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURh
dGFTdG9yZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAjaWYgRU5BQkxFKFdFQl9BVVRITikK
ICAgICAsIG1fYXV0aGVudGljYXRvck1hbmFnZXIobWFrZVVuaXF1ZVJlZjxBdXRoZW50aWNhdG9y
TWFuYWdlcj4oKSkKICNlbmRpZgorICAgICwgbV9tYW5hZ2VyKG1ha2VVbmlxdWVSZWY8V2Vic2l0
ZURhdGFTdG9yZU1hbmFnZXI+KCkpCiB7CiAgICAgbWF5YmVSZWdpc3RlcldpdGhTZXNzaW9uSURN
YXAoKTsKICAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCA5MTJkOGU0
NzVjZDZhMjE3OTk5YTA5MDE3OGViNjU4ZmMyMTc5YzY5Li5jNzQ2YjRjOTA3NDJkOWM5NGU3MzIy
NGNhOWRiOWU5YjA0MWI2MTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5j
bHVkZSAiTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzTGlmZXRpbWVPYnNlcnZlci5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmgiCisjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZU1hbmFnZXIuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0Nvb2tpZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5E
YXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkhhc2guaD4KQEAgLTE4OCw2
ICsxODksOSBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbiYgY29uZmlndXJhdGlvbigpIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5nZXQoKTsgfQog
CisgICAgV2Vic2l0ZURhdGFTdG9yZU1hbmFnZXImIG1hbmFnZXIoKSB7IHJldHVybiBtX21hbmFn
ZXIuZ2V0KCk7IH0KKyAgICB2b2lkIHNldE1hbmFnZXIoVW5pcXVlUmVmPFdlYnNpdGVEYXRhU3Rv
cmVNYW5hZ2VyPiYmIG1hbmFnZXIpIHsgbV9tYW5hZ2VyID0gV1RGTW92ZShtYW5hZ2VyKTsgfQor
CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYnNpdGVEYXRhU3RvcmUoUEFMOjpTZXNzaW9uSUQp
OwogICAgIGV4cGxpY2l0IFdlYnNpdGVEYXRhU3RvcmUoUmVmPFdlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uPiYmLCBQQUw6OlNlc3Npb25JRCk7CkBAIC0yNTYsNiArMjYwLDggQEAgcHJpdmF0
ZToKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogICAgIFVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yTWFu
YWdlcj4gbV9hdXRoZW50aWNhdG9yTWFuYWdlcjsKICNlbmRpZgorCisgICAgVW5pcXVlUmVmPFdl
YnNpdGVEYXRhU3RvcmVNYW5hZ2VyPiBtX21hbmFnZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlTWFuYWdl
ci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZmIyZmQyODhkNDY3YWI4NjViYmU0MGE4MDQyYmViNjdl
MWZhZjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZU1hbmFnZXIuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYnNpdGVEYXRhU3RvcmVNYW5hZ2VyIHsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJzaXRlRGF0YVN0b3JlTWFuYWdlcigpIHsgfQorCisgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZShjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiBmcmFtZU9yaWdpbiwgdWludDY0X3QgcXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRTaXplLCB1
aW50NjRfdCBzcGFjZVJlcXVpcmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPHVp
bnQ2NF90Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgeworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcih7IH0pOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTcxNDFl
ODM3YzUyYmNkZTBkNTQyOTM3MTMxOWY5OGI4NzFjNTNkZi4uN2E2MGQ2MWY3NWE5ZmIzMjdiOTU1
MDRiZTg3Y2M4ZTdkMmY5MTdmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NTksNiArODU5LDcgQEAKIAkJNDExMkVEREUyMEU0MDdB
NTAwQkVBOTJBIC8qIGNvbS5jZmNhLm5wU2VjRWRpdEN0bC5NQUMuQk9DLnBsdWdpbi5zYiBpbiBD
b3B5IFBsdWctaW4gU2FuZGJveCBQcm9maWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTEyRUREMzIwRTQwNzc0MDBCRUE5MkEgLyogY29tLmNmY2EubnBTZWNFZGl0Q3Rs
Lk1BQy5CT0MucGx1Z2luLnNiICovOyB9OwogCQk0MTEyRURERjIwRTQwN0E1MDBCRUE5MkEgLyog
Y29tLmNtYmNoaW5hLkNNQlNlY3VyaXR5LnNiIGluIENvcHkgUGx1Zy1pbiBTYW5kYm94IFByb2Zp
bGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTJFREQ1MjBFNDA3NzQw
MEJFQTkyQSAvKiBjb20uY21iY2hpbmEuQ01CU2VjdXJpdHkuc2IgKi87IH07CiAJCTQxMTJFREUw
MjBFNDA3QTUwMEJFQTkyQSAvKiBjb20uZnRzYWZlLk5QQVBJLUNvcmUtU2FmZS1Tb2Z0S2V5YmFv
cmQucGx1Z2luLnJmYzEwMzRpZGVudGlmaWVyLnNiIGluIENvcHkgUGx1Zy1pbiBTYW5kYm94IFBy
b2ZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTJFREQyMjBFNDA3
NzMwMEJFQTkyQSAvKiBjb20uZnRzYWZlLk5QQVBJLUNvcmUtU2FmZS1Tb2Z0S2V5YmFvcmQucGx1
Z2luLnJmYzEwMzRpZGVudGlmaWVyLnNiICovOyB9OworCQk0MTE4REMxRjIxRTdCRjVEMDBERTA0
QzcgLyogX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTE4REMxRDIxRTZERDI3MDBERTA0QzcgLyogX1dL
V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDExQThEREIyMERERDFBQzAwNjBEMzRGIC8qIFdLTW9ja01l
ZGlhRGV2aWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTFBOEREOTIwRERCNjA1MDA2MEQzNEYgLyogV0tNb2NrTWVkaWFEZXZpY2UuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTFCMjI2NDFFMzcx
QkE2MDA0RjczNjMgLyogTGliV2ViUlRDTmV0d29yay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExQjIyNjIxRTM3MTI0NDAwNEY3MzYzIC8qIExpYldl
YlJUQ05ldHdvcmsuaCAqLzsgfTsKIAkJNDEzMDc1QUIxREU4NUYzMzAwMzlFQzY5IC8qIE5ldHdv
cmtSVENTb2NrZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxMzA3NTk5MURFODRGQjAwMDM5RUM2OSAvKiBOZXR3b3JrUlRDU29ja2V0LmggKi87IH07
CkBAIC0yOTg5LDYgKzI5OTAsOCBAQAogCQk0MTEyRURENzIwRTQwNzc1MDBCRUE5MkEgLyogY29t
LmFwcGxlLk5QU2FmZVN1Ym1pdC5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUu
TlBTYWZlU3VibWl0LnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEyRUREODIw
RTQwNzc1MDBCRUE5MkEgLyogY29tLmFwcGxlLk5QU2FmZUlucHV0LnNiICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IGNvbS5hcHBsZS5OUFNhZmVJbnB1dC5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDExMkVERDkyMEU0MDc3NTAwQkVBOTJBIC8qIGNvbS5hcHBsZS5Cb2NvbVN1Ym1p
dEN0cmwuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLkJvY29tU3VibWl0Q3Ry
bC5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDExOERDMUIyMUU2RDExQTAwREUw
NEM3IC8qIFdlYnNpdGVEYXRhU3RvcmVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxMThEQzFEMjFFNkREMjcwMERFMDRDNyAvKiBfV0tXZWJzaXRlRGF0YVN0b3Jl
RGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLV2Vic2l0ZURh
dGFTdG9yZURlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMUE4REQ5
MjBEREI2MDUwMDYwRDM0RiAvKiBXS01vY2tNZWRpYURldmljZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS01vY2tNZWRpYURldmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTFBOEREQTIwRERCNjA1MDA2MEQzNEYgLyogV0tNb2NrTWVkaWFEZXZpY2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tNb2NrTWVkaWFEZXZp
Y2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTFCMjI2MjFFMzcxMjQ0MDA0
RjczNjMgLyogTGliV2ViUlRDTmV0d29yay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBMaWJXZWJSVENOZXR3b3JrLmg7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENO
ZXR3b3JrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODQ0LDcgKzQ4NDcsNyBA
QAogCQkJCTFBNTNDMkE1MUEzMjU2OUYwMDRFOEM3MCAvKiBXZWJzaXRlRGF0YVN0b3JlLmggKi8s
CiAJCQkJNUM0NkMwQUMyMUI3MTk4QjAwQkM1OTkxIC8qIFdlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLmNwcCAqLywKIAkJCQk1QzQ2QzBBRDIxQjcxOThDMDBCQzU5OTEgLyogV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uaCAqLywKLQkJCQk0MTE4REMxQjIxRTZEMTFBMDBERTA0Qzcg
LyogV2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdlci5oICovLAorCQkJCTQxMThEQzFCMjFFNkQx
MUEwMERFMDRDNyAvKiBXZWJzaXRlRGF0YVN0b3JlTWFuYWdlci5oICovLAogCQkJKTsKIAkJCXBh
dGggPSBXZWJzaXRlRGF0YTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02MDI0LDYg
KzYwMjcsNyBAQAogCQkJCTFBMDAyRDNGMTk2QjMyOTQwMEI5QUQ0NCAvKiBfV0tTZXNzaW9uU3Rh
dGUuaCAqLywKIAkJCQkxQTAwMkQzRTE5NkIzMjk0MDBCOUFENDQgLyogX1dLU2Vzc2lvblN0YXRl
Lm1tICovLAogCQkJCTFBMDAyRDQyMTk2QjMzNzAwMEI5QUQ0NCAvKiBfV0tTZXNzaW9uU3RhdGVJ
bnRlcm5hbC5oICovLAorCQkJCTQxMThEQzFEMjFFNkREMjcwMERFMDRDNyAvKiBfV0tXZWJzaXRl
RGF0YVN0b3JlRGVsZWdhdGUuaCAqLywKIAkJCQkyRDZCMzcxOTE4QTk2N0FEMDA0MkFFODAgLyog
X1dLVGh1bWJuYWlsVmlldy5oICovLAogCQkJCTJENkIzNzFBMThBOTY3QUQwMDQyQUU4MCAvKiBf
V0tUaHVtYm5haWxWaWV3Lm1tICovLAogCQkJCTJEQUNFNjREMThBREJGRjAwMEU0Q0E3NiAvKiBf
V0tUaHVtYm5haWxWaWV3SW50ZXJuYWwuaCAqLywKQEAgLTk4MzAsNyArOTgzNCw4IEBACiAJCQkJ
MURCMDE5NDMyMTFDRjAwMjAwOUZCM0U4IC8qIFdLU2hhcmVTaGVldC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTEzRTQ2MkQxQUQ4Mzc1NjAwMTYyMzRBIC8qIFdLU2hhcmluZ1NlcnZpY2VQaWNrZXJE
ZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGNTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8q
IFdLU25hcHNob3RDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTE4REMxRjIx
RTdCRjVEMDBERTA0QzcgLyogV0tTdG9yYWdlUXVvdGFEZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQxMThEQzFGMjFFN0JGNUQwMERFMDRDNyAvKiBfV0tXZWJzaXRlRGF0YVN0
b3JlRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMThEQzFGMjFFN0JGNUQwMERFMDRD
NyAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
NDA3NjA2MTI0RkYwMjcwMDY4RjIwQSAvKiBXS1N0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM0MDc2MUExMjRGRjAzNzAwNjhGMjBBIC8qIFdLU3RyaW5nQ0YuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDOTA5OTgwMTI1NkE5ODIwMDA4Mzc1NiAvKiBXS1N0cmluZ1ByaXZhdGUuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGFiYmU0YzFkYzE0OGM2MGI5NjdkMTgyZjg0ZDM2YTc5MWE4OGJkOTEuLjJmMjYzNmJhNjhh
MDY3MjI0MjRjM2FiOGQyNzY3NTEwOTQ4NTA4M2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxOS0wMS0xNyAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbmV3IFNQSSB0
byByZXF1ZXN0IGZvciBjYWNoZSBzdG9yYWdlIHF1b3RhIGluY3JlYXNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTMzMjMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgV2Vic2l0ZURhdGFT
dG9yZSBxdW90YSBkZWxlZ2F0ZSB0byBoYW5kbGUgcXVvdGEgcmVxdWVzdHMuCisgICAgICAgIEJ5
IGRlZmF1bHQsIGRvIG5vdCB1cGRhdGUgcXVvdGEuCisgICAgICAgIFVwZGF0ZSBxdW90YSBpZiB0
ZXN0IGNhbGxzIHRoZSBuZXcgdGVzdFJ1bm5lci5hbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVh
c2UgbWV0aG9kLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjphbGxv
d0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6YWxsb3dD
YWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25v
dXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW06CisgICAgICAgICgtW0NhY2hlU3RvcmFnZVF1
b3RhTWFuYWdlciBpbml0XSk6CisgICAgICAgICgtW0NhY2hlU3RvcmFnZVF1b3RhTWFuYWdlciBf
cmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlOmZyYW1lT3JpZ2luOnF1b3RhOmN1cnJlbnRTaXplOnNw
YWNlUmVxdWlyZWQ6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoV1RSOjppbml0aWFsaXpl
V2ViVmlld0NvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y29j
b2FSZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRy
b2xsZXI6OmFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSk6CisKIDIwMTktMDEtMTcgIFph
bGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtCRkNdIEFuIGVs
ZW1lbnQgd2l0aCB0cmFuc2Zvcm0gaXMgYSBjb250YWluaW5nIGJsb2NrIGZvciBwb3NpdGlvbmVk
IGRlc2NlbmRhbnRzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggNjdmYzkzZTkxNjIy
YmRkMzMzMTg1YzdmNmIyMDhhMzlmZWU0NDUxNi4uZjE1NTUwZjUzMGVkMGYzZDUxOTQ3ODAyMjY5
NTIwMWU5MDJjYmFiMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC02Miw2ICs2Miw3
IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICB2b2lkIGNsZWFyRE9NQ2FjaGUoRE9NU3Ry
aW5nIG9yaWdpbik7CiAgICAgYm9vbGVhbiBoYXNET01DYWNoZShET01TdHJpbmcgb3JpZ2luKTsK
ICAgICB1bnNpZ25lZCBsb25nIGRvbUNhY2hlU2l6ZShET01TdHJpbmcgb3JpZ2luKTsKKyAgICB2
b2lkIGFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSgpOwogCiAgICAgLy8gU3BlY2lhbCBv
cHRpb25zLgogICAgIHZvaWQga2VlcFdlYkhpc3RvcnkoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGY5N2FlNDdi
OGQ1ZmIyZWFkMWJlNGY5NTk3ZTE1NjhmNzZkZjAxNmEuLmQ3YTlkMjQ4MjlkZjhiNzRhZDhiY2Q5
MWRkZDk2MDk0YjJjZTU4NTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMjM2Nyw2ICsyMzY3LDEyIEBAIHVpbnQ2
NF90IFRlc3RSdW5uZXI6OmRvbUNhY2hlU2l6ZShKU1N0cmluZ1JlZiBvcmlnaW4pCiAgICAgcmV0
dXJuIFdLVUludDY0R2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tVSW50NjRSZWY+KHJldHVybkRhdGEp
KTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjphbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2Uo
KQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiQWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3Jl
YXNlIikpOworICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRs
ZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRyLCBudWxs
cHRyKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjpnZXRBcHBsaWNhdGlvbk1hbmlmZXN0VGhlbihK
U1ZhbHVlUmVmIGNhbGxiYWNrKQogewogICAgIGNhY2hlVGVzdFJ1bm5lckNhbGxiYWNrKEdldEFw
cGxpY2F0aW9uTWFuaWZlc3RDYWxsYmFja0lELCBjYWxsYmFjayk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDIyMTRkNzdi
OGMzOTc5YTQ3YzVlOGVkYWE1ZDMyNzEyZDE0MzQxZDkuLmE0MDE5OTlmNDEyZTliZDM5MzJhYjgx
Yzg0Yjc3NzNkNWRmMDczZjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0xNzUsNiArMTc1LDcgQEAgcHVibGljOgogICAg
IHZvaWQgY2xlYXJET01DYWNoZXMoKTsKICAgICBib29sIGhhc0RPTUNhY2hlKEpTU3RyaW5nUmVm
IG9yaWdpbik7CiAgICAgdWludDY0X3QgZG9tQ2FjaGVTaXplKEpTU3RyaW5nUmVmIG9yaWdpbik7
CisgICAgdm9pZCBhbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UoKTsKIAogICAgIC8vIElu
ZGV4ZWREQgogICAgIHZvaWQgc2V0SURCUGVyT3JpZ2luUXVvdGEodWludDY0X3QpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA3Yzg4ZTAwMjdmM2Q3NTBi
ZTYxNTY3MjMyYTg4MWFkY2RmYjRkZGE4Li43Y2I3ZjVjZDllODVkNTdmNjM0YTcwYjQxMTdmNTdm
MzQ4NTU4ZDc3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApA
QCAtMjgzMCw2ICsyODMwLDEzIEBAIHVpbnQ2NF90IFRlc3RDb250cm9sbGVyOjpkb21DYWNoZVNp
emUoV0tTdHJpbmdSZWYgb3JpZ2luKQogICAgIHJldHVybiBjb250ZXh0LnJlc3VsdDsKIH0KIAor
I2lmICFQTEFURk9STShDT0NPQSkKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmFsbG93Q2FjaGVTdG9y
YWdlUXVvdGFJbmNyZWFzZSgpCit7CisgICAgLy8gRklYTUU6IFRvIGltcGxlbWVudC4KK30KKyNl
bmRpZgorCiBzdHJ1Y3QgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0IHsKICAgICBl
eHBsaWNpdCBSZXNvdXJjZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRleHQoVGVzdENvbnRyb2xsZXIm
IGNvbnRyb2xsZXIpCiAgICAgICAgIDogdGVzdENvbnRyb2xsZXIoY29udHJvbGxlcikKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCAxM2EzOWM2OTA1ZjBkODdiYTg3
YjlkYjU3ZjhkYWQ1YzE3YWM3MWJjLi4xNDI1Y2JmZDUxYTc2MDRhZTEwYzU3OTQ0NTU3YWEwNmEy
MGVhYzgwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0yNDgs
NiArMjQ4LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJET01DYWNoZXMoKTsKICAgICBib29s
IGhhc0RPTUNhY2hlKFdLU3RyaW5nUmVmIG9yaWdpbik7CiAgICAgdWludDY0X3QgZG9tQ2FjaGVT
aXplKFdLU3RyaW5nUmVmIG9yaWdpbik7CisgICAgdm9pZCBhbGxvd0NhY2hlU3RvcmFnZVF1b3Rh
SW5jcmVhc2UoKTsKIAogICAgIHZvaWQgc2V0SURCUGVyT3JpZ2luUXVvdGEodWludDY0X3QpOwog
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDBjNmM4Nzdm
ZjFkYWI3NTVhZGUyOGU5ZTIzNGY0NGU1NWZkOTRjMjcuLjFkOGQ3ZDliZTA1NWI0ODY2MmFkMzBl
MzM3MDdmMDI3YWVlYzVlYjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uY3BwCkBAIC0xNDI4LDYgKzE0MjgsMTEgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0
SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIkFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSIp
KSB7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5hbGxvd0NhY2hlU3RvcmFn
ZVF1b3RhSW5jcmVhc2UoKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCiAgICAg
aWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRJREJQZXJP
cmlnaW5RdW90YSIpKSB7CiAgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkg
PT0gV0tVSW50NjRHZXRUeXBlSUQoKSk7CiAgICAgICAgIFdLVUludDY0UmVmIHF1b3RhID0gc3Rh
dGljX2Nhc3Q8V0tVSW50NjRSZWY+KG1lc3NhZ2VCb2R5KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQppbmRleCAyYzFmNmE2M2M5
ZTQ5ZTdjY2U4MWRhY2I2MGRkYTJmOGY1YjE4YTgzLi5jMTkzZDA2MTYxOTRhMjAzZDhjN2ZlZDMx
OTUzZGVlM2IzOGQ3MzY0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29h
L1Rlc3RDb250cm9sbGVyQ29jb2EubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9UZXN0Q29udHJvbGxlckNvY29hLm1tCkBAIC00OSwxMiArNDksNDMgQEAKICNpbXBvcnQgPFdl
YktpdC9fV0tBcHBsaWNhdGlvbk1hbmlmZXN0Lmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLVXNlckNv
bnRlbnRFeHRlbnNpb25TdG9yZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS1VzZXJDb250ZW50RXh0
ZW5zaW9uU3RvcmVQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9y
ZURlbGVnYXRlLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogCisKKyNpZiBXS19BUElf
RU5BQkxFRAorCitAaW50ZXJmYWNlIFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZU1hbmFnZXI6IE5T
T2JqZWN0IDxfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGU+IHsKK0BwdWJsaWMKKyAgICBCT09M
IHNob3VsZEFsbG93UmFpc2luZ1F1b3RhOworfQorLSAoaW5zdGFuY2V0eXBlKWluaXQ7CitAZW5k
CisKK0BpbXBsZW1lbnRhdGlvbiBXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGVNYW5hZ2VyIHsgfQor
LSAoaW5zdGFuY2V0eXBlKWluaXQKK3sKKyAgICBzaG91bGRBbGxvd1JhaXNpbmdRdW90YSA9IGZh
bHNlOworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKXJlcXVlc3RDYWNoZVN0b3JhZ2VT
cGFjZTooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVPcmlnaW46KE5TVVJMICopZnJhbWVVUkwg
cXVvdGE6KE5TVUludGVnZXIpcXVvdGEgY3VycmVudFNpemU6KE5TVUludGVnZXIpY3VycmVudFNp
emUgc3BhY2VSZXF1aXJlZDooTlNVSW50ZWdlcilzcGFjZVJlcXVpcmVkIGRlY2lzaW9uSGFuZGxl
cjoodm9pZCAoXikodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKSlkZWNpc2lvbkhhbmRsZXIKK3sK
KyAgICBkZWNpc2lvbkhhbmRsZXIoc2hvdWxkQWxsb3dSYWlzaW5nUXVvdGEgPyAyICogcXVvdGEg
OiBxdW90YSk7Cit9CisKK0BlbmQKKworI2VuZGlmCisKIG5hbWVzcGFjZSBXVFIgewogCiBzdGF0
aWMgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb247CiAK
KyNpZiBXS19BUElfRU5BQkxFRAorc3RhdGljIFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZU1hbmFn
ZXIgKmdsb2JhbFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZU1hbmFnZXI7CisjZW5kaWYKKwogdm9p
ZCBpbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24oY29uc3QgY2hhciogbGlicmFyeVBhdGgs
IFdLU3RyaW5nUmVmIGluamVjdGVkQnVuZGxlUGF0aCwgV0tDb250ZXh0UmVmIGNvbnRleHQsIFdL
Q29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29udGV4dENvbmZpZ3VyYXRpb24pCiB7CiAjaWYgV0tf
QVBJX0VOQUJMRUQKQEAgLTgwLDYgKzExMSwxMiBAQCB2b2lkIGluaXRpYWxpemVXZWJWaWV3Q29u
ZmlndXJhdGlvbihjb25zdCBjaGFyKiBsaWJyYXJ5UGF0aCwgV0tTdHJpbmdSZWYgaW5qZWN0ZQog
ICAgIFtnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlIF9zZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOwogICAgIFtnbG9iYWxXZWJWaWV3Q29uZmln
dXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlIF9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2V0U2hvdWxk
U3VibWl0VGVsZW1ldHJ5Ok5PXTsKIAorI2lmIFdLX0FQSV9FTkFCTEVECisgICAgW2dsb2JhbFdl
YnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZU1hbmFnZXIgcmVsZWFzZV07CisgICAgZ2xvYmFsV2Vic2l0
ZURhdGFTdG9yZURlbGVnYXRlTWFuYWdlciA9IFtbV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlTWFu
YWdlciBhbGxvY10gaW5pdF07CisgICAgW2dsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLndlYnNp
dGVEYXRhU3RvcmUgc2V0X2RlbGVnYXRlOmdsb2JhbFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZU1h
bmFnZXJdOworI2VuZGlmCisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGdsb2JhbFdl
YlZpZXdDb25maWd1cmF0aW9uLmFsbG93c0lubGluZU1lZGlhUGxheWJhY2sgPSBZRVM7CiAgICAg
Z2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24uX2lubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1Bs
YXlzSW5saW5lQXR0cmlidXRlID0gTk87CkBAIC0yNTIsNiArMjg5LDggQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6Y29jb2FSZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRp
b25zJiBvcHRpb24KICAgICAgICAgaWYgKG9wdGlvbnMuc2hvdWxkU2hvd1NwZWxsQ2hlY2tpbmdE
b3RzKQogICAgICAgICAgICAgW3BsYXRmb3JtVmlldyB0b2dnbGVDb250aW51b3VzU3BlbGxDaGVj
a2luZzpuaWxdOwogICAgIH0KKworICAgIGdsb2JhbFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZU1h
bmFnZXItPnNob3VsZEFsbG93UmFpc2luZ1F1b3RhID0gZmFsc2U7CiAjZW5kaWYKIH0KIApAQCAt
Mzg1LDQgKzQyNCwxMSBAQCBib29sIFRlc3RDb250cm9sbGVyOjprZXlFeGlzdHNJbktleWNoYWlu
KGNvbnN0IFN0cmluZyYgYXR0ckxhYmVsLCBjb25zdCBTdHJpbmcmCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjphbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVh
c2UoKQoreworI2lmIFdLX0FQSV9FTkFCTEVECisgICAgZ2xvYmFsV2Vic2l0ZURhdGFTdG9yZURl
bGVnYXRlTWFuYWdlci0+c2hvdWxkQWxsb3dSYWlzaW5nUXVvdGEgPSB0cnVlOworI2VuZGlmCit9
CisKIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU4NTYyNTRmNmI1MDA1NTA1ZjhhMWRkM2Mz
Yzk2MWU4NzkwMWQ3YzEuLmFjMDU0YTI3NmUzMDg4OTdhMWRjYzVjOGNjNmJlNDMxM2U3YThmNGYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wMS0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbmV3IFNQSSB0byByZXF1ZXN0IGZvciBjYWNo
ZSBzdG9yYWdlIHF1b3RhIGluY3JlYXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTMzMjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVc2UgbmV3IHRlc3RSdW5uZXIgbWV0aG9kIHRvIGJ1bXAgdGhlIGNh
Y2hlIHF1b3RhIGFuZCB2ZXJpZnkgYWRkaW5nIGEKKyAgICAgICAgY2FjaGUgZW50cnkgd29ya3Mg
d2hlbiBidW1waW5nIHRoZSBjcWNoZSBxdW90YS4KKworICAgICAgICAqIGh0dHAvd3B0L2NhY2hl
LXN0b3JhZ2UvY2FjaGUtcXVvdGEuYW55LmpzOgorICAgICAgICAocHJvbWlzZV90ZXN0KToKKwog
MjAxOS0wMS0xNiAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCBHVEsgYW5kIFdQRSB0ZXN0IGdhcmRlbmluZy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L2NhY2hlLXN0b3JhZ2UvY2FjaGUtcXVvdGEuYW55LmpzIGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvY2FjaGUtc3RvcmFnZS9jYWNoZS1xdW90YS5hbnkuanMKaW5k
ZXggNWE5NGQ1Yjc4ZjNiNjM5Y2E3MGRjYmYxM2ZmMjg4YTVkYjJlMjM5My4uZjc5ZDMyODUwY2M1
MzM3ZGEzZTc3NjlmZmU1YTBhMmIyMmM2NDAxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvY2FjaGUtc3RvcmFnZS9jYWNoZS1xdW90YS5hbnkuanMKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvY2FjaGUtc3RvcmFnZS9jYWNoZS1xdW90YS5hbnkuanMKQEAgLTExNCw3ICsxMTQs
NyBAQCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICAgICAgcmV0dXJuIGNhY2hlLnB1dCgi
MWtvLXYyIiwgcmVzcG9uc2Uxa28uY2xvbmUoKSkudGhlbihhc3NlcnRfdW5yZWFjaGVkLCAoZSkg
PT4gewogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5hbWUsICJRdW90YUV4Y2VlZGVkRXJy
b3IiKTsKICAgICAgICAgfSk7Ci0gICB9KS50aGVuKCgpID0+IHsKKyAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgcmV0dXJuIGNhY2hlLmRlbGV0ZSgiMWtvLXYxIik7CiAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgIHJldHVybiBjYWNoZS5wdXQoIjFrby12MiIsIHJlc3BvbnNlMWtvLmNs
b25lKCkpOwpAQCAtMTUxLDcgKzE1MSwxMCBAQCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAg
ICAgICAgcmV0dXJuIGNhY2hlLnB1dCgiMWtvIiwgcmVzcG9uc2Uxa28uY2xvbmUoKSkudGhlbihh
c3NlcnRfdW5yZWFjaGVkLCAoZSkgPT4gewogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5h
bWUsICJRdW90YUV4Y2VlZGVkRXJyb3IiKTsKICAgICAgICAgfSk7Ci0gICB9KS50aGVuKCgpID0+
IHsKKyAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgdGVzdFJ1bm5lci5hbGxvd0NhY2hlU3Rv
cmFnZVF1b3RhSW5jcmVhc2UoKTsKKyAgICAgICAgcmV0dXJuIGNhY2hlLnB1dCgiMWtvIiwgcmVz
cG9uc2Uxa28uY2xvbmUoKSk7CisgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgIHJldHVybiBj
YWNoZS5kZWxldGUoIjFrby1wYWRkZWQtdG8tMjAwa28iKTsKICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgcmV0dXJuIGNhY2hlLnB1dCgiMWtvLXYyIiwgcmVzcG9uc2Uxa28uY2xvbmUoKSk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359413</attachid>
            <date>2019-01-17 14:29:40 -0800</date>
            <delta_ts>2019-01-17 16:59:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193323-20190117142939.patch</filename>
            <type>text/plain</type>
            <size>38093</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0OTJmOGFmMjdmOGUxODQ5
ODI2NDk1YTMwZjY4MzkzYjg3ZmYyMDAuLjM2NDQ5MGI1MDRjZWNkNWI0ZmFmMzc1MTlkNWZlMzAz
YzdlMmM5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTktMDEtMTcgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgdG8gcmVx
dWVzdCBmb3IgY2FjaGUgc3RvcmFnZSBxdW90YSBpbmNyZWFzZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMzIzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgZGVsZWdhdGUgb24gdGhlIFdlYlNp
dGVEYXRhU3RvcmUgZm9yIFdlYktpdCB0byBhc2sgZm9yIHF1b3RhIHVwZGF0ZS4KKyAgICAgICAg
VGhlIGN1cnJlbnQgU1BJIGlzIGN1cnJlbnRseSBDYWNoZVN0b3JhZ2Ugc3BlY2lmaWMgYnV0IGZ1
dHVyZSB3b3JrIHNob3VsZAorICAgICAgICBtYWtlIGl0IHNvIHRoYXQgb3RoZXIgc3RvcmFnZSBs
aWtlIElEQiB1c2UgdGhlIHNhbWUgbWVjaGFuaXNtLgorICAgICAgICBCeSBkZWZhdWx0LCBxdW90
YSByZW1haW5zIHVuY2hhbmdlZCBpZiBkZWxlZ2F0ZSBpcyBub3QgaW1wbGVtZW50ZWQuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAg
ICAgICAgKFdlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXI6OldlYnNpdGVEYXRhU3RvcmVRdW90
YU1hbmFnZXIpOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX3F1b3RhRGVsZWdhdGVd
KToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIHNldF9xdW90YURlbGVnYXRlOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdENhY2hlU3Rv
cmFnZVNwYWNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRh
U3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnF1b3RhTWFuYWdlcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFF1b3RhTWFuYWdlcik6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIu
aDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXI6
On5XZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZVF1b3RhTWFuYWdlcjo6cmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlKToKKyAgICAg
ICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wMS0xNiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgbmV3IFNQSSBm
b3IgY29udHJvbGxpbmcgZ2V0VXNlck1lZGlhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQppbmRleCAyZDE2MGVhM2Ix
Mjg4ZmU4NGRjMWQ4MjkzYzBhMzI4MzgxZmViMjZhLi5lMTA5M2U0ZGU1YWI2MzEwN2U2NTQ4OGRj
NjI2NjAxM2VmNzI1YjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBX
S19BUElfRU5BQkxFRAogCiAjaW1wb3J0ICJBUElTdHJpbmcuaCIKKyNpbXBvcnQgIkNvbXBsZXRp
b25IYW5kbGVyQ2FsbENoZWNrZXIuaCIKICNpbXBvcnQgIldLSFRUUENvb2tpZVN0b3JlSW50ZXJu
YWwuaCIKICNpbXBvcnQgIldLTlNBcnJheS5oIgogI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwu
aCIKQEAgLTM4LDkgKzM5LDQ1IEBACiAjaW1wb3J0ICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
VGVsZW1ldHJ5LmgiCiAjaW1wb3J0ICJXZWJzaXRlRGF0YUZldGNoT3B0aW9uLmgiCiAjaW1wb3J0
ICJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIgorI2ltcG9ydCAiX1dLV2Vic2l0
ZURhdGFTdG9yZURlbGVnYXRlLmgiCiAjaW1wb3J0IDxXZWJLaXQvU2VydmljZVdvcmtlclByb2Nl
c3NQcm94eS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1wb3J0IDx3dGYvVVJMLmg+
CisjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KKworY2xhc3MgV2Vic2l0ZURhdGFTdG9yZUNs
aWVudCA6IHB1YmxpYyBXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDbGllbnQgeworcHVibGljOgor
ICAgIGV4cGxpY2l0IFdlYnNpdGVEYXRhU3RvcmVDbGllbnQoaWQgPF9XS1dlYnNpdGVEYXRhU3Rv
cmVEZWxlZ2F0ZT4gZGVsZWdhdGUpCisgICAgICAgIDogbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkKKyAg
ICAgICAgLCBtX2hhc1JlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZVNlbGVjdG9yKFttX2RlbGVnYXRl
LmdldCgpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocmVxdWVzdENhY2hlU3RvcmFnZVNw
YWNlOiBmcmFtZU9yaWdpbjogcXVvdGE6IGN1cnJlbnRTaXplOiBzcGFjZVJlcXVpcmVkOiBkZWNp
c2lvbkhhbmRsZXI6KV0pCisgICAgeworICAgIH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHJlcXVl
c3RDYWNoZVN0b3JhZ2VTcGFjZShjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRv
cE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZU9yaWdpbiwg
dWludDY0X3QgcXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRTaXplLCB1aW50NjRfdCBzcGFjZVJlcXVp
cmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPHVpbnQ2NF90Pik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIGZpbmFsCisgICAgeworICAgICAgICBpZiAoIW1faGFzUmVxdWVzdENhY2hl
U3RvcmFnZVNwYWNlU2VsZWN0b3IgfHwgIW1fZGVsZWdhdGUpIHsKKyAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHsgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBhdXRvIGNoZWNrZXIgPSBXZWJLaXQ6OkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6
OmNyZWF0ZShtX2RlbGVnYXRlLmdldEF1dG9yZWxlYXNlZCgpLCBAc2VsZWN0b3IocmVxdWVzdENh
Y2hlU3RvcmFnZVNwYWNlOiBmcmFtZU9yaWdpbjogcXVvdGE6IGN1cnJlbnRTaXplOiBzcGFjZVJl
cXVpcmVkOiBkZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgICAgIGF1dG8gZGVjaXNpb25IYW5kbGVy
ID0gbWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0odW5zaWduZWQgbG9uZyBsb25nIHF1
b3RhKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxl
ckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBj
aGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKHF1b3RhKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgVVJMIG1haW5GcmFtZVVS
TCB7IFVSTCgpLCB0b3BPcmlnaW4udG9TdHJpbmcoKSB9OworICAgICAgICBVUkwgZnJhbWVVUkwg
eyBVUkwoKSwgZnJhbWVPcmlnaW4udG9TdHJpbmcoKSB9OworCisgICAgICAgIFttX2RlbGVnYXRl
LmdldEF1dG9yZWxlYXNlZCgpIHJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZTptYWluRnJhbWVVUkwg
ZnJhbWVPcmlnaW46ZnJhbWVVUkwgcXVvdGE6cXVvdGEgY3VycmVudFNpemU6Y3VycmVudFNpemUg
c3BhY2VSZXF1aXJlZDpzcGFjZVJlcXVpcmVkIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRs
ZXIuZ2V0KCldOworICAgIH0KKworICAgIFdlYWtPYmpDUHRyPGlkIDxfV0tXZWJzaXRlRGF0YVN0
b3JlRGVsZWdhdGU+ID4gbV9kZWxlZ2F0ZTsKKyAgICBib29sIG1faGFzUmVxdWVzdENhY2hlU3Rv
cmFnZVNwYWNlU2VsZWN0b3IgeyBmYWxzZSB9OworfTsKIAogQGltcGxlbWVudGF0aW9uIFdLV2Vi
c2l0ZURhdGFTdG9yZQogCkBAIC0zODMsNiArNDIwLDE3IEBAIC0gKGJvb2wpX2hhc1JlZ2lzdGVy
ZWRTZXJ2aWNlV29ya2VyCiAgICAgcmV0dXJuIFdlYktpdDo6U2VydmljZVdvcmtlclByb2Nlc3NQ
cm94eTo6aGFzUmVnaXN0ZXJlZFNlcnZpY2VXb3JrZXJzKF93ZWJzaXRlRGF0YVN0b3JlLT53ZWJz
aXRlRGF0YVN0b3JlKCkuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSgpKTsKIH0K
IAorLSAoaWQgPF9XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZT4pX2RlbGVnYXRlCit7CisgICAg
cmV0dXJuIF9kZWxlZ2F0ZS5nZXQoKTsKK30KKworLSAodm9pZClzZXRfZGVsZWdhdGU6KGlkIDxf
V0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGU+KWRlbGVnYXRlCit7CisgICAgX2RlbGVnYXRlID0g
ZGVsZWdhdGU7CisgICAgX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5zZXRD
bGllbnQobWFrZVVuaXF1ZVJlZjxXZWJzaXRlRGF0YVN0b3JlQ2xpZW50PihkZWxlZ2F0ZSkpOwor
fQorCiBAZW5kCiAKICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlSW50
ZXJuYWwuaAppbmRleCBkODYxODc1MjczYmE3ZGY2N2UyODY2ZDE0NTViOTZiN2YzZGM0N2Y2Li4y
YzViNzhlMTU5OTI3ZGViYmY0NTQ1NmExMjNmMmJmN2ZlNTdlNjM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlSW50ZXJuYWwuaApAQCAtNDEsNiArNDEsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBXcmFwcGVy
VHJhaXRzPEFQSTo6V2Vic2l0ZURhdGFTdG9yZT4gewogQGludGVyZmFjZSBXS1dlYnNpdGVEYXRh
U3RvcmUgKCkgPFdLT2JqZWN0PiB7CiBAcGFja2FnZQogICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxB
UEk6OldlYnNpdGVEYXRhU3RvcmU+IF93ZWJzaXRlRGF0YVN0b3JlOworICAgIFJldGFpblB0cjxp
ZCA8X1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlPiA+IF9kZWxlZ2F0ZTsKIH0KIEBlbmQKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKaW5kZXggNzRhOGEwMmYyZjFkOWVlOTVjOTdhZjlhOTZl
M2M2MDEzMTkyMDE2MS4uZmVkMjQyNWRiYjVhODllMjRkZWQ1NWQ3NmM1NjFkN2MwMDFkMGFiMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCkBAIC0zMiw2ICszMiw4IEBAIE5TX0FTU1VNRV9O
T05OVUxMX0JFR0lOCiBAY2xhc3MgX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb247CiBA
Y2xhc3MgV0tXZWJWaWV3OwogCitAcHJvdG9jb2wgX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRl
OworCiB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZURhdGFTdG9yZUZl
dGNoT3B0aW9ucykgewogICAgIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9wdGlvbkNvbXB1dGVT
aXplcyA9IDEgPDwgMCwKIH0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAu
MCkpOwpAQCAtNjIsNiArNjQsOCBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dL
V2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucykgewogKyAodm9pZClfYWxsb3dXZWJzaXRlRGF0
YVJlY29yZHNGb3JBbGxPcmlnaW5zIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBp
b3MoMTEuMykpOwogLSAoYm9vbClfaGFzUmVnaXN0ZXJlZFNlcnZpY2VXb3JrZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwogCitAcHJvcGVydHkgKG51bGxhYmxl
LCBub25hdG9taWMsIHdlYWspIGlkIDxfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGU+IF9kZWxl
Z2F0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKKwogQGVuZAogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlRGVs
ZWdhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yZjk5ZDdjMWUwNjc4NWViOTI3NDE5MTc5MDg1MzQzMjYyNDY1
NTNkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisjaWYgV0tfQVBJX0VOQUJM
RUQKKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKK0Bwcm90b2NvbCBfV0tX
ZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUgPE5TT2JqZWN0PgorCitAb3B0aW9uYWwKKworLSAodm9p
ZClyZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2U6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lT3Jp
Z2luOihOU1VSTCAqKWZyYW1lVVJMIHF1b3RhOihOU1VJbnRlZ2VyKXF1b3RhIGN1cnJlbnRTaXpl
OihOU1VJbnRlZ2VyKWN1cnJlbnRTaXplIHNwYWNlUmVxdWlyZWQ6KE5TVUludGVnZXIpc3BhY2VS
ZXF1aXJlZCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90
YSkpZGVjaXNpb25IYW5kbGVyOworCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXgg
NjAwYzBiYzM5YWVjMzkyNjlhOGRmZWQ5ZjVhZWNlOTBlMzQyMjRiOS4uNTYwZDZlZTA4NDQ4ZTNi
ZDZkOTRkMDQ5NzA1NDE3NjBjZDRlNDllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC00Myw2ICs0Myw4
IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNsdWRlICJXZWJVc2VyQ29udGVu
dENvbnRyb2xsZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCisjaW5jbHVkZSAi
V2Vic2l0ZURhdGFTdG9yZUNsaWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2lu
Lmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKICNpZiBFTkFCTEUoU0VD
X0lURU1fU0hJTSkKQEAgLTc0Myw4ICs3NDUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OnJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbgog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gRklYTUU6IEFzayBXZWJzaXRlRGF0YVN0
b3JlIGFib3V0IHVwZGF0aW5nIHRoZSBxdW90YSBmb3IgdGhpcyBvcmlnaW4uCi0gICAgY29tcGxl
dGlvbkhhbmRsZXIocXVvdGEpOworICAgIHN0b3JlLT5jbGllbnQoKS5yZXF1ZXN0Q2FjaGVTdG9y
YWdlU3BhY2Uob3JpZ2luLnRvcE9yaWdpbiwgb3JpZ2luLmNsaWVudE9yaWdpbiwgcXVvdGEsIGN1
cnJlbnRTaXplLCBzcGFjZVJlcXVpcmVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCAwYWFiYmU0OGRi
MTM1ZDg2YmYyODRiMDU1NDIxNDNhMTdiZDhlOWEwLi5mNzU4NTFiMWM2YWU4MmNlYzlhOGM5NTMw
YWViMmI5NGMyYmE0N2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2lu
Y2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgogI2luY2x1ZGUgIldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURh
dGEuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZVRyYWNrZXIuaD4KQEAg
LTk3LDYgKzk4LDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShSZWY8V2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+JiYgY29uZmlndXIKICNpZiBFTkFCTEUoV0VCX0FV
VEhOKQogICAgICwgbV9hdXRoZW50aWNhdG9yTWFuYWdlcihtYWtlVW5pcXVlUmVmPEF1dGhlbnRp
Y2F0b3JNYW5hZ2VyPigpKQogI2VuZGlmCisgICAgLCBtX2NsaWVudChtYWtlVW5pcXVlUmVmPFdl
YnNpdGVEYXRhU3RvcmVDbGllbnQ+KCkpCiB7CiAgICAgV1RGOjpzZXRQcm9jZXNzUHJpdmlsZWdl
cyhhbGxQcml2aWxlZ2VzKCkpOwogICAgIG1heWJlUmVnaXN0ZXJXaXRoU2Vzc2lvbklETWFwKCk7
CkBAIC0xMTQsNiArMTE2LDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAjaWYgRU5BQkxFKFdFQl9BVVRITikKICAgICAsIG1f
YXV0aGVudGljYXRvck1hbmFnZXIobWFrZVVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yTWFuYWdlcj4o
KSkKICNlbmRpZgorICAgICwgbV9jbGllbnQobWFrZVVuaXF1ZVJlZjxXZWJzaXRlRGF0YVN0b3Jl
Q2xpZW50PigpKQogewogICAgIG1heWJlUmVnaXN0ZXJXaXRoU2Vzc2lvbklETWFwKCk7CiAgICAg
cGxhdGZvcm1Jbml0aWFsaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggOTEyZDhlNDc1Y2Q2YTIxNzk5
OWEwOTAxNzhlYjY1OGZjMjE3OWM2OS4uZmEzNDAxM2E2M2VkZGQ3MzU2MjdiNzBkYmMzNWFkMjE0
NWEyM2I5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTGlm
ZXRpbWVPYnNlcnZlci5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVDbGllbnQuaCIKICNp
bmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvQ29va2llLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KQEAg
LTE4OCw2ICsxODksOSBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbigpIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5nZXQo
KTsgfQogCisgICAgV2Vic2l0ZURhdGFTdG9yZUNsaWVudCYgY2xpZW50KCkgeyByZXR1cm4gbV9j
bGllbnQuZ2V0KCk7IH0KKyAgICB2b2lkIHNldENsaWVudChVbmlxdWVSZWY8V2Vic2l0ZURhdGFT
dG9yZUNsaWVudD4mJiBjbGllbnQpIHsgbV9jbGllbnQgPSBXVEZNb3ZlKGNsaWVudCk7IH0KKwog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlKFBBTDo6U2Vzc2lvbklEKTsK
ICAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlKFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbj4mJiwgUEFMOjpTZXNzaW9uSUQpOwpAQCAtMjU2LDYgKzI2MCw4IEBAIHByaXZhdGU6
CiAjaWYgRU5BQkxFKFdFQl9BVVRITikKICAgICBVbmlxdWVSZWY8QXV0aGVudGljYXRvck1hbmFn
ZXI+IG1fYXV0aGVudGljYXRvck1hbmFnZXI7CiAjZW5kaWYKKworICAgIFVuaXF1ZVJlZjxXZWJz
aXRlRGF0YVN0b3JlQ2xpZW50PiBtX2NsaWVudDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDbGll
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45MGVhN2QzYzE3OGUyNzcyZTE2MDk0YThkODYyYzMyMDhlZDFmNjM2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZUNsaWVudC5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2Vic2l0ZURhdGFTdG9yZUNsaWVudCB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+V2Vic2l0ZURhdGFTdG9yZUNsaWVudCgpIHsgfQorCisgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZShjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFt
ZU9yaWdpbiwgdWludDY0X3QgcXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRTaXplLCB1aW50NjRfdCBz
cGFjZVJlcXVpcmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPHVpbnQ2NF90Pik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7
IH0pOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTcxNDFlODM3YzUyYmNk
ZTBkNTQyOTM3MTMxOWY5OGI4NzFjNTNkZi4uZGZkZGQ1ZmQ5Y2Y1MTA1MjE3MThmNGNkNmY4NzBk
NTE5NTU2ZDliMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0yOTg5LDYgKzI5ODksNyBAQAogCQk0MTEyRURENzIwRTQwNzc1MDBCRUE5
MkEgLyogY29tLmFwcGxlLk5QU2FmZVN1Ym1pdC5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBj
b20uYXBwbGUuTlBTYWZlU3VibWl0LnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTEyRUREODIwRTQwNzc1MDBCRUE5MkEgLyogY29tLmFwcGxlLk5QU2FmZUlucHV0LnNiICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5OUFNhZmVJbnB1dC5zYjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDExMkVERDkyMEU0MDc3NTAwQkVBOTJBIC8qIGNvbS5hcHBsZS5C
b2NvbVN1Ym1pdEN0cmwuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLkJvY29t
U3VibWl0Q3RybC5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDExOERDMUIyMUU2
RDExQTAwREUwNEM3IC8qIFdlYnNpdGVEYXRhU3RvcmVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2Vic2l0ZURhdGFTdG9yZUNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTFBOEREOTIwRERCNjA1MDA2MEQzNEYgLyogV0tNb2NrTWVkaWFE
ZXZpY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tNb2NrTWVkaWFEZXZp
Y2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExQThEREEyMEREQjYwNTAwNjBE
MzRGIC8qIFdLTW9ja01lZGlhRGV2aWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdLTW9ja01lZGlhRGV2aWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDExQjIyNjIxRTM3MTI0NDAwNEY3MzYzIC8qIExpYldlYlJUQ05ldHdvcmsuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDTmV0d29yay5oOyBwYXRoID0g
TmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMzA0NCw2ICszMDQ1LDcgQEAKIAkJNDFCN0VENkYyMDY5NjU5MDAwODdEODUzIC8q
IE5ldHdvcmtNRE5TUmVnaXN0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTmV0d29ya01ETlNSZWdpc3Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxQjdFRDcwMjA2OTY1OTAwMDg3RDg1MyAvKiBOZXR3b3JrTUROU1JlZ2lzdGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtNRE5TUmVnaXN0ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFCN0VENzEyMDY5NjU5MDAwODdEODUzIC8qIE5l
dHdvcmtNRE5TUmVnaXN0ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmV0
d29ya01ETlNSZWdpc3Rlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDFDNTM3OEYyMUYxMzYyRDAwOEIxRkFEIC8qIF9XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tXZWJzaXRlRGF0YVN0b3Jl
RGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFDODU4MTkxRjUxMERF
RTAwNjVFMDg1IC8qIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFEMEZDN0QyMEU0M0E1MTAwMDc2QUU4IC8qIE5ldHdv
cmstT1NYLXNhbmRib3guZW50aXRsZW1lbnRzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC5lbnRpdGxl
bWVudHM7IHBhdGggPSAiTmV0d29yay1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MUQxMjlEOTFGM0QxMDE0MDBEMTVFNDcgLyogV2ViQ2Fj
aGVTdG9yYWdlUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ2FjaGVTdG9yYWdlUHJvdmlk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4NDIsNiArNDg0NCw3IEBACiAJ
CQkJMUE0ODMyQ0YxQTlCRDgyMTAwOEI0REZFIC8qIFdlYnNpdGVEYXRhUmVjb3JkLmggKi8sCiAJ
CQkJMUE1M0MyQTQxQTMyNTY5RjAwNEU4QzcwIC8qIFdlYnNpdGVEYXRhU3RvcmUuY3BwICovLAog
CQkJCTFBNTNDMkE1MUEzMjU2OUYwMDRFOEM3MCAvKiBXZWJzaXRlRGF0YVN0b3JlLmggKi8sCisJ
CQkJNDExOERDMUIyMUU2RDExQTAwREUwNEM3IC8qIFdlYnNpdGVEYXRhU3RvcmVDbGllbnQuaCAq
LywKIAkJCQk1QzQ2QzBBQzIxQjcxOThCMDBCQzU5OTEgLyogV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uY3BwICovLAogCQkJCTVDNDZDMEFEMjFCNzE5OEMwMEJDNTk5MSAvKiBXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oICovLAogCQkJCTQxMThEQzFCMjFFNkQxMUEwMERFMDRD
NyAvKiBXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyLmggKi8sCkBAIC02MDUzLDYgKzYwNTYs
NyBAQAogCQkJCTUxMjBDODMzMUU1QjcxNTcwMDI1QjI1MCAvKiBfV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5oICovLAogCQkJCTUxMjBDODM0MUU1QjcxNTcwMDI1QjI1MCAvKiBfV0tX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbSAqLywKIAkJCQk1QzQ2QzBBRTIxQjcxQUUy
MDBCQzU5OTEgLyogX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25JbnRlcm5hbC5oICov
LAorCQkJCTQxQzUzNzhGMjFGMTM2MkQwMDhCMUZBRCAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlRGVs
ZWdhdGUuaCAqLywKIAkJCQk1Q0IyMzc4OTFERjBERDQzMDAxMTdBQTMgLyogX1dLV2Vic2l0ZVBv
bGljaWVzLmggKi8sCiAJCQkJNUNCMjM3OEExREYwREQ0MzAwMTE3QUEzIC8qIF9XS1dlYnNpdGVQ
b2xpY2llcy5tbSAqLywKIAkJCQk1Q0IyMzc4RDFERjBFMEMyMDAxMTdBQTMgLyogX1dLV2Vic2l0
ZVBvbGljaWVzSW50ZXJuYWwuaCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBhYmJlNGMxZGMxNDhjNjBiOTY3ZDE4MmY4NGQzNmE3OTFhODhi
ZDkxLi4yZjI2MzZiYTY4YTA2NzIyNDI0YzNhYjhkMjc2NzUxMDk0ODUwODNiIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAK
KzIwMTktMDEtMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBhIG5ldyBTUEkgdG8gcmVxdWVzdCBmb3IgY2FjaGUgc3RvcmFnZSBxdW90YSBpbmNyZWFz
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMzIz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVt
ZW50IFdlYnNpdGVEYXRhU3RvcmUgcXVvdGEgZGVsZWdhdGUgdG8gaGFuZGxlIHF1b3RhIHJlcXVl
c3RzLgorICAgICAgICBCeSBkZWZhdWx0LCBkbyBub3QgdXBkYXRlIHF1b3RhLgorICAgICAgICBV
cGRhdGUgcXVvdGEgaWYgdGVzdCBjYWxscyB0aGUgbmV3IHRlc3RSdW5uZXIuYWxsb3dDYWNoZVN0
b3JhZ2VRdW90YUluY3JlYXNlIG1ldGhvZC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdFJ1bm5lcjo6YWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OmFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlk
UmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAo
LVtDYWNoZVN0b3JhZ2VRdW90YU1hbmFnZXIgaW5pdF0pOgorICAgICAgICAoLVtDYWNoZVN0b3Jh
Z2VRdW90YU1hbmFnZXIgX3JlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZTpmcmFtZU9yaWdpbjpxdW90
YTpjdXJyZW50U2l6ZTpzcGFjZVJlcXVpcmVkOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAg
KFdUUjo6aW5pdGlhbGl6ZVdlYlZpZXdDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OmNvY29hUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjphbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UpOgor
CiAyMDE5LTAxLTE3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ11bQkZDXSBBbiBlbGVtZW50IHdpdGggdHJhbnNmb3JtIGlzIGEgY29udGFpbmluZyBibG9j
ayBmb3IgcG9zaXRpb25lZCBkZXNjZW5kYW50cy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmlu
ZGV4IDY3ZmM5M2U5MTYyMmJkZDMzMzE4NWM3ZjZiMjA4YTM5ZmVlNDQ1MTYuLmYxNTU1MGY1MzBl
ZDBmM2Q1MTk0NzgwMjI2OTUyMDFlOTAyY2JhYjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlk
bApAQCAtNjIsNiArNjIsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdm9pZCBjbGVh
ckRPTUNhY2hlKERPTVN0cmluZyBvcmlnaW4pOwogICAgIGJvb2xlYW4gaGFzRE9NQ2FjaGUoRE9N
U3RyaW5nIG9yaWdpbik7CiAgICAgdW5zaWduZWQgbG9uZyBkb21DYWNoZVNpemUoRE9NU3RyaW5n
IG9yaWdpbik7CisgICAgdm9pZCBhbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UoKTsKIAog
ICAgIC8vIFNwZWNpYWwgb3B0aW9ucy4KICAgICB2b2lkIGtlZXBXZWJIaXN0b3J5KCk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cAppbmRleCBmOTdhZTQ3YjhkNWZiMmVhZDFiZTRmOTU5N2UxNTY4Zjc2ZGYwMTZhLi5kN2E5ZDI0
ODI5ZGY4Yjc0YWQ4YmNkOTFkZGQ5NjA5NGIyY2U1ODUwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTIzNjcsNiAr
MjM2NywxMiBAQCB1aW50NjRfdCBUZXN0UnVubmVyOjpkb21DYWNoZVNpemUoSlNTdHJpbmdSZWYg
b3JpZ2luKQogICAgIHJldHVybiBXS1VJbnQ2NEdldFZhbHVlKHN0YXRpY19jYXN0PFdLVUludDY0
UmVmPihyZXR1cm5EYXRhKSk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6YWxsb3dDYWNoZVN0b3Jh
Z2VRdW90YUluY3JlYXNlKCkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2Fn
ZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkFsbG93Q2FjaGVT
dG9yYWdlUXVvdGFJbmNyZWFzZSIpKTsKKyAgICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01lc3Nh
Z2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQo
KSwgbnVsbHB0ciwgbnVsbHB0cik7Cit9CisKIHZvaWQgVGVzdFJ1bm5lcjo6Z2V0QXBwbGljYXRp
b25NYW5pZmVzdFRoZW4oSlNWYWx1ZVJlZiBjYWxsYmFjaykKIHsKICAgICBjYWNoZVRlc3RSdW5u
ZXJDYWxsYmFjayhHZXRBcHBsaWNhdGlvbk1hbmlmZXN0Q2FsbGJhY2tJRCwgY2FsbGJhY2spOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
aAppbmRleCAyMjE0ZDc3YjhjMzk3OWE0N2M1ZThlZGFhNWQzMjcxMmQxNDM0MWQ5Li5hNDAxOTk5
ZjQxMmU5YmQzOTMyYWI4MWM4NGI3NzczZDVkZjA3M2YzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMTc1LDYgKzE3NSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyRE9NQ2FjaGVzKCk7CiAgICAgYm9vbCBoYXNET01D
YWNoZShKU1N0cmluZ1JlZiBvcmlnaW4pOwogICAgIHVpbnQ2NF90IGRvbUNhY2hlU2l6ZShKU1N0
cmluZ1JlZiBvcmlnaW4pOworICAgIHZvaWQgYWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNl
KCk7CiAKICAgICAvLyBJbmRleGVkREIKICAgICB2b2lkIHNldElEQlBlck9yaWdpblF1b3RhKHVp
bnQ2NF90KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXgg
N2M4OGUwMDI3ZjNkNzUwYmU2MTU2NzIzMmE4ODFhZGNkZmI0ZGRhOC4uN2NiN2Y1Y2Q5ZTg1ZDU3
ZjYzNGE3MGI0MTE3ZjU3ZjM0ODU1OGQ3NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKQEAgLTI4MzAsNiArMjgzMCwxMyBAQCB1aW50NjRfdCBUZXN0Q29udHJv
bGxlcjo6ZG9tQ2FjaGVTaXplKFdLU3RyaW5nUmVmIG9yaWdpbikKICAgICByZXR1cm4gY29udGV4
dC5yZXN1bHQ7CiB9CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCit2b2lkIFRlc3RDb250cm9sbGVy
OjphbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UoKQoreworICAgIC8vIEZJWE1FOiBUbyBp
bXBsZW1lbnQuCit9CisjZW5kaWYKKwogc3RydWN0IFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNr
Q29udGV4dCB7CiAgICAgZXhwbGljaXQgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0
KFRlc3RDb250cm9sbGVyJiBjb250cm9sbGVyKQogICAgICAgICA6IHRlc3RDb250cm9sbGVyKGNv
bnRyb2xsZXIpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggMTNh
MzljNjkwNWYwZDg3YmE4N2I5ZGI1N2Y4ZGFkNWMxN2FjNzFiYy4uMTQyNWNiZmQ1MWE3NjA0YWUx
MGM1Nzk0NDU1N2FhMDZhMjBlYWM4MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaApAQCAtMjQ4LDYgKzI0OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyRE9NQ2Fj
aGVzKCk7CiAgICAgYm9vbCBoYXNET01DYWNoZShXS1N0cmluZ1JlZiBvcmlnaW4pOwogICAgIHVp
bnQ2NF90IGRvbUNhY2hlU2l6ZShXS1N0cmluZ1JlZiBvcmlnaW4pOworICAgIHZvaWQgYWxsb3dD
YWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlKCk7CiAKICAgICB2b2lkIHNldElEQlBlck9yaWdpblF1
b3RhKHVpbnQ2NF90KTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cAppbmRleCAwYzZjODc3ZmYxZGFiNzU1YWRlMjhlOWUyMzRmNDRlNTVmZDk0YzI3Li4xZDhkN2Q5
YmUwNTViNDg2NjJhZDMwZTMzNzA3ZjAyN2FlZWM1ZWI1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTQyOCw2ICsxNDI4LDExIEBAIFdLUmV0YWluUHRy
PFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VG
cm9tSW5qZWN0ZWRCCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCisgICAgaWYgKFdL
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJBbGxvd0NhY2hlU3RvcmFn
ZVF1b3RhSW5jcmVhc2UiKSkgeworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCku
YWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlKCk7CisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VO
YW1lLCAiU2V0SURCUGVyT3JpZ2luUXVvdGEiKSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBl
SUQobWVzc2FnZUJvZHkpID09IFdLVUludDY0R2V0VHlwZUlEKCkpOwogICAgICAgICBXS1VJbnQ2
NFJlZiBxdW90YSA9IHN0YXRpY19jYXN0PFdLVUludDY0UmVmPihtZXNzYWdlQm9keSk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5l
ci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE1YjU1NmJlYmUxMTgxYzlmZjMxMjcx
YzJmMDMzZTMzYTY1YjRlNzMuLmMwOTYxNjUzZTVkZTRjYWM4YmJiMjk5N2M4Mjk4ZTNhNTc1OTli
ZjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2Vi
S2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NCw2ICs4NCw3IEBA
CiAJCTJFNjNFREE2MTg5MUJEQzAwMDJBN0FGQyAvKiBUZXN0UnVubmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzk5ODE3MTFEM0Y1MUUwMDE3
QkNBMiAvKiBUZXN0UnVubmVyLmNwcCAqLzsgfTsKIAkJMkU3NDlCRjIxODkxRUJGQTAwN0ZDMTc1
IC8qIEV2ZW50U2VuZGVyUHJveHlJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRTYzRUQ3QTE4OTFBQ0U5MDAyQTdBRkMgLyogRXZlbnRTZW5kZXJQ
cm94eUlPUy5tbSAqLzsgfTsKIAkJMzFEQThBM0QxRTcyMDVDQzAwRTFERjJGIC8qIElPU0xheW91
dFRlc3RDb21tdW5pY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxNDhBMDUzMUU2Rjg1QjYwMEQzQjMxNiAvKiBJT1NMYXlvdXRUZXN0Q29t
bXVuaWNhdGlvbi5jcHAgKi87IH07CisJCTQxQzUzNzhFMjFGMTM0MTQwMDhCMUZBRCAvKiBUZXN0
V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDFDNTM3OEQyMUYxMzMzQzAwOEIxRkFEIC8qIFRlc3RXZWJzaXRl
RGF0YVN0b3JlRGVsZWdhdGUubW0gKi87IH07CiAJCTQ0MzBBRTE5MUY4MkM0RkQwMDk5OTE1QSAv
KiBHZW5lcmF0ZWRUb3VjaGVzRGVidWdXaW5kb3cubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDMwQUUxNzFGODJDNEVFMDA5OTkxNUEgLyogR2VuZXJh
dGVkVG91Y2hlc0RlYnVnV2luZG93Lm1tICovOyB9OwogCQk1MTA1OEFENTFENjc4ODIwMDA5QTUz
OEMgLyogbGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyMzBFMTYxMzhDNzhCRjAwQkNDRkNBIC8qIGxp
YldlYkNvcmVUZXN0U3VwcG9ydC5keWxpYiAqLzsgfTsKIAkJNTEwNThBRDYxRDY3ODgyNTAwOUE1
MzhDIC8qIFdlYktpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjUxNjlDQTE0NDUyMjJEMDBFMEE5RDcgLyogV2ViS2l0LmZyYW1l
d29yayAqLzsgfTsKQEAgLTI4Niw2ICsyODcsOCBAQAogCQkzNzhENDQyMjEzMzQ2RDAwMDA2QTc3
N0IgLyogY29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNvbmZpZy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTIzMEUxNjEzOEM3OEJGMDBCQ0NGQ0EgLyogbGliV2ViQ29yZVRlc3RT
dXBwb3J0LmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IHBhdGggPSBsaWJXZWJDb3JlVGVzdFN1cHBv
cnQuZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTQxODE3MzFC
MTM4QUQzOUQwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV2ViQ29yZVRlc3RTdXBwb3J0Lmg7IHBhdGggPSBXZWJDb3JlVGVz
dFN1cHBvcnQvV2ViQ29yZVRlc3RTdXBwb3J0Lmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CisJCTQxQzUzNzhDMjFGMTMzM0MwMDhCMUZBRCAvKiBUZXN0V2Vic2l0ZURhdGFT
dG9yZURlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRlc3RXZWJz
aXRlRGF0YVN0b3JlRGVsZWdhdGUuaDsgcGF0aCA9IGNvY29hL1Rlc3RXZWJzaXRlRGF0YVN0b3Jl
RGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFDNTM3OEQyMUYxMzMz
QzAwOEIxRkFEIC8qIFRlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBUZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRl
Lm1tOyBwYXRoID0gY29jb2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQyOUZDNUUxNjI3MDg5NjAwRjY2RDhCIC8qIFdvcmtR
dWV1ZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV29y
a1F1ZXVlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MjlGQzYx
MTYyNzA4OTYwMEY2NkQ4QiAvKiBXb3JrUXVldWVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdvcmtRdWV1ZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDQzMEFFMTcxRjgyQzRFRTAwOTk5MTVBIC8qIEdlbmVyYXRlZFRvdWNoZXNEZWJ1
Z1dpbmRvdy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdlbmVyYXRlZFRvdWNoZXNEZWJ1Z1dp
bmRvdy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU2NCw2ICs1NjcsOCBAQAog
CQkJCTJEQ0UyQ0QxMUI4NDUyNDUwMEM3RjgzMiAvKiBUZXN0Q29udHJvbGxlckNvY29hLm1tICov
LAogCQkJCTBGODdCNjE0MUJBQ0M0QjkwMDRFQzU3MiAvKiBUZXN0UnVubmVyV0tXZWJWaWV3Lmgg
Ki8sCiAJCQkJMEY4N0I2MTUxQkFDQzRCOTAwNEVDNTcyIC8qIFRlc3RSdW5uZXJXS1dlYlZpZXcu
bW0gKi8sCisJCQkJNDFDNTM3OEMyMUYxMzMzQzAwOEIxRkFEIC8qIFRlc3RXZWJzaXRlRGF0YVN0
b3JlRGVsZWdhdGUuaCAqLywKKwkJCQk0MUM1Mzc4RDIxRjEzMzNDMDA4QjFGQUQgLyogVGVzdFdl
YnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbSAqLywKIAkJCQlGNDYyNDBBRjIxNzAxMjgzMDA5MTdC
MTYgLyogVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IGNv
Y29hOwpAQCAtMTA5MSw2ICsxMDk2LDcgQEAKIAkJCQlBMTg1MTAzRDFCOUFFMTA2MDA3NDRBRUIg
LyogVGVzdEludm9jYXRpb25DRy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjYyMkNFOTFCQkIz
QTFBMDA4MzhBRDMgLyogVGVzdE9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4N0I2
MTcxQkFDQzRDMDAwNEVDNTcyIC8qIFRlc3RSdW5uZXJXS1dlYlZpZXcubW0gaW4gU291cmNlcyAq
LywKKwkJCQk0MUM1Mzc4RTIxRjEzNDE0MDA4QjFGQUQgLyogVGVzdFdlYnNpdGVEYXRhU3RvcmVE
ZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGMThFNkU1MUQ2QjlCOUUwMDI3RTU0NyAv
KiBVSVNjcmlwdENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxOEU2RTYxRDZCOUJB
MjAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
NDYyNDBCMTIxNzAxM0U1MDA5MTdCMTYgLyogVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0gaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVz
dENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENv
bnRyb2xsZXJDb2NvYS5tbQppbmRleCAyYzFmNmE2M2M5ZTQ5ZTdjY2U4MWRhY2I2MGRkYTJmOGY1
YjE4YTgzLi4zNjNhMmM2ZTExNGQ1N2Q4YmFmMTc4MWRmNjFhMTM2NGM1MjBjMjA5IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0K
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1t
CkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJTdHJpbmdGdW5jdGlvbnMuaCIKICNpbXBvcnQg
IlRlc3RJbnZvY2F0aW9uLmgiCiAjaW1wb3J0ICJUZXN0UnVubmVyV0tXZWJWaWV3LmgiCisjaW1w
b3J0ICJUZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9u
L0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFNlY3VyaXR5L1NlY0l0ZW0uaD4KICNpbXBvcnQgPFdl
YktpdC9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmg+CkBAIC01NSw2ICs1NiwxMCBAQCBuYW1l
c3BhY2UgV1RSIHsKIAogc3RhdGljIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmdsb2JhbFdlYlZp
ZXdDb25maWd1cmF0aW9uOwogCisjaWYgV0tfQVBJX0VOQUJMRUQKK3N0YXRpYyBUZXN0V2Vic2l0
ZURhdGFTdG9yZURlbGVnYXRlICpnbG9iYWxXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGVDbGllbnQ7
CisjZW5kaWYKKwogdm9pZCBpbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24oY29uc3QgY2hh
ciogbGlicmFyeVBhdGgsIFdLU3RyaW5nUmVmIGluamVjdGVkQnVuZGxlUGF0aCwgV0tDb250ZXh0
UmVmIGNvbnRleHQsIFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29udGV4dENvbmZpZ3VyYXRp
b24pCiB7CiAjaWYgV0tfQVBJX0VOQUJMRUQKQEAgLTgwLDYgKzg1LDEyIEBAIHZvaWQgaW5pdGlh
bGl6ZVdlYlZpZXdDb25maWd1cmF0aW9uKGNvbnN0IGNoYXIqIGxpYnJhcnlQYXRoLCBXS1N0cmlu
Z1JlZiBpbmplY3RlCiAgICAgW2dsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLndlYnNpdGVEYXRh
U3RvcmUgX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOllFU107CiAgICAgW2dsb2Jh
bFdlYlZpZXdDb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgX3Jlc291cmNlTG9hZFN0YXRp
c3RpY3NTZXRTaG91bGRTdWJtaXRUZWxlbWV0cnk6Tk9dOwogCisjaWYgV0tfQVBJX0VOQUJMRUQK
KyAgICBbZ2xvYmFsV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlQ2xpZW50IHJlbGVhc2VdOworICAg
IGdsb2JhbFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZUNsaWVudCA9IFtbVGVzdFdlYnNpdGVEYXRh
U3RvcmVEZWxlZ2F0ZSBhbGxvY10gaW5pdF07CisgICAgW2dsb2JhbFdlYlZpZXdDb25maWd1cmF0
aW9uLndlYnNpdGVEYXRhU3RvcmUgc2V0X2RlbGVnYXRlOmdsb2JhbFdlYnNpdGVEYXRhU3RvcmVE
ZWxlZ2F0ZUNsaWVudF07CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAg
Z2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24uYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjayA9IFlF
UzsKICAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5faW5saW5lTWVkaWFQbGF5YmFja1Jl
cXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUgPSBOTzsKQEAgLTI1Miw2ICsyNjMsOCBAQCB2b2lk
IFRlc3RDb250cm9sbGVyOjpjb2NvYVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3Qg
VGVzdE9wdGlvbnMmIG9wdGlvbgogICAgICAgICBpZiAob3B0aW9ucy5zaG91bGRTaG93U3BlbGxD
aGVja2luZ0RvdHMpCiAgICAgICAgICAgICBbcGxhdGZvcm1WaWV3IHRvZ2dsZUNvbnRpbnVvdXNT
cGVsbENoZWNraW5nOm5pbF07CiAgICAgfQorCisgICAgW2dsb2JhbFdlYnNpdGVEYXRhU3RvcmVE
ZWxlZ2F0ZUNsaWVudCBzZXRBbGxvd1JhaXNpbmdRdW90YTogZmFsc2VdOwogI2VuZGlmCiB9CiAK
QEAgLTM4NSw0ICszOTgsMTEgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6a2V5RXhpc3RzSW5LZXlj
aGFpbihjb25zdCBTdHJpbmcmIGF0dHJMYWJlbCwgY29uc3QgU3RyaW5nJgogICAgIHJldHVybiBm
YWxzZTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6YWxsb3dDYWNoZVN0b3JhZ2VRdW90YUlu
Y3JlYXNlKCkKK3sKKyNpZiBXS19BUElfRU5BQkxFRAorICAgIFtnbG9iYWxXZWJzaXRlRGF0YVN0
b3JlRGVsZWdhdGVDbGllbnQgc2V0QWxsb3dSYWlzaW5nUXVvdGE6IHRydWVdOworI2VuZGlmCit9
CisKIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmggYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2NvY29hL1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
NGZhODFlMTM2OTBiMTUwNGQxNmMyMWE1ZTVmMTI5ZTQ1MjU2Y2I4Ci0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVn
YXRlLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSA8V2ViS2l0L19XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oPgorCisjaWYgV0tfQVBJ
X0VOQUJMRUQKKworQGludGVyZmFjZSBUZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlOiBOU09i
amVjdCA8X1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlPiB7CitAcHJpdmF0ZQorICAgIEJPT0wg
X3Nob3VsZEFsbG93UmFpc2luZ1F1b3RhOworfQorLSAoaW5zdGFuY2V0eXBlKWluaXQ7CistICh2
b2lkKXNldEFsbG93UmFpc2luZ1F1b3RhOihCT09MKXNob3VsZEFsbG93UmFpc2luZ1F1b3RhOwor
QGVuZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2Ev
VGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Y29jb2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDU1Yjc3
M2I4ZWE0ODljMzdkZGYzODYwMTUwYTA5YmU1YzA4NTU5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLm1t
CkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIlRlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVE
CisKK0BpbXBsZW1lbnRhdGlvbiBUZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlIHsgfQorLSAo
aW5zdGFuY2V0eXBlKWluaXQKK3sKKyAgICBfc2hvdWxkQWxsb3dSYWlzaW5nUXVvdGEgPSBmYWxz
ZTsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClyZXF1ZXN0Q2FjaGVTdG9yYWdlU3Bh
Y2U6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lT3JpZ2luOihOU1VSTCAqKWZyYW1lVVJMIHF1
b3RhOihOU1VJbnRlZ2VyKXF1b3RhIGN1cnJlbnRTaXplOihOU1VJbnRlZ2VyKWN1cnJlbnRTaXpl
IHNwYWNlUmVxdWlyZWQ6KE5TVUludGVnZXIpc3BhY2VSZXF1aXJlZCBkZWNpc2lvbkhhbmRsZXI6
KHZvaWQgKF4pKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkpZGVjaXNpb25IYW5kbGVyCit7Cisg
ICAgZGVjaXNpb25IYW5kbGVyKF9zaG91bGRBbGxvd1JhaXNpbmdRdW90YSA/IDIgKiBxdW90YSA6
IHF1b3RhKTsKK30KKworLSAodm9pZClzZXRBbGxvd1JhaXNpbmdRdW90YTooQk9PTClzaG91bGRB
bGxvd1JhaXNpbmdRdW90YQoreworICAgIF9zaG91bGRBbGxvd1JhaXNpbmdRdW90YSA9IHNob3Vs
ZEFsbG93UmFpc2luZ1F1b3RhOworfQorQGVuZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlODU2MjU0ZjZi
NTAwNTUwNWY4YTFkZDNjM2M5NjFlODc5MDFkN2MxLi40MjI5ZTZjMTcyNDllZDQ4YzMzZGI1YzBj
NWI2OGM4OWM4ODZkNWIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMDEtMTcgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgdG8g
cmVxdWVzdCBmb3IgY2FjaGUgc3RvcmFnZSBxdW90YSBpbmNyZWFzZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMzIzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyB0ZXN0UnVubmVyIG1ldGhv
ZCB0byBidW1wIHRoZSBjYWNoZSBxdW90YSBhbmQgdmVyaWZ5IGFkZGluZyBhCisgICAgICAgIGNh
Y2hlIGVudHJ5IHdvcmtzIHdoZW4gYnVtcGluZyB0aGUgY2FjaGUgcXVvdGEuCisKKyAgICAgICAg
KiBodHRwL3dwdC9jYWNoZS1zdG9yYWdlL2NhY2hlLXF1b3RhLmFueS5qczoKKyAgICAgICAgKHBy
b21pc2VfdGVzdCk6CisKIDIwMTktMDEtMTYgIEFsaWNpYSBCb3lhIEdhcmPDrWEgIDxhYm95YUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgR1RLIGFuZCBXUEUgdGVzdCBnYXJkZW5p
bmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jYWNoZS1zdG9yYWdlL2NhY2hl
LXF1b3RhLmFueS5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2NhY2hlLXN0b3JhZ2UvY2FjaGUt
cXVvdGEuYW55LmpzCmluZGV4IDVhOTRkNWI3OGYzYjYzOWNhNzBkY2JmMTNmZjI4OGE1ZGIyZTIz
OTMuLmY3OWQzMjg1MGNjNTMzN2RhM2U3NzY5ZmZlNWEwYTJiMjJjNjQwMWEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L2NhY2hlLXN0b3JhZ2UvY2FjaGUtcXVvdGEuYW55LmpzCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2NhY2hlLXN0b3JhZ2UvY2FjaGUtcXVvdGEuYW55Lmpz
CkBAIC0xMTQsNyArMTE0LDcgQEAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CiAgICAgICAgIHJl
dHVybiBjYWNoZS5wdXQoIjFrby12MiIsIHJlc3BvbnNlMWtvLmNsb25lKCkpLnRoZW4oYXNzZXJ0
X3VucmVhY2hlZCwgKGUpID0+IHsKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1lLCAi
UXVvdGFFeGNlZWRlZEVycm9yIik7CiAgICAgICAgIH0pOwotICAgfSkudGhlbigoKSA9PiB7Cisg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgIHJldHVybiBjYWNoZS5kZWxldGUoIjFrby12MSIp
OwogICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICByZXR1cm4gY2FjaGUucHV0KCIxa28tdjIi
LCByZXNwb25zZTFrby5jbG9uZSgpKTsKQEAgLTE1MSw3ICsxNTEsMTAgQEAgcHJvbWlzZV90ZXN0
KCh0ZXN0KSA9PiB7CiAgICAgICAgIHJldHVybiBjYWNoZS5wdXQoIjFrbyIsIHJlc3BvbnNlMWtv
LmNsb25lKCkpLnRoZW4oYXNzZXJ0X3VucmVhY2hlZCwgKGUpID0+IHsKICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZS5uYW1lLCAiUXVvdGFFeGNlZWRlZEVycm9yIik7CiAgICAgICAgIH0pOwot
ICAgfSkudGhlbigoKSA9PiB7CisgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIHRlc3RSdW5u
ZXIuYWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlKCk7CisgICAgICAgIHJldHVybiBjYWNo
ZS5wdXQoIjFrbyIsIHJlc3BvbnNlMWtvLmNsb25lKCkpOworICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICByZXR1cm4gY2FjaGUuZGVsZXRlKCIxa28tcGFkZGVkLXRvLTIwMGtvIik7CiAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgIHJldHVybiBjYWNoZS5wdXQoIjFrby12MiIsIHJlc3Bv
bnNlMWtvLmNsb25lKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359428</attachid>
            <date>2019-01-17 16:59:34 -0800</date>
            <delta_ts>2019-01-18 09:04:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193323-20190117165933.patch</filename>
            <type>text/plain</type>
            <size>40269</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0OTJmOGFmMjdmOGUxODQ5
ODI2NDk1YTMwZjY4MzkzYjg3ZmYyMDAuLjM2NDQ5MGI1MDRjZWNkNWI0ZmFmMzc1MTlkNWZlMzAz
YzdlMmM5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTktMDEtMTcgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgdG8gcmVx
dWVzdCBmb3IgY2FjaGUgc3RvcmFnZSBxdW90YSBpbmNyZWFzZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMzIzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgZGVsZWdhdGUgb24gdGhlIFdlYlNp
dGVEYXRhU3RvcmUgZm9yIFdlYktpdCB0byBhc2sgZm9yIHF1b3RhIHVwZGF0ZS4KKyAgICAgICAg
VGhlIGN1cnJlbnQgU1BJIGlzIGN1cnJlbnRseSBDYWNoZVN0b3JhZ2Ugc3BlY2lmaWMgYnV0IGZ1
dHVyZSB3b3JrIHNob3VsZAorICAgICAgICBtYWtlIGl0IHNvIHRoYXQgb3RoZXIgc3RvcmFnZSBs
aWtlIElEQiB1c2UgdGhlIHNhbWUgbWVjaGFuaXNtLgorICAgICAgICBCeSBkZWZhdWx0LCBxdW90
YSByZW1haW5zIHVuY2hhbmdlZCBpZiBkZWxlZ2F0ZSBpcyBub3QgaW1wbGVtZW50ZWQuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAg
ICAgICAgKFdlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXI6OldlYnNpdGVEYXRhU3RvcmVRdW90
YU1hbmFnZXIpOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX3F1b3RhRGVsZWdhdGVd
KToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIHNldF9xdW90YURlbGVnYXRlOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdENhY2hlU3Rv
cmFnZVNwYWNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRh
U3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnF1b3RhTWFuYWdlcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFF1b3RhTWFuYWdlcik6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIu
aDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXI6
On5XZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZVF1b3RhTWFuYWdlcjo6cmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlKToKKyAgICAg
ICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wMS0xNiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgbmV3IFNQSSBm
b3IgY29udHJvbGxpbmcgZ2V0VXNlck1lZGlhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQppbmRleCAyZDE2MGVhM2Ix
Mjg4ZmU4NGRjMWQ4MjkzYzBhMzI4MzgxZmViMjZhLi5lMTA5M2U0ZGU1YWI2MzEwN2U2NTQ4OGRj
NjI2NjAxM2VmNzI1YjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBX
S19BUElfRU5BQkxFRAogCiAjaW1wb3J0ICJBUElTdHJpbmcuaCIKKyNpbXBvcnQgIkNvbXBsZXRp
b25IYW5kbGVyQ2FsbENoZWNrZXIuaCIKICNpbXBvcnQgIldLSFRUUENvb2tpZVN0b3JlSW50ZXJu
YWwuaCIKICNpbXBvcnQgIldLTlNBcnJheS5oIgogI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwu
aCIKQEAgLTM4LDkgKzM5LDQ1IEBACiAjaW1wb3J0ICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
VGVsZW1ldHJ5LmgiCiAjaW1wb3J0ICJXZWJzaXRlRGF0YUZldGNoT3B0aW9uLmgiCiAjaW1wb3J0
ICJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIgorI2ltcG9ydCAiX1dLV2Vic2l0
ZURhdGFTdG9yZURlbGVnYXRlLmgiCiAjaW1wb3J0IDxXZWJLaXQvU2VydmljZVdvcmtlclByb2Nl
c3NQcm94eS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1wb3J0IDx3dGYvVVJMLmg+
CisjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KKworY2xhc3MgV2Vic2l0ZURhdGFTdG9yZUNs
aWVudCA6IHB1YmxpYyBXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDbGllbnQgeworcHVibGljOgor
ICAgIGV4cGxpY2l0IFdlYnNpdGVEYXRhU3RvcmVDbGllbnQoaWQgPF9XS1dlYnNpdGVEYXRhU3Rv
cmVEZWxlZ2F0ZT4gZGVsZWdhdGUpCisgICAgICAgIDogbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkKKyAg
ICAgICAgLCBtX2hhc1JlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZVNlbGVjdG9yKFttX2RlbGVnYXRl
LmdldCgpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocmVxdWVzdENhY2hlU3RvcmFnZVNw
YWNlOiBmcmFtZU9yaWdpbjogcXVvdGE6IGN1cnJlbnRTaXplOiBzcGFjZVJlcXVpcmVkOiBkZWNp
c2lvbkhhbmRsZXI6KV0pCisgICAgeworICAgIH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHJlcXVl
c3RDYWNoZVN0b3JhZ2VTcGFjZShjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRv
cE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZU9yaWdpbiwg
dWludDY0X3QgcXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRTaXplLCB1aW50NjRfdCBzcGFjZVJlcXVp
cmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPHVpbnQ2NF90Pik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIGZpbmFsCisgICAgeworICAgICAgICBpZiAoIW1faGFzUmVxdWVzdENhY2hl
U3RvcmFnZVNwYWNlU2VsZWN0b3IgfHwgIW1fZGVsZWdhdGUpIHsKKyAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHsgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBhdXRvIGNoZWNrZXIgPSBXZWJLaXQ6OkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6
OmNyZWF0ZShtX2RlbGVnYXRlLmdldEF1dG9yZWxlYXNlZCgpLCBAc2VsZWN0b3IocmVxdWVzdENh
Y2hlU3RvcmFnZVNwYWNlOiBmcmFtZU9yaWdpbjogcXVvdGE6IGN1cnJlbnRTaXplOiBzcGFjZVJl
cXVpcmVkOiBkZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgICAgIGF1dG8gZGVjaXNpb25IYW5kbGVy
ID0gbWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0odW5zaWduZWQgbG9uZyBsb25nIHF1
b3RhKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxl
ckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBj
aGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKHF1b3RhKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgVVJMIG1haW5GcmFtZVVS
TCB7IFVSTCgpLCB0b3BPcmlnaW4udG9TdHJpbmcoKSB9OworICAgICAgICBVUkwgZnJhbWVVUkwg
eyBVUkwoKSwgZnJhbWVPcmlnaW4udG9TdHJpbmcoKSB9OworCisgICAgICAgIFttX2RlbGVnYXRl
LmdldEF1dG9yZWxlYXNlZCgpIHJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZTptYWluRnJhbWVVUkwg
ZnJhbWVPcmlnaW46ZnJhbWVVUkwgcXVvdGE6cXVvdGEgY3VycmVudFNpemU6Y3VycmVudFNpemUg
c3BhY2VSZXF1aXJlZDpzcGFjZVJlcXVpcmVkIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRs
ZXIuZ2V0KCldOworICAgIH0KKworICAgIFdlYWtPYmpDUHRyPGlkIDxfV0tXZWJzaXRlRGF0YVN0
b3JlRGVsZWdhdGU+ID4gbV9kZWxlZ2F0ZTsKKyAgICBib29sIG1faGFzUmVxdWVzdENhY2hlU3Rv
cmFnZVNwYWNlU2VsZWN0b3IgeyBmYWxzZSB9OworfTsKIAogQGltcGxlbWVudGF0aW9uIFdLV2Vi
c2l0ZURhdGFTdG9yZQogCkBAIC0zODMsNiArNDIwLDE3IEBAIC0gKGJvb2wpX2hhc1JlZ2lzdGVy
ZWRTZXJ2aWNlV29ya2VyCiAgICAgcmV0dXJuIFdlYktpdDo6U2VydmljZVdvcmtlclByb2Nlc3NQ
cm94eTo6aGFzUmVnaXN0ZXJlZFNlcnZpY2VXb3JrZXJzKF93ZWJzaXRlRGF0YVN0b3JlLT53ZWJz
aXRlRGF0YVN0b3JlKCkuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSgpKTsKIH0K
IAorLSAoaWQgPF9XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZT4pX2RlbGVnYXRlCit7CisgICAg
cmV0dXJuIF9kZWxlZ2F0ZS5nZXQoKTsKK30KKworLSAodm9pZClzZXRfZGVsZWdhdGU6KGlkIDxf
V0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGU+KWRlbGVnYXRlCit7CisgICAgX2RlbGVnYXRlID0g
ZGVsZWdhdGU7CisgICAgX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5zZXRD
bGllbnQobWFrZVVuaXF1ZVJlZjxXZWJzaXRlRGF0YVN0b3JlQ2xpZW50PihkZWxlZ2F0ZSkpOwor
fQorCiBAZW5kCiAKICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlSW50
ZXJuYWwuaAppbmRleCBkODYxODc1MjczYmE3ZGY2N2UyODY2ZDE0NTViOTZiN2YzZGM0N2Y2Li4y
YzViNzhlMTU5OTI3ZGViYmY0NTQ1NmExMjNmMmJmN2ZlNTdlNjM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlSW50ZXJuYWwuaApAQCAtNDEsNiArNDEsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBXcmFwcGVy
VHJhaXRzPEFQSTo6V2Vic2l0ZURhdGFTdG9yZT4gewogQGludGVyZmFjZSBXS1dlYnNpdGVEYXRh
U3RvcmUgKCkgPFdLT2JqZWN0PiB7CiBAcGFja2FnZQogICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxB
UEk6OldlYnNpdGVEYXRhU3RvcmU+IF93ZWJzaXRlRGF0YVN0b3JlOworICAgIFJldGFpblB0cjxp
ZCA8X1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlPiA+IF9kZWxlZ2F0ZTsKIH0KIEBlbmQKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKaW5kZXggNzRhOGEwMmYyZjFkOWVlOTVjOTdhZjlhOTZl
M2M2MDEzMTkyMDE2MS4uZmVkMjQyNWRiYjVhODllMjRkZWQ1NWQ3NmM1NjFkN2MwMDFkMGFiMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCkBAIC0zMiw2ICszMiw4IEBAIE5TX0FTU1VNRV9O
T05OVUxMX0JFR0lOCiBAY2xhc3MgX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb247CiBA
Y2xhc3MgV0tXZWJWaWV3OwogCitAcHJvdG9jb2wgX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRl
OworCiB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZURhdGFTdG9yZUZl
dGNoT3B0aW9ucykgewogICAgIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9wdGlvbkNvbXB1dGVT
aXplcyA9IDEgPDwgMCwKIH0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAu
MCkpOwpAQCAtNjIsNiArNjQsOCBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dL
V2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucykgewogKyAodm9pZClfYWxsb3dXZWJzaXRlRGF0
YVJlY29yZHNGb3JBbGxPcmlnaW5zIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBp
b3MoMTEuMykpOwogLSAoYm9vbClfaGFzUmVnaXN0ZXJlZFNlcnZpY2VXb3JrZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwogCitAcHJvcGVydHkgKG51bGxhYmxl
LCBub25hdG9taWMsIHdlYWspIGlkIDxfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGU+IF9kZWxl
Z2F0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKKwogQGVuZAogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlRGVs
ZWdhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yZjk5ZDdjMWUwNjc4NWViOTI3NDE5MTc5MDg1MzQzMjYyNDY1
NTNkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisjaWYgV0tfQVBJX0VOQUJM
RUQKKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKK0Bwcm90b2NvbCBfV0tX
ZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUgPE5TT2JqZWN0PgorCitAb3B0aW9uYWwKKworLSAodm9p
ZClyZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2U6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lT3Jp
Z2luOihOU1VSTCAqKWZyYW1lVVJMIHF1b3RhOihOU1VJbnRlZ2VyKXF1b3RhIGN1cnJlbnRTaXpl
OihOU1VJbnRlZ2VyKWN1cnJlbnRTaXplIHNwYWNlUmVxdWlyZWQ6KE5TVUludGVnZXIpc3BhY2VS
ZXF1aXJlZCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90
YSkpZGVjaXNpb25IYW5kbGVyOworCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXgg
NjAwYzBiYzM5YWVjMzkyNjlhOGRmZWQ5ZjVhZWNlOTBlMzQyMjRiOS4uNTYwZDZlZTA4NDQ4ZTNi
ZDZkOTRkMDQ5NzA1NDE3NjBjZDRlNDllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC00Myw2ICs0Myw4
IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNsdWRlICJXZWJVc2VyQ29udGVu
dENvbnRyb2xsZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCisjaW5jbHVkZSAi
V2Vic2l0ZURhdGFTdG9yZUNsaWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2lu
Lmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKICNpZiBFTkFCTEUoU0VD
X0lURU1fU0hJTSkKQEAgLTc0Myw4ICs3NDUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OnJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbgog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gRklYTUU6IEFzayBXZWJzaXRlRGF0YVN0
b3JlIGFib3V0IHVwZGF0aW5nIHRoZSBxdW90YSBmb3IgdGhpcyBvcmlnaW4uCi0gICAgY29tcGxl
dGlvbkhhbmRsZXIocXVvdGEpOworICAgIHN0b3JlLT5jbGllbnQoKS5yZXF1ZXN0Q2FjaGVTdG9y
YWdlU3BhY2Uob3JpZ2luLnRvcE9yaWdpbiwgb3JpZ2luLmNsaWVudE9yaWdpbiwgcXVvdGEsIGN1
cnJlbnRTaXplLCBzcGFjZVJlcXVpcmVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCAwYWFiYmU0OGRi
MTM1ZDg2YmYyODRiMDU1NDIxNDNhMTdiZDhlOWEwLi5mNzU4NTFiMWM2YWU4MmNlYzlhOGM5NTMw
YWViMmI5NGMyYmE0N2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2lu
Y2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgogI2luY2x1ZGUgIldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURh
dGEuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZVRyYWNrZXIuaD4KQEAg
LTk3LDYgKzk4LDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShSZWY8V2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+JiYgY29uZmlndXIKICNpZiBFTkFCTEUoV0VCX0FV
VEhOKQogICAgICwgbV9hdXRoZW50aWNhdG9yTWFuYWdlcihtYWtlVW5pcXVlUmVmPEF1dGhlbnRp
Y2F0b3JNYW5hZ2VyPigpKQogI2VuZGlmCisgICAgLCBtX2NsaWVudChtYWtlVW5pcXVlUmVmPFdl
YnNpdGVEYXRhU3RvcmVDbGllbnQ+KCkpCiB7CiAgICAgV1RGOjpzZXRQcm9jZXNzUHJpdmlsZWdl
cyhhbGxQcml2aWxlZ2VzKCkpOwogICAgIG1heWJlUmVnaXN0ZXJXaXRoU2Vzc2lvbklETWFwKCk7
CkBAIC0xMTQsNiArMTE2LDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAjaWYgRU5BQkxFKFdFQl9BVVRITikKICAgICAsIG1f
YXV0aGVudGljYXRvck1hbmFnZXIobWFrZVVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yTWFuYWdlcj4o
KSkKICNlbmRpZgorICAgICwgbV9jbGllbnQobWFrZVVuaXF1ZVJlZjxXZWJzaXRlRGF0YVN0b3Jl
Q2xpZW50PigpKQogewogICAgIG1heWJlUmVnaXN0ZXJXaXRoU2Vzc2lvbklETWFwKCk7CiAgICAg
cGxhdGZvcm1Jbml0aWFsaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggOTEyZDhlNDc1Y2Q2YTIxNzk5
OWEwOTAxNzhlYjY1OGZjMjE3OWM2OS4uZmEzNDAxM2E2M2VkZGQ3MzU2MjdiNzBkYmMzNWFkMjE0
NWEyM2I5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTGlm
ZXRpbWVPYnNlcnZlci5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVDbGllbnQuaCIKICNp
bmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvQ29va2llLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KQEAg
LTE4OCw2ICsxODksOSBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbigpIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5nZXQo
KTsgfQogCisgICAgV2Vic2l0ZURhdGFTdG9yZUNsaWVudCYgY2xpZW50KCkgeyByZXR1cm4gbV9j
bGllbnQuZ2V0KCk7IH0KKyAgICB2b2lkIHNldENsaWVudChVbmlxdWVSZWY8V2Vic2l0ZURhdGFT
dG9yZUNsaWVudD4mJiBjbGllbnQpIHsgbV9jbGllbnQgPSBXVEZNb3ZlKGNsaWVudCk7IH0KKwog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlKFBBTDo6U2Vzc2lvbklEKTsK
ICAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlKFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbj4mJiwgUEFMOjpTZXNzaW9uSUQpOwpAQCAtMjU2LDYgKzI2MCw4IEBAIHByaXZhdGU6
CiAjaWYgRU5BQkxFKFdFQl9BVVRITikKICAgICBVbmlxdWVSZWY8QXV0aGVudGljYXRvck1hbmFn
ZXI+IG1fYXV0aGVudGljYXRvck1hbmFnZXI7CiAjZW5kaWYKKworICAgIFVuaXF1ZVJlZjxXZWJz
aXRlRGF0YVN0b3JlQ2xpZW50PiBtX2NsaWVudDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDbGll
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45MGVhN2QzYzE3OGUyNzcyZTE2MDk0YThkODYyYzMyMDhlZDFmNjM2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZUNsaWVudC5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2Vic2l0ZURhdGFTdG9yZUNsaWVudCB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+V2Vic2l0ZURhdGFTdG9yZUNsaWVudCgpIHsgfQorCisgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZShjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFt
ZU9yaWdpbiwgdWludDY0X3QgcXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRTaXplLCB1aW50NjRfdCBz
cGFjZVJlcXVpcmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPHVpbnQ2NF90Pik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7
IH0pOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTcxNDFlODM3YzUyYmNk
ZTBkNTQyOTM3MTMxOWY5OGI4NzFjNTNkZi4uYjllYjA0NzVlMmRmNzAwZjkxNTEzY2FmZDI2ODJi
MjM2ZmIwYWVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC04NzYsNiArODc2LDcgQEAKIAkJNDE4OTdFRDExRjQxNUQ2ODAwMTZGQTQy
IC8qIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODk3RUNEMUY0MTVENUMwMDE2RkE0MiAvKiBXZWJDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uLmggKi87IH07CiAJCTQxODk3RUQ4MUY0MTVEOEEwMDE2RkE0MiAv
KiBDYWNoZVN0b3JhZ2VFbmdpbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxODk3RUQyMUY0MTVEODUwMDE2RkE0MiAvKiBDYWNoZVN0b3JhZ2VFbmdp
bmUuaCAqLzsgfTsKIAkJNDE4OTdFREExRjQxNUQ4QTAwMTZGQTQyIC8qIENhY2hlU3RvcmFnZUVu
Z2luZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxODk3RUQ0MUY0MTVEODUwMDE2RkE0MiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25u
ZWN0aW9uLmggKi87IH07CisJCTQxQzUzNzkwMjFGMTVCNTUwMDhCMUZBRCAvKiBfV0tXZWJzaXRl
RGF0YVN0b3JlRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxQzUzNzhGMjFGMTM2MkQwMDhCMUZBRCAvKiBfV0tXZWJzaXRlRGF0YVN0b3Jl
RGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0MUQxMjlEQTFGM0QxMDE4MDBEMTVFNDcgLyogV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRDEyOUQ5
MUYzRDEwMTQwMEQxNUU0NyAvKiBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oICovOyB9OwogCQk0
MURDNDU5NjFFM0Q2RTIyMDBCMTFGNTEgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURDNDU5NDFFM0Q2RTFFMDBC
MTFGNTEgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLmggKi87IH07CiAJCTQxREM0NTlDMUUzREJCMjgw
MEIxMUY1MSAvKiBMaWJXZWJSVENTb2NrZXRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREM0NTlBMUUzREJCMjQwMEIxMUY1MSAvKiBMaWJX
ZWJSVENTb2NrZXRDbGllbnQuaCAqLzsgfTsKQEAgLTI5ODksNiArMjk5MCw3IEBACiAJCTQxMTJF
REQ3MjBFNDA3NzUwMEJFQTkyQSAvKiBjb20uYXBwbGUuTlBTYWZlU3VibWl0LnNiICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5OUFNhZmVTdWJtaXQuc2I7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxMTJFREQ4MjBFNDA3NzUwMEJFQTkyQSAvKiBjb20uYXBwbGUuTlBT
YWZlSW5wdXQuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLk5QU2FmZUlucHV0
LnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEyRUREOTIwRTQwNzc1MDBCRUE5
MkEgLyogY29tLmFwcGxlLkJvY29tU3VibWl0Q3RybC5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBjb20uYXBwbGUuQm9jb21TdWJtaXRDdHJsLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MTE4REMxQjIxRTZEMTFBMDBERTA0QzcgLyogV2Vic2l0ZURhdGFTdG9yZUNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJzaXRlRGF0YVN0b3JlQ2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMUE4REQ5MjBEREI2MDUwMDYwRDM0
RiAvKiBXS01vY2tNZWRpYURldmljZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS01vY2tNZWRpYURldmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTFB
OEREQTIwRERCNjA1MDA2MEQzNEYgLyogV0tNb2NrTWVkaWFEZXZpY2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tNb2NrTWVkaWFEZXZpY2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTFCMjI2MjFFMzcxMjQ0MDA0RjczNjMgLyogTGliV2Vi
UlRDTmV0d29yay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENO
ZXR3b3JrLmg7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDQ0LDYgKzMwNDYsNyBAQAogCQk0MUI3RUQ2RjIw
Njk2NTkwMDA4N0Q4NTMgLyogTmV0d29ya01ETlNSZWdpc3Rlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrTUROU1JlZ2lzdGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFCN0VENzAyMDY5NjU5MDAwODdEODUzIC8qIE5ldHdvcmtN
RE5TUmVnaXN0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya01E
TlNSZWdpc3Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUI3RUQ3MTIwNjk2
NTkwMDA4N0Q4NTMgLyogTmV0d29ya01ETlNSZWdpc3Rlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBOZXR3b3JrTUROU1JlZ2lzdGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MUM1Mzc4RjIxRjEzNjJEMDA4QjFGQUQgLyogX1dLV2Vic2l0
ZURhdGFTdG9yZURlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9X
S1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MUM4NTgxOTFGNTEwREVFMDA2NUUwODUgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVTdG9yYWdlRW5naW5l
Q2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUQwRkM3RDIwRTQzQTUx
MDAwNzZBRTggLyogTmV0d29yay1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnBsaXN0LmVudGl0bGVtZW50czsgcGF0aCA9ICJOZXR3b3JrLU9TWC1zYW5kYm94LmVudGl0
bGVtZW50cyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRDEyOUQ5MUYzRDEwMTQw
MEQxNUU0NyAvKiBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJD
YWNoZVN0b3JhZ2VQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDg0
NCw3ICs0ODQ3LDcgQEAKIAkJCQkxQTUzQzJBNTFBMzI1NjlGMDA0RThDNzAgLyogV2Vic2l0ZURh
dGFTdG9yZS5oICovLAogCQkJCTVDNDZDMEFDMjFCNzE5OEIwMEJDNTk5MSAvKiBXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAgKi8sCiAJCQkJNUM0NkMwQUQyMUI3MTk4QzAwQkM1OTkx
IC8qIFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmggKi8sCi0JCQkJNDExOERDMUIyMUU2
RDExQTAwREUwNEM3IC8qIFdlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIuaCAqLywKKwkJCQk0
MTE4REMxQjIxRTZEMTFBMDBERTA0QzcgLyogV2Vic2l0ZURhdGFTdG9yZUNsaWVudC5oICovLAog
CQkJKTsKIAkJCXBhdGggPSBXZWJzaXRlRGF0YTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC02MDUzLDYgKzYwNTYsNyBAQAogCQkJCTUxMjBDODMzMUU1QjcxNTcwMDI1QjI1MCAvKiBf
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oICovLAogCQkJCTUxMjBDODM0MUU1Qjcx
NTcwMDI1QjI1MCAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbSAqLywKIAkJ
CQk1QzQ2QzBBRTIxQjcxQUUyMDBCQzU5OTEgLyogX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb25JbnRlcm5hbC5oICovLAorCQkJCTQxQzUzNzhGMjFGMTM2MkQwMDhCMUZBRCAvKiBfV0tX
ZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaCAqLywKIAkJCQk1Q0IyMzc4OTFERjBERDQzMDAxMTdB
QTMgLyogX1dLV2Vic2l0ZVBvbGljaWVzLmggKi8sCiAJCQkJNUNCMjM3OEExREYwREQ0MzAwMTE3
QUEzIC8qIF9XS1dlYnNpdGVQb2xpY2llcy5tbSAqLywKIAkJCQk1Q0IyMzc4RDFERjBFMEMyMDAx
MTdBQTMgLyogX1dLV2Vic2l0ZVBvbGljaWVzSW50ZXJuYWwuaCAqLywKQEAgLTg5MjMsNiArODky
Nyw3IEBACiAJCQkJN0NCMzY1QjExRDMxREQxRTAwNzE1OENBIC8qIEFQSVVzZXJJbml0aWF0ZWRB
Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTdDODlEMjk0MUE2NzEyMkYwMDNBNUZERSAvKiBB
UElVc2VyU2NyaXB0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDg3ODYyNDFCREI1OEZGMDBEMDJB
QkIgLyogQVBJVXNlclN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxQzUzNzkwMjFG
MTVCNTUwMDhCMUZBRCAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUM1RTFBRkVEMTZCMjEwMTcwMDZDQzFGMiAvKiBBUElXZWJBcmNoaXZlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDNUUxQUZFRjE2QjIxMDI5MDA2Q0MxRjIgLyogQVBJV2ViQXJjaGl2
ZVJlc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUUyODY4NDFDN0Y5Mzg2MDA2OUFDNEYg
LyogQVBJV2Vic2l0ZURhdGFSZWNvcmQuaCBpbiBIZWFkZXJzICovLApAQCAtOTgzMCw3ICs5ODM1
LDYgQEAKIAkJCQkxREIwMTk0MzIxMUNGMDAyMDA5RkIzRTggLyogV0tTaGFyZVNoZWV0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MTNFNDYyRDFBRDgzNzU2MDAxNjIzNEEgLyogV0tTaGFyaW5nU2Vy
dmljZVBpY2tlckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y1NDlCNDFFMzE3NEI3
MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJ
CTQxMThEQzFGMjFFN0JGNUQwMERFMDRDNyAvKiBXS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MDYxMjRGRjAyNzAwNjhGMjBBIC8qIFdLU3Ry
aW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYxQTEyNEZGMDM3MDA2OEYyMEEgLyogV0tT
dHJpbmdDRi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5MDk5ODAxMjU2QTk4MjAwMDgzNzU2IC8q
IFdLU3RyaW5nUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWJiZTRjMWRjMTQ4YzYwYjk2N2QxODJmODRk
MzZhNzkxYTg4YmQ5MS4uMmYyNjM2YmE2OGEwNjcyMjQyNGMzYWI4ZDI3Njc1MTA5NDg1MDgzYiAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMwIEBACisyMDE5LTAxLTE3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
KworICAgICAgICBBZGQgYSBuZXcgU1BJIHRvIHJlcXVlc3QgZm9yIGNhY2hlIHN0b3JhZ2UgcXVv
dGEgaW5jcmVhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MzMyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEltcGxlbWVudCBXZWJzaXRlRGF0YVN0b3JlIHF1b3RhIGRlbGVnYXRlIHRvIGhhbmRsZSBx
dW90YSByZXF1ZXN0cy4KKyAgICAgICAgQnkgZGVmYXVsdCwgZG8gbm90IHVwZGF0ZSBxdW90YS4K
KyAgICAgICAgVXBkYXRlIHF1b3RhIGlmIHRlc3QgY2FsbHMgdGhlIG5ldyB0ZXN0UnVubmVyLmFs
bG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSBtZXRob2QuCisKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RSdW5uZXI6OmFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChX
VFI6OlRlc3RDb250cm9sbGVyOjphbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UpOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9j
YXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbToK
KyAgICAgICAgKC1bQ2FjaGVTdG9yYWdlUXVvdGFNYW5hZ2VyIGluaXRdKToKKyAgICAgICAgKC1b
Q2FjaGVTdG9yYWdlUXVvdGFNYW5hZ2VyIF9yZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2U6ZnJhbWVP
cmlnaW46cXVvdGE6Y3VycmVudFNpemU6c3BhY2VSZXF1aXJlZDpkZWNpc2lvbkhhbmRsZXI6XSk6
CisgICAgICAgIChXVFI6OmluaXRpYWxpemVXZWJWaWV3Q29uZmlndXJhdGlvbik6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpjb2NvYVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMp
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6YWxsb3dDYWNoZVN0b3JhZ2VRdW90YUlu
Y3JlYXNlKToKKwogMjAxOS0wMS0xNyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtMRkNdW0JGQ10gQW4gZWxlbWVudCB3aXRoIHRyYW5zZm9ybSBpcyBhIGNvbnRh
aW5pbmcgYmxvY2sgZm9yIHBvc2l0aW9uZWQgZGVzY2VuZGFudHMuCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVu
bmVyLmlkbAppbmRleCA2N2ZjOTNlOTE2MjJiZGQzMzMxODVjN2Y2YjIwOGEzOWZlZTQ0NTE2Li5m
MTU1NTBmNTMwZWQwZjNkNTE5NDc4MDIyNjk1MjAxZTkwMmNiYWIzIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVz
dFJ1bm5lci5pZGwKQEAgLTYyLDYgKzYyLDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAg
IHZvaWQgY2xlYXJET01DYWNoZShET01TdHJpbmcgb3JpZ2luKTsKICAgICBib29sZWFuIGhhc0RP
TUNhY2hlKERPTVN0cmluZyBvcmlnaW4pOwogICAgIHVuc2lnbmVkIGxvbmcgZG9tQ2FjaGVTaXpl
KERPTVN0cmluZyBvcmlnaW4pOworICAgIHZvaWQgYWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3Jl
YXNlKCk7CiAKICAgICAvLyBTcGVjaWFsIG9wdGlvbnMuCiAgICAgdm9pZCBrZWVwV2ViSGlzdG9y
eSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAKaW5kZXggZjk3YWU0N2I4ZDVmYjJlYWQxYmU0Zjk1OTdlMTU2OGY3NmRmMDE2
YS4uZDdhOWQyNDgyOWRmOGI3NGFkOGJjZDkxZGRkOTYwOTRiMmNlNTg1MCAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBA
IC0yMzY3LDYgKzIzNjcsMTIgQEAgdWludDY0X3QgVGVzdFJ1bm5lcjo6ZG9tQ2FjaGVTaXplKEpT
U3RyaW5nUmVmIG9yaWdpbikKICAgICByZXR1cm4gV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNfY2Fz
dDxXS1VJbnQ2NFJlZj4ocmV0dXJuRGF0YSkpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OmFsbG93
Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSgpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJB
bGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UiKSk7CisgICAgV0tCdW5kbGVQb3N0U3luY2hy
b25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2Fn
ZU5hbWUuZ2V0KCksIG51bGxwdHIsIG51bGxwdHIpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6Omdl
dEFwcGxpY2F0aW9uTWFuaWZlc3RUaGVuKEpTVmFsdWVSZWYgY2FsbGJhY2spCiB7CiAgICAgY2Fj
aGVUZXN0UnVubmVyQ2FsbGJhY2soR2V0QXBwbGljYXRpb25NYW5pZmVzdENhbGxiYWNrSUQsIGNh
bGxiYWNrKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmgKaW5kZXggMjIxNGQ3N2I4YzM5NzlhNDdjNWU4ZWRhYTVkMzI3MTJkMTQzNDFk
OS4uYTQwMTk5OWY0MTJlOWJkMzkzMmFiODFjODRiNzc3M2Q1ZGYwNzNmMyAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTE3
NSw2ICsxNzUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckRPTUNhY2hlcygpOwogICAgIGJv
b2wgaGFzRE9NQ2FjaGUoSlNTdHJpbmdSZWYgb3JpZ2luKTsKICAgICB1aW50NjRfdCBkb21DYWNo
ZVNpemUoSlNTdHJpbmdSZWYgb3JpZ2luKTsKKyAgICB2b2lkIGFsbG93Q2FjaGVTdG9yYWdlUXVv
dGFJbmNyZWFzZSgpOwogCiAgICAgLy8gSW5kZXhlZERCCiAgICAgdm9pZCBzZXRJREJQZXJPcmln
aW5RdW90YSh1aW50NjRfdCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCmluZGV4IDdjODhlMDAyN2YzZDc1MGJlNjE1NjcyMzJhODgxYWRjZGZiNGRkYTguLjdjYjdm
NWNkOWU4NWQ1N2Y2MzRhNzBiNDExN2Y1N2YzNDg1NThkNzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0yODMwLDYgKzI4MzAsMTMgQEAgdWludDY0X3Qg
VGVzdENvbnRyb2xsZXI6OmRvbUNhY2hlU2l6ZShXS1N0cmluZ1JlZiBvcmlnaW4pCiAgICAgcmV0
dXJuIGNvbnRleHQucmVzdWx0OwogfQogCisjaWYgIVBMQVRGT1JNKENPQ09BKQordm9pZCBUZXN0
Q29udHJvbGxlcjo6YWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlKCkKK3sKKyAgICAvLyBG
SVhNRTogVG8gaW1wbGVtZW50LgorfQorI2VuZGlmCisKIHN0cnVjdCBSZXNvdXJjZVN0YXRpc3Rp
Y3NDYWxsYmFja0NvbnRleHQgewogICAgIGV4cGxpY2l0IFJlc291cmNlU3RhdGlzdGljc0NhbGxi
YWNrQ29udGV4dChUZXN0Q29udHJvbGxlciYgY29udHJvbGxlcikKICAgICAgICAgOiB0ZXN0Q29u
dHJvbGxlcihjb250cm9sbGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
CmluZGV4IDEzYTM5YzY5MDVmMGQ4N2JhODdiOWRiNTdmOGRhZDVjMTdhYzcxYmMuLjE0MjVjYmZk
NTFhNzYwNGFlMTBjNTc5NDQ1NTdhYTA2YTIwZWFjODAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmgKQEAgLTI0OCw2ICsyNDgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBj
bGVhckRPTUNhY2hlcygpOwogICAgIGJvb2wgaGFzRE9NQ2FjaGUoV0tTdHJpbmdSZWYgb3JpZ2lu
KTsKICAgICB1aW50NjRfdCBkb21DYWNoZVNpemUoV0tTdHJpbmdSZWYgb3JpZ2luKTsKKyAgICB2
b2lkIGFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSgpOwogCiAgICAgdm9pZCBzZXRJREJQ
ZXJPcmlnaW5RdW90YSh1aW50NjRfdCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAKaW5kZXggMGM2Yzg3N2ZmMWRhYjc1NWFkZTI4ZTllMjM0ZjQ0ZTU1ZmQ5NGMy
Ny4uMWQ4ZDdkOWJlMDU1YjQ4NjYyYWQzMGUzMzcwN2YwMjdhZWVjNWViNSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTE0MjgsNiArMTQyOCwxMSBAQCBX
S1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25v
dXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAor
ICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiQWxsb3dD
YWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlIikpIHsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNp
bmdsZXRvbigpLmFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSgpOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
ZyhtZXNzYWdlTmFtZSwgIlNldElEQlBlck9yaWdpblF1b3RhIikpIHsKICAgICAgICAgQVNTRVJU
KFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS1VJbnQ2NEdldFR5cGVJRCgpKTsKICAgICAg
ICAgV0tVSW50NjRSZWYgcXVvdGEgPSBzdGF0aWNfY2FzdDxXS1VJbnQ2NFJlZj4obWVzc2FnZUJv
ZHkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktp
dFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhNWI1NTZiZWJlMTE4
MWM5ZmYzMTI3MWMyZjAzM2UzM2E2NWI0ZTczLi5jMDk2MTY1M2U1ZGU0Y2FjOGJiYjI5OTdjODI5
OGUzYTU3NTk5YmY5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRl
c3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODQs
NiArODQsNyBAQAogCQkyRTYzRURBNjE4OTFCREMwMDAyQTdBRkMgLyogVGVzdFJ1bm5lci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M5OTgxNzEx
RDNGNTFFMDAxN0JDQTIgLyogVGVzdFJ1bm5lci5jcHAgKi87IH07CiAJCTJFNzQ5QkYyMTg5MUVC
RkEwMDdGQzE3NSAvKiBFdmVudFNlbmRlclByb3h5SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU2M0VEN0ExODkxQUNFOTAwMkE3QUZDIC8qIEV2
ZW50U2VuZGVyUHJveHlJT1MubW0gKi87IH07CiAJCTMxREE4QTNEMUU3MjA1Q0MwMEUxREYyRiAv
KiBJT1NMYXlvdXRUZXN0Q29tbXVuaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQ4QTA1MzFFNkY4NUI2MDBEM0IzMTYgLyogSU9TTGF5
b3V0VGVzdENvbW11bmljYXRpb24uY3BwICovOyB9OworCQk0MUM1Mzc4RTIxRjEzNDE0MDA4QjFG
QUQgLyogVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxQzUzNzhEMjFGMTMzM0MwMDhCMUZBRCAvKiBU
ZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLm1tICovOyB9OwogCQk0NDMwQUUxOTFGODJDNEZE
MDA5OTkxNUEgLyogR2VuZXJhdGVkVG91Y2hlc0RlYnVnV2luZG93Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQzMEFFMTcxRjgyQzRFRTAwOTk5MTVB
IC8qIEdlbmVyYXRlZFRvdWNoZXNEZWJ1Z1dpbmRvdy5tbSAqLzsgfTsKIAkJNTEwNThBRDUxRDY3
ODgyMDAwOUE1MzhDIC8qIGxpYldlYkNvcmVUZXN0U3VwcG9ydC5keWxpYiBpbiBGcmFtZXdvcmtz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjMwRTE2MTM4Qzc4QkYwMEJD
Q0ZDQSAvKiBsaWJXZWJDb3JlVGVzdFN1cHBvcnQuZHlsaWIgKi87IH07CiAJCTUxMDU4QUQ2MUQ2
Nzg4MjUwMDlBNTM4QyAvKiBXZWJLaXQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1MTY5Q0ExNDQ1MjIyRDAwRTBBOUQ3IC8qIFdl
YktpdC5mcmFtZXdvcmsgKi87IH07CkBAIC0yODYsNiArMjg3LDggQEAKIAkJMzc4RDQ0MjIxMzM0
NkQwMDAwNkE3NzdCIC8qIGNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBjb25maWcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEyMzBFMTYxMzhDNzhCRjAwQkNDRkNBIC8qIGxpYldl
YkNvcmVUZXN0U3VwcG9ydC5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBwYXRoID0gbGliV2ViQ29y
ZVRlc3RTdXBwb3J0LmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9Owog
CQk0MTgxNzMxQjEzOEFEMzlEMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkNvcmVUZXN0U3VwcG9ydC5oOyBwYXRoID0g
V2ViQ29yZVRlc3RTdXBwb3J0L1dlYkNvcmVUZXN0U3VwcG9ydC5oOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OworCQk0MUM1Mzc4QzIxRjEzMzNDMDA4QjFGQUQgLyogVGVzdFdl
YnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBUZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmg7IHBhdGggPSBjb2NvYS9UZXN0V2Vic2l0
ZURhdGFTdG9yZURlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxQzUz
NzhEMjFGMTMzM0MwMDhCMUZBRCAvKiBUZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGVzdFdlYnNpdGVEYXRhU3Rv
cmVEZWxlZ2F0ZS5tbTsgcGF0aCA9IGNvY29hL1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MjlGQzVFMTYyNzA4OTYwMEY2NkQ4
QiAvKiBXb3JrUXVldWVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdvcmtRdWV1ZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NDI5RkM2MTE2MjcwODk2MDBGNjZEOEIgLyogV29ya1F1ZXVlTWFuYWdlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrUXVldWVNYW5hZ2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ0MzBBRTE3MUY4MkM0RUUwMDk5OTE1QSAvKiBHZW5lcmF0ZWRU
b3VjaGVzRGVidWdXaW5kb3cubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHZW5lcmF0ZWRUb3Vj
aGVzRGVidWdXaW5kb3cubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NjQsNiAr
NTY3LDggQEAKIAkJCQkyRENFMkNEMTFCODQ1MjQ1MDBDN0Y4MzIgLyogVGVzdENvbnRyb2xsZXJD
b2NvYS5tbSAqLywKIAkJCQkwRjg3QjYxNDFCQUNDNEI5MDA0RUM1NzIgLyogVGVzdFJ1bm5lcldL
V2ViVmlldy5oICovLAogCQkJCTBGODdCNjE1MUJBQ0M0QjkwMDRFQzU3MiAvKiBUZXN0UnVubmVy
V0tXZWJWaWV3Lm1tICovLAorCQkJCTQxQzUzNzhDMjFGMTMzM0MwMDhCMUZBRCAvKiBUZXN0V2Vi
c2l0ZURhdGFTdG9yZURlbGVnYXRlLmggKi8sCisJCQkJNDFDNTM3OEQyMUYxMzMzQzAwOEIxRkFE
IC8qIFRlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUubW0gKi8sCiAJCQkJRjQ2MjQwQUYyMTcw
MTI4MzAwOTE3QjE2IC8qIFVJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tICovLAogCQkJKTsKIAkJ
CW5hbWUgPSBjb2NvYTsKQEAgLTEwOTEsNiArMTA5Niw3IEBACiAJCQkJQTE4NTEwM0QxQjlBRTEw
NjAwNzQ0QUVCIC8qIFRlc3RJbnZvY2F0aW9uQ0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY2
MjJDRTkxQkJCM0ExQTAwODM4QUQzIC8qIFRlc3RPcHRpb25zLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGODdCNjE3MUJBQ0M0QzAwMDRFQzU3MiAvKiBUZXN0UnVubmVyV0tXZWJWaWV3Lm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJNDFDNTM3OEUyMUYxMzQxNDAwOEIxRkFEIC8qIFRlc3RXZWJzaXRl
RGF0YVN0b3JlRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjE4RTZFNTFENkI5QjlF
MDAyN0U1NDcgLyogVUlTY3JpcHRDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMThF
NkU2MUQ2QjlCQTIwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRjQ2MjQwQjEyMTcwMTNFNTAwOTE3QjE2IC8qIFVJU2NyaXB0Q29udHJvbGxlckNv
Y29hLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2Nv
Y29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KaW5kZXggMmMxZjZhNjNjOWU0OWU3Y2NlODFkYWNi
NjBkZGEyZjhmNWIxOGE4My4uMzYzYTJjNmUxMTRkNTdkOGJhZjE3ODFkZjYxYTEzNjRjNTIwYzIw
OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxl
ckNvY29hLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xs
ZXJDb2NvYS5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiU3RyaW5nRnVuY3Rpb25zLmgi
CiAjaW1wb3J0ICJUZXN0SW52b2NhdGlvbi5oIgogI2ltcG9ydCAiVGVzdFJ1bm5lcldLV2ViVmll
dy5oIgorI2ltcG9ydCAiVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oIgogI2ltcG9ydCA8
Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxTZWN1cml0eS9TZWNJdGVtLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5oPgpAQCAtNTUsNiArNTYs
MTAgQEAgbmFtZXNwYWNlIFdUUiB7CiAKIHN0YXRpYyBXS1dlYlZpZXdDb25maWd1cmF0aW9uICpn
bG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbjsKIAorI2lmIFdLX0FQSV9FTkFCTEVECitzdGF0aWMg
VGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZSAqZ2xvYmFsV2Vic2l0ZURhdGFTdG9yZURlbGVn
YXRlQ2xpZW50OworI2VuZGlmCisKIHZvaWQgaW5pdGlhbGl6ZVdlYlZpZXdDb25maWd1cmF0aW9u
KGNvbnN0IGNoYXIqIGxpYnJhcnlQYXRoLCBXS1N0cmluZ1JlZiBpbmplY3RlZEJ1bmRsZVBhdGgs
IFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbnRleHRD
b25maWd1cmF0aW9uKQogewogI2lmIFdLX0FQSV9FTkFCTEVECkBAIC04MCw2ICs4NSwxMiBAQCB2
b2lkIGluaXRpYWxpemVXZWJWaWV3Q29uZmlndXJhdGlvbihjb25zdCBjaGFyKiBsaWJyYXJ5UGF0
aCwgV0tTdHJpbmdSZWYgaW5qZWN0ZQogICAgIFtnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi53
ZWJzaXRlRGF0YVN0b3JlIF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOwog
ICAgIFtnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlIF9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU2V0U2hvdWxkU3VibWl0VGVsZW1ldHJ5Ok5PXTsKIAorI2lmIFdLX0FQ
SV9FTkFCTEVECisgICAgW2dsb2JhbFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZUNsaWVudCByZWxl
YXNlXTsKKyAgICBnbG9iYWxXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGVDbGllbnQgPSBbW1Rlc3RX
ZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUgYWxsb2NdIGluaXRdOworICAgIFtnbG9iYWxXZWJWaWV3
Q29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlIHNldF9kZWxlZ2F0ZTpnbG9iYWxXZWJzaXRl
RGF0YVN0b3JlRGVsZWdhdGVDbGllbnRdOworI2VuZGlmCisKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIGdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLmFsbG93c0lubGluZU1lZGlhUGxh
eWJhY2sgPSBZRVM7CiAgICAgZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24uX2lubGluZU1lZGlh
UGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlID0gTk87CkBAIC0yNTIsNiArMjYz
LDggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y29jb2FSZXNldFN0YXRlVG9Db25zaXN0ZW50VmFs
dWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb24KICAgICAgICAgaWYgKG9wdGlvbnMuc2hvdWxk
U2hvd1NwZWxsQ2hlY2tpbmdEb3RzKQogICAgICAgICAgICAgW3BsYXRmb3JtVmlldyB0b2dnbGVD
b250aW51b3VzU3BlbGxDaGVja2luZzpuaWxdOwogICAgIH0KKworICAgIFtnbG9iYWxXZWJzaXRl
RGF0YVN0b3JlRGVsZWdhdGVDbGllbnQgc2V0QWxsb3dSYWlzaW5nUXVvdGE6IGZhbHNlXTsKICNl
bmRpZgogfQogCkBAIC0zODUsNCArMzk4LDExIEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OmtleUV4
aXN0c0luS2V5Y2hhaW4oY29uc3QgU3RyaW5nJiBhdHRyTGFiZWwsIGNvbnN0IFN0cmluZyYKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmFsbG93Q2FjaGVTdG9y
YWdlUXVvdGFJbmNyZWFzZSgpCit7CisjaWYgV0tfQVBJX0VOQUJMRUQKKyAgICBbZ2xvYmFsV2Vi
c2l0ZURhdGFTdG9yZURlbGVnYXRlQ2xpZW50IHNldEFsbG93UmFpc2luZ1F1b3RhOiB0cnVlXTsK
KyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvY29jb2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTRmYTgxZTEzNjkwYjE1MDRkMTZjMjFhNWU1ZjEyOWU0NTI1NmNiOAotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFdlYnNpdGVEYXRh
U3RvcmVEZWxlZ2F0ZS5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgPFdlYktpdC9fV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaD4KKwor
I2lmIFdLX0FQSV9FTkFCTEVECisKK0BpbnRlcmZhY2UgVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxl
Z2F0ZTogTlNPYmplY3QgPF9XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZT4geworQHByaXZhdGUK
KyAgICBCT09MIF9zaG91bGRBbGxvd1JhaXNpbmdRdW90YTsKK30KKy0gKGluc3RhbmNldHlwZSlp
bml0OworLSAodm9pZClzZXRBbGxvd1JhaXNpbmdRdW90YTooQk9PTClzaG91bGRBbGxvd1JhaXNp
bmdRdW90YTsKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL2NvY29hL1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUubW0gYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2NvY29hL1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTQ1NWI3NzNiOGVhNDg5YzM3ZGRmMzg2MDE1MGEwOWJlNWMwODU1OQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVE
ZWxlZ2F0ZS5tbQpAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJUZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmgiCisKKyNpZiBXS19B
UElfRU5BQkxFRAorCitAaW1wbGVtZW50YXRpb24gVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0
ZSB7IH0KKy0gKGluc3RhbmNldHlwZSlpbml0Cit7CisgICAgX3Nob3VsZEFsbG93UmFpc2luZ1F1
b3RhID0gZmFsc2U7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpcmVxdWVzdENhY2hl
U3RvcmFnZVNwYWNlOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZU9yaWdpbjooTlNVUkwgKilm
cmFtZVVSTCBxdW90YTooTlNVSW50ZWdlcilxdW90YSBjdXJyZW50U2l6ZTooTlNVSW50ZWdlcilj
dXJyZW50U2l6ZSBzcGFjZVJlcXVpcmVkOihOU1VJbnRlZ2VyKXNwYWNlUmVxdWlyZWQgZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpKWRlY2lzaW9uSGFu
ZGxlcgoreworICAgIGRlY2lzaW9uSGFuZGxlcihfc2hvdWxkQWxsb3dSYWlzaW5nUXVvdGEgPyAy
ICogcXVvdGEgOiBxdW90YSk7Cit9CisKKy0gKHZvaWQpc2V0QWxsb3dSYWlzaW5nUXVvdGE6KEJP
T0wpc2hvdWxkQWxsb3dSYWlzaW5nUXVvdGEKK3sKKyAgICBfc2hvdWxkQWxsb3dSYWlzaW5nUXVv
dGEgPSBzaG91bGRBbGxvd1JhaXNpbmdRdW90YTsKK30KK0BlbmQKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ZTg1NjI1NGY2YjUwMDU1MDVmOGExZGQzYzNjOTYxZTg3OTAxZDdjMS4uNDIyOWU2YzE3MjQ5ZWQ0
OGMzM2RiNWMwYzViNjhjODljODg2ZDViMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTAx
LTE3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBu
ZXcgU1BJIHRvIHJlcXVlc3QgZm9yIGNhY2hlIHN0b3JhZ2UgcXVvdGEgaW5jcmVhc2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzMyMworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgdGVzdFJ1
bm5lciBtZXRob2QgdG8gYnVtcCB0aGUgY2FjaGUgcXVvdGEgYW5kIHZlcmlmeSBhZGRpbmcgYQor
ICAgICAgICBjYWNoZSBlbnRyeSB3b3JrcyB3aGVuIGJ1bXBpbmcgdGhlIGNhY2hlIHF1b3RhLgor
CisgICAgICAgICogaHR0cC93cHQvY2FjaGUtc3RvcmFnZS9jYWNoZS1xdW90YS5hbnkuanM6Cisg
ICAgICAgIChwcm9taXNlX3Rlc3QpOgorCiAyMDE5LTAxLTE2ICBBbGljaWEgQm95YSBHYXJjw61h
ICA8YWJveWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEdUSyBhbmQgV1BFIHRl
c3QgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY2FjaGUtc3Rv
cmFnZS9jYWNoZS1xdW90YS5hbnkuanMgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jYWNoZS1zdG9y
YWdlL2NhY2hlLXF1b3RhLmFueS5qcwppbmRleCA1YTk0ZDViNzhmM2I2MzljYTcwZGNiZjEzZmYy
ODhhNWRiMmUyMzkzLi5mNzlkMzI4NTBjYzUzMzdkYTNlNzc2OWZmZTVhMGEyYjIyYzY0MDFhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jYWNoZS1zdG9yYWdlL2NhY2hlLXF1b3Rh
LmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jYWNoZS1zdG9yYWdlL2NhY2hlLXF1
b3RhLmFueS5qcwpAQCAtMTE0LDcgKzExNCw3IEBAIHByb21pc2VfdGVzdCgodGVzdCkgPT4gewog
ICAgICAgICByZXR1cm4gY2FjaGUucHV0KCIxa28tdjIiLCByZXNwb25zZTFrby5jbG9uZSgpKS50
aGVuKGFzc2VydF91bnJlYWNoZWQsIChlKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGUubmFtZSwgIlF1b3RhRXhjZWVkZWRFcnJvciIpOwogICAgICAgICB9KTsKLSAgIH0pLnRoZW4o
KCkgPT4geworICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICByZXR1cm4gY2FjaGUuZGVsZXRl
KCIxa28tdjEiKTsKICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgcmV0dXJuIGNhY2hlLnB1
dCgiMWtvLXYyIiwgcmVzcG9uc2Uxa28uY2xvbmUoKSk7CkBAIC0xNTEsNyArMTUxLDEwIEBAIHBy
b21pc2VfdGVzdCgodGVzdCkgPT4gewogICAgICAgICByZXR1cm4gY2FjaGUucHV0KCIxa28iLCBy
ZXNwb25zZTFrby5jbG9uZSgpKS50aGVuKGFzc2VydF91bnJlYWNoZWQsIChlKSA9PiB7CiAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIlF1b3RhRXhjZWVkZWRFcnJvciIpOwogICAg
ICAgICB9KTsKLSAgIH0pLnRoZW4oKCkgPT4geworICAgIH0pLnRoZW4oKCkgPT4geworICAgICAg
ICB0ZXN0UnVubmVyLmFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSgpOworICAgICAgICBy
ZXR1cm4gY2FjaGUucHV0KCIxa28iLCByZXNwb25zZTFrby5jbG9uZSgpKTsKKyAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgcmV0dXJuIGNhY2hlLmRlbGV0ZSgiMWtvLXBhZGRlZC10by0yMDBr
byIpOwogICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICByZXR1cm4gY2FjaGUucHV0KCIxa28t
djIiLCByZXNwb25zZTFrby5jbG9uZSgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359497</attachid>
            <date>2019-01-18 09:04:10 -0800</date>
            <delta_ts>2019-01-18 10:19:47 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-193323-20190118090407.patch</filename>
            <type>text/plain</type>
            <size>40330</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0OTJmOGFmMjdmOGUxODQ5
ODI2NDk1YTMwZjY4MzkzYjg3ZmYyMDAuLjIyYTdmMTA2NzViNzY0MjM1NmQzYTBiNmE2NjU4ZDg4
ZmQ0ZDhmMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTktMDEtMTcgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgdG8gcmVx
dWVzdCBmb3IgY2FjaGUgc3RvcmFnZSBxdW90YSBpbmNyZWFzZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMzIzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBBZGQgYSBkZWxlZ2F0ZSBvbiB0aGUgV2Vi
U2l0ZURhdGFTdG9yZSBmb3IgV2ViS2l0IHRvIGFzayBmb3IgcXVvdGEgdXBkYXRlLgorICAgICAg
ICBUaGUgY3VycmVudCBTUEkgaXMgY3VycmVudGx5IENhY2hlU3RvcmFnZSBzcGVjaWZpYyBidXQg
ZnV0dXJlIHdvcmsgc2hvdWxkCisgICAgICAgIG1ha2UgaXQgc28gdGhhdCBvdGhlciBzdG9yYWdl
IGxpa2UgSURCIHVzZSB0aGUgc2FtZSBtZWNoYW5pc20uCisgICAgICAgIEJ5IGRlZmF1bHQsIHF1
b3RhIHJlbWFpbnMgdW5jaGFuZ2VkIGlmIGRlbGVnYXRlIGlzIG5vdCBpbXBsZW1lbnRlZC4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRlLmg6IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgor
ICAgICAgICAoV2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdlcjo6V2Vic2l0ZURhdGFTdG9yZVF1
b3RhTWFuYWdlcik6CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfcXVvdGFEZWxlZ2F0
ZV0pOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgc2V0X3F1b3RhRGVsZWdhdGU6XSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5h
bC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJp
dmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0Q2FjaGVT
dG9yYWdlU3BhY2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURh
dGFTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cXVvdGFNYW5hZ2VyKToK
KyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0UXVvdGFNYW5hZ2VyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdl
ci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdl
cjo6fldlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJz
aXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyOjpyZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2UpOgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE5LTAxLTE2ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBuZXcgU1BJ
IGZvciBjb250cm9sbGluZyBnZXRVc2VyTWVkaWEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IDJkMTYwZWEz
YjEyODhmZTg0ZGMxZDgyOTNjMGEzMjgzODFmZWIyNmEuLmUxMDkzZTRkZTVhYjYzMTA3ZTY1NDg4
ZGM2MjY2MDEzZWY3MjViMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtMjksNiArMjksNyBAQAogI2lm
IFdLX0FQSV9FTkFCTEVECiAKICNpbXBvcnQgIkFQSVN0cmluZy5oIgorI2ltcG9ydCAiQ29tcGxl
dGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIgogI2ltcG9ydCAiV0tIVFRQQ29va2llU3RvcmVJbnRl
cm5hbC5oIgogI2ltcG9ydCAiV0tOU0FycmF5LmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5h
bC5oIgpAQCAtMzgsOSArMzksNDUgQEAKICNpbXBvcnQgIldlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NUZWxlbWV0cnkuaCIKICNpbXBvcnQgIldlYnNpdGVEYXRhRmV0Y2hPcHRpb24uaCIKICNpbXBv
cnQgIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgiCisjaW1wb3J0ICJfV0tXZWJz
aXRlRGF0YVN0b3JlRGVsZWdhdGUuaCIKICNpbXBvcnQgPFdlYktpdC9TZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5Lmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KICNpbXBvcnQgPHd0Zi9VUkwu
aD4KKyNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgorCitjbGFzcyBXZWJzaXRlRGF0YVN0b3Jl
Q2xpZW50IDogcHVibGljIFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNsaWVudCB7CitwdWJsaWM6
CisgICAgZXhwbGljaXQgV2Vic2l0ZURhdGFTdG9yZUNsaWVudChpZCA8X1dLV2Vic2l0ZURhdGFT
dG9yZURlbGVnYXRlPiBkZWxlZ2F0ZSkKKyAgICAgICAgOiBtX2RlbGVnYXRlKGRlbGVnYXRlKQor
ICAgICAgICAsIG1faGFzUmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlU2VsZWN0b3IoW21fZGVsZWdh
dGUuZ2V0KCkgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihyZXF1ZXN0Q2FjaGVTdG9yYWdl
U3BhY2U6IGZyYW1lT3JpZ2luOiBxdW90YTogY3VycmVudFNpemU6IHNwYWNlUmVxdWlyZWQ6IGRl
Y2lzaW9uSGFuZGxlcjopXSkKKyAgICB7CisgICAgfQorCitwcml2YXRlOgorICAgIHZvaWQgcmVx
dWVzdENhY2hlU3RvcmFnZVNwYWNlKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
dG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lT3JpZ2lu
LCB1aW50NjRfdCBxdW90YSwgdWludDY0X3QgY3VycmVudFNpemUsIHVpbnQ2NF90IHNwYWNlUmVx
dWlyZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8dWludDY0X3Q+KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikgZmluYWwKKyAgICB7CisgICAgICAgIGlmICghbV9oYXNSZXF1ZXN0Q2Fj
aGVTdG9yYWdlU3BhY2VTZWxlY3RvciB8fCAhbV9kZWxlZ2F0ZSkgeworICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIGF1dG8gY2hlY2tlciA9IFdlYktpdDo6Q29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tl
cjo6Y3JlYXRlKG1fZGVsZWdhdGUuZ2V0QXV0b3JlbGVhc2VkKCksIEBzZWxlY3RvcihyZXF1ZXN0
Q2FjaGVTdG9yYWdlU3BhY2U6IGZyYW1lT3JpZ2luOiBxdW90YTogY3VycmVudFNpemU6IHNwYWNl
UmVxdWlyZWQ6IGRlY2lzaW9uSGFuZGxlcjopKTsKKyAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRs
ZXIgPSBtYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlciksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXSh1bnNpZ25lZCBsb25nIGxvbmcg
cXVvdGEpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5k
bGVySGFzQmVlbkNhbGxlZCgpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IGNoZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIocXVvdGEpOworICAgICAgICB9KTsKKworICAgICAgICBVUkwgbWFpbkZyYW1l
VVJMIHsgVVJMKCksIHRvcE9yaWdpbi50b1N0cmluZygpIH07CisgICAgICAgIFVSTCBmcmFtZVVS
TCB7IFVSTCgpLCBmcmFtZU9yaWdpbi50b1N0cmluZygpIH07CisKKyAgICAgICAgW21fZGVsZWdh
dGUuZ2V0QXV0b3JlbGVhc2VkKCkgcmVxdWVzdENhY2hlU3RvcmFnZVNwYWNlOm1haW5GcmFtZVVS
TCBmcmFtZU9yaWdpbjpmcmFtZVVSTCBxdW90YTpxdW90YSBjdXJyZW50U2l6ZTpjdXJyZW50U2l6
ZSBzcGFjZVJlcXVpcmVkOnNwYWNlUmVxdWlyZWQgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFu
ZGxlci5nZXQoKV07CisgICAgfQorCisgICAgV2Vha09iakNQdHI8aWQgPF9XS1dlYnNpdGVEYXRh
U3RvcmVEZWxlZ2F0ZT4gPiBtX2RlbGVnYXRlOworICAgIGJvb2wgbV9oYXNSZXF1ZXN0Q2FjaGVT
dG9yYWdlU3BhY2VTZWxlY3RvciB7IGZhbHNlIH07Cit9OwogCiBAaW1wbGVtZW50YXRpb24gV0tX
ZWJzaXRlRGF0YVN0b3JlCiAKQEAgLTM4Myw2ICs0MjAsMTcgQEAgLSAoYm9vbClfaGFzUmVnaXN0
ZXJlZFNlcnZpY2VXb3JrZXIKICAgICByZXR1cm4gV2ViS2l0OjpTZXJ2aWNlV29ya2VyUHJvY2Vz
c1Byb3h5OjpoYXNSZWdpc3RlcmVkU2VydmljZVdvcmtlcnMoX3dlYnNpdGVEYXRhU3RvcmUtPndl
YnNpdGVEYXRhU3RvcmUoKS5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KCkpOwog
fQogCistIChpZCA8X1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlPilfZGVsZWdhdGUKK3sKKyAg
ICByZXR1cm4gX2RlbGVnYXRlLmdldCgpOworfQorCistICh2b2lkKXNldF9kZWxlZ2F0ZTooaWQg
PF9XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZT4pZGVsZWdhdGUKK3sKKyAgICBfZGVsZWdhdGUg
PSBkZWxlZ2F0ZTsKKyAgICBfd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpLnNl
dENsaWVudChtYWtlVW5pcXVlUmVmPFdlYnNpdGVEYXRhU3RvcmVDbGllbnQ+KGRlbGVnYXRlKSk7
Cit9CisKIEBlbmQKIAogI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVJ
bnRlcm5hbC5oCmluZGV4IGQ4NjE4NzUyNzNiYTdkZjY3ZTI4NjZkMTQ1NWI5NmI3ZjNkYzQ3ZjYu
LjJjNWI3OGUxNTk5MjdkZWJiZjQ1NDU2YTEyM2YyYmY3ZmU1N2U2MzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5h
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRh
U3RvcmVJbnRlcm5hbC5oCkBAIC00MSw2ICs0MSw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IFdyYXBw
ZXJUcmFpdHM8QVBJOjpXZWJzaXRlRGF0YVN0b3JlPiB7CiBAaW50ZXJmYWNlIFdLV2Vic2l0ZURh
dGFTdG9yZSAoKSA8V0tPYmplY3Q+IHsKIEBwYWNrYWdlCiAgICAgQVBJOjpPYmplY3RTdG9yYWdl
PEFQSTo6V2Vic2l0ZURhdGFTdG9yZT4gX3dlYnNpdGVEYXRhU3RvcmU7CisgICAgUmV0YWluUHRy
PGlkIDxfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGU+ID4gX2RlbGVnYXRlOwogfQogQGVuZAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCA3NGE4YTAyZjJmMWQ5ZWU5NWM5N2FmOWE5
NmUzYzYwMTMxOTIwMTYxLi5mZWQyNDI1ZGJiNWE4OWUyNGRlZDU1ZDc2YzU2MWQ3YzAwMWQwYWIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAgLTMyLDYgKzMyLDggQEAgTlNfQVNTVU1F
X05PTk5VTExfQkVHSU4KIEBjbGFzcyBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjsK
IEBjbGFzcyBXS1dlYlZpZXc7CiAKK0Bwcm90b2NvbCBfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdh
dGU7CisKIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVN0b3Jl
RmV0Y2hPcHRpb25zKSB7CiAgICAgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9uQ29tcHV0
ZVNpemVzID0gMSA8PCAwLAogfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygx
MC4wKSk7CkBAIC02Miw2ICs2NCw4IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBf
V0tXZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25zKSB7CiArICh2b2lkKV9hbGxvd1dlYnNpdGVE
YXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCks
IGlvcygxMS4zKSk7CiAtIChib29sKV9oYXNSZWdpc3RlcmVkU2VydmljZVdvcmtlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7CiAKK0Bwcm9wZXJ0eSAobnVsbGFi
bGUsIG5vbmF0b21pYywgd2VhaykgaWQgPF9XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZT4gX2Rl
bGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworCiBAZW5kCiAKIE5TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVE
ZWxlZ2F0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2ZWJhZDQ3ZWZlYWU3YjYyOTVjMGQ2ZDM0NmQwYWRkN2E0
MjU1MWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBXS19BUElfRU5B
QkxFRAorCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKworV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK0Bwcm90b2NvbCBfV0tX
ZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUgPE5TT2JqZWN0PgorCitAb3B0aW9uYWwKKworLSAodm9p
ZClyZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2U6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lT3Jp
Z2luOihOU1VSTCAqKWZyYW1lVVJMIHF1b3RhOihOU1VJbnRlZ2VyKXF1b3RhIGN1cnJlbnRTaXpl
OihOU1VJbnRlZ2VyKWN1cnJlbnRTaXplIHNwYWNlUmVxdWlyZWQ6KE5TVUludGVnZXIpc3BhY2VS
ZXF1aXJlZCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90
YSkpZGVjaXNpb25IYW5kbGVyOworCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXgg
NjAwYzBiYzM5YWVjMzkyNjlhOGRmZWQ5ZjVhZWNlOTBlMzQyMjRiOS4uNTYwZDZlZTA4NDQ4ZTNi
ZDZkOTRkMDQ5NzA1NDE3NjBjZDRlNDllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC00Myw2ICs0Myw4
IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNsdWRlICJXZWJVc2VyQ29udGVu
dENvbnRyb2xsZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCisjaW5jbHVkZSAi
V2Vic2l0ZURhdGFTdG9yZUNsaWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2lu
Lmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKICNpZiBFTkFCTEUoU0VD
X0lURU1fU0hJTSkKQEAgLTc0Myw4ICs3NDUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OnJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbgog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gRklYTUU6IEFzayBXZWJzaXRlRGF0YVN0
b3JlIGFib3V0IHVwZGF0aW5nIHRoZSBxdW90YSBmb3IgdGhpcyBvcmlnaW4uCi0gICAgY29tcGxl
dGlvbkhhbmRsZXIocXVvdGEpOworICAgIHN0b3JlLT5jbGllbnQoKS5yZXF1ZXN0Q2FjaGVTdG9y
YWdlU3BhY2Uob3JpZ2luLnRvcE9yaWdpbiwgb3JpZ2luLmNsaWVudE9yaWdpbiwgcXVvdGEsIGN1
cnJlbnRTaXplLCBzcGFjZVJlcXVpcmVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCAwYWFiYmU0OGRi
MTM1ZDg2YmYyODRiMDU1NDIxNDNhMTdiZDhlOWEwLi5mNzU4NTFiMWM2YWU4MmNlYzlhOGM5NTMw
YWViMmI5NGMyYmE0N2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2lu
Y2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgogI2luY2x1ZGUgIldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURh
dGEuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZVRyYWNrZXIuaD4KQEAg
LTk3LDYgKzk4LDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShSZWY8V2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+JiYgY29uZmlndXIKICNpZiBFTkFCTEUoV0VCX0FV
VEhOKQogICAgICwgbV9hdXRoZW50aWNhdG9yTWFuYWdlcihtYWtlVW5pcXVlUmVmPEF1dGhlbnRp
Y2F0b3JNYW5hZ2VyPigpKQogI2VuZGlmCisgICAgLCBtX2NsaWVudChtYWtlVW5pcXVlUmVmPFdl
YnNpdGVEYXRhU3RvcmVDbGllbnQ+KCkpCiB7CiAgICAgV1RGOjpzZXRQcm9jZXNzUHJpdmlsZWdl
cyhhbGxQcml2aWxlZ2VzKCkpOwogICAgIG1heWJlUmVnaXN0ZXJXaXRoU2Vzc2lvbklETWFwKCk7
CkBAIC0xMTQsNiArMTE2LDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAjaWYgRU5BQkxFKFdFQl9BVVRITikKICAgICAsIG1f
YXV0aGVudGljYXRvck1hbmFnZXIobWFrZVVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yTWFuYWdlcj4o
KSkKICNlbmRpZgorICAgICwgbV9jbGllbnQobWFrZVVuaXF1ZVJlZjxXZWJzaXRlRGF0YVN0b3Jl
Q2xpZW50PigpKQogewogICAgIG1heWJlUmVnaXN0ZXJXaXRoU2Vzc2lvbklETWFwKCk7CiAgICAg
cGxhdGZvcm1Jbml0aWFsaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggOTEyZDhlNDc1Y2Q2YTIxNzk5
OWEwOTAxNzhlYjY1OGZjMjE3OWM2OS4uZmEzNDAxM2E2M2VkZGQ3MzU2MjdiNzBkYmMzNWFkMjE0
NWEyM2I5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTGlm
ZXRpbWVPYnNlcnZlci5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVDbGllbnQuaCIKICNp
bmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvQ29va2llLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KQEAg
LTE4OCw2ICsxODksOSBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbigpIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5nZXQo
KTsgfQogCisgICAgV2Vic2l0ZURhdGFTdG9yZUNsaWVudCYgY2xpZW50KCkgeyByZXR1cm4gbV9j
bGllbnQuZ2V0KCk7IH0KKyAgICB2b2lkIHNldENsaWVudChVbmlxdWVSZWY8V2Vic2l0ZURhdGFT
dG9yZUNsaWVudD4mJiBjbGllbnQpIHsgbV9jbGllbnQgPSBXVEZNb3ZlKGNsaWVudCk7IH0KKwog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlKFBBTDo6U2Vzc2lvbklEKTsK
ICAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlKFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbj4mJiwgUEFMOjpTZXNzaW9uSUQpOwpAQCAtMjU2LDYgKzI2MCw4IEBAIHByaXZhdGU6
CiAjaWYgRU5BQkxFKFdFQl9BVVRITikKICAgICBVbmlxdWVSZWY8QXV0aGVudGljYXRvck1hbmFn
ZXI+IG1fYXV0aGVudGljYXRvck1hbmFnZXI7CiAjZW5kaWYKKworICAgIFVuaXF1ZVJlZjxXZWJz
aXRlRGF0YVN0b3JlQ2xpZW50PiBtX2NsaWVudDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDbGll
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45MGVhN2QzYzE3OGUyNzcyZTE2MDk0YThkODYyYzMyMDhlZDFmNjM2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZUNsaWVudC5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2Vic2l0ZURhdGFTdG9yZUNsaWVudCB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+V2Vic2l0ZURhdGFTdG9yZUNsaWVudCgpIHsgfQorCisgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZShjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFt
ZU9yaWdpbiwgdWludDY0X3QgcXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRTaXplLCB1aW50NjRfdCBz
cGFjZVJlcXVpcmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPHVpbnQ2NF90Pik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7
IH0pOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTcxNDFlODM3YzUyYmNk
ZTBkNTQyOTM3MTMxOWY5OGI4NzFjNTNkZi4uYjllYjA0NzVlMmRmNzAwZjkxNTEzY2FmZDI2ODJi
MjM2ZmIwYWVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC04NzYsNiArODc2LDcgQEAKIAkJNDE4OTdFRDExRjQxNUQ2ODAwMTZGQTQy
IC8qIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODk3RUNEMUY0MTVENUMwMDE2RkE0MiAvKiBXZWJDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uLmggKi87IH07CiAJCTQxODk3RUQ4MUY0MTVEOEEwMDE2RkE0MiAv
KiBDYWNoZVN0b3JhZ2VFbmdpbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxODk3RUQyMUY0MTVEODUwMDE2RkE0MiAvKiBDYWNoZVN0b3JhZ2VFbmdp
bmUuaCAqLzsgfTsKIAkJNDE4OTdFREExRjQxNUQ4QTAwMTZGQTQyIC8qIENhY2hlU3RvcmFnZUVu
Z2luZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxODk3RUQ0MUY0MTVEODUwMDE2RkE0MiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25u
ZWN0aW9uLmggKi87IH07CisJCTQxQzUzNzkwMjFGMTVCNTUwMDhCMUZBRCAvKiBfV0tXZWJzaXRl
RGF0YVN0b3JlRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxQzUzNzhGMjFGMTM2MkQwMDhCMUZBRCAvKiBfV0tXZWJzaXRlRGF0YVN0b3Jl
RGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0MUQxMjlEQTFGM0QxMDE4MDBEMTVFNDcgLyogV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRDEyOUQ5
MUYzRDEwMTQwMEQxNUU0NyAvKiBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oICovOyB9OwogCQk0
MURDNDU5NjFFM0Q2RTIyMDBCMTFGNTEgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURDNDU5NDFFM0Q2RTFFMDBC
MTFGNTEgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLmggKi87IH07CiAJCTQxREM0NTlDMUUzREJCMjgw
MEIxMUY1MSAvKiBMaWJXZWJSVENTb2NrZXRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREM0NTlBMUUzREJCMjQwMEIxMUY1MSAvKiBMaWJX
ZWJSVENTb2NrZXRDbGllbnQuaCAqLzsgfTsKQEAgLTI5ODksNiArMjk5MCw3IEBACiAJCTQxMTJF
REQ3MjBFNDA3NzUwMEJFQTkyQSAvKiBjb20uYXBwbGUuTlBTYWZlU3VibWl0LnNiICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5OUFNhZmVTdWJtaXQuc2I7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxMTJFREQ4MjBFNDA3NzUwMEJFQTkyQSAvKiBjb20uYXBwbGUuTlBT
YWZlSW5wdXQuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLk5QU2FmZUlucHV0
LnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEyRUREOTIwRTQwNzc1MDBCRUE5
MkEgLyogY29tLmFwcGxlLkJvY29tU3VibWl0Q3RybC5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBjb20uYXBwbGUuQm9jb21TdWJtaXRDdHJsLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MTE4REMxQjIxRTZEMTFBMDBERTA0QzcgLyogV2Vic2l0ZURhdGFTdG9yZUNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJzaXRlRGF0YVN0b3JlQ2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMUE4REQ5MjBEREI2MDUwMDYwRDM0
RiAvKiBXS01vY2tNZWRpYURldmljZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS01vY2tNZWRpYURldmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTFB
OEREQTIwRERCNjA1MDA2MEQzNEYgLyogV0tNb2NrTWVkaWFEZXZpY2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tNb2NrTWVkaWFEZXZpY2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTFCMjI2MjFFMzcxMjQ0MDA0RjczNjMgLyogTGliV2Vi
UlRDTmV0d29yay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENO
ZXR3b3JrLmg7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDQ0LDYgKzMwNDYsNyBAQAogCQk0MUI3RUQ2RjIw
Njk2NTkwMDA4N0Q4NTMgLyogTmV0d29ya01ETlNSZWdpc3Rlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrTUROU1JlZ2lzdGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFCN0VENzAyMDY5NjU5MDAwODdEODUzIC8qIE5ldHdvcmtN
RE5TUmVnaXN0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya01E
TlNSZWdpc3Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUI3RUQ3MTIwNjk2
NTkwMDA4N0Q4NTMgLyogTmV0d29ya01ETlNSZWdpc3Rlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBOZXR3b3JrTUROU1JlZ2lzdGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MUM1Mzc4RjIxRjEzNjJEMDA4QjFGQUQgLyogX1dLV2Vic2l0
ZURhdGFTdG9yZURlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9X
S1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MUM4NTgxOTFGNTEwREVFMDA2NUUwODUgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVTdG9yYWdlRW5naW5l
Q2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUQwRkM3RDIwRTQzQTUx
MDAwNzZBRTggLyogTmV0d29yay1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnBsaXN0LmVudGl0bGVtZW50czsgcGF0aCA9ICJOZXR3b3JrLU9TWC1zYW5kYm94LmVudGl0
bGVtZW50cyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRDEyOUQ5MUYzRDEwMTQw
MEQxNUU0NyAvKiBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJD
YWNoZVN0b3JhZ2VQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDg0
NCw3ICs0ODQ3LDcgQEAKIAkJCQkxQTUzQzJBNTFBMzI1NjlGMDA0RThDNzAgLyogV2Vic2l0ZURh
dGFTdG9yZS5oICovLAogCQkJCTVDNDZDMEFDMjFCNzE5OEIwMEJDNTk5MSAvKiBXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAgKi8sCiAJCQkJNUM0NkMwQUQyMUI3MTk4QzAwQkM1OTkx
IC8qIFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmggKi8sCi0JCQkJNDExOERDMUIyMUU2
RDExQTAwREUwNEM3IC8qIFdlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIuaCAqLywKKwkJCQk0
MTE4REMxQjIxRTZEMTFBMDBERTA0QzcgLyogV2Vic2l0ZURhdGFTdG9yZUNsaWVudC5oICovLAog
CQkJKTsKIAkJCXBhdGggPSBXZWJzaXRlRGF0YTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC02MDUzLDYgKzYwNTYsNyBAQAogCQkJCTUxMjBDODMzMUU1QjcxNTcwMDI1QjI1MCAvKiBf
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oICovLAogCQkJCTUxMjBDODM0MUU1Qjcx
NTcwMDI1QjI1MCAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbSAqLywKIAkJ
CQk1QzQ2QzBBRTIxQjcxQUUyMDBCQzU5OTEgLyogX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb25JbnRlcm5hbC5oICovLAorCQkJCTQxQzUzNzhGMjFGMTM2MkQwMDhCMUZBRCAvKiBfV0tX
ZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaCAqLywKIAkJCQk1Q0IyMzc4OTFERjBERDQzMDAxMTdB
QTMgLyogX1dLV2Vic2l0ZVBvbGljaWVzLmggKi8sCiAJCQkJNUNCMjM3OEExREYwREQ0MzAwMTE3
QUEzIC8qIF9XS1dlYnNpdGVQb2xpY2llcy5tbSAqLywKIAkJCQk1Q0IyMzc4RDFERjBFMEMyMDAx
MTdBQTMgLyogX1dLV2Vic2l0ZVBvbGljaWVzSW50ZXJuYWwuaCAqLywKQEAgLTg5MjMsNiArODky
Nyw3IEBACiAJCQkJN0NCMzY1QjExRDMxREQxRTAwNzE1OENBIC8qIEFQSVVzZXJJbml0aWF0ZWRB
Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTdDODlEMjk0MUE2NzEyMkYwMDNBNUZERSAvKiBB
UElVc2VyU2NyaXB0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDg3ODYyNDFCREI1OEZGMDBEMDJB
QkIgLyogQVBJVXNlclN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxQzUzNzkwMjFG
MTVCNTUwMDhCMUZBRCAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUM1RTFBRkVEMTZCMjEwMTcwMDZDQzFGMiAvKiBBUElXZWJBcmNoaXZlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDNUUxQUZFRjE2QjIxMDI5MDA2Q0MxRjIgLyogQVBJV2ViQXJjaGl2
ZVJlc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUUyODY4NDFDN0Y5Mzg2MDA2OUFDNEYg
LyogQVBJV2Vic2l0ZURhdGFSZWNvcmQuaCBpbiBIZWFkZXJzICovLApAQCAtOTgzMCw3ICs5ODM1
LDYgQEAKIAkJCQkxREIwMTk0MzIxMUNGMDAyMDA5RkIzRTggLyogV0tTaGFyZVNoZWV0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MTNFNDYyRDFBRDgzNzU2MDAxNjIzNEEgLyogV0tTaGFyaW5nU2Vy
dmljZVBpY2tlckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y1NDlCNDFFMzE3NEI3
MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJ
CTQxMThEQzFGMjFFN0JGNUQwMERFMDRDNyAvKiBXS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MDYxMjRGRjAyNzAwNjhGMjBBIC8qIFdLU3Ry
aW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYxQTEyNEZGMDM3MDA2OEYyMEEgLyogV0tT
dHJpbmdDRi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5MDk5ODAxMjU2QTk4MjAwMDgzNzU2IC8q
IFdLU3RyaW5nUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWJiZTRjMWRjMTQ4YzYwYjk2N2QxODJmODRk
MzZhNzkxYTg4YmQ5MS4uOTk3ZTMzYjhjZWEwNTRhMTZjYmExZTEwNmQyM2NkZjZlYmQ2ZmViNCAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMwIEBACisyMDE5LTAxLTE3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
KworICAgICAgICBBZGQgYSBuZXcgU1BJIHRvIHJlcXVlc3QgZm9yIGNhY2hlIHN0b3JhZ2UgcXVv
dGEgaW5jcmVhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MzMyMworCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAg
ICAgICAgSW1wbGVtZW50IFdlYnNpdGVEYXRhU3RvcmUgcXVvdGEgZGVsZWdhdGUgdG8gaGFuZGxl
IHF1b3RhIHJlcXVlc3RzLgorICAgICAgICBCeSBkZWZhdWx0LCBkbyBub3QgdXBkYXRlIHF1b3Rh
LgorICAgICAgICBVcGRhdGUgcXVvdGEgaWYgdGVzdCBjYWxscyB0aGUgbmV3IHRlc3RSdW5uZXIu
YWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlIG1ldGhvZC4KKworICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAg
ICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6YWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OmFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52
b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1t
OgorICAgICAgICAoLVtDYWNoZVN0b3JhZ2VRdW90YU1hbmFnZXIgaW5pdF0pOgorICAgICAgICAo
LVtDYWNoZVN0b3JhZ2VRdW90YU1hbmFnZXIgX3JlcXVlc3RDYWNoZVN0b3JhZ2VTcGFjZTpmcmFt
ZU9yaWdpbjpxdW90YTpjdXJyZW50U2l6ZTpzcGFjZVJlcXVpcmVkOmRlY2lzaW9uSGFuZGxlcjpd
KToKKyAgICAgICAgKFdUUjo6aW5pdGlhbGl6ZVdlYlZpZXdDb25maWd1cmF0aW9uKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNvY29hUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVl
cyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjphbGxvd0NhY2hlU3RvcmFnZVF1b3Rh
SW5jcmVhc2UpOgorCiAyMDE5LTAxLTE3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0xGQ11bQkZDXSBBbiBlbGVtZW50IHdpdGggdHJhbnNmb3JtIGlzIGEgY29u
dGFpbmluZyBibG9jayBmb3IgcG9zaXRpb25lZCBkZXNjZW5kYW50cy4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsCmluZGV4IDY3ZmM5M2U5MTYyMmJkZDMzMzE4NWM3ZjZiMjA4YTM5ZmVlNDQ1MTYu
LmYxNTU1MGY1MzBlZDBmM2Q1MTk0NzgwMjI2OTUyMDFlOTAyY2JhYjMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbApAQCAtNjIsNiArNjIsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAg
ICAgdm9pZCBjbGVhckRPTUNhY2hlKERPTVN0cmluZyBvcmlnaW4pOwogICAgIGJvb2xlYW4gaGFz
RE9NQ2FjaGUoRE9NU3RyaW5nIG9yaWdpbik7CiAgICAgdW5zaWduZWQgbG9uZyBkb21DYWNoZVNp
emUoRE9NU3RyaW5nIG9yaWdpbik7CisgICAgdm9pZCBhbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5j
cmVhc2UoKTsKIAogICAgIC8vIFNwZWNpYWwgb3B0aW9ucy4KICAgICB2b2lkIGtlZXBXZWJIaXN0
b3J5KCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcAppbmRleCBmOTdhZTQ3YjhkNWZiMmVhZDFiZTRmOTU5N2UxNTY4Zjc2ZGYw
MTZhLi5kN2E5ZDI0ODI5ZGY4Yjc0YWQ4YmNkOTFkZGQ5NjA5NGIyY2U1ODUwIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAK
QEAgLTIzNjcsNiArMjM2NywxMiBAQCB1aW50NjRfdCBUZXN0UnVubmVyOjpkb21DYWNoZVNpemUo
SlNTdHJpbmdSZWYgb3JpZ2luKQogICAgIHJldHVybiBXS1VJbnQ2NEdldFZhbHVlKHN0YXRpY19j
YXN0PFdLVUludDY0UmVmPihyZXR1cm5EYXRhKSk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6YWxs
b3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlKCkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
IkFsbG93Q2FjaGVTdG9yYWdlUXVvdGFJbmNyZWFzZSIpKTsKKyAgICBXS0J1bmRsZVBvc3RTeW5j
aHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNz
YWdlTmFtZS5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0cik7Cit9CisKIHZvaWQgVGVzdFJ1bm5lcjo6
Z2V0QXBwbGljYXRpb25NYW5pZmVzdFRoZW4oSlNWYWx1ZVJlZiBjYWxsYmFjaykKIHsKICAgICBj
YWNoZVRlc3RSdW5uZXJDYWxsYmFjayhHZXRBcHBsaWNhdGlvbk1hbmlmZXN0Q2FsbGJhY2tJRCwg
Y2FsbGJhY2spOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaAppbmRleCAyMjE0ZDc3YjhjMzk3OWE0N2M1ZThlZGFhNWQzMjcxMmQxNDM0
MWQ5Li5hNDAxOTk5ZjQxMmU5YmQzOTMyYWI4MWM4NGI3NzczZDVkZjA3M2YzIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAt
MTc1LDYgKzE3NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyRE9NQ2FjaGVzKCk7CiAgICAg
Ym9vbCBoYXNET01DYWNoZShKU1N0cmluZ1JlZiBvcmlnaW4pOwogICAgIHVpbnQ2NF90IGRvbUNh
Y2hlU2l6ZShKU1N0cmluZ1JlZiBvcmlnaW4pOworICAgIHZvaWQgYWxsb3dDYWNoZVN0b3JhZ2VR
dW90YUluY3JlYXNlKCk7CiAKICAgICAvLyBJbmRleGVkREIKICAgICB2b2lkIHNldElEQlBlck9y
aWdpblF1b3RhKHVpbnQ2NF90KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKaW5kZXggN2M4OGUwMDI3ZjNkNzUwYmU2MTU2NzIzMmE4ODFhZGNkZmI0ZGRhOC4uN2Ni
N2Y1Y2Q5ZTg1ZDU3ZjYzNGE3MGI0MTE3ZjU3ZjM0ODU1OGQ3NyAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTI4MzAsNiArMjgzMCwxMyBAQCB1aW50NjRf
dCBUZXN0Q29udHJvbGxlcjo6ZG9tQ2FjaGVTaXplKFdLU3RyaW5nUmVmIG9yaWdpbikKICAgICBy
ZXR1cm4gY29udGV4dC5yZXN1bHQ7CiB9CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCit2b2lkIFRl
c3RDb250cm9sbGVyOjphbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UoKQoreworICAgIC8v
IEZJWE1FOiBUbyBpbXBsZW1lbnQuCit9CisjZW5kaWYKKwogc3RydWN0IFJlc291cmNlU3RhdGlz
dGljc0NhbGxiYWNrQ29udGV4dCB7CiAgICAgZXhwbGljaXQgUmVzb3VyY2VTdGF0aXN0aWNzQ2Fs
bGJhY2tDb250ZXh0KFRlc3RDb250cm9sbGVyJiBjb250cm9sbGVyKQogICAgICAgICA6IHRlc3RD
b250cm9sbGVyKGNvbnRyb2xsZXIpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKaW5kZXggMTNhMzljNjkwNWYwZDg3YmE4N2I5ZGI1N2Y4ZGFkNWMxN2FjNzFiYy4uMTQyNWNi
ZmQ1MWE3NjA0YWUxMGM1Nzk0NDU1N2FhMDZhMjBlYWM4MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMjQ4LDYgKzI0OCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGNsZWFyRE9NQ2FjaGVzKCk7CiAgICAgYm9vbCBoYXNET01DYWNoZShXS1N0cmluZ1JlZiBvcmln
aW4pOwogICAgIHVpbnQ2NF90IGRvbUNhY2hlU2l6ZShXS1N0cmluZ1JlZiBvcmlnaW4pOworICAg
IHZvaWQgYWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlKCk7CiAKICAgICB2b2lkIHNldElE
QlBlck9yaWdpblF1b3RhKHVpbnQ2NF90KTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcAppbmRleCAwYzZjODc3ZmYxZGFiNzU1YWRlMjhlOWUyMzRmNDRlNTVmZDk0
YzI3Li4xZDhkN2Q5YmUwNTViNDg2NjJhZDMwZTMzNzA3ZjAyN2FlZWM1ZWI1IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTQyOCw2ICsxNDI4LDExIEBA
IFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJv
bm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQog
CisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJBbGxv
d0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UiKSkgeworICAgICAgICBUZXN0Q29udHJvbGxlcjo6
c2luZ2xldG9uKCkuYWxsb3dDYWNoZVN0b3JhZ2VRdW90YUluY3JlYXNlKCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKG1lc3NhZ2VOYW1lLCAiU2V0SURCUGVyT3JpZ2luUXVvdGEiKSkgewogICAgICAgICBBU1NF
UlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLVUludDY0R2V0VHlwZUlEKCkpOwogICAg
ICAgICBXS1VJbnQ2NFJlZiBxdW90YSA9IHN0YXRpY19jYXN0PFdLVUludDY0UmVmPihtZXNzYWdl
Qm9keSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5u
ZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2Vi
S2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE1YjU1NmJlYmUx
MTgxYzlmZjMxMjcxYzJmMDMzZTMzYTY1YjRlNzMuLmMwOTYxNjUzZTVkZTRjYWM4YmJiMjk5N2M4
Mjk4ZTNhNTc1OTliZjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0
VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04
NCw2ICs4NCw3IEBACiAJCTJFNjNFREE2MTg5MUJEQzAwMDJBN0FGQyAvKiBUZXN0UnVubmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzk5ODE3
MTFEM0Y1MUUwMDE3QkNBMiAvKiBUZXN0UnVubmVyLmNwcCAqLzsgfTsKIAkJMkU3NDlCRjIxODkx
RUJGQTAwN0ZDMTc1IC8qIEV2ZW50U2VuZGVyUHJveHlJT1MubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTYzRUQ3QTE4OTFBQ0U5MDAyQTdBRkMgLyog
RXZlbnRTZW5kZXJQcm94eUlPUy5tbSAqLzsgfTsKIAkJMzFEQThBM0QxRTcyMDVDQzAwRTFERjJG
IC8qIElPU0xheW91dFRlc3RDb21tdW5pY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDhBMDUzMUU2Rjg1QjYwMEQzQjMxNiAvKiBJT1NM
YXlvdXRUZXN0Q29tbXVuaWNhdGlvbi5jcHAgKi87IH07CisJCTQxQzUzNzhFMjFGMTM0MTQwMDhC
MUZBRCAvKiBUZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFDNTM3OEQyMUYxMzMzQzAwOEIxRkFEIC8q
IFRlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUubW0gKi87IH07CiAJCTQ0MzBBRTE5MUY4MkM0
RkQwMDk5OTE1QSAvKiBHZW5lcmF0ZWRUb3VjaGVzRGVidWdXaW5kb3cubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDMwQUUxNzFGODJDNEVFMDA5OTkx
NUEgLyogR2VuZXJhdGVkVG91Y2hlc0RlYnVnV2luZG93Lm1tICovOyB9OwogCQk1MTA1OEFENTFE
Njc4ODIwMDA5QTUzOEMgLyogbGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliIGluIEZyYW1ld29y
a3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyMzBFMTYxMzhDNzhCRjAw
QkNDRkNBIC8qIGxpYldlYkNvcmVUZXN0U3VwcG9ydC5keWxpYiAqLzsgfTsKIAkJNTEwNThBRDYx
RDY3ODgyNTAwOUE1MzhDIC8qIFdlYktpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUxNjlDQTE0NDUyMjJEMDBFMEE5RDcgLyog
V2ViS2l0LmZyYW1ld29yayAqLzsgfTsKQEAgLTI4Niw2ICsyODcsOCBAQAogCQkzNzhENDQyMjEz
MzQ2RDAwMDA2QTc3N0IgLyogY29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNvbmZpZy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTIzMEUxNjEzOEM3OEJGMDBCQ0NGQ0EgLyogbGli
V2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IHBhdGggPSBsaWJXZWJD
b3JlVGVzdFN1cHBvcnQuZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CiAJCTQxODE3MzFCMTM4QUQzOUQwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViQ29yZVRlc3RTdXBwb3J0Lmg7IHBhdGgg
PSBXZWJDb3JlVGVzdFN1cHBvcnQvV2ViQ29yZVRlc3RTdXBwb3J0Lmg7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTQxQzUzNzhDMjFGMTMzM0MwMDhCMUZBRCAvKiBUZXN0
V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFRlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaDsgcGF0aCA9IGNvY29hL1Rlc3RXZWJz
aXRlRGF0YVN0b3JlRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFD
NTM3OEQyMUYxMzMzQzAwOEIxRkFEIC8qIFRlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBUZXN0V2Vic2l0ZURhdGFT
dG9yZURlbGVnYXRlLm1tOyBwYXRoID0gY29jb2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0
ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQyOUZDNUUxNjI3MDg5NjAwRjY2
RDhCIC8qIFdvcmtRdWV1ZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV29ya1F1ZXVlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ0MjlGQzYxMTYyNzA4OTYwMEY2NkQ4QiAvKiBXb3JrUXVldWVNYW5hZ2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtRdWV1ZU1hbmFnZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQzMEFFMTcxRjgyQzRFRTAwOTk5MTVBIC8qIEdlbmVyYXRl
ZFRvdWNoZXNEZWJ1Z1dpbmRvdy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdlbmVyYXRlZFRv
dWNoZXNEZWJ1Z1dpbmRvdy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU2NCw2
ICs1NjcsOCBAQAogCQkJCTJEQ0UyQ0QxMUI4NDUyNDUwMEM3RjgzMiAvKiBUZXN0Q29udHJvbGxl
ckNvY29hLm1tICovLAogCQkJCTBGODdCNjE0MUJBQ0M0QjkwMDRFQzU3MiAvKiBUZXN0UnVubmVy
V0tXZWJWaWV3LmggKi8sCiAJCQkJMEY4N0I2MTUxQkFDQzRCOTAwNEVDNTcyIC8qIFRlc3RSdW5u
ZXJXS1dlYlZpZXcubW0gKi8sCisJCQkJNDFDNTM3OEMyMUYxMzMzQzAwOEIxRkFEIC8qIFRlc3RX
ZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaCAqLywKKwkJCQk0MUM1Mzc4RDIxRjEzMzNDMDA4QjFG
QUQgLyogVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbSAqLywKIAkJCQlGNDYyNDBBRjIx
NzAxMjgzMDA5MTdCMTYgLyogVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0gKi8sCiAJCQkpOwog
CQkJbmFtZSA9IGNvY29hOwpAQCAtMTA5MSw2ICsxMDk2LDcgQEAKIAkJCQlBMTg1MTAzRDFCOUFF
MTA2MDA3NDRBRUIgLyogVGVzdEludm9jYXRpb25DRy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RjYyMkNFOTFCQkIzQTFBMDA4MzhBRDMgLyogVGVzdE9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY4N0I2MTcxQkFDQzRDMDAwNEVDNTcyIC8qIFRlc3RSdW5uZXJXS1dlYlZpZXcubW0g
aW4gU291cmNlcyAqLywKKwkJCQk0MUM1Mzc4RTIxRjEzNDE0MDA4QjFGQUQgLyogVGVzdFdlYnNp
dGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGMThFNkU1MUQ2QjlC
OUUwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYx
OEU2RTYxRDZCOUJBMjAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGNDYyNDBCMTIxNzAxM0U1MDA5MTdCMTYgLyogVUlTY3JpcHRDb250cm9sbGVy
Q29jb2EubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Y29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQppbmRleCAyYzFmNmE2M2M5ZTQ5ZTdjY2U4MWRh
Y2I2MGRkYTJmOGY1YjE4YTgzLi4zNjNhMmM2ZTExNGQ1N2Q4YmFmMTc4MWRmNjFhMTM2NGM1MjBj
MjA5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9s
bGVyQ29jb2EubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJv
bGxlckNvY29hLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJTdHJpbmdGdW5jdGlvbnMu
aCIKICNpbXBvcnQgIlRlc3RJbnZvY2F0aW9uLmgiCiAjaW1wb3J0ICJUZXN0UnVubmVyV0tXZWJW
aWV3LmgiCisjaW1wb3J0ICJUZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmgiCiAjaW1wb3J0
IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFNlY3VyaXR5L1NlY0l0ZW0uaD4K
ICNpbXBvcnQgPFdlYktpdC9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmg+CkBAIC01NSw2ICs1
NiwxMCBAQCBuYW1lc3BhY2UgV1RSIHsKIAogc3RhdGljIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24g
Kmdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uOwogCisjaWYgV0tfQVBJX0VOQUJMRUQKK3N0YXRp
YyBUZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlICpnbG9iYWxXZWJzaXRlRGF0YVN0b3JlRGVs
ZWdhdGVDbGllbnQ7CisjZW5kaWYKKwogdm9pZCBpbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRp
b24oY29uc3QgY2hhciogbGlicmFyeVBhdGgsIFdLU3RyaW5nUmVmIGluamVjdGVkQnVuZGxlUGF0
aCwgV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29udGV4
dENvbmZpZ3VyYXRpb24pCiB7CiAjaWYgV0tfQVBJX0VOQUJMRUQKQEAgLTgwLDYgKzg1LDEyIEBA
IHZvaWQgaW5pdGlhbGl6ZVdlYlZpZXdDb25maWd1cmF0aW9uKGNvbnN0IGNoYXIqIGxpYnJhcnlQ
YXRoLCBXS1N0cmluZ1JlZiBpbmplY3RlCiAgICAgW2dsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9u
LndlYnNpdGVEYXRhU3RvcmUgX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOllFU107
CiAgICAgW2dsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgX3Jlc291
cmNlTG9hZFN0YXRpc3RpY3NTZXRTaG91bGRTdWJtaXRUZWxlbWV0cnk6Tk9dOwogCisjaWYgV0tf
QVBJX0VOQUJMRUQKKyAgICBbZ2xvYmFsV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlQ2xpZW50IHJl
bGVhc2VdOworICAgIGdsb2JhbFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZUNsaWVudCA9IFtbVGVz
dFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZSBhbGxvY10gaW5pdF07CisgICAgW2dsb2JhbFdlYlZp
ZXdDb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgc2V0X2RlbGVnYXRlOmdsb2JhbFdlYnNp
dGVEYXRhU3RvcmVEZWxlZ2F0ZUNsaWVudF07CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCiAgICAgZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24uYWxsb3dzSW5saW5lTWVkaWFQ
bGF5YmFjayA9IFlFUzsKICAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5faW5saW5lTWVk
aWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUgPSBOTzsKQEAgLTI1Miw2ICsy
NjMsOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjb2NvYVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRW
YWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbgogICAgICAgICBpZiAob3B0aW9ucy5zaG91
bGRTaG93U3BlbGxDaGVja2luZ0RvdHMpCiAgICAgICAgICAgICBbcGxhdGZvcm1WaWV3IHRvZ2ds
ZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nOm5pbF07CiAgICAgfQorCisgICAgW2dsb2JhbFdlYnNp
dGVEYXRhU3RvcmVEZWxlZ2F0ZUNsaWVudCBzZXRBbGxvd1JhaXNpbmdRdW90YTogZmFsc2VdOwog
I2VuZGlmCiB9CiAKQEAgLTM4NSw0ICszOTgsMTEgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6a2V5
RXhpc3RzSW5LZXljaGFpbihjb25zdCBTdHJpbmcmIGF0dHJMYWJlbCwgY29uc3QgU3RyaW5nJgog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6YWxsb3dDYWNoZVN0
b3JhZ2VRdW90YUluY3JlYXNlKCkKK3sKKyNpZiBXS19BUElfRU5BQkxFRAorICAgIFtnbG9iYWxX
ZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGVDbGllbnQgc2V0QWxsb3dSYWlzaW5nUXVvdGE6IHRydWVd
OworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmggYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lNGZhODFlMTM2OTBiMTUwNGQxNmMyMWE1ZTVmMTI5ZTQ1MjU2Y2I4Ci0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURh
dGFTdG9yZURlbGVnYXRlLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSA8V2ViS2l0L19XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oPgor
CisjaWYgV0tfQVBJX0VOQUJMRUQKKworQGludGVyZmFjZSBUZXN0V2Vic2l0ZURhdGFTdG9yZURl
bGVnYXRlOiBOU09iamVjdCA8X1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlPiB7CitAcHJpdmF0
ZQorICAgIEJPT0wgX3Nob3VsZEFsbG93UmFpc2luZ1F1b3RhOworfQorLSAoaW5zdGFuY2V0eXBl
KWluaXQ7CistICh2b2lkKXNldEFsbG93UmFpc2luZ1F1b3RhOihCT09MKXNob3VsZEFsbG93UmFp
c2luZ1F1b3RhOworQGVuZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvY29jb2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbSBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvY29jb2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hNDU1Yjc3M2I4ZWE0ODljMzdkZGYzODYwMTUwYTA5YmU1YzA4NTU5Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9y
ZURlbGVnYXRlLm1tCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIlRlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaCIKKworI2lmIFdL
X0FQSV9FTkFCTEVECisKK0BpbXBsZW1lbnRhdGlvbiBUZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVn
YXRlIHsgfQorLSAoaW5zdGFuY2V0eXBlKWluaXQKK3sKKyAgICBfc2hvdWxkQWxsb3dSYWlzaW5n
UXVvdGEgPSBmYWxzZTsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClyZXF1ZXN0Q2Fj
aGVTdG9yYWdlU3BhY2U6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lT3JpZ2luOihOU1VSTCAq
KWZyYW1lVVJMIHF1b3RhOihOU1VJbnRlZ2VyKXF1b3RhIGN1cnJlbnRTaXplOihOU1VJbnRlZ2Vy
KWN1cnJlbnRTaXplIHNwYWNlUmVxdWlyZWQ6KE5TVUludGVnZXIpc3BhY2VSZXF1aXJlZCBkZWNp
c2lvbkhhbmRsZXI6KHZvaWQgKF4pKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkpZGVjaXNpb25I
YW5kbGVyCit7CisgICAgZGVjaXNpb25IYW5kbGVyKF9zaG91bGRBbGxvd1JhaXNpbmdRdW90YSA/
IDIgKiBxdW90YSA6IHF1b3RhKTsKK30KKworLSAodm9pZClzZXRBbGxvd1JhaXNpbmdRdW90YToo
Qk9PTClzaG91bGRBbGxvd1JhaXNpbmdRdW90YQoreworICAgIF9zaG91bGRBbGxvd1JhaXNpbmdR
dW90YSA9IHNob3VsZEFsbG93UmFpc2luZ1F1b3RhOworfQorQGVuZAorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBlODU2MjU0ZjZiNTAwNTUwNWY4YTFkZDNjM2M5NjFlODc5MDFkN2MxLi45YjIwNzhlOGYxYWI3
ZDMzMjk3YjVjZjRkNmRmZjc2MmRlYjQxN2VlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTkt
MDEtMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBh
IG5ldyBTUEkgdG8gcmVxdWVzdCBmb3IgY2FjaGUgc3RvcmFnZSBxdW90YSBpbmNyZWFzZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMzIzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBVc2UgbmV3IHRl
c3RSdW5uZXIgbWV0aG9kIHRvIGJ1bXAgdGhlIGNhY2hlIHF1b3RhIGFuZCB2ZXJpZnkgYWRkaW5n
IGEKKyAgICAgICAgY2FjaGUgZW50cnkgd29ya3Mgd2hlbiBidW1waW5nIHRoZSBjYWNoZSBxdW90
YS4KKworICAgICAgICAqIGh0dHAvd3B0L2NhY2hlLXN0b3JhZ2UvY2FjaGUtcXVvdGEuYW55Lmpz
OgorICAgICAgICAocHJvbWlzZV90ZXN0KToKKwogMjAxOS0wMS0xNiAgQWxpY2lhIEJveWEgR2Fy
Y8OtYSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBHVEsgYW5kIFdQ
RSB0ZXN0IGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2NhY2hl
LXN0b3JhZ2UvY2FjaGUtcXVvdGEuYW55LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY2FjaGUt
c3RvcmFnZS9jYWNoZS1xdW90YS5hbnkuanMKaW5kZXggNWE5NGQ1Yjc4ZjNiNjM5Y2E3MGRjYmYx
M2ZmMjg4YTVkYjJlMjM5My4uZjc5ZDMyODUwY2M1MzM3ZGEzZTc3NjlmZmU1YTBhMmIyMmM2NDAx
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY2FjaGUtc3RvcmFnZS9jYWNoZS1x
dW90YS5hbnkuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY2FjaGUtc3RvcmFnZS9jYWNo
ZS1xdW90YS5hbnkuanMKQEAgLTExNCw3ICsxMTQsNyBAQCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+
IHsKICAgICAgICAgcmV0dXJuIGNhY2hlLnB1dCgiMWtvLXYyIiwgcmVzcG9uc2Uxa28uY2xvbmUo
KSkudGhlbihhc3NlcnRfdW5yZWFjaGVkLCAoZSkgPT4gewogICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLm5hbWUsICJRdW90YUV4Y2VlZGVkRXJyb3IiKTsKICAgICAgICAgfSk7Ci0gICB9KS50
aGVuKCgpID0+IHsKKyAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgcmV0dXJuIGNhY2hlLmRl
bGV0ZSgiMWtvLXYxIik7CiAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgIHJldHVybiBjYWNo
ZS5wdXQoIjFrby12MiIsIHJlc3BvbnNlMWtvLmNsb25lKCkpOwpAQCAtMTUxLDcgKzE1MSwxMCBA
QCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICAgICAgcmV0dXJuIGNhY2hlLnB1dCgiMWtv
IiwgcmVzcG9uc2Uxa28uY2xvbmUoKSkudGhlbihhc3NlcnRfdW5yZWFjaGVkLCAoZSkgPT4gewog
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5hbWUsICJRdW90YUV4Y2VlZGVkRXJyb3IiKTsK
ICAgICAgICAgfSk7Ci0gICB9KS50aGVuKCgpID0+IHsKKyAgICB9KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5hbGxvd0NhY2hlU3RvcmFnZVF1b3RhSW5jcmVhc2UoKTsKKyAgICAg
ICAgcmV0dXJuIGNhY2hlLnB1dCgiMWtvIiwgcmVzcG9uc2Uxa28uY2xvbmUoKSk7CisgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgIHJldHVybiBjYWNoZS5kZWxldGUoIjFrby1wYWRkZWQtdG8t
MjAwa28iKTsKICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgcmV0dXJuIGNhY2hlLnB1dCgi
MWtvLXYyIiwgcmVzcG9uc2Uxa28uY2xvbmUoKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>