<?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>192793</bug_id>
          
          <creation_ts>2018-12-17 18:55:28 -0800</creation_ts>
          <short_desc>Add a new SPI for controlling getUserMedia</short_desc>
          <delta_ts>2019-01-16 17:19:47 -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>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1488726</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-12-17 18:55:28 -0800</bug_when>
    <thetext>Add a new SPI for controlling getUserMedia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488953</commentid>
    <comment_count>1</comment_count>
      <attachid>357581</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-12-18 11:01:25 -0800</bug_when>
    <thetext>Created attachment 357581
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488980</commentid>
    <comment_count>2</comment_count>
      <attachid>357590</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-12-18 11:39:55 -0800</bug_when>
    <thetext>Created attachment 357590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489038</commentid>
    <comment_count>3</comment_count>
      <attachid>357605</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-12-18 13:40:18 -0800</bug_when>
    <thetext>Created attachment 357605
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489151</commentid>
    <comment_count>4</comment_count>
      <attachid>357639</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-12-18 17:28:34 -0800</bug_when>
    <thetext>Created attachment 357639
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489418</commentid>
    <comment_count>5</comment_count>
      <attachid>357639</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-12-19 13:02:03 -0800</bug_when>
    <thetext>Comment on attachment 357639
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/UIDelegate.mm:862
&gt;      auto decisionHandler = makeBlockPtr([protectedRequest = makeRef(request)](BOOL authorized) {

This needs a CompletionHandlerCallChecker

&gt; Source/WebKit/UIProcess/Cocoa/UIDelegate.mm:996
&gt; +        auto decisionHandler = makeBlockPtr([protectedRequest = makeRef(request)](BOOL authorized) {

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489429</commentid>
    <comment_count>6</comment_count>
      <attachid>357639</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-12-19 13:14:16 -0800</bug_when>
    <thetext>Comment on attachment 357639
Patch

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

&gt; Source/WebKit/ChangeLog:16
&gt; +        Did some refactoring by making the callbacks not returning false.

Nit: s/not returning false/not return bool/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489500</commentid>
    <comment_count>7</comment_count>
      <attachid>357729</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-12-19 14:52:48 -0800</bug_when>
    <thetext>Created attachment 357729
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489553</commentid>
    <comment_count>8</comment_count>
      <attachid>357745</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-12-19 16:00:37 -0800</bug_when>
    <thetext>Created attachment 357745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490084</commentid>
    <comment_count>9</comment_count>
      <attachid>357873</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-12-20 14:42:34 -0800</bug_when>
    <thetext>Created attachment 357873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490116</commentid>
    <comment_count>10</comment_count>
      <attachid>357885</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-12-20 15:54:09 -0800</bug_when>
    <thetext>Created attachment 357885
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492737</commentid>
    <comment_count>11</comment_count>
      <attachid>358631</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-08 13:33:37 -0800</bug_when>
    <thetext>Created attachment 358631
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492770</commentid>
    <comment_count>12</comment_count>
      <attachid>358631</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-08 14:52:59 -0800</bug_when>
    <thetext>Comment on attachment 358631
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h:111
&gt; +- (void)_webView:(WKWebView *)webView requestMediaCaptureAuthorization:(_WKCaptureDevices)devices decisionHandler:(void (^)(BOOL authorized))decisionHandler WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
&gt; +- (void)_webView:(WKWebView *)webView isMediaCaptureAuthorized:(void (^)(_WKCaptureDevices authorizedDevices))decisionHandler WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));

I don&apos;t think it is a good design to have two callbacks that are this similar asking a very similar question.  It requires app developers to know lots of details about the implementation and set up a finite state machine in a certain way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492778</commentid>
    <comment_count>13</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-08 15:23:10 -0800</bug_when>
    <thetext>We discussed this, and I think it would be much more clear if one callback indicated it was for getUserMedia and one callback was for enumerateDevices.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492784</commentid>
    <comment_count>14</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-08 15:51:03 -0800</bug_when>
    <thetext>Yes, we can improve the name of the second callback to tie it more to enumerateDevices.
Something like canExposeMediaCaptureDeviceInformation for instance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492792</commentid>
    <comment_count>15</comment_count>
      <attachid>358647</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-08 16:06:21 -0800</bug_when>
    <thetext>Created attachment 358647
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492793</commentid>
    <comment_count>16</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-08 16:07:16 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #15)
&gt; Created attachment 358647 [details]
&gt; Patch

I went with the following name: queryExposableMediaCaptureDeviceInformation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493222</commentid>
    <comment_count>17</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-01-09 23:03:24 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #12)
&gt; Comment on attachment 358631 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=358631&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h:111
&gt; &gt; +- (void)_webView:(WKWebView *)webView requestMediaCaptureAuthorization:(_WKCaptureDevices)devices decisionHandler:(void (^)(BOOL authorized))decisionHandler WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
&gt; &gt; +- (void)_webView:(WKWebView *)webView isMediaCaptureAuthorized:(void (^)(_WKCaptureDevices authorizedDevices))decisionHandler WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
&gt; 
&gt; I don&apos;t think it is a good design to have two callbacks that are this
&gt; similar asking a very similar question.  

I don&apos;t agree that the questions are all that similar. One says:

    Ask the user to see if the page can access data from the
    camera/microphone right now

the other says: 

    Has this user given permission to access camera/microphone
    without a prompt at some time in the future?


&gt; It requires app developers to know lots of details about the 
&gt; implementation and set up a finite state machine in a certain way.

I don&apos;t understand this, why does the app need a FSM? In the first case the app prompts the user, and in the second case it checks for a stored setting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493223</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-01-09 23:10:13 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #13)
&gt; We discussed this, and I think it would be much more clear if one callback
&gt; indicated it was for getUserMedia and one callback was for enumerateDevices.

One callback is not just for enumerateDevices.


(In reply to youenn fablet from comment #16)
&gt; (In reply to youenn fablet from comment #15)
&gt; &gt; Created attachment 358647 [details]
&gt; &gt; Patch
&gt; 
&gt; I went with the following name: queryExposableMediaCaptureDeviceInformation

I agree that the original name can be improved, but I don&apos;t think this name is right either. This callback is not just asking about what should be exposed by enumerateDevices, it is asking if the user has given permission to access camera/microphone without a prompt. We may *also* use this to expose device IDs etc before gUM has been called, but it is not the only use of the information provided by this callback.

How about -[_webView:hasPermissionToCaptureWithoutUserPrompt:]?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493305</commentid>
    <comment_count>19</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-10 08:22:54 -0800</bug_when>
    <thetext>&gt; I agree that the original name can be improved, but I don&apos;t think this name
&gt; is right either. This callback is not just asking about what should be
&gt; exposed by enumerateDevices, it is asking if the user has given permission
&gt; to access camera/microphone without a prompt. We may *also* use this to
&gt; expose device IDs etc before gUM has been called, but it is not the only use
&gt; of the information provided by this callback.
&gt; 
&gt; How about -[_webView:hasPermissionToCaptureWithoutUserPrompt:]?

Currently, we are only using the second callback to control enumerateDevices.
A callback dedicated to enumerateDevices has some benefits:
- This offers the flexibility so that one can implement Chrome, Firefox or Safari enumerateDevices  behavior
- This makes it clear to developers which callback they should implement to allow/disallow getUserMedia. Otherwise, developers might implement &quot;hasPermissionToCaptureWithoutUserPrompt&quot;, return yes, and getUserMedia call will still fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495191</commentid>
    <comment_count>20</comment_count>
      <attachid>359296</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-16 13:16:03 -0800</bug_when>
    <thetext>Created attachment 359296
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495226</commentid>
    <comment_count>21</comment_count>
      <attachid>359296</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-01-16 14:13:06 -0800</bug_when>
    <thetext>Comment on attachment 359296
Patch

r=me with the completion handler change we discussed in person.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495252</commentid>
    <comment_count>22</comment_count>
      <attachid>359314</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-16 14:54:38 -0800</bug_when>
    <thetext>Created attachment 359314
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495274</commentid>
    <comment_count>23</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-16 15:21:56 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #21)
&gt; Comment on attachment 359296 [details]
&gt; Patch
&gt; 
&gt; r=me with the completion handler change we discussed in person.

Thanks for the review.
Yes, I updated the default implementation accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495292</commentid>
    <comment_count>24</comment_count>
      <attachid>359314</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-16 15:51:17 -0800</bug_when>
    <thetext>Comment on attachment 359314
Patch for landing

Rejecting attachment 359314 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 359314, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WebKit/ChangeLog contains OOPS!.

Full output: https://webkit-queues.webkit.org/results/10777103</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495304</commentid>
    <comment_count>25</comment_count>
      <attachid>359331</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-16 16:06:45 -0800</bug_when>
    <thetext>Created attachment 359331
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495347</commentid>
    <comment_count>26</comment_count>
      <attachid>359331</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-16 17:18:11 -0800</bug_when>
    <thetext>Comment on attachment 359331
Patch for landing

Clearing flags on attachment: 359331

Committed r240100: &lt;https://trac.webkit.org/changeset/240100&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495348</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-16 17:18:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495349</commentid>
    <comment_count>28</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-16 17:19:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/47335825&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357581</attachid>
            <date>2018-12-18 11:01:25 -0800</date>
            <delta_ts>2018-12-18 11:39:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192793-20181218110125.patch</filename>
            <type>text/plain</type>
            <size>44824</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MjgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNjOWM0YWI0ZmE0YzdkY2E0
NTY5NjJiZmYyNTkxZjRjMDgyZDMxN2IuLjM2N2NhMzQxODk0ZjRjNjUyNGFhODJkOTBjOWJmZmI5
Yjc2ZmIxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTgtMTItMTcgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgZm9yIGNv
bnRyb2xsaW5nIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyNzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU29tZSB3ZWFrbmVzc2VzIG9mIHRoZSBjdXJyZW50IGdldFVzZXJNZWRp
YSBTUEkgd2VyZSBmb3VuZC4KKyAgICAgICAgSW4gcGFydGljdWxhcjoKKyAgICAgICAgLSBUaGUg
aGFzaCBzYWx0IHNob3VsZCBiZSBoYW5kbGVkIGJ5IFdlYktpdAorICAgICAgICAtIE5vIG5lZWQg
dG8gZXhwb3NlIHRoZSBmcmFtZSBVUkwsIG9ubHkgdGhlIHRvcCBsZXZlbCBvcmlnaW4gaXMgbmVl
ZGVkCisgICAgICAgIC0gVGhlIG5hbWVzIG9mIHRoZSBjYWxsYmFjayBjYW4gYmUgaW1wcm92ZWQu
CisgICAgICAgIEFkZHJlc3NlZCB0aGVzZSBieSBjcmVhdGluZyBhIG5ldyBTUEkgd2hpY2ggd2ls
bCByZXBsYWNlIHRoZSBjdXJyZW50IG9uZS4KKyAgICAgICAgVGhlIGN1cnJlbnQgU1BJIHdpbGwg
YmUgcmVtb3ZlZCBsYXRlciBvbi4KKworICAgICAgICBEaWQgc29tZSByZWZhY3RvcmluZyBieSBt
YWtpbmcgdGhlIGNhbGxiYWNrcyBub3QgcmV0dXJuaW5nIGZhbHNlLgorICAgICAgICBJbnN0ZWFk
LCBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgYmVoYXZpb3IgaW5zaWRlIHRoZSByZXF1ZXN0IG9iamVj
dHMgYXMgZGVueSBtZXRob2RzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVu
dC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfbWVkaWFDYXB0dXJl
U3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRNZWRpYUNhcHR1cmVNdXRlZDpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxl
Z2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OnJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9y
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9s
aWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVSURl
bGVnYXRlOjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAg
ICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlk
Q2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJv
eHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OmRl
bnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVz
ZXJNZWRpYVBlcm1pc3Npb25JbmZvKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5oOgorCiAyMDE4LTEyLTE3ICBaYW4gRG9iZXJzZWsgIDx6ZG9i
ZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIFdQRSBidWlsZCBmaXggYWZ0
ZXIgcjIzOTI3Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBi
L1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBmMWEwNTdhNDVkYjBmYTM1Y2Ux
MGRjZjQxOTY5M2VmZTgxOGE2ZGEzLi5lYjY5YTUzZDIyNzIwNDI5ZmE4NzlmZmJlNTNkZjg3ODU1
OGM1YzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0zMTksNiArMzE5LDcgQEAgVUlQcm9j
ZXNzL0NvY29hL0ZpbmRDbGllbnQubW0KIFVJUHJvY2Vzcy9Db2NvYS9GdWxsc2NyZWVuQ2xpZW50
Lm1tCiBVSVByb2Nlc3MvQ29jb2EvSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbQogVUlQcm9jZXNzL0Nv
Y29hL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5tbQorVUlQcm9jZXNzL0NvY29h
L01lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbQogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0
ZS5tbQogVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EubW0KIFVJUHJvY2Vzcy9D
b2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggNDNmZjc2M2I5MDQ4Y2M0MGE5NjdkOTQ1NmJiZTAz
YWNiYjk1MDI3Yy4uMDNkMTIzMDBkMTcxNjlmNDdjODFkYzI2MDFhNmE0MDcxN2Q3MGFhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTEyOSw4ICsxMjks
OCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgcnVuT3BlblBhbmVsKFdlYktpdDo6V2Vi
UGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiwgT3BlblBhbmVsUGFyYW1ldGVycyosIFdlYktpdDo6V2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXJQcm94eSopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lk
IGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQ
YWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIEZ1bmN0
aW9uPHZvaWQoYm9vbCk+JikgeyB9Ci0gICAgdmlydHVhbCBib29sIGRlY2lkZVBvbGljeUZvclVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpX
ZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAg
dmlydHVhbCBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgU2Vj
dXJpdHlPcmlnaW4mLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JikgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1l
UHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIFNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGNoZWNrVXNl
ck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6
V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgU2VjdXJpdHlPcmlnaW4mLCBXZWJLaXQ6
OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRl
Y2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFn
ZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQogICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJL
aXQ6OldlYkZyYW1lUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYgcmVxdWVzdGluZ0RvbWFpbiwg
Y29uc3QgV1RGOjpTdHJpbmcmIGN1cnJlbnREb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggMmNlMzhiYmY3
ODk3MzhkYzVhNDFlODM1MDg4MGZhYmE5NzhlYzY0Mi4uYmQxZWZjYWM2ZjgyNTRhYzVmOGYyNGNj
MGIwMzliMGMwODg4Yjc3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwCkBAIC0xODU1LDIyICsxODU1LDI0IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdL
UGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAgICAg
ICAgICAgICBtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0KHRvQVBJKCZwYWdlKSwgdG9BUEkoJmZyYW1lKSwgdG9BUEkoJm9yaWdpbiksIHRvQVBJKEdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZShzdGQ6OmV4Y2hhbmdlKGNvbXBsZXRp
b25IYW5kbGVyLCBudWxscHRyKSkucHRyKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwog
ICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6
OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgQVBJOjpTZWN1cml0eU9y
aWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eSYgcGVybWlzc2lvblJlcXVlc3QpIGZpbmFsCisgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFt
ZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5hbAogICAgICAg
ICB7Ci0gICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0KQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
ICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QpIHsKKyAgICAgICAgICAgICAgICBwZXJtaXNzaW9uUmVxdWVzdC5kZW55KCk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBtX2NsaWVudC5k
ZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCh0b0FQSSgmcGFnZSksIHRv
QVBJKCZmcmFtZSksIHRvQVBJKCZ1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIHRvQVBJKCZ0b3BM
ZXZlbERvY3VtZW50T3JpZ2luKSwgdG9BUEkoJnBlcm1pc3Npb25SZXF1ZXN0KSwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAK
LSAgICAgICAgYm9vbCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVBy
b3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1l
bnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KSBmaW5hbAor
ICAgICAgICB2b2lkIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJv
eHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIHJlcXVlc3QpIGZpbmFsCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIGlmICghbV9jbGllbnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNz
aW9uRm9yT3JpZ2luKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg
IGlmICghbV9jbGllbnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKSB7CisgICAg
ICAgICAgICAgICAgcmVxdWVzdC5kZW55KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICBtX2NsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25Gb3JPcmlnaW4odG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b0FQSSgmdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4pLCB0b0FQSSgmdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIHRvQVBJKCZy
ZXF1ZXN0KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLSAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1
cml0eU9yaWdpbiYgb3JpZ2luLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKSBmaW5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggNDZjOTUxN2FmMGVmYWViNDZhYzkyYTQ4Zjgy
ZGU1YThhOWY1NTAwMi4uYjlhOTI5MTE0MWJmMGZiNmQ2ZmNmZTExYjk3NzkyOTFiZDQyMTBlNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0
ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURl
bGVnYXRlUHJpdmF0ZS5oCkBAIC0xMDUsNiArMTA1LDggQEAgc3RydWN0IFVJRWRnZUluc2V0czsK
IAogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBpbWFnZU9yTWVkaWFEb2N1
bWVudFNpemVDaGFuZ2VkOihDR1NpemUpc2l6ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MiksIGlvcygxMC4wKSk7CiAtIChOU0RpY3Rpb25hcnkgKilfZGF0YURldGVjdGlvbkNvbnRleHRG
b3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEyKSwgaW9zKDEwLjApKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTooV0tGcmFtZUluZm8gKilt
YWluRnJhbWUgZGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRs
ZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBpc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFt
ZTooV0tGcmFtZUluZm8gKiltYWluRnJhbWUgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09M
IGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0
dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAq
KW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkp
ZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjAp
KTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZy
YW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSlkZWNp
c2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMyksIGlvcygxMC4zKSk7
CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRl
RGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMyksIGlvcygxMS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBiYTIwNDhlYWJhYWI2OGNkNzMzODI1YzY0ZjhiOTIw
ZmFiOTY0NDFlLi5kYjM0ZGQxNTcyNzBhMDFkYmQyYjkyY2Q5MTg1MDhiZmUyMWY3MGIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQw
LDYgKzQwLDcgQEAKICNpbXBvcnQgIkljb25Mb2FkaW5nRGVsZWdhdGUuaCIKICNpbXBvcnQgIkxl
Z2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAi
TWVkaWFDYXB0dXJlVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJOYXZpZ2F0aW9uU3RhdGUuaCIKICNp
bXBvcnQgIk9iakNPYmplY3RHcmFwaC5oIgogI2ltcG9ydCAiUGFnZUNsaWVudC5oIgpAQCAtNTQz
OCw2ICs1NDM5LDE2IEBAIC0gKEJPT0wpX2lzSW5GdWxsc2NyZWVuCiAjZW5kaWYKIH0KIAorLSAo
X1dLTWVkaWFDYXB0dXJlU3RhdGUpX21lZGlhQ2FwdHVyZVN0YXRlCit7CisgICAgcmV0dXJuIFdl
YktpdDo6dG9XS01lZGlhQ2FwdHVyZVN0YXRlKF9wYWdlLT5tZWRpYVN0YXRlRmxhZ3MoKSk7Cit9
CisKKy0gKHZvaWQpX3NldE1lZGlhQ2FwdHVyZU11dGVkOihCT09MKW11dGVkCit7CisgICAgX3Bh
Z2UtPnNldE1lZGlhU3RyZWFtQ2FwdHVyZU11dGVkKG11dGVkKTsKK30KKwogLSAodm9pZClfbXV0
ZU1lZGlhQ2FwdHVyZQogewogICAgIF9wYWdlLT5zZXRNZWRpYVN0cmVhbUNhcHR1cmVNdXRlZCh0
cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZS5oCmluZGV4IDE3MGMyYWFlZmExNTBiNDFmOTk2Y2NlNDY4Y2UzMjc3OWJhZDZm
OGYuLmZhMWM4ZDQ0OWFlNmE4YjNiZDJmYjE1N2Y4ODllY2Y4YTQzYWI5YWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApA
QCAtMzkwLDYgKzM5MCw5IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0
RWRnZSkgewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RnVsbHNjcmVlbkRlbGVn
YXRlOikgaWQ8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiBfZnVsbHNjcmVlbkRlbGVnYXRlIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgQk9PTCBfaXNJbkZ1bGxzY3JlZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTIuMykpOwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS01lZGlh
Q2FwdHVyZVN0YXRlIF9tZWRpYUNhcHR1cmVTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKworLSAodm9pZClfc2V0TWVkaWFDYXB0dXJl
TXV0ZWQ6KEJPT0wpbXV0ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9tdXRlTWVkaWFDYXB0dXJlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKIC0gKHZvaWQpX3NldFBhZ2VNdXRlZDooX1dL
TWVkaWFNdXRlZFN0YXRlKW11dGVkU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMp
LCBpb3MoMTEuMCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
LmgKaW5kZXggMzhkZDdlY2JjZmI1ZjJhNjBmYzg2Yzk4YmU4YjBmMzFhODU0ZmY4Ni4uOGZkMTZh
OTgxMmMwNGFkZjA4NWU1NDRhZWUzODA0YzgyMmQ1ZjE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaApAQCAtMTIzLDggKzEyMyw4IEBAIHByaXZhdGU6CiAj
ZW5kaWYKICAgICAgICAgYm9vbCBuZWVkc0ZvbnRBdHRyaWJ1dGVzKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRDaGFuZ2VGb250
QXR0cmlidXRlczsgfQogICAgICAgICB2b2lkIGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0
IFdlYkNvcmU6OkZvbnRBdHRyaWJ1dGVzJikgZmluYWw7Ci0gICAgICAgIGJvb2wgZGVjaWRlUG9s
aWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQ
cm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpIGZpbmFsOwotICAgICAgICBib29sIGNoZWNrVXNl
ck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5Jiwg
QVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJt
aXNzaW9uQ2hlY2tQcm94eSYpIGZpbmFsOworICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBB
UEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkmKSBmaW5hbDsKKyAgICAgICAgdm9pZCBjaGVja1VzZXJNZWRpYVBl
cm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2Vj
dXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvbkNo
ZWNrUHJveHkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5n
ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOwogICAgICAg
ICB2b2lkIHByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYpIGZpbmFsOwog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xOTgsOCArMTk4LDggQEAgcHJpdmF0ZToKICAg
ICAgICAgYm9vbCB3ZWJWaWV3RnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lIDogMTsKICAgICAg
ICAgYm9vbCB3ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuIDogMTsKICAgICAgICAgYm9vbCB3ZWJW
aWV3RGlkRXhpdEZ1bGxzY3JlZW4gOiAxOwotICAgICAgICBib29sIHdlYlZpZXdSZXF1ZXN0VXNl
ck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXNVUkxNYWluRnJhbWVVUkxEZWNpc2lvbkhhbmRs
ZXIgOiAxOwotICAgICAgICBib29sIHdlYlZpZXdDaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JV
UkxNYWluRnJhbWVVUkxGcmFtZUlkZW50aWZpZXJEZWNpc2lvbkhhbmRsZXIgOiAxOworICAgICAg
ICBib29sIHdlYlZpZXdSZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lRGVj
aXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3SXNNZWRpYUNhcHR1cmVBdXRo
b3JpemVkRm9yRnJhbWVEZWNpc2lvbkhhbmRsZXIgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdN
ZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZENo
YW5nZUZvbnRBdHRyaWJ1dGVzIDogMTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggY2U4NGE4ODg0Nzg5
NzM1ZDFhMTMyYjFlYjZlYTZkZTI4MDNhNzg2ZC4uNzZkYTE1MmVkMGQ1NTBhNjIwNjlmYjA3Njhk
MThmMDk1YmFmNTU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJBUElGcmFtZUluZm8uaCIKICNpbXBv
cnQgIkFQSUhpdFRlc3RSZXN1bHQuaCIKICNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVyQ2FsbENo
ZWNrZXIuaCIKKyNpbXBvcnQgIk1lZGlhQ2FwdHVyZVV0aWxpdGllcy5oIgogI2ltcG9ydCAiTmF0
aXZlV2ViV2hlZWxFdmVudC5oIgogI2ltcG9ydCAiTmF2aWdhdGlvbkFjdGlvbkRhdGEuaCIKICNp
bXBvcnQgIlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgiCkBAIC0xNTAsOCArMTUxLDkg
QEAgdm9pZCBVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURlbGVnYXRlPiBkZWxlZ2F0
ZSkKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkTm90SGFuZGxlVGFwQXNDbGlja0F0
UG9pbnQgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpk
aWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludDopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5w
cmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3ByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6KV07
CiAjZW5kaWYKLSAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdFVzZXJNZWRpYUF1
dGhvcml6YXRpb25Gb3JEZXZpY2VzVVJMTWFpbkZyYW1lVVJMRGVjaXNpb25IYW5kbGVyID0gW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdFVzZXJN
ZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOnVybDptYWluRnJhbWVVUkw6ZGVjaXNpb25IYW5k
bGVyOildOwotICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdDaGVja1VzZXJNZWRpYVBlcm1p
c3Npb25Gb3JVUkxNYWluRnJhbWVVUkxGcmFtZUlkZW50aWZpZXJEZWNpc2lvbkhhbmRsZXIgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpjaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JVUkw6bWFpbkZyYW1lVVJMOmZyYW1lSWRlbnRpZmllcjpkZWNpc2lv
bkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RNZWRpYUNh
cHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWVEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9y
aXphdGlvbkZvckRldmljZXM6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6KV0gfHwg
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdE1l
ZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjop
XTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3SXNNZWRpYUNhcHR1cmVBdXRob3JpemVk
Rm9yRnJhbWVEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcihfd2ViVmlldzpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6bWFpbkZyYW1l
VVJMOmZyYW1lSWRlbnRpZmllcjpkZWNpc2lvbkhhbmRsZXI6KV0gfHwgW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6aXNNZWRpYUNhcHR1cmVBdXRob3JpemVk
Rm9yRnJhbWU6ZGVjaXNpb25IYW5kbGVyOildOworCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld01lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KV07CiAg
ICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1dGVzID0gW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkQ2hhbmdlRm9u
dEF0dHJpYnV0ZXM6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuZGF0YURldGVjdGlvbkNvbnRl
eHRGb3JXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX2Rh
dGFEZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmlldzopXTsKQEAgLTg1NSw3ICs4NTcsNyBAQCBib29s
IFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJh
bWVQcm94eSogd2ViRnJhbWVQcgogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQot
c3RhdGljIHZvaWQgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzKGNvbnN0
IFdlYkZyYW1lUHJveHkmIGZyYW1lLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiBy
ZXF1ZXN0LCBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gZGVsZWdhdGUsIFdLV2ViVmlldyYgd2Vi
VmlldykKK3N0YXRpYyB2b2lkIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWUo
Y29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVs
T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0LCBpZCA8V0tV
SURlbGVnYXRlUHJpdmF0ZT4gZGVsZWdhdGUsIFdLV2ViVmlldyYgd2ViVmlldykKIHsKICAgICBh
dXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbcHJvdGVjdGVkUmVxdWVzdCA9IG1h
a2VSZWYocmVxdWVzdCldKEJPT0wgYXV0aG9yaXplZCkgewogICAgICAgICBpZiAoIWF1dGhvcml6
ZWQpIHsKQEAgLTg2NywxMCArODY5LDYgQEAgc3RhdGljIHZvaWQgcmVxdWVzdFVzZXJNZWRpYUF1
dGhvcml6YXRpb25Gb3JEZXZpY2VzKGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLAogICAgICAg
ICBwcm90ZWN0ZWRSZXF1ZXN0LT5hbGxvdyhhdWRpb0RldmljZVVJRCwgdmlkZW9EZXZpY2VVSUQp
OwogICAgIH0pOwogCi0gICAgY29uc3QgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lID0gZnJhbWUu
cGFnZSgpLT5tYWluRnJhbWUoKTsKLSAgICBVUkwgcmVxdWVzdEZyYW1lVVJMKFVSTCgpLCBmcmFt
ZS51cmwoKSk7Ci0gICAgVVJMIG1haW5GcmFtZVVSTChVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSk7
Ci0KICAgICBfV0tDYXB0dXJlRGV2aWNlcyBkZXZpY2VzID0gMDsKICAgICBpZiAocmVxdWVzdC5y
ZXF1aXJlc0F1ZGlvQ2FwdHVyZSgpKQogICAgICAgICBkZXZpY2VzIHw9IF9XS0NhcHR1cmVEZXZp
Y2VNaWNyb3Bob25lOwpAQCAtODgxLDggKzg3OSwxOSBAQCBzdGF0aWMgdm9pZCByZXF1ZXN0VXNl
ck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUs
CiAgICAgICAgIEFTU0VSVCghKGRldmljZXMgJiBfV0tDYXB0dXJlRGV2aWNlQ2FtZXJhKSk7CiAg
ICAgfQogCi0gICAgYXV0byBwcm90ZWN0ZWRXZWJWaWV3ID0gUmV0YWluUHRyPFdLV2ViVmlldz4o
JndlYlZpZXcpOwotICAgIFtkZWxlZ2F0ZSBfd2ViVmlldzpwcm90ZWN0ZWRXZWJWaWV3LmdldCgp
IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczpkZXZpY2VzIHVybDpyZXF1
ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6ZGVj
aXNpb25IYW5kbGVyLmdldCgpXTsKKyAgICBjb25zdCBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUg
PSBmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgpOworCisgICAgLy8gRklYTUU6IFByb3ZpZGUgYSBz
cGVjaWZpYyBkZWxlZ2F0ZSBmb3IgZGlzcGxheSBjYXB0dXJlLgorICAgIGlmICghcmVxdWVzdC5y
ZXF1aXJlc0Rpc3BsYXlDYXB0dXJlKCkgJiYgW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFt
ZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjopXSkgeworCisgICAgICAgIFtkZWxlZ2F0ZSBfd2Vi
Vmlldzomd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOndy
YXBwZXIoQVBJOjpGcmFtZUluZm86OmNyZWF0ZSgqbWFpbkZyYW1lLCB0b3BMZXZlbE9yaWdpbi5z
ZWN1cml0eU9yaWdpbigpKSkgZGV2aWNlczpkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lv
bkhhbmRsZXIuZ2V0KCldOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgVVJMIHJlcXVl
c3RGcmFtZVVSTChVUkwoKSwgZnJhbWUudXJsKCkpOworICAgIFVSTCBtYWluRnJhbWVVUkwoVVJM
KCksIG1haW5GcmFtZS0+dXJsKCkpOworCisgICAgW2RlbGVnYXRlIF93ZWJWaWV3OiZ3ZWJWaWV3
IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczpkZXZpY2VzIHVybDpyZXF1
ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6ZGVj
aXNpb25IYW5kbGVyLmdldCgpXTsKIH0KICNlbmRpZgogCkBAIC04OTUsMTMgKzkwNCwxMyBAQCB2
b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkaWRDaGFuZ2VGb250QXR0cmlidXRlcyhjb25zdCBX
ZWJDb3JlOjpGb250QXR0cmlidXRlcwogICAgIFtwcml2YXRlVUlEZWxlZ2F0ZSBfd2ViVmlldzpt
X3VpRGVsZWdhdGUubV93ZWJWaWV3IGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzOmZvbnRBdHRyaWJ1
dGVzLmNyZWF0ZURpY3Rpb25hcnkoKS5nZXQoKV07CiB9CiAKLWJvb2wgVUlEZWxlZ2F0ZTo6VUlD
bGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQ
cm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVz
ZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QpCit2b2lkIFVJRGVsZWdhdGU6OlVJ
Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdl
UHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1
c2VyTWVkaWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KQogewogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdl
dCgpOwotICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzVVJMTWFpbkZy
YW1lVVJMRGVjaXNpb25IYW5kbGVyKSB7CisgICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVn
YXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXph
dGlvbkZvckZyYW1lRGVjaXNpb25IYW5kbGVyKSB7CiAgICAgICAgIHJlcXVlc3QuZGVueShVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246
OlVzZXJNZWRpYURpc2FibGVkKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVy
bjsKICAgICB9CiAKICAgICBib29sIHJlcXVpcmVzQXVkaW9DYXB0dXJlID0gcmVxdWVzdC5yZXF1
aXJlc0F1ZGlvQ2FwdHVyZSgpOwpAQCAtOTA5LDIxICs5MTgsMjEgQEAgYm9vbCBVSURlbGVnYXRl
OjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2Vi
UGFnZVByb3gKICAgICBib29sIHJlcXVpcmVzRGlzcGxheUNhcHR1cmUgPSByZXF1ZXN0LnJlcXVp
cmVzRGlzcGxheUNhcHR1cmUoKTsKICAgICBpZiAoIXJlcXVpcmVzQXVkaW9DYXB0dXJlICYmICFy
ZXF1aXJlc1ZpZGVvQ2FwdHVyZSAmJiAhcmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSkgewogICAgICAg
ICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlh
QWNjZXNzRGVuaWFsUmVhc29uOjpOb0NvbnN0cmFpbnRzKTsKLSAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
IGJvb2wgdXNpbmdNb2NrQ2FwdHVyZURldmljZXMgPSBwYWdlLnByZWZlcmVuY2VzKCkubW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZCgpOwotICAgIGF1dG8gcmVxdWVzdENhbWVyYUF1dGhvcml6YXRp
b24gPSBtYWtlQmxvY2tQdHIoW3RoaXMsICZmcmFtZSwgcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VS
ZWYocmVxdWVzdCksIHdlYlZpZXcgPSBSZXRhaW5QdHI8V0tXZWJWaWV3PihtX3VpRGVsZWdhdGUu
bV93ZWJWaWV3KSwgdXNpbmdNb2NrQ2FwdHVyZURldmljZXNdKCkgeworICAgIGF1dG8gcmVxdWVz
dENhbWVyYUF1dGhvcml6YXRpb24gPSBtYWtlQmxvY2tQdHIoW3RoaXMsICZmcmFtZSwgcHJvdGVj
dGVkUmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCksIHdlYlZpZXcgPSBSZXRhaW5QdHI8V0tXZWJW
aWV3PihtX3VpRGVsZWdhdGUubV93ZWJWaWV3KSwgdG9wTGV2ZWxPcmlnaW4gPSBtYWtlUmVmKHRv
cExldmVsT3JpZ2luKSwgdXNpbmdNb2NrQ2FwdHVyZURldmljZXNdKCkgewogCiAgICAgICAgIGlm
ICghcHJvdGVjdGVkUmVxdWVzdC0+cmVxdWlyZXNWaWRlb0NhcHR1cmUoKSkgewotICAgICAgICAg
ICAgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzKGZyYW1lLCBwcm90ZWN0
ZWRSZXF1ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVn
YXRlLmdldCgpLCAqd2ViVmlldy5nZXQoKSk7CisgICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlh
QXV0aG9yaXphdGlvbkZvckZyYW1lKGZyYW1lLCBwcm90ZWN0ZWRSZXF1ZXN0LCAoaWQgPFdLVUlE
ZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqd2ViVmlldy5n
ZXQoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgQVZBdXRob3Jp
emF0aW9uU3RhdHVzIGNhbWVyYUF1dGhvcml6YXRpb25TdGF0dXMgPSB1c2luZ01vY2tDYXB0dXJl
RGV2aWNlcyA/IEFWQXV0aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQgOiBbZ2V0QVZDYXB0dXJl
RGV2aWNlQ2xhc3MoKSBhdXRob3JpemF0aW9uU3RhdHVzRm9yTWVkaWFUeXBlOmdldEFWTWVkaWFU
eXBlVmlkZW8oKV07CiAgICAgICAgIHN3aXRjaCAoY2FtZXJhQXV0aG9yaXphdGlvblN0YXR1cykg
ewogICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQ6Ci0gICAgICAg
ICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHByb3Rl
Y3RlZFJlcXVlc3QsIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVs
ZWdhdGUuZ2V0KCksICp3ZWJWaWV3LmdldCgpKTsKKyAgICAgICAgICAgIHJlcXVlc3RVc2VyTWVk
aWFBdXRob3JpemF0aW9uRm9yRnJhbWUoZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QsIChpZCA8V0tV
SURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3ZWJWaWV3
LmdldCgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlv
blN0YXR1c0RlbmllZDoKICAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNSZXN0cmlj
dGVkOgpAQCAtOTM1LDcgKzk0NCw3IEBAIGJvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lk
ZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94CiAgICAgICAg
ICAgICAgICAgICAgIHByb3RlY3RlZFJlcXVlc3QtPmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVk
KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUs
IHByb3RlY3RlZFJlcXVlc3QsIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRl
Lm1fZGVsZWdhdGUuZ2V0KCksICp3ZWJWaWV3LmdldCgpKTsKKyAgICAgICAgICAgICAgICByZXF1
ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGZyYW1lLCB0b3BMZXZlbE9yaWdpbiwg
cHJvdGVjdGVkUmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUu
bV9kZWxlZ2F0ZS5nZXQoKSwgKndlYlZpZXcuZ2V0KCkpOwogICAgICAgICAgICAgfSk7CiAKICAg
ICAgICAgICAgIFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIHJlcXVlc3RBY2Nlc3NGb3JNZWRp
YVR5cGU6Z2V0QVZNZWRpYVR5cGVWaWRlbygpIGNvbXBsZXRpb25IYW5kbGVyOmRlY2lzaW9uSGFu
ZGxlci5nZXQoKV07CkBAIC05NjgsNTMgKzk3Nyw1MSBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xp
ZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJv
eAogICAgIH0gZWxzZQogICAgICAgICByZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbigpOwogI2Vs
c2UKLSAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHJl
cXVlc3QsIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUu
Z2V0KCksICptX3VpRGVsZWdhdGUubV93ZWJWaWV3KTsKKyAgICByZXF1ZXN0VXNlck1lZGlhQXV0
aG9yaXphdGlvbkZvckZyYW1lKGZyYW1lLCB0b3BMZXZlbE9yaWdpbiwgcmVxdWVzdCwgKGlkIDxX
S1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwgKm1fdWlE
ZWxlZ2F0ZS5tX3dlYlZpZXcpOwogI2VuZGlmCiAjZW5kaWYKLQotICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25G
b3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpT
ZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BM
ZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIHJlcXVlc3QpCit2b2lk
IFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4o
V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9y
aWdpbiYgdXNlck1lZGlhT3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdp
biwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIHJlcXVlc3QpCiB7CiAgICAgYXV0byBk
ZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOwotICAgIGlmICghZGVsZWdh
dGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q2hlY2tVc2VyTWVk
aWFQZXJtaXNzaW9uRm9yVVJMTWFpbkZyYW1lVVJMRnJhbWVJZGVudGlmaWVyRGVjaXNpb25IYW5k
bGVyKSB7CisgICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRo
b2RzLndlYlZpZXdJc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZURlY2lzaW9uSGFuZGxl
cikgewogICAgICAgICByZXF1ZXN0LnNldFVzZXJNZWRpYUFjY2Vzc0luZm8oZmFsc2UpOwotICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdLV2ViVmll
dyAqd2ViVmlldyA9IG1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXc7Ci0gICAgY29uc3QgV2ViRnJhbWVQ
cm94eSogbWFpbkZyYW1lID0gZnJhbWUucGFnZSgpLT5tYWluRnJhbWUoKTsKLSAgICBVUkwgcmVx
dWVzdEZyYW1lVVJMKFVSTCgpLCBmcmFtZS51cmwoKSk7Ci0gICAgVVJMIG1haW5GcmFtZVVSTChV
UkwoKSwgbWFpbkZyYW1lLT51cmwoKSk7CisgICAgY29uc3QgYXV0byBtYWluRnJhbWUgPSBmcmFt
ZS5wYWdlKCktPm1haW5GcmFtZSgpOworCisgICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1l
OmRlY2lzaW9uSGFuZGxlcjopXSkgeworICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1h
a2VCbG9ja1B0cihbcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCldKEJPT0wgYXV0
aG9yaXplZCkgeworICAgICAgICAgICAgcHJvdGVjdGVkUmVxdWVzdC0+c2V0VXNlck1lZGlhQWNj
ZXNzSW5mbyhhdXRob3JpemVkKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgWyhpZCA8V0tVSURl
bGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBp
c01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTp3cmFwcGVyKEFQSTo6RnJhbWVJbmZvOjpj
cmVhdGUoKm1haW5GcmFtZSwgdG9wTGV2ZWxPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSkpIGRlY2lz
aW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOworICAgICAgICByZXR1cm47CisgICAg
fQogCiAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFJl
cXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpXShOU1N0cmluZyosIEJPT0wgYXV0aG9yaXplZCkgewog
ICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0LT5zZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKGF1dGhvcml6
ZWQpOwogICAgIH0pOwogCi0gICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUg
X3dlYlZpZXc6d2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVzdEZy
YW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOmZyYW1lLmZy
YW1lSUQoKSBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKKyAgICBVUkwg
cmVxdWVzdEZyYW1lVVJMKFVSTCgpLCBmcmFtZS51cmwoKSk7CisgICAgVVJMIG1haW5GcmFtZVVS
TChVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSk7CiAKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBbKGlk
IDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93
ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFp
bkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUuZnJhbWVJRCgpIGRl
Y2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwogfQogCiB2b2lkIFVJRGVsZWdh
dGU6OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgV0tXZWJWaWV3ICp3ZWJWaWV3
ID0gbV91aURlbGVnYXRlLm1fd2ViVmlldzsKKworICAgIFt3ZWJWaWV3IGRpZENoYW5nZVZhbHVl
Rm9yS2V5OkAibWVkaWFDYXB0dXJlU3RhdGUiXTsKKwogICAgIGF1dG8gZGVsZWdhdGUgPSBtX3Vp
RGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKICAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVs
ZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld01lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdl
KQogICAgICAgICByZXR1cm47CiAKLSAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZSBtZWRpYUNhcHR1
cmVTdGF0ZSA9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCi0gICAgICAg
IG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9u
ZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRl
b0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2Fw
dHVyZVN0YXRlQWN0aXZlQ2FtZXJhOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBtZWRpYUNhcHR1cmVT
dGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkTWljcm9waG9uZTsKLSAgICBpZiAoc3Rh
dGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkK
LSAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZENh
bWVyYTsKLQotICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3
OndlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6bWVkaWFDYXB0dXJlU3RhdGVdOwor
ICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3OndlYlZpZXcg
bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6dG9XS01lZGlhQ2FwdHVyZVN0YXRlKHN0YXRlKV07
CiB9CiAKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hl
T3JpZ2luUXVvdGEoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
IHNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0
ZXNOZWVkZWQsIEZ1bmN0aW9uPHZvaWQgKHVuc2lnbmVkIGxvbmcgbG9uZyk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uQ2hlY2tQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHkuaAppbmRleCBkOTFmMDRmZmRhYjhkMTQyNDU0ZDUwNjNmZTE3
ZjBlYmZhODMzNGViLi42YTA4OTUwNmNlYTM4OGQxZDRjM2Q2ZGVmZGE1ZmUwZTBhZWU1N2M0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hl
Y2tQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25DaGVja1Byb3h5LmgKQEAgLTQ2LDYgKzQ2LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eShmcmFtZUlELCBXVEZN
b3ZlKGhhbmRsZXIpLCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0
b3BMZXZlbERvY3VtZW50T3JpZ2luKSkpOwogICAgIH0KIAorICAgIHZvaWQgZGVueSgpIHsgc2V0
VXNlck1lZGlhQWNjZXNzSW5mbyhmYWxzZSk7IH0KICAgICB2b2lkIHNldFVzZXJNZWRpYUFjY2Vz
c0luZm8oYm9vbCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcAppbmRleCA5NWY1NTNkZDIyNWViY2FmM2RiOGY5YWQwMmI1N2E0M2E4
YmNiZjgzLi43NGQ1Nzg4OTk3OGQ3YzMxZjBkMTNjOWUxYzRjODFjOGM4ZmE0NTlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0zNzQsOCArMzc0LDcgQEAgdm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBl
cm1pc3Npb25Gb3JGcmFtZSgKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAg
ICAgIGlmICghbV9wYWdlLnVpQ2xpZW50KCkuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QobV9wYWdlLCAqbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKSwg
V1RGTW92ZSh1c2VyTWVkaWFPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsT3JpZ2luKSwgcGVuZGlu
Z1JlcXVlc3QuZ2V0KCkpKQotICAgICAgICAgICAgdXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVz
ZXJNZWRpYUlELCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nl
c3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2FibGVkKTsKKyAgICAgICAgbV9wYWdlLnVpQ2xp
ZW50KCkuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QobV9wYWdlLCAq
bV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKSwgV1RGTW92ZSh1c2VyTWVkaWFPcmln
aW4pLCBXVEZNb3ZlKHRvcExldmVsT3JpZ2luKSwgcGVuZGluZ1JlcXVlc3QuZ2V0KCkpOwogICAg
IH07CiAKICAgICBhdXRvIHJlcXVlc3RJRCA9IGdlbmVyYXRlUmVxdWVzdElEKCk7CkBAIC00MTcs
MTAgKzQxNiw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKHVpbnQ2NF90CiAgICAgYXV0byByZXF1ZXN0ID0g
VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OmNyZWF0ZShmcmFtZUlELCBXVEZNb3ZlKGhh
bmRsZXIpLCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZl
bERvY3VtZW50T3JpZ2luKSk7CiAKICAgICBtX3BlbmRpbmdEZXZpY2VSZXF1ZXN0cy5hZGQocmVx
dWVzdElELCByZXF1ZXN0LmNvcHlSZWYoKSk7Ci0gICAgaWYgKCFtX3BhZ2UudWlDbGllbnQoKS5j
aGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4obV9wYWdlLCAqbV9wYWdlLnByb2Nlc3Mo
KS53ZWJGcmFtZShmcmFtZUlEKSwgdXNlck1lZGlhT3JpZ2luLmdldCgpLCB0b3BMZXZlbE9yaWdp
bi5nZXQoKSwgcmVxdWVzdC5nZXQoKSkpIHsKLSAgICAgICAgbV9wZW5kaW5nRGV2aWNlUmVxdWVz
dHMudGFrZShyZXF1ZXN0SUQpOwotICAgICAgICBoYW5kbGVyKGZhbHNlKTsKLSAgICB9CisgICAg
bV9wYWdlLnVpQ2xpZW50KCkuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKG1fcGFn
ZSwgKm1fcGFnZS5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRCksIHVzZXJNZWRpYU9yaWdpbi5n
ZXQoKSwgdG9wTGV2ZWxPcmlnaW4uZ2V0KCksIHJlcXVlc3QuZ2V0KCkpOwogfQogCiBib29sIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNHcmFudGVkVmlkZW9PckF1
ZGlvQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKaW5kZXggNTk4MGRjNzA5YTAwMjg1ZDBhYThlNzM1Y2Qz
MDgxOTdjOTExOGJkYi4uYWM4MDVlNzg4YmUyMzE3ZTBhN2FhZWI3MTg5MDljZjQ1YmNhODkwOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBh
bGxvdygpOwogCiAgICAgZW51bSBjbGFzcyBVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24geyBO
b0NvbnN0cmFpbnRzLCBVc2VyTWVkaWFEaXNhYmxlZCwgTm9DYXB0dXJlRGV2aWNlcywgSW52YWxp
ZENvbnN0cmFpbnQsIEhhcmR3YXJlRXJyb3IsIFBlcm1pc3Npb25EZW5pZWQsIE90aGVyRmFpbHVy
ZSB9OwotICAgIHZvaWQgZGVueShVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24pOworICAgIHZv
aWQgZGVueShVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24gPSBVc2VyTWVkaWFBY2Nlc3NEZW5p
YWxSZWFzb246OlVzZXJNZWRpYURpc2FibGVkKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAyODMyYmI3YzRiODFhZTg5OTY1NjY2ZWU0YjUxN2ZlMGQzMDdiMWY3Li40MWZkZGExNGFhZGZm
YThhNzE2ZmI2ODcyMmU2NmQ0ZDJhYjBiMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI5OTgsNiArMjk5OCw4IEBACiAJCTQxMDQ4
MkNCMURERDJGQjUwMEYwMDZEMCAvKiBSVENOZXR3b3JrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ05ldHdvcmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTA0ODJDQzFEREQyRkI1MDBGMDA2RDAgLyogUlRDTmV0d29yay5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENOZXR3b3JrLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxMTE0MzYzMjBGNjc3QjEwMDI2RjkxMiAvKiBJbmplY3RVc2VyU2NyaXB0
SW1tZWRpYXRlbHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0VXNl
clNjcmlwdEltbWVkaWF0ZWx5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMTI4
NkVGMjFDOEE5MEMwMDNBODU1MCAvKiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMTI4NkYwMjFDOEE5MEQwMDNBODU1MCAvKiBNZWRpYUNh
cHR1cmVVdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBNZWRpYUNhcHR1cmVVdGlsaXRpZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxMTJCNTQ3MUY5RkQzQUIwMEU2Nzg3NSAvKiBOZXR3b3JrUlRDUmVzb2x2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1JUQ1Jlc29sdmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMkI1NDcxRjlGRDNBQjAwRTY3OTg2IC8q
IE5ldHdvcmtSVENSZXNvbHZlckNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE5ldHdvcmtSVENSZXNvbHZlckNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDExMkI1NDgxRjlGRDNBQzAwRTY3ODc1IC8qIE5ldHdvcmtSVENSZXNvbHZl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrUlRDUmVzb2x2ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUzMDAsNiArNTMwMiw4IEBACiAJCQkJ
MEYwQzM2NTkxOEMwNTU1ODAwRjYwN0Q3IC8qIExheWVyUmVwcmVzZW50YXRpb24uaCAqLywKIAkJ
CQk3QTgyMUY0QjFFMkY2NjQ4MDA2MDQ1NzcgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
Q2xpZW50LmggKi8sCiAJCQkJN0E4MjFGNEQxRTJGNjc5RTAwNjA0NTc3IC8qIExlZ2FjeUN1c3Rv
bVByb3RvY29sTWFuYWdlckNsaWVudC5tbSAqLywKKwkJCQk0MTEyODZGMDIxQzhBOTBEMDAzQTg1
NTAgLyogTWVkaWFDYXB0dXJlVXRpbGl0aWVzLm1tICovLAorCQkJCTQxMTI4NkVGMjFDOEE5MEMw
MDNBODU1MCAvKiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCAqLywKIAkJCQkxQUJDM0RGNDE4OTlF
NDM3MDA0RjA2MjYgLyogTmF2aWdhdGlvblN0YXRlLmggKi8sCiAJCQkJMUFCQzNERjMxODk5RTQz
NzAwNEYwNjI2IC8qIE5hdmlnYXRpb25TdGF0ZS5tbSAqLywKIAkJCQk1QzZDRTZEMzFGNTlFQTM1
MDAwN0M2Q0IgLyogUGFnZUNsaWVudEltcGxDb2NvYS5oICovLApkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGU3YzAzMjRhOGNjMDJmMTM4OTZjMmQz
MjMxNjllZDE4OWVkNjc5NmEuLjVjOGQxZmJiYzcwMjRkMTllMThjYzEyMmVhZWFlYmRhZWY0YmZh
NWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNiBAQAorMjAxOC0xMi0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IFNQSSBmb3IgY29udHJvbGxpbmcgZ2V0VXNlck1lZGlh
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI3OTMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pbmlC
cm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAoLVtXSzJC
cm93c2VyV2luZG93Q29udHJvbGxlciBfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXph
dGlvbkZvckZyYW1lOmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXSzJC
cm93c2VyV2luZG93Q29udHJvbGxlciBfd2ViVmlldzppc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRG
b3JGcmFtZTpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKC1bTmF2aWdhdGlv
bldoaWxlR2V0VXNlck1lZGlhUHJvbXB0RGlzcGxheWVkVUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1
ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOmRldmljZXM6ZGVjaXNpb25IYW5k
bGVyOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRp
YVJlcHJvbXB0Lm1tOgorICAgICAgICAoLVtHZXRVc2VyTWVkaWFSZXByb21wdFVJRGVsZWdhdGUg
X3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZpY2Vz
OmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW06CisgICAgICAgICgtW01lZGlhU3RyZWFtVHJh
Y2tEZXRhY2hlZFVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6
YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1tOgorICAgICAg
ICAoLVtVc2VyTWVkaWFVSURlbGVnYXRlIF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRo
b3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgt
W1VzZXJNZWRpYVVJRGVsZWdhdGUgX3dlYlZpZXc6aXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9y
RnJhbWU6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvVXNlck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tOgorICAgICAgICAo
LVtTaW11bGF0ZUZhaWxlZFNhbmRib3hVSURlbGVnYXRlIF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNh
cHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lvbkhhbmRsZXI6XSk6Cisg
ICAgICAgICgtW1NpbXVsYXRlRmFpbGVkU2FuZGJveFVJRGVsZWdhdGUgX3dlYlZpZXc6aXNNZWRp
YUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWU6ZGVjaXNpb25IYW5kbGVyOl0pOgorCiAyMDE4LTEy
LTE3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0
IGNvbmNhdGVuYXRpbmcgU3RyaW5nVmlldyB3aXRoIG90aGVyIHN0cmluZyB0eXBlcwpkaWZmIC0t
Z2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0g
Yi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQppbmRl
eCAzZTczOWQ3YzkxNTUzOGUwMDMyOWNmZjBjMDQ3YWFhNzBmZDRhMWJmLi45YjQ4MTJjMTc0Y2Mz
MTRjZDE4ZjQxZmUxM2M5YjUwYjczMTg5OWY1IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nl
ci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysgYi9Ub29scy9NaW5pQnJvd3Nl
ci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAtNzkxLDE0ICs3OTEsMTQgQEAg
LSAodm9pZClmaW5kQmFyVmlld0RpZENoYW5nZUhlaWdodAogewogfQogCi0tICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9y
RGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5G
cmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShC
T09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0Zy
YW1lSW5mbyAqKSBtYWluRnJhbWUgZGV2aWNlczogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMg
ZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxl
cgogewogICAgIGRlY2lzaW9uSGFuZGxlcih0cnVlKTsKIH0KIAotLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJM
ICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVy
OihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
U3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBpc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JG
cmFtZTooV0tGcmFtZUluZm8gKikgbWFpbkZyYW1lIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXiko
Qk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKIHsKLSAgICBkZWNpc2lvbkhhbmRsZXIo
QCIiLCBmYWxzZSk7CisgICAgZGVjaXNpb25IYW5kbGVyKGZhbHNlKTsKIH0KIAogQGVuZApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2
aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRp
YU5hdmlnYXRpb24ubW0KaW5kZXggNDIxZWVhNDI5MmNiYWIxNGU5NDZmNzk4YTM1ZGViNzNmODJi
MzUwOC4uNmFmNmNmYTk4MzBmYTRjNWRhNzc3YmZiODMwYWMxMTgyNDEyYmUzNCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlv
bi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFO
YXZpZ2F0aW9uLm1tCkBAIC00MiwxMiArNDIsMTIgQEAgc3RhdGljIGJvb2wgb2tUb1Byb2NlZWQg
PSBmYWxzZTsKIHN0YXRpYyBib29sIHNob3VsZFJlbGVhc2VJbkVudW1lcmF0ZSA9IGZhbHNlOwog
CiBAaW50ZXJmYWNlIE5hdmlnYXRpb25XaGlsZUdldFVzZXJNZWRpYVByb21wdERpc3BsYXllZFVJ
RGVsZWdhdGUgOiBOU09iamVjdDxXS1VJRGVsZWdhdGU+Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczoo
X1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDoo
TlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhv
cml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTooV0tGcmFtZUlu
Zm8qKSBtYWluRnJhbWUgZGV2aWNlczogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDoo
TlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50
aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAo
XikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOwogQGVu
ZAogCiBAaW1wbGVtZW50YXRpb24gTmF2aWdhdGlvbldoaWxlR2V0VXNlck1lZGlhUHJvbXB0RGlz
cGxheWVkVUlEZWxlZ2F0ZQotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBy
ZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2Vz
KWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1l
VVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhh
bmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlh
Q2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTooV0tGcmFtZUluZm8qKSBtYWluRnJhbWUgZGV2
aWNlczogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkIChe
KShCT09MKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiYWJvdXQ6Ymxh
bmsiXV1dOwogICAgIFt3ZWJWaWV3IHJlbGVhc2VdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQppbmRleCBjNDMy
ZmNhZTVlOGZjNTk3OTEyMzNlNTBiZGJiNzUzMmNiYWM0ZjdlLi5kOWRiNjU3ZDUwYjA0M2JkMGJm
MmRiZjEyODE0YmVmY2M5Y2FhZTdmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQpAQCAtNDEsMTIgKzQxLDEy
IEBACiBzdGF0aWMgYm9vbCB3YXNQcm9tcHRlZCA9IGZhbHNlOwogCiBAaW50ZXJmYWNlIEdldFVz
ZXJNZWRpYVJlcHJvbXB0VUlEZWxlZ2F0ZSA6IE5TT2JqZWN0PFdLVUlEZWxlZ2F0ZT4KLS0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6
YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1
cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZv
aWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOworLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZv
ckZyYW1lOihXS0ZyYW1lSW5mbyopIG1haW5GcmFtZSBkZXZpY2VzOiAoX1dLQ2FwdHVyZURldmlj
ZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxl
cjsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZy
YW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSlkZWNp
c2lvbkhhbmRsZXI7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBHZXRVc2VyTWVkaWFSZXByb21w
dFVJRGVsZWdhdGUKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVz
dFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZp
Y2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBk
ZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVy
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1
cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvKikgbWFpbkZyYW1lIGRldmljZXM6
IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9P
TCkpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgd2FzUHJvbXB0ZWQgPSB0cnVlOwogICAgIGRlY2lz
aW9uSGFuZGxlcihZRVMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCmluZGV4IDFlY2NkMGE2ZWUz
MzE2NDI2MzJkNGQ1YzZkZjBiYmNkMDJhZTJmNDMuLmNhYTc5ZGQ0YTI1ZTVhMTVkZWJiZDU1NDYx
ZmFjYTRmNjBiNjYxNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KQEAgLTQwLDEzICs0MCwx
MyBAQAogc3RhdGljIGJvb2wgaGFzUmVjaWV2ZWRDb3JyZWN0Q2FwdHVyZVN0YXRlID0gZmFsc2U7
CiAKIEBpbnRlcmZhY2UgTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0ZSA6IE5TT2Jq
ZWN0PFdLVUlEZWxlZ2F0ZT4KLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNl
cylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFt
ZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25I
YW5kbGVyOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVk
aWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyopIG1haW5GcmFtZSBk
ZXZpY2VzOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQg
KF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcjsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWlu
RnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdl
cilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqc2Fs
dCwgQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNh
cHR1cmVTdGF0ZSlzdGF0ZTsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIE1lZGlhU3RyZWFtVHJh
Y2tEZXRhY2hlZFVJRGVsZWdhdGUKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2
aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5G
cmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNp
b25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RN
ZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvKikgbWFpbkZyYW1l
IGRldmljZXM6IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgZGVjaXNpb25IYW5kbGVyKFlFUyk7
CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Vz
ZXJNZWRpYURpc2FibGVkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Vc2VyTWVkaWFEaXNhYmxlZC5tbQppbmRleCA4ODMzM2MzZmJiNjgwZTE2NWU3ZjI2MWE2MjZl
NWIxZDEzMWIzYmFiLi4xMDg1YzVlYzM3OGZlNjk3ODMwMWJmMjJiOWUyZjgwMzUyM2M1NmU0IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRp
YURpc2FibGVkLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
VXNlck1lZGlhRGlzYWJsZWQubW0KQEAgLTM5LDcgKzM5LDYgQEAKIAogI2lmIFdLX0FQSV9FTkFC
TEVECiAKLXN0YXRpYyBib29sIHJlZnVzZVJlcXVlc3QgPSBmYWxzZTsKIHN0YXRpYyBib29sIHdh
c1Byb21wdGVkID0gZmFsc2U7CiAKIHN0YXRpYyBib29sIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9
IGZhbHNlOwpAQCAtNjIsMTUgKzYxLDEwIEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFVzZXJN
ZWRpYVVJRGVsZWdhdGUKIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBy
ZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KE5TVUludGVnZXIpZGV2aWNl
cyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVj
aXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRp
b25Gb3JGcmFtZTooV0tGcmFtZUluZm8qKSBtYWluRnJhbWUgZGV2aWNlczogKF9XS0NhcHR1cmVE
ZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhh
bmRsZXIKIHsKICAgICB3YXNQcm9tcHRlZCA9IHRydWU7CiAKLSAgICBpZiAocmVmdXNlUmVxdWVz
dCkgewotICAgICAgICBkZWNpc2lvbkhhbmRsZXIoTk8pOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCiAgICAgQk9PTCBuZWVkc01pY3JvcGhvbmVBdXRob3JpemVkID0gZGV2aWNlcyAmIF9XS0Nh
cHR1cmVEZXZpY2VNaWNyb3Bob25lOwogICAgIEJPT0wgbmVlZHNDYW1lcmFBdXRob3JpemVkID0g
ZGV2aWNlcyAmIF9XS0NhcHR1cmVEZXZpY2VDYW1lcmE7CiAgICAgaWYgKCFuZWVkc01pY3JvcGhv
bmVBdXRob3JpemVkICYmICFuZWVkc0NhbWVyYUF1dGhvcml6ZWQpIHsKQEAgLTgxLDE0ICs3NSw5
IEBAIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRp
YUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihOCiAgICAgZGVjaXNpb25IYW5kbGVyKFlFUyk7CiB9
CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZy
YW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqLCBCT09MKSlkZWNpc2lvbkhhbmRsZXIKKy0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaXNNZWRpYUNhcHR1cmVBdXRob3Jp
emVkRm9yRnJhbWU6KFdLRnJhbWVJbmZvICopIG1haW5GcmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZv
aWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCiB7Ci0gICAgaWYgKHJlZnVz
ZVJlcXVlc3QpIHsKLSAgICAgICAgZGVjaXNpb25IYW5kbGVyKG5pbCwgTk8pOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgZGVjaXNpb25IYW5kbGVyKEAiMHg5ODc2NTQzMjEiLCBOTyk7
CisgICAgZGVjaXNpb25IYW5kbGVyKE5PKTsKIH0KIEBlbmQKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNh
bmRib3gubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRp
YVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbQppbmRleCBjNzNjOTg5OTRlNDE3MzM0OTAyNTUyYTg3
OGRlZjVkMTcyMjViZGY0Li45Y2Q5ODVmNzlmMTRmMzU2OTZlNTk2ZGFhMTNhOTNjYTMwNGE4NDI2
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJN
ZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbQpAQCAtMzks
NyArMzksNiBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAotc3RhdGljIGJvb2wgcmVmdXNlUmVx
dWVzdCA9IGZhbHNlOwogc3RhdGljIGJvb2wgd2FzUHJvbXB0ZWQgPSBmYWxzZTsKIAogc3RhdGlj
IGJvb2wgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CkBAIC02MiwxNSArNjEsMTAgQEAg
QGVuZAogCiBAaW1wbGVtZW50YXRpb24gU2ltdWxhdGVGYWlsZWRTYW5kYm94VUlEZWxlZ2F0ZQog
Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFB
dXRob3JpemF0aW9uRm9yRGV2aWNlczooTlNVSW50ZWdlcilkZXZpY2VzIHVybDooTlNVUkwgKil1
cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZv
aWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0Zy
YW1lSW5mbyopIG1haW5GcmFtZSBkZXZpY2VzOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBk
ZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgogewogICAgIHdh
c1Byb21wdGVkID0gdHJ1ZTsKIAotICAgIGlmIChyZWZ1c2VSZXF1ZXN0KSB7Ci0gICAgICAgIGRl
Y2lzaW9uSGFuZGxlcihOTyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBCT09MIG5l
ZWRzTWljcm9waG9uZUF1dGhvcml6ZWQgPSBkZXZpY2VzICYgX1dLQ2FwdHVyZURldmljZU1pY3Jv
cGhvbmU7CiAgICAgQk9PTCBuZWVkc0NhbWVyYUF1dGhvcml6ZWQgPSBkZXZpY2VzICYgX1dLQ2Fw
dHVyZURldmljZUNhbWVyYTsKICAgICBpZiAoIW5lZWRzTWljcm9waG9uZUF1dGhvcml6ZWQgJiYg
IW5lZWRzQ2FtZXJhQXV0aG9yaXplZCkgewpAQCAtODEsMTQgKzc1LDkgQEAgLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZv
ckRldmljZXM6KE4KICAgICBkZWNpc2lvbkhhbmRsZXIoWUVTKTsKIH0KIAotLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6
KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVu
dGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQg
KF4pKE5TU3RyaW5nICosIEJPT0wpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBpc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTooV0tG
cmFtZUluZm8gKikgbWFpbkZyYW1lIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRo
b3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKIHsKLSAgICBpZiAocmVmdXNlUmVxdWVzdCkgewotICAg
ICAgICBkZWNpc2lvbkhhbmRsZXIobmlsLCBOTyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBkZWNpc2lvbkhhbmRsZXIoQCIweDk4NzY1NDMyMSIsIE5PKTsKKyAgICBkZWNpc2lvbkhh
bmRsZXIoTk8pOwogfQogQGVuZAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357590</attachid>
            <date>2018-12-18 11:39:55 -0800</date>
            <delta_ts>2018-12-18 13:40:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192793-20181218113954.patch</filename>
            <type>text/plain</type>
            <size>49420</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MjgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNjOWM0YWI0ZmE0YzdkY2E0
NTY5NjJiZmYyNTkxZjRjMDgyZDMxN2IuLjE4MmQ5ZGI2NzZkMzdjNmJhOTRjZGFhZTA2Nzk5ZWUw
MjBiMjk3NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTgtMTItMTcgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgZm9yIGNv
bnRyb2xsaW5nIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyNzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU29tZSB3ZWFrbmVzc2VzIG9mIHRoZSBjdXJyZW50IGdldFVzZXJNZWRp
YSBTUEkgd2VyZSBmb3VuZC4KKyAgICAgICAgSW4gcGFydGljdWxhcjoKKyAgICAgICAgLSBUaGUg
aGFzaCBzYWx0IHNob3VsZCBiZSBoYW5kbGVkIGJ5IFdlYktpdAorICAgICAgICAtIE5vIG5lZWQg
dG8gZXhwb3NlIHRoZSBmcmFtZSBVUkwsIG9ubHkgdGhlIHRvcCBsZXZlbCBvcmlnaW4gaXMgbmVl
ZGVkCisgICAgICAgIC0gVGhlIG5hbWVzIG9mIHRoZSBjYWxsYmFjayBjYW4gYmUgaW1wcm92ZWQu
CisgICAgICAgIEFkZHJlc3NlZCB0aGVzZSBieSBjcmVhdGluZyBhIG5ldyBTUEkgd2hpY2ggd2ls
bCByZXBsYWNlIHRoZSBjdXJyZW50IG9uZS4KKyAgICAgICAgVGhlIGN1cnJlbnQgU1BJIHdpbGwg
YmUgcmVtb3ZlZCBsYXRlciBvbi4KKworICAgICAgICBEaWQgc29tZSByZWZhY3RvcmluZyBieSBt
YWtpbmcgdGhlIGNhbGxiYWNrcyBub3QgcmV0dXJuaW5nIGZhbHNlLgorICAgICAgICBJbnN0ZWFk
LCBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgYmVoYXZpb3IgaW5zaWRlIHRoZSByZXF1ZXN0IG9iamVj
dHMgYXMgZGVueSBtZXRob2RzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVu
dC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfbWVkaWFDYXB0dXJl
U3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRNZWRpYUNhcHR1cmVNdXRlZDpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmg6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMubW06IEFkZGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNl
dERlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRp
b25Gb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6
OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4p
OgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6bWVkaWFDYXB0dXJlU3Rh
dGVEaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hl
Y2tQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94
eTo6ZGVueSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
Z2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6CisKIDIwMTgtMTItMTcgIFphbiBEb2JlcnNlayAg
PHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgV1BFIGJ1aWxkIGZp
eCBhZnRlciByMjM5Mjc3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGYxYTA1N2E0NWRiMGZh
MzVjZTEwZGNmNDE5NjkzZWZlODE4YTZkYTMuLmViNjlhNTNkMjI3MjA0MjlmYTg3OWZmYmU1M2Rm
ODc4NTU4YzVjNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTMxOSw2ICszMTksNyBAQCBV
SVByb2Nlc3MvQ29jb2EvRmluZENsaWVudC5tbQogVUlQcm9jZXNzL0NvY29hL0Z1bGxzY3JlZW5D
bGllbnQubW0KIFVJUHJvY2Vzcy9Db2NvYS9JY29uTG9hZGluZ0RlbGVnYXRlLm1tCiBVSVByb2Nl
c3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tCitVSVByb2Nlc3Mv
Q29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLm1tCiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlv
blN0YXRlLm1tCiBVSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbQogVUlQcm9j
ZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCA0M2ZmNzYzYjkwNDhjYzQwYTk2N2Q5NDU2
YmJlMDNhY2JiOTUwMjdjLi4wM2QxMjMwMGQxNzE2OWY0N2M4MWRjMjYwMWE2YTQwNzE3ZDcwYWFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMTI5LDgg
KzEyOSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBydW5PcGVuUGFuZWwoV2ViS2l0
OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmLCBPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViS2l0OjpXZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwg
RnVuY3Rpb248dm9pZChib29sKT4mKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJL
aXQ6OldlYkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIFNlY3VyaXR5T3JpZ2luJiwgV2Vi
S2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JikgeyByZXR1cm4gZmFsc2U7IH0K
LSAgICB2aXJ0dWFsIGJvb2wgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYktp
dDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4m
LCBTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkm
KSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2Vi
RnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgU2VjdXJpdHlPcmlnaW4mLCBXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2Vi
S2l0OjpXZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBTZWN1cml0eU9yaWdpbiYsIFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpX
ZWJQYWdlUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9CiAgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJLaXQ6OldlYlBhZ2VQcm94eSYs
IFdlYktpdDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiByZXF1ZXN0aW5nRG9t
YWluLCBjb25zdCBXVEY6OlN0cmluZyYgY3VycmVudERvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcih0cnVl
KTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCAyY2Uz
OGJiZjc4OTczOGRjNWE0MWU4MzUwODgwZmFiYTk3OGVjNjQyLi5iZDFlZmNhYzZmODI1NGFjNWY4
ZjI0Y2MwYjAzOWIwYzA4ODhiNzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAKQEAgLTE4NTUsMjIgKzE4NTUsMjQgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGll
bnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQK
ICAgICAgICAgICAgIG1fY2xpZW50LmRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QodG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b0FQSSgmb3JpZ2luKSwgdG9B
UEkoR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKHN0ZDo6ZXhjaGFuZ2UoY29t
cGxldGlvbkhhbmRsZXIsIG51bGxwdHIpKS5wdHIoKSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5m
byk7CiAgICAgICAgIH0KIAotICAgICAgICBib29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUs
IEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3Vy
aXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5JiBwZXJtaXNzaW9uUmVxdWVzdCkgZmluYWwKKyAgICAgICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2UsIFdl
YkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcGVybWlzc2lvblJlcXVlc3QpIGZpbmFsCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdCkgeworICAgICAgICAgICAgICAgIHBlcm1pc3Npb25SZXF1ZXN0LmRlbnkoKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG1fY2xp
ZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KHRvQVBJKCZwYWdl
KSwgdG9BUEkoJmZyYW1lKSwgdG9BUEkoJnVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgdG9BUEko
JnRvcExldmVsRG9jdW1lbnRPcmlnaW4pLCB0b0FQSSgmcGVybWlzc2lvblJlcXVlc3QpLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KIAotICAgICAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQ
YWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2lu
JiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIHJlcXVlc3QpIGZp
bmFsCisgICAgICAgIHZvaWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBh
Z2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4m
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcmVxdWVzdCkgZmlu
YWwKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5jaGVja1VzZXJNZWRpYVBl
cm1pc3Npb25Gb3JPcmlnaW4pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgaWYgKCFtX2NsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pIHsK
KyAgICAgICAgICAgICAgICByZXF1ZXN0LmRlbnkoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG1fY2xpZW50LmNoZWNrVXNlck1lZGlhUGVy
bWlzc2lvbkZvck9yaWdpbih0b0FQSSgmcGFnZSksIHRvQVBJKCZmcmFtZSksIHRvQVBJKCZ1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiksIHRvQVBJKCZ0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgdG9B
UEkoJnJlcXVlc3QpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwotICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6
OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpIGZpbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCA0NmM5NTE3YWYwZWZhZWI0NmFjOTJh
NDhmODJkZTVhOGE5ZjU1MDAyLi5iOWE5MjkxMTQxYmYwZmI2ZDZmY2ZlMTFiOTc3OTI5MWJkNDIx
MGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURl
bGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTEwNSw2ICsxMDUsOCBAQCBzdHJ1Y3QgVUlFZGdlSW5z
ZXRzOwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGltYWdlT3JNZWRp
YURvY3VtZW50U2l6ZUNoYW5nZWQ6KENHU2l6ZSlzaXplIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEyKSwgaW9zKDEwLjApKTsKIC0gKE5TRGljdGlvbmFyeSAqKV9kYXRhRGV0ZWN0aW9uQ29u
dGV4dEZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTIpLCBpb3MoMTAuMCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0ZyYW1lSW5m
byAqKW1haW5GcmFtZSBkZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZv
ckZyYW1lOihXS0ZyYW1lSW5mbyAqKW1haW5GcmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4p
KEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9X
S0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5T
VVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3Jp
emVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3Mo
MTEuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKilt
YWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBk
ZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQp
KWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEw
LjMpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJl
U3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IGJhMjA0OGVhYmFhYjY4Y2Q3MzM4MjVjNjRm
OGI5MjBmYWI5NjQ0MWUuLmRiMzRkZDE1NzI3MGEwMWRiZDJiOTJjZDkxODUwOGJmZTIxZjcwYjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpA
QCAtNDAsNiArNDAsNyBAQAogI2ltcG9ydCAiSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oIgogI2ltcG9y
dCAiTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1w
b3J0ICJNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCIKICNpbXBvcnQgIk5hdmlnYXRpb25TdGF0ZS5o
IgogI2ltcG9ydCAiT2JqQ09iamVjdEdyYXBoLmgiCiAjaW1wb3J0ICJQYWdlQ2xpZW50LmgiCkBA
IC01NDM4LDYgKzU0MzksMTYgQEAgLSAoQk9PTClfaXNJbkZ1bGxzY3JlZW4KICNlbmRpZgogfQog
CistIChfV0tNZWRpYUNhcHR1cmVTdGF0ZSlfbWVkaWFDYXB0dXJlU3RhdGUKK3sKKyAgICByZXR1
cm4gV2ViS2l0Ojp0b1dLTWVkaWFDYXB0dXJlU3RhdGUoX3BhZ2UtPm1lZGlhU3RhdGVGbGFncygp
KTsKK30KKworLSAodm9pZClfc2V0TWVkaWFDYXB0dXJlTXV0ZWQ6KEJPT0wpbXV0ZWQKK3sKKyAg
ICBfcGFnZS0+c2V0TWVkaWFTdHJlYW1DYXB0dXJlTXV0ZWQobXV0ZWQpOworfQorCiAtICh2b2lk
KV9tdXRlTWVkaWFDYXB0dXJlCiB7CiAgICAgX3BhZ2UtPnNldE1lZGlhU3RyZWFtQ2FwdHVyZU11
dGVkKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmgKaW5kZXggMTcwYzJhYWVmYTE1MGI0MWY5OTZjY2U0NjhjZTMyNzc5
YmFkNmY4Zi4uZmExYzhkNDQ5YWU2YThiM2JkMmZiMTU3Zjg4OWVjZjhhNDNhYjlhYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oCkBAIC0zOTAsNiArMzkwLDkgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9X
S1JlY3RFZGdlKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRGdWxsc2NyZWVu
RGVsZWdhdGU6KSBpZDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+IF9mdWxsc2NyZWVuRGVsZWdhdGUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9pc0luRnVsbHNjcmVlbiBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMi4zKSk7CiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dL
TWVkaWFDYXB0dXJlU3RhdGUgX21lZGlhQ2FwdHVyZVN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCistICh2b2lkKV9zZXRNZWRpYUNh
cHR1cmVNdXRlZDooQk9PTCltdXRlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX211dGVNZWRpYUNhcHR1cmUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfc2V0UGFnZU11dGVk
OihfV0tNZWRpYU11dGVkU3RhdGUpbXV0ZWRTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMyksIGlvcygxMS4wKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjVmOTM4YmFmNTZkYWU5
ZGFlODU2ZTdjMTI1N2YxZDQ3NTFiNzVlNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5oCkBAIC0wLDAgKzEsMzUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2ltcG9ydCAiV0tXZWJWaWV3UHJpdmF0
ZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitfV0tNZWRpYUNhcHR1cmVTdGF0ZSB0b1dLTWVkaWFDYXB0dXJlU3RhdGUoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1
cmVVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1
cmVVdGlsaXRpZXMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDVhNmM4MTFlZWNhMWVjZWJmM2ZlOTQ2YjBmMmYw
YmE3YjYzNTYwYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbQpAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhQ2FwdHVyZVV0aWxpdGllcy5o
IgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworX1dLTWVkaWFDYXB0dXJlU3RhdGUgdG9XS01lZGlh
Q2FwdHVyZVN0YXRlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0
ZSkKK3sKKyAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZSBtZWRpYUNhcHR1cmVTdGF0ZSA9IF9XS01l
ZGlhQ2FwdHVyZVN0YXRlTm9uZTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgICAgIG1lZGlhQ2FwdHVyZVN0
YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9uZTsKKyAgICBpZiAoc3Rh
dGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2Up
CisgICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZl
Q2FtZXJhOworICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVk
QXVkaW9DYXB0dXJlRGV2aWNlKQorICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRp
YUNhcHR1cmVTdGF0ZU11dGVkTWljcm9waG9uZTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKKyAgICAgICAgbWVkaWFD
YXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZENhbWVyYTsKKworICAgIHJl
dHVybiBtZWRpYUNhcHR1cmVTdGF0ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggMzhkZDdlY2JjZmI1
ZjJhNjBmYzg2Yzk4YmU4YjBmMzFhODU0ZmY4Ni4uOGZkMTZhOTgxMmMwNGFkZjA4NWU1NDRhZWUz
ODA0YzgyMmQ1ZjE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaApAQCAtMTIzLDggKzEyMyw4IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICAgICAgYm9vbCBu
ZWVkc0ZvbnRBdHRyaWJ1dGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV91aURlbGVnYXRlLm1f
ZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRDaGFuZ2VGb250QXR0cmlidXRlczsgfQogICAgICAg
ICB2b2lkIGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZvbnRBdHRyaWJ1
dGVzJikgZmluYWw7Ci0gICAgICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlP
cmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eSYpIGZpbmFsOwotICAgICAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9y
aWdpbihXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYs
IEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIGZp
bmFsOworICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwg
QVBJOjpTZWN1cml0eU9yaWdpbiYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSBm
aW5hbDsKKyAgICAgICAgdm9pZCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2Vi
UGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNl
Y3VyaXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmKSBmaW5hbDsKICAg
ICAgICAgdm9pZCBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOwogICAgICAgICB2b2lkIHByaW50RnJhbWUoV2Vi
UGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYpIGZpbmFsOwogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCkBAIC0xOTgsOCArMTk4LDggQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3RnVs
bHNjcmVlbk1heVJldHVyblRvSW5saW5lIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRW50
ZXJGdWxsc2NyZWVuIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW4g
OiAxOwotICAgICAgICBib29sIHdlYlZpZXdSZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZv
ckRldmljZXNVUkxNYWluRnJhbWVVUkxEZWNpc2lvbkhhbmRsZXIgOiAxOwotICAgICAgICBib29s
IHdlYlZpZXdDaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVVUkxGcmFtZUlk
ZW50aWZpZXJEZWNpc2lvbkhhbmRsZXIgOiAxOworICAgICAgICBib29sIHdlYlZpZXdSZXF1ZXN0
TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lRGVjaXNpb25IYW5kbGVyIDogMTsKKyAg
ICAgICAgYm9vbCB3ZWJWaWV3SXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWVEZWNpc2lv
bkhhbmRsZXIgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdNZWRpYUNhcHR1cmVTdGF0ZURpZENo
YW5nZSA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1dGVzIDog
MTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUubW0KaW5kZXggY2U4NGE4ODg0Nzg5NzM1ZDFhMTMyYjFlYjZlYTZkZTI4
MDNhNzg2ZC4uNzZkYTE1MmVkMGQ1NTBhNjIwNjlmYjA3NjhkMThmMDk1YmFmNTU4MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0zMSw2ICszMSw3
IEBACiAjaW1wb3J0ICJBUElGcmFtZUluZm8uaCIKICNpbXBvcnQgIkFQSUhpdFRlc3RSZXN1bHQu
aCIKICNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCIKKyNpbXBvcnQgIk1l
ZGlhQ2FwdHVyZVV0aWxpdGllcy5oIgogI2ltcG9ydCAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgog
I2ltcG9ydCAiTmF2aWdhdGlvbkFjdGlvbkRhdGEuaCIKICNpbXBvcnQgIlVzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5LmgiCkBAIC0xNTAsOCArMTUxLDkgQEAgdm9pZCBVSURlbGVnYXRlOjpz
ZXREZWxlZ2F0ZShpZCA8V0tVSURlbGVnYXRlPiBkZWxlZ2F0ZSkKICAgICBtX2RlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3RGlkTm90SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQgPSBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWROb3RIYW5kbGVUYXBBc0NsaWNr
QXRQb2ludDopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5wcmVzZW50aW5nVmlld0NvbnRyb2xs
ZXJGb3JXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3By
ZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6KV07CiAjZW5kaWYKLSAgICBtX2RlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2Vz
VVJMTWFpbkZyYW1lVVJMRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JE
ZXZpY2VzOnVybDptYWluRnJhbWVVUkw6ZGVjaXNpb25IYW5kbGVyOildOwotICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdDaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVV
UkxGcmFtZUlkZW50aWZpZXJEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6
bWFpbkZyYW1lVVJMOmZyYW1lSWRlbnRpZmllcjpkZWNpc2lvbkhhbmRsZXI6KV07CisgICAgbV9k
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9y
RnJhbWVEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3Rvcihfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6dXJs
Om1haW5GcmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6KV0gfHwgW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRp
b25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjopXTsKKyAgICBtX2RlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3SXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWVEZWNpc2lvbkhhbmRs
ZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpjaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6bWFpbkZyYW1lVVJMOmZyYW1lSWRlbnRpZmllcjpk
ZWNpc2lvbkhhbmRsZXI6KV0gfHwgW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXc6aXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWU6ZGVjaXNpb25IYW5k
bGVyOildOworCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld01lZGlhQ2FwdHVyZVN0YXRl
RGlkQ2hhbmdlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZp
ZXc6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMu
d2ViVmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1dGVzID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXM6KV07CiAgICAg
bV9kZWxlZ2F0ZU1ldGhvZHMuZGF0YURldGVjdGlvbkNvbnRleHRGb3JXZWJWaWV3ID0gW2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX2RhdGFEZXRlY3Rpb25Db250ZXh0Rm9y
V2ViVmlldzopXTsKQEAgLTg1NSw3ICs4NTcsNyBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50
OjpydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSogd2ViRnJhbWVQcgog
I2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotc3RhdGljIHZvaWQgcmVxdWVzdFVz
ZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzKGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1l
LCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0LCBpZCA8V0tVSURlbGVn
YXRlUHJpdmF0ZT4gZGVsZWdhdGUsIFdLV2ViVmlldyYgd2ViVmlldykKK3N0YXRpYyB2b2lkIHJl
cXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWUoY29uc3QgV2ViRnJhbWVQcm94eSYg
ZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0LCBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gZGVs
ZWdhdGUsIFdLV2ViVmlldyYgd2ViVmlldykKIHsKICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9
IG1ha2VCbG9ja1B0cihbcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCldKEJPT0wg
YXV0aG9yaXplZCkgewogICAgICAgICBpZiAoIWF1dGhvcml6ZWQpIHsKQEAgLTg2NywxMCArODY5
LDYgQEAgc3RhdGljIHZvaWQgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2Vz
KGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLAogICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0LT5h
bGxvdyhhdWRpb0RldmljZVVJRCwgdmlkZW9EZXZpY2VVSUQpOwogICAgIH0pOwogCi0gICAgY29u
c3QgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lID0gZnJhbWUucGFnZSgpLT5tYWluRnJhbWUoKTsK
LSAgICBVUkwgcmVxdWVzdEZyYW1lVVJMKFVSTCgpLCBmcmFtZS51cmwoKSk7Ci0gICAgVVJMIG1h
aW5GcmFtZVVSTChVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSk7Ci0KICAgICBfV0tDYXB0dXJlRGV2
aWNlcyBkZXZpY2VzID0gMDsKICAgICBpZiAocmVxdWVzdC5yZXF1aXJlc0F1ZGlvQ2FwdHVyZSgp
KQogICAgICAgICBkZXZpY2VzIHw9IF9XS0NhcHR1cmVEZXZpY2VNaWNyb3Bob25lOwpAQCAtODgx
LDggKzg3OSwxOSBAQCBzdGF0aWMgdm9pZCByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZv
ckRldmljZXMoY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsCiAgICAgICAgIEFTU0VSVCghKGRl
dmljZXMgJiBfV0tDYXB0dXJlRGV2aWNlQ2FtZXJhKSk7CiAgICAgfQogCi0gICAgYXV0byBwcm90
ZWN0ZWRXZWJWaWV3ID0gUmV0YWluUHRyPFdLV2ViVmlldz4oJndlYlZpZXcpOwotICAgIFtkZWxl
Z2F0ZSBfd2ViVmlldzpwcm90ZWN0ZWRXZWJWaWV3LmdldCgpIHJlcXVlc3RVc2VyTWVkaWFBdXRo
b3JpemF0aW9uRm9yRGV2aWNlczpkZXZpY2VzIHVybDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1l
VVJMOm1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsK
KyAgICBjb25zdCBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUgPSBmcmFtZS5wYWdlKCktPm1haW5G
cmFtZSgpOworCisgICAgLy8gRklYTUU6IFByb3ZpZGUgYSBzcGVjaWZpYyBkZWxlZ2F0ZSBmb3Ig
ZGlzcGxheSBjYXB0dXJlLgorICAgIGlmICghcmVxdWVzdC5yZXF1aXJlc0Rpc3BsYXlDYXB0dXJl
KCkgJiYgW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVx
dWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFu
ZGxlcjopXSkgeworCisgICAgICAgIFtkZWxlZ2F0ZSBfd2ViVmlldzomd2ViVmlldyByZXF1ZXN0
TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOndyYXBwZXIoQVBJOjpGcmFtZUluZm86
OmNyZWF0ZSgqbWFpbkZyYW1lLCB0b3BMZXZlbE9yaWdpbi5zZWN1cml0eU9yaWdpbigpKSkgZGV2
aWNlczpkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgVVJMIHJlcXVlc3RGcmFtZVVSTChVUkwoKSwgZnJh
bWUudXJsKCkpOworICAgIFVSTCBtYWluRnJhbWVVUkwoVVJMKCksIG1haW5GcmFtZS0+dXJsKCkp
OworCisgICAgW2RlbGVnYXRlIF93ZWJWaWV3OiZ3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRo
b3JpemF0aW9uRm9yRGV2aWNlczpkZXZpY2VzIHVybDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1l
VVJMOm1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsK
IH0KICNlbmRpZgogCkBAIC04OTUsMTMgKzkwNCwxMyBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xp
ZW50OjpkaWRDaGFuZ2VGb250QXR0cmlidXRlcyhjb25zdCBXZWJDb3JlOjpGb250QXR0cmlidXRl
cwogICAgIFtwcml2YXRlVUlEZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3
IGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzOmZvbnRBdHRyaWJ1dGVzLmNyZWF0ZURpY3Rpb25hcnko
KS5nZXQoKV07CiB9CiAKLWJvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQ
cm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpT
ZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkmIHJlcXVlc3QpCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1l
UHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5JiByZXF1ZXN0KQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgYXV0byBk
ZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOwotICAgIGlmICghZGVsZWdh
dGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdFVzZXJN
ZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzVVJMTWFpbkZyYW1lVVJMRGVjaXNpb25IYW5kbGVy
KSB7CisgICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdSZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lRGVjaXNpb25I
YW5kbGVyKSB7CiAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2FibGVkKTsK
LSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBib29s
IHJlcXVpcmVzQXVkaW9DYXB0dXJlID0gcmVxdWVzdC5yZXF1aXJlc0F1ZGlvQ2FwdHVyZSgpOwpA
QCAtOTA5LDIxICs5MTgsMjEgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9s
aWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3gKICAgICBib29sIHJl
cXVpcmVzRGlzcGxheUNhcHR1cmUgPSByZXF1ZXN0LnJlcXVpcmVzRGlzcGxheUNhcHR1cmUoKTsK
ICAgICBpZiAoIXJlcXVpcmVzQXVkaW9DYXB0dXJlICYmICFyZXF1aXJlc1ZpZGVvQ2FwdHVyZSAm
JiAhcmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSkgewogICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpO
b0NvbnN0cmFpbnRzKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGJvb2wgdXNpbmdNb2NrQ2FwdHVy
ZURldmljZXMgPSBwYWdlLnByZWZlcmVuY2VzKCkubW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCgp
OwotICAgIGF1dG8gcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb24gPSBtYWtlQmxvY2tQdHIoW3Ro
aXMsICZmcmFtZSwgcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCksIHdlYlZpZXcg
PSBSZXRhaW5QdHI8V0tXZWJWaWV3PihtX3VpRGVsZWdhdGUubV93ZWJWaWV3KSwgdXNpbmdNb2Nr
Q2FwdHVyZURldmljZXNdKCkgeworICAgIGF1dG8gcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb24g
PSBtYWtlQmxvY2tQdHIoW3RoaXMsICZmcmFtZSwgcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYo
cmVxdWVzdCksIHdlYlZpZXcgPSBSZXRhaW5QdHI8V0tXZWJWaWV3PihtX3VpRGVsZWdhdGUubV93
ZWJWaWV3KSwgdG9wTGV2ZWxPcmlnaW4gPSBtYWtlUmVmKHRvcExldmVsT3JpZ2luKSwgdXNpbmdN
b2NrQ2FwdHVyZURldmljZXNdKCkgewogCiAgICAgICAgIGlmICghcHJvdGVjdGVkUmVxdWVzdC0+
cmVxdWlyZXNWaWRlb0NhcHR1cmUoKSkgewotICAgICAgICAgICAgcmVxdWVzdFVzZXJNZWRpYUF1
dGhvcml6YXRpb25Gb3JEZXZpY2VzKGZyYW1lLCBwcm90ZWN0ZWRSZXF1ZXN0LCAoaWQgPFdLVUlE
ZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqd2ViVmlldy5n
ZXQoKSk7CisgICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1l
KGZyYW1lLCBwcm90ZWN0ZWRSZXF1ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlE
ZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqd2ViVmlldy5nZXQoKSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgQVZBdXRob3JpemF0aW9uU3RhdHVzIGNhbWVyYUF1
dGhvcml6YXRpb25TdGF0dXMgPSB1c2luZ01vY2tDYXB0dXJlRGV2aWNlcyA/IEFWQXV0aG9yaXph
dGlvblN0YXR1c0F1dGhvcml6ZWQgOiBbZ2V0QVZDYXB0dXJlRGV2aWNlQ2xhc3MoKSBhdXRob3Jp
emF0aW9uU3RhdHVzRm9yTWVkaWFUeXBlOmdldEFWTWVkaWFUeXBlVmlkZW8oKV07CiAgICAgICAg
IHN3aXRjaCAoY2FtZXJhQXV0aG9yaXphdGlvblN0YXR1cykgewogICAgICAgICBjYXNlIEFWQXV0
aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQ6Ci0gICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlh
QXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QsIChpZCA8V0tV
SURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3ZWJWaWV3
LmdldCgpKTsKKyAgICAgICAgICAgIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJh
bWUoZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QsIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91
aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3ZWJWaWV3LmdldCgpKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c0RlbmllZDoKICAgICAg
ICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNSZXN0cmljdGVkOgpAQCAtOTM1LDcgKzk0NCw3
IEBAIGJvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94CiAgICAgICAgICAgICAgICAgICAgIHByb3RlY3Rl
ZFJlcXVlc3QtPmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlh
QWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXF1ZXN0VXNl
ck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QsIChp
ZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3
ZWJWaWV3LmdldCgpKTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXph
dGlvbkZvckZyYW1lKGZyYW1lLCB0b3BMZXZlbE9yaWdpbiwgcHJvdGVjdGVkUmVxdWVzdCwgKGlk
IDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwgKndl
YlZpZXcuZ2V0KCkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIFtnZXRBVkNhcHR1
cmVEZXZpY2VDbGFzcygpIHJlcXVlc3RBY2Nlc3NGb3JNZWRpYVR5cGU6Z2V0QVZNZWRpYVR5cGVW
aWRlbygpIGNvbXBsZXRpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CkBAIC05Njgs
NTMgKzk3Nyw1MSBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveAogICAgIH0gZWxzZQogICAgICAg
ICByZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbigpOwogI2Vsc2UKLSAgICByZXF1ZXN0VXNlck1l
ZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHJlcXVlc3QsIChpZCA8V0tVSURlbGVn
YXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICptX3VpRGVsZWdhdGUu
bV93ZWJWaWV3KTsKKyAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGZy
YW1lLCB0b3BMZXZlbE9yaWdpbiwgcmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilt
X3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwgKm1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcpOwog
I2VuZGlmCiAjZW5kaWYKLQotICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFVJRGVsZWdhdGU6
OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5
JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1l
ZGlhT3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHkmIHJlcXVlc3QpCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50
OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLCBX
ZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2lu
LCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHkmIHJlcXVlc3QpCiB7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0
ZS5tX2RlbGVnYXRlLmdldCgpOwotICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5t
X2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMTWFp
bkZyYW1lVVJMRnJhbWVJZGVudGlmaWVyRGVjaXNpb25IYW5kbGVyKSB7CisgICAgaWYgKCFkZWxl
Z2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdJc01lZGlhQ2Fw
dHVyZUF1dGhvcml6ZWRGb3JGcmFtZURlY2lzaW9uSGFuZGxlcikgewogICAgICAgICByZXF1ZXN0
LnNldFVzZXJNZWRpYUFjY2Vzc0luZm8oZmFsc2UpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdLV2ViVmlldyAqd2ViVmlldyA9IG1fdWlEZWxl
Z2F0ZS5tX3dlYlZpZXc7Ci0gICAgY29uc3QgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lID0gZnJh
bWUucGFnZSgpLT5tYWluRnJhbWUoKTsKLSAgICBVUkwgcmVxdWVzdEZyYW1lVVJMKFVSTCgpLCBm
cmFtZS51cmwoKSk7Ci0gICAgVVJMIG1haW5GcmFtZVVSTChVUkwoKSwgbWFpbkZyYW1lLT51cmwo
KSk7CisgICAgY29uc3QgYXV0byBtYWluRnJhbWUgPSBmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgp
OworCisgICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3OmlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1lOmRlY2lzaW9uSGFuZGxlcjopXSkg
eworICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbcHJvdGVjdGVk
UmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCldKEJPT0wgYXV0aG9yaXplZCkgeworICAgICAgICAg
ICAgcHJvdGVjdGVkUmVxdWVzdC0+c2V0VXNlck1lZGlhQWNjZXNzSW5mbyhhdXRob3JpemVkKTsK
KyAgICAgICAgfSk7CisKKyAgICAgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdh
dGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBpc01lZGlhQ2FwdHVyZUF1dGhvcml6
ZWRGb3JGcmFtZTp3cmFwcGVyKEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUoKm1haW5GcmFtZSwgdG9w
TGV2ZWxPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSkpIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhh
bmRsZXIuZ2V0KCldOworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgYXV0byBkZWNpc2lv
bkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVl
c3QpXShOU1N0cmluZyosIEJPT0wgYXV0aG9yaXplZCkgewogICAgICAgICBwcm90ZWN0ZWRSZXF1
ZXN0LT5zZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKGF1dGhvcml6ZWQpOwogICAgIH0pOwogCi0gICAg
WyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6d2ViVmlldyBjaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDpt
YWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQoKSBkZWNpc2lvbkhhbmRs
ZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKKyAgICBVUkwgcmVxdWVzdEZyYW1lVVJMKFVSTCgp
LCBmcmFtZS51cmwoKSk7CisgICAgVVJMIG1haW5GcmFtZVVSTChVUkwoKSwgbWFpbkZyYW1lLT51
cmwoKSk7CiAKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRl
PilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGNoZWNrVXNlck1lZGlh
UGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVS
TCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUuZnJhbWVJRCgpIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lv
bkhhbmRsZXIuZ2V0KCldOwogfQogCiB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjptZWRpYUNh
cHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3Mgc3RhdGUpCiB7CiAgICAgV0tXZWJWaWV3ICp3ZWJWaWV3ID0gbV91aURlbGVnYXRlLm1fd2Vi
VmlldzsKKworICAgIFt3ZWJWaWV3IGRpZENoYW5nZVZhbHVlRm9yS2V5OkAibWVkaWFDYXB0dXJl
U3RhdGUiXTsKKwogICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5n
ZXQoKTsKICAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld01lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKQogICAgICAgICByZXR1cm47CiAK
LSAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZSBtZWRpYUNhcHR1cmVTdGF0ZSA9IF9XS01lZGlhQ2Fw
dHVyZVN0YXRlTm9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpI
YXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9
IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9uZTsKLSAgICBpZiAoc3RhdGUgJiBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCi0gICAg
ICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJh
OwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkQXVkaW9D
YXB0dXJlRGV2aWNlKQotICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1
cmVTdGF0ZU11dGVkTWljcm9waG9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKLSAgICAgICAgbWVkaWFDYXB0dXJl
U3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZENhbWVyYTsKLQotICAgIFsoaWQgPFdL
VUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3OndlYlZpZXcgbWVkaWFDYXB0dXJl
U3RhdGVEaWRDaGFuZ2U6bWVkaWFDYXB0dXJlU3RhdGVdOworICAgIFsoaWQgPFdLVUlEZWxlZ2F0
ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3OndlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRD
aGFuZ2U6dG9XS01lZGlhQ2FwdHVyZVN0YXRlKHN0YXRlKV07CiB9CiAKIHZvaWQgVUlEZWxlZ2F0
ZTo6VUlDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViUGFnZVBy
b3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCB1aW50
NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIEZ1bmN0aW9uPHZv
aWQgKHVuc2lnbmVkIGxvbmcgbG9uZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHku
aAppbmRleCBkOTFmMDRmZmRhYjhkMTQyNDU0ZDUwNjNmZTE3ZjBlYmZhODMzNGViLi42YTA4OTUw
NmNlYTM4OGQxZDRjM2Q2ZGVmZGE1ZmUwZTBhZWU1N2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgKQEAgLTQ2
LDYgKzQ2LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVc2VyTWVk
aWFQZXJtaXNzaW9uQ2hlY2tQcm94eShmcmFtZUlELCBXVEZNb3ZlKGhhbmRsZXIpLCBXVEZNb3Zl
KHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2lu
KSkpOwogICAgIH0KIAorICAgIHZvaWQgZGVueSgpIHsgc2V0VXNlck1lZGlhQWNjZXNzSW5mbyhm
YWxzZSk7IH0KICAgICB2b2lkIHNldFVzZXJNZWRpYUFjY2Vzc0luZm8oYm9vbCk7CiAgICAgdm9p
ZCBpbnZhbGlkYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRl
eCA5NWY1NTNkZDIyNWViY2FmM2RiOGY5YWQwMmI1N2E0M2E4YmNiZjgzLi43NGQ1Nzg4OTk3OGQ3
YzMxZjBkMTNjOWUxYzRjODFjOGM4ZmE0NTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwCkBAIC0zNzQsOCArMzc0LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSgKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmICghbV9wYWdlLnVpQ2xp
ZW50KCkuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QobV9wYWdlLCAq
bV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKSwgV1RGTW92ZSh1c2VyTWVkaWFPcmln
aW4pLCBXVEZNb3ZlKHRvcExldmVsT3JpZ2luKSwgcGVuZGluZ1JlcXVlc3QuZ2V0KCkpKQotICAg
ICAgICAgICAgdXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVzZXJNZWRpYUlELCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJN
ZWRpYURpc2FibGVkKTsKKyAgICAgICAgbV9wYWdlLnVpQ2xpZW50KCkuZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QobV9wYWdlLCAqbV9wYWdlLnByb2Nlc3MoKS53ZWJG
cmFtZShmcmFtZUlEKSwgV1RGTW92ZSh1c2VyTWVkaWFPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVs
T3JpZ2luKSwgcGVuZGluZ1JlcXVlc3QuZ2V0KCkpOwogICAgIH07CiAKICAgICBhdXRvIHJlcXVl
c3RJRCA9IGdlbmVyYXRlUmVxdWVzdElEKCk7CkBAIC00MTcsMTAgKzQxNiw3IEBAIHZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Np
b25JbmZvKHVpbnQ2NF90CiAgICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlhUGVybWlzc2lvbkNo
ZWNrUHJveHk6OmNyZWF0ZShmcmFtZUlELCBXVEZNb3ZlKGhhbmRsZXIpLCBXVEZNb3ZlKHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSk7CiAK
ICAgICBtX3BlbmRpbmdEZXZpY2VSZXF1ZXN0cy5hZGQocmVxdWVzdElELCByZXF1ZXN0LmNvcHlS
ZWYoKSk7Ci0gICAgaWYgKCFtX3BhZ2UudWlDbGllbnQoKS5jaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25Gb3JPcmlnaW4obV9wYWdlLCAqbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKSwg
dXNlck1lZGlhT3JpZ2luLmdldCgpLCB0b3BMZXZlbE9yaWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQo
KSkpIHsKLSAgICAgICAgbV9wZW5kaW5nRGV2aWNlUmVxdWVzdHMudGFrZShyZXF1ZXN0SUQpOwot
ICAgICAgICBoYW5kbGVyKGZhbHNlKTsKLSAgICB9CisgICAgbV9wYWdlLnVpQ2xpZW50KCkuY2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKG1fcGFnZSwgKm1fcGFnZS5wcm9jZXNzKCku
d2ViRnJhbWUoZnJhbWVJRCksIHVzZXJNZWRpYU9yaWdpbi5nZXQoKSwgdG9wTGV2ZWxPcmlnaW4u
Z2V0KCksIHJlcXVlc3QuZ2V0KCkpOwogfQogCiBib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5Ojp3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29u
c3QgU2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmgKaW5kZXggNTk4MGRjNzA5YTAwMjg1ZDBhYThlNzM1Y2QzMDgxOTdjOTExOGJkYi4uYWM4MDVl
Nzg4YmUyMzE3ZTBhN2FhZWI3MTg5MDljZjQ1YmNhODkwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApA
QCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhbGxvdygpOwogCiAgICAgZW51bSBj
bGFzcyBVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24geyBOb0NvbnN0cmFpbnRzLCBVc2VyTWVk
aWFEaXNhYmxlZCwgTm9DYXB0dXJlRGV2aWNlcywgSW52YWxpZENvbnN0cmFpbnQsIEhhcmR3YXJl
RXJyb3IsIFBlcm1pc3Npb25EZW5pZWQsIE90aGVyRmFpbHVyZSB9OwotICAgIHZvaWQgZGVueShV
c2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24pOworICAgIHZvaWQgZGVueShVc2VyTWVkaWFBY2Nl
c3NEZW5pYWxSZWFzb24gPSBVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURp
c2FibGVkKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyODMyYmI3YzRiODFhZTg5OTY1
NjY2ZWU0YjUxN2ZlMGQzMDdiMWY3Li5jZTc4OGVkMjE1YjEzOGEwOTVmN2U3ZTJjODZkMzg5YTVm
ZWExNzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTI5OTgsNiArMjk5OCw4IEBACiAJCTQxMDQ4MkNCMURERDJGQjUwMEYwMDZEMCAv
KiBSVENOZXR3b3JrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJU
Q05ldHdvcmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTA0ODJDQzFEREQy
RkI1MDBGMDA2RDAgLyogUlRDTmV0d29yay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSVENOZXR3b3JrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTE0MzYz
MjBGNjc3QjEwMDI2RjkxMiAvKiBJbmplY3RVc2VyU2NyaXB0SW1tZWRpYXRlbHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMTI4NkVGMjFDOEE5MEMwMDNBODU1MCAv
KiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxMTI4NkYwMjFDOEE5MEQwMDNBODU1MCAvKiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYUNhcHR1cmVVdGlsaXRp
ZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTJCNTQ3MUY5RkQzQUIwMEU2
Nzg3NSAvKiBOZXR3b3JrUlRDUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTmV0d29ya1JUQ1Jlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDExMkI1NDcxRjlGRDNBQjAwRTY3OTg2IC8qIE5ldHdvcmtSVENSZXNvbHZlckNv
Y29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtSVENS
ZXNvbHZlckNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMkI1NDgx
RjlGRDNBQzAwRTY3ODc1IC8qIE5ldHdvcmtSVENSZXNvbHZlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBOZXR3b3JrUlRDUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTUzMDAsNiArNTMwMiw4IEBACiAJCQkJMEYwQzM2NTkxOEMwNTU1ODAwRjYw
N0Q3IC8qIExheWVyUmVwcmVzZW50YXRpb24uaCAqLywKIAkJCQk3QTgyMUY0QjFFMkY2NjQ4MDA2
MDQ1NzcgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50LmggKi8sCiAJCQkJN0E4
MjFGNEQxRTJGNjc5RTAwNjA0NTc3IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVu
dC5tbSAqLywKKwkJCQk0MTEyODZFRjIxQzhBOTBDMDAzQTg1NTAgLyogTWVkaWFDYXB0dXJlVXRp
bGl0aWVzLmggKi8sCisJCQkJNDExMjg2RjAyMUM4QTkwRDAwM0E4NTUwIC8qIE1lZGlhQ2FwdHVy
ZVV0aWxpdGllcy5tbSAqLywKIAkJCQkxQUJDM0RGNDE4OTlFNDM3MDA0RjA2MjYgLyogTmF2aWdh
dGlvblN0YXRlLmggKi8sCiAJCQkJMUFCQzNERjMxODk5RTQzNzAwNEYwNjI2IC8qIE5hdmlnYXRp
b25TdGF0ZS5tbSAqLywKIAkJCQk1QzZDRTZEMzFGNTlFQTM1MDAwN0M2Q0IgLyogUGFnZUNsaWVu
dEltcGxDb2NvYS5oICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGU3YzAzMjRhOGNjMDJmMTM4OTZjMmQzMjMxNjllZDE4OWVkNjc5NmEuLjVj
OGQxZmJiYzcwMjRkMTllMThjYzEyMmVhZWFlYmRhZWY0YmZhNWEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOC0x
Mi0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEg
bmV3IFNQSSBmb3IgY29udHJvbGxpbmcgZ2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI3OTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL21hYy9XSzJCcm93c2Vy
V2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxl
ciBfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lOmRldmljZXM6
ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxl
ciBfd2ViVmlldzppc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTpkZWNpc2lvbkhhbmRs
ZXI6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlh
TmF2aWdhdGlvbi5tbToKKyAgICAgICAgKC1bTmF2aWdhdGlvbldoaWxlR2V0VXNlck1lZGlhUHJv
bXB0RGlzcGxheWVkVUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9y
aXphdGlvbkZvckZyYW1lOmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0Lm1tOgorICAgICAg
ICAoLVtHZXRVc2VyTWVkaWFSZXByb21wdFVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVzdE1lZGlh
Q2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0
YWNoZWQubW06CisgICAgICAgICgtW01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUg
X3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZpY2Vz
OmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1tOgorICAgICAgICAoLVtVc2VyTWVkaWFVSURlbGVn
YXRlIF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2
aWNlczpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1VzZXJNZWRpYVVJRGVsZWdhdGUg
X3dlYlZpZXc6aXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWU6ZGVjaXNpb25IYW5kbGVy
Ol0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlh
U2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tOgorICAgICAgICAoLVtTaW11bGF0ZUZhaWxlZFNhbmRi
b3hVSURlbGVnYXRlIF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9y
RnJhbWU6ZGV2aWNlczpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1NpbXVsYXRlRmFp
bGVkU2FuZGJveFVJRGVsZWdhdGUgX3dlYlZpZXc6aXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9y
RnJhbWU6ZGVjaXNpb25IYW5kbGVyOl0pOgorCiAyMDE4LTEyLTE3ICBEYW5pZWwgQmF0ZXMgIDxk
YWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IGNvbmNhdGVuYXRpbmcgU3RyaW5n
VmlldyB3aXRoIG90aGVyIHN0cmluZyB0eXBlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dz
ZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gYi9Ub29scy9NaW5pQnJvd3Nlci9t
YWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQppbmRleCAzZTczOWQ3YzkxNTUzOGUwMDMy
OWNmZjBjMDQ3YWFhNzBmZDRhMWJmLi45YjQ4MTJjMTc0Y2MzMTRjZDE4ZjQxZmUxM2M5YjUwYjcz
MTg5OWY1IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRv
d0NvbnRyb2xsZXIubQorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRv
d0NvbnRyb2xsZXIubQpAQCAtNzkxLDE0ICs3OTEsMTQgQEAgLSAodm9pZClmaW5kQmFyVmlld0Rp
ZENoYW5nZUhlaWdodAogewogfQogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURl
dmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWlu
RnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lz
aW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0
VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyAqKSBtYWluRnJhbWUg
ZGV2aWNlczogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lk
ICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgogewogICAgIGRlY2lzaW9uSGFu
ZGxlcih0cnVlKTsKIH0KIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBj
aGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDoo
TlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRl
bnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1
dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBpc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTooV0tGcmFtZUluZm8gKikg
bWFpbkZyYW1lIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNp
c2lvbkhhbmRsZXIKIHsKLSAgICBkZWNpc2lvbkhhbmRsZXIoQCIiLCBmYWxzZSk7CisgICAgZGVj
aXNpb25IYW5kbGVyKGZhbHNlKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0KaW5kZXgg
NDIxZWVhNDI5MmNiYWIxNGU5NDZmNzk4YTM1ZGViNzNmODJiMzUwOC4uNmFmNmNmYTk4MzBmYTRj
NWRhNzc3YmZiODMwYWMxMTgyNDEyYmUzNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tCkBAIC00Miwx
MiArNDIsMTIgQEAgc3RhdGljIGJvb2wgb2tUb1Byb2NlZWQgPSBmYWxzZTsKIHN0YXRpYyBib29s
IHNob3VsZFJlbGVhc2VJbkVudW1lcmF0ZSA9IGZhbHNlOwogCiBAaW50ZXJmYWNlIE5hdmlnYXRp
b25XaGlsZUdldFVzZXJNZWRpYVByb21wdERpc3BsYXllZFVJRGVsZWdhdGUgOiBOU09iamVjdDxX
S1VJRGVsZWdhdGU+Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVl
c3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2
aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwg
ZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxl
cjsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2Fw
dHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTooV0tGcmFtZUluZm8qKSBtYWluRnJhbWUgZGV2aWNl
czogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShC
T09MKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1l
VVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJh
bWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJP
T0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24g
TmF2aWdhdGlvbldoaWxlR2V0VXNlck1lZGlhUHJvbXB0RGlzcGxheWVkVUlEZWxlZ2F0ZQotLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9y
aXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAq
KXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoo
dm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25G
b3JGcmFtZTooV0tGcmFtZUluZm8qKSBtYWluRnJhbWUgZGV2aWNlczogKF9XS0NhcHR1cmVEZXZp
Y2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRs
ZXIKIHsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRo
VVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiYWJvdXQ6YmxhbmsiXV1dOwogICAgIFt3ZWJWaWV3
IHJlbGVhc2VdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
R2V0VXNlck1lZGlhUmVwcm9tcHQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQppbmRleCBjNDMyZmNhZTVlOGZjNTk3OTEyMzNlNTBi
ZGJiNzUzMmNiYWM0ZjdlLi5kOWRiNjU3ZDUwYjA0M2JkMGJmMmRiZjEyODE0YmVmY2M5Y2FhZTdm
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVk
aWFSZXByb21wdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRV
c2VyTWVkaWFSZXByb21wdC5tbQpAQCAtNDEsMTIgKzQxLDEyIEBACiBzdGF0aWMgYm9vbCB3YXNQ
cm9tcHRlZCA9IGZhbHNlOwogCiBAaW50ZXJmYWNlIEdldFVzZXJNZWRpYVJlcHJvbXB0VUlEZWxl
Z2F0ZSA6IE5TT2JqZWN0PFdLVUlEZWxlZ2F0ZT4KLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tD
YXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VS
TCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXpl
ZCkpZGVjaXNpb25IYW5kbGVyOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyop
IG1haW5GcmFtZSBkZXZpY2VzOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhh
bmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcjsKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VS
TCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmll
cjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShO
U1N0cmluZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CiBAZW5kCiAK
IEBpbXBsZW1lbnRhdGlvbiBHZXRVc2VyTWVkaWFSZXByb21wdFVJRGVsZWdhdGUKLS0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRp
b25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwg
bWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQg
KF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJh
bWU6KFdLRnJhbWVJbmZvKikgbWFpbkZyYW1lIGRldmljZXM6IChfV0tDYXB0dXJlRGV2aWNlcylk
ZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyCiB7
CiAgICAgd2FzUHJvbXB0ZWQgPSB0cnVlOwogICAgIGRlY2lzaW9uSGFuZGxlcihZRVMpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFj
a0RldGFjaGVkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJl
YW1UcmFja0RldGFjaGVkLm1tCmluZGV4IDFlY2NkMGE2ZWUzMzE2NDI2MzJkNGQ1YzZkZjBiYmNk
MDJhZTJmNDMuLmNhYTc5ZGQ0YTI1ZTVhMTVkZWJiZDU1NDYxZmFjYTRmNjBiNjYxNGQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlhU3RyZWFtVHJhY2tE
ZXRhY2hlZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0
cmVhbVRyYWNrRGV0YWNoZWQubW0KQEAgLTQwLDEzICs0MCwxMyBAQAogc3RhdGljIGJvb2wgaGFz
UmVjaWV2ZWRDb3JyZWN0Q2FwdHVyZVN0YXRlID0gZmFsc2U7CiAKIEBpbnRlcmZhY2UgTWVkaWFT
dHJlYW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0ZSA6IE5TT2JqZWN0PFdLVUlEZWxlZ2F0ZT4KLS0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhv
cml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwg
Kil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6
KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOworLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlv
bkZvckZyYW1lOihXS0ZyYW1lSW5mbyopIG1haW5GcmFtZSBkZXZpY2VzOiAoX1dLQ2FwdHVyZURl
dmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFu
ZGxlcjsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVk
aWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFp
bkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVj
aXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSlk
ZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IG1l
ZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZTsKIEBl
bmQKIAogQGltcGxlbWVudGF0aW9uIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUK
LS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1
dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNV
UkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRs
ZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCistICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0
aW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvKikgbWFpbkZyYW1lIGRldmljZXM6IChfV0tDYXB0dXJl
RGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25I
YW5kbGVyCiB7CiAgICAgZGVjaXNpb25IYW5kbGVyKFlFUyk7CiB9CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5t
bQppbmRleCA4ODMzM2MzZmJiNjgwZTE2NWU3ZjI2MWE2MjZlNWIxZDEzMWIzYmFiLi4xMDg1YzVl
YzM3OGZlNjk3ODMwMWJmMjJiOWUyZjgwMzUyM2M1NmU0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW0K
QEAgLTM5LDcgKzM5LDYgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLXN0YXRpYyBib29sIHJl
ZnVzZVJlcXVlc3QgPSBmYWxzZTsKIHN0YXRpYyBib29sIHdhc1Byb21wdGVkID0gZmFsc2U7CiAK
IHN0YXRpYyBib29sIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwpAQCAtNjIsMTUgKzYx
LDEwIEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFVzZXJNZWRpYVVJRGVsZWdhdGUKIAotLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9y
aXphdGlvbkZvckRldmljZXM6KE5TVUludGVnZXIpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1h
aW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkIChe
KShCT09MKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTooV0tGcmFtZUlu
Zm8qKSBtYWluRnJhbWUgZGV2aWNlczogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICB3YXNQcm9t
cHRlZCA9IHRydWU7CiAKLSAgICBpZiAocmVmdXNlUmVxdWVzdCkgewotICAgICAgICBkZWNpc2lv
bkhhbmRsZXIoTk8pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgQk9PTCBuZWVkc01p
Y3JvcGhvbmVBdXRob3JpemVkID0gZGV2aWNlcyAmIF9XS0NhcHR1cmVEZXZpY2VNaWNyb3Bob25l
OwogICAgIEJPT0wgbmVlZHNDYW1lcmFBdXRob3JpemVkID0gZGV2aWNlcyAmIF9XS0NhcHR1cmVE
ZXZpY2VDYW1lcmE7CiAgICAgaWYgKCFuZWVkc01pY3JvcGhvbmVBdXRob3JpemVkICYmICFuZWVk
c0NhbWVyYUF1dGhvcml6ZWQpIHsKQEAgLTgxLDE0ICs3NSw5IEBAIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZp
Y2VzOihOCiAgICAgZGVjaXNpb25IYW5kbGVyKFlFUyk7CiB9CiAKLS0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VS
TCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmll
cjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShO
U1N0cmluZyAqLCBCT09MKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgaXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWU6KFdLRnJhbWVJ
bmZvICopIG1haW5GcmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXpl
ZCkpZGVjaXNpb25IYW5kbGVyCiB7Ci0gICAgaWYgKHJlZnVzZVJlcXVlc3QpIHsKLSAgICAgICAg
ZGVjaXNpb25IYW5kbGVyKG5pbCwgTk8pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
ZGVjaXNpb25IYW5kbGVyKEAiMHg5ODc2NTQzMjEiLCBOTyk7CisgICAgZGVjaXNpb25IYW5kbGVy
KE5PKTsKIH0KIEBlbmQKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJv
eC5tbQppbmRleCBjNzNjOTg5OTRlNDE3MzM0OTAyNTUyYTg3OGRlZjVkMTcyMjViZGY0Li45Y2Q5
ODVmNzlmMTRmMzU2OTZlNTk2ZGFhMTNhOTNjYTMwNGE4NDI2IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2Fu
ZGJveC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJN
ZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbQpAQCAtMzksNyArMzksNiBAQAogCiAjaWYgV0tf
QVBJX0VOQUJMRUQKIAotc3RhdGljIGJvb2wgcmVmdXNlUmVxdWVzdCA9IGZhbHNlOwogc3RhdGlj
IGJvb2wgd2FzUHJvbXB0ZWQgPSBmYWxzZTsKIAogc3RhdGljIGJvb2wgcmVjZWl2ZWRTY3JpcHRN
ZXNzYWdlID0gZmFsc2U7CkBAIC02MiwxNSArNjEsMTAgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRp
b24gU2ltdWxhdGVGYWlsZWRTYW5kYm94VUlEZWxlZ2F0ZQogCi0tICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNl
czooTlNVSW50ZWdlcilkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VS
TCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9u
SGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVk
aWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyopIG1haW5GcmFtZSBk
ZXZpY2VzOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQg
KF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgogewogICAgIHdhc1Byb21wdGVkID0gdHJ1ZTsKIAot
ICAgIGlmIChyZWZ1c2VSZXF1ZXN0KSB7Ci0gICAgICAgIGRlY2lzaW9uSGFuZGxlcihOTyk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBCT09MIG5lZWRzTWljcm9waG9uZUF1dGhvcml6
ZWQgPSBkZXZpY2VzICYgX1dLQ2FwdHVyZURldmljZU1pY3JvcGhvbmU7CiAgICAgQk9PTCBuZWVk
c0NhbWVyYUF1dGhvcml6ZWQgPSBkZXZpY2VzICYgX1dLQ2FwdHVyZURldmljZUNhbWVyYTsKICAg
ICBpZiAoIW5lZWRzTWljcm9waG9uZUF1dGhvcml6ZWQgJiYgIW5lZWRzQ2FtZXJhQXV0aG9yaXpl
ZCkgewpAQCAtODEsMTQgKzc1LDkgQEAgLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KE4KICAgICBkZWNp
c2lvbkhhbmRsZXIoWUVTKTsKIH0KIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFt
ZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZy
YW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICosIEJPT0wp
KWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBp
c01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTooV0tGcmFtZUluZm8gKikgbWFpbkZyYW1l
IGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRs
ZXIKIHsKLSAgICBpZiAocmVmdXNlUmVxdWVzdCkgewotICAgICAgICBkZWNpc2lvbkhhbmRsZXIo
bmlsLCBOTyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkZWNpc2lvbkhhbmRsZXIo
QCIweDk4NzY1NDMyMSIsIE5PKTsKKyAgICBkZWNpc2lvbkhhbmRsZXIoTk8pOwogfQogQGVuZAog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357605</attachid>
            <date>2018-12-18 13:40:18 -0800</date>
            <delta_ts>2018-12-18 17:28:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192793-20181218134017.patch</filename>
            <type>text/plain</type>
            <size>52852</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MjgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNjOWM0YWI0ZmE0YzdkY2E0
NTY5NjJiZmYyNTkxZjRjMDgyZDMxN2IuLjAwMWUyZmEyOWE4Nzg4NTg4ZDZlYzU0MjcxMDc1N2Yz
NWU5ZmZjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTgtMTItMTcgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgZm9yIGNv
bnRyb2xsaW5nIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyNzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU29tZSB3ZWFrbmVzc2VzIG9mIHRoZSBjdXJyZW50IGdldFVzZXJNZWRp
YSBTUEkgd2VyZSBmb3VuZC4KKyAgICAgICAgSW4gcGFydGljdWxhcjoKKyAgICAgICAgLSBUaGUg
aGFzaCBzYWx0IHNob3VsZCBiZSBoYW5kbGVkIGJ5IFdlYktpdAorICAgICAgICAtIE5vIG5lZWQg
dG8gZXhwb3NlIHRoZSBmcmFtZSBVUkwsIG9ubHkgdGhlIHRvcCBsZXZlbCBvcmlnaW4gaXMgbmVl
ZGVkCisgICAgICAgIC0gVGhlIG5hbWVzIG9mIHRoZSBjYWxsYmFjayBjYW4gYmUgaW1wcm92ZWQu
CisgICAgICAgIEFkZHJlc3NlZCB0aGVzZSBieSBjcmVhdGluZyBhIG5ldyBTUEkgd2hpY2ggd2ls
bCByZXBsYWNlIHRoZSBjdXJyZW50IG9uZS4KKyAgICAgICAgVGhlIGN1cnJlbnQgU1BJIHdpbGwg
YmUgcmVtb3ZlZCBsYXRlciBvbi4KKworICAgICAgICBEaWQgc29tZSByZWZhY3RvcmluZyBieSBt
YWtpbmcgdGhlIGNhbGxiYWNrcyBub3QgcmV0dXJuaW5nIGZhbHNlLgorICAgICAgICBJbnN0ZWFk
LCBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgYmVoYXZpb3IgaW5zaWRlIHRoZSByZXF1ZXN0IG9iamVj
dHMgYXMgZGVueSBtZXRob2RzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVu
dC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfbWVkaWFDYXB0dXJl
U3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRNZWRpYUNhcHR1cmVNdXRlZDpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbTogQWRkZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6c2V0RGVsZWdh
dGUpOgorICAgICAgICAoV2ViS2l0OjpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGlj
eUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxl
Z2F0ZTo6VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbik6CisgICAg
ICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENo
YW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpkZW55
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRVc2Vy
TWVkaWFQZXJtaXNzaW9uSW5mbyk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaDoKKwogMjAxOC0xMi0xNyAgWmFuIERvYmVyc2VrICA8emRvYmVy
c2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBXUEUgYnVpbGQgZml4IGFmdGVy
IHIyMzkyNzcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggZjFhMDU3YTQ1ZGIwZmEzNWNlMTBk
Y2Y0MTk2OTNlZmU4MThhNmRhMy4uZWI2OWE1M2QyMjcyMDQyOWZhODc5ZmZiZTUzZGY4Nzg1NThj
NWM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMzE5LDYgKzMxOSw3IEBAIFVJUHJvY2Vz
cy9Db2NvYS9GaW5kQ2xpZW50Lm1tCiBVSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5t
bQogVUlQcm9jZXNzL0NvY29hL0ljb25Mb2FkaW5nRGVsZWdhdGUubW0KIFVJUHJvY2Vzcy9Db2Nv
YS9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0KK1VJUHJvY2Vzcy9Db2NvYS9N
ZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0KIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUu
bW0KIFVJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tCiBVSVByb2Nlc3MvQ29j
b2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDQzZmY3NjNiOTA0OGNjNDBhOTY3ZDk0NTZiYmUwM2Fj
YmI5NTAyN2MuLjAzZDEyMzAwZDE3MTY5ZjQ3YzgxZGMyNjAxYTZhNDA3MTdkNzBhYWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0xMjksOCArMTI5LDgg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHJ1bk9wZW5QYW5lbChXZWJLaXQ6OldlYlBh
Z2VQcm94eSosIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYsIE9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJLaXQ6OldlYk9wZW5QYW5lbFJl
c3VsdExpc3RlbmVyUHJveHkqKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFn
ZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBGdW5jdGlv
bjx2b2lkKGJvb2wpPiYpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2Vi
RnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgU2VjdXJpdHlPcmlnaW4mLCBXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZp
cnR1YWwgYm9vbCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViS2l0OjpXZWJQ
YWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIFNlY3Vy
aXR5T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVBy
b3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6Oldl
YkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIFNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0OjpV
c2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7IH0KICAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0
OjpXZWJGcmFtZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmIHJlcXVlc3RpbmdEb21haW4sIGNv
bnN0IFdURjo6U3RyaW5nJiBjdXJyZW50RG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDJjZTM4YmJmNzg5
NzM4ZGM1YTQxZTgzNTA4ODBmYWJhOTc4ZWM2NDIuLmJkMWVmY2FjNmY4MjU0YWM1ZjhmMjRjYzBi
MDM5YjBjMDg4OGI3N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cApAQCAtMTg1NSwyMiArMTg1NSwyNCBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1Bh
Z2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogICAgICAg
ICAgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dCh0b0FQSSgmcGFnZSksIHRvQVBJKCZmcmFtZSksIHRvQVBJKCZvcmlnaW4pLCB0b0FQSShHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUoc3RkOjpleGNoYW5nZShjb21wbGV0aW9u
SGFuZGxlciwgbnVsbHB0cikpLnB0cigpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAg
ICAgICAgfQogCi0gICAgICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpT
ZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmln
aW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5hbAorICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQ
cm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5JiBwZXJtaXNzaW9uUmVxdWVzdCkgZmluYWwKICAgICAgICAg
ewotICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
KSB7CisgICAgICAgICAgICAgICAgcGVybWlzc2lvblJlcXVlc3QuZGVueSgpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgbV9jbGllbnQuZGVj
aWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QodG9BUEkoJnBhZ2UpLCB0b0FQ
SSgmZnJhbWUpLCB0b0FQSSgmdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCB0b0FQSSgmdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiksIHRvQVBJKCZwZXJtaXNzaW9uUmVxdWVzdCksIG1fY2xpZW50LmJh
c2UuY2xpZW50SW5mbyk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCi0g
ICAgICAgIGJvb2wgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94
eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcmVxdWVzdCkgZmluYWwKKyAg
ICAgICAgdm9pZCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5
JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KSBmaW5hbAogICAg
ICAgICB7Ci0gICAgICAgICAgICBpZiAoIW1fY2xpZW50LmNoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkZvck9yaWdpbikKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBp
ZiAoIW1fY2xpZW50LmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbikgeworICAgICAg
ICAgICAgICAgIHJlcXVlc3QuZGVueSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgbV9jbGllbnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yT3JpZ2luKHRvQVBJKCZwYWdlKSwgdG9BUEkoJmZyYW1lKSwgdG9BUEkoJnVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luKSwgdG9BUEkoJnRvcExldmVsRG9jdW1lbnRPcmlnaW4pLCB0b0FQSSgmcmVx
dWVzdCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJp
dHlPcmlnaW4mIG9yaWdpbiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikgZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IDQ2Yzk1MTdhZjBlZmFlYjQ2YWM5MmE0OGY4MmRl
NWE4YTlmNTUwMDIuLmI5YTkyOTExNDFiZjBmYjZkNmZjZmUxMWI5Nzc5MjkxYmQ0MjEwZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxl
Z2F0ZVByaXZhdGUuaApAQCAtMTA1LDYgKzEwNSw4IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAK
IC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaW1hZ2VPck1lZGlhRG9jdW1l
bnRTaXplQ2hhbmdlZDooQ0dTaXplKXNpemUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIp
LCBpb3MoMTAuMCkpOwogLSAoTlNEaWN0aW9uYXJ5ICopX2RhdGFEZXRlY3Rpb25Db250ZXh0Rm9y
V2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MiksIGlvcygxMC4wKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJl
cXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvICopbWFp
bkZyYW1lIGRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVy
Oih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWU6
KFdLRnJhbWVJbmZvICopbWFpbkZyYW1lIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBh
dXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVy
ZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKilt
YWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRl
Y2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7
CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVy
bWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFt
ZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpOwog
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURp
ZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMpLCBpb3MoMTEuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KaW5kZXggYmEyMDQ4ZWFiYWFiNjhjZDczMzgyNWM2NGY4YjkyMGZh
Yjk2NDQxZS4uZGIzNGRkMTU3MjcwYTAxZGJkMmI5MmNkOTE4NTA4YmZlMjFmNzBiMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC00MCw2
ICs0MCw3IEBACiAjaW1wb3J0ICJJY29uTG9hZGluZ0RlbGVnYXRlLmgiCiAjaW1wb3J0ICJMZWdh
Y3lTZXNzaW9uU3RhdGVDb2RpbmcuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgIk1l
ZGlhQ2FwdHVyZVV0aWxpdGllcy5oIgogI2ltcG9ydCAiTmF2aWdhdGlvblN0YXRlLmgiCiAjaW1w
b3J0ICJPYmpDT2JqZWN0R3JhcGguaCIKICNpbXBvcnQgIlBhZ2VDbGllbnQuaCIKQEAgLTU0Mzgs
NiArNTQzOSwxNiBAQCAtIChCT09MKV9pc0luRnVsbHNjcmVlbgogI2VuZGlmCiB9CiAKKy0gKF9X
S01lZGlhQ2FwdHVyZVN0YXRlKV9tZWRpYUNhcHR1cmVTdGF0ZQoreworICAgIHJldHVybiBXZWJL
aXQ6OnRvV0tNZWRpYUNhcHR1cmVTdGF0ZShfcGFnZS0+bWVkaWFTdGF0ZUZsYWdzKCkpOworfQor
CistICh2b2lkKV9zZXRNZWRpYUNhcHR1cmVNdXRlZDooQk9PTCltdXRlZAoreworICAgIF9wYWdl
LT5zZXRNZWRpYVN0cmVhbUNhcHR1cmVNdXRlZChtdXRlZCk7Cit9CisKIC0gKHZvaWQpX211dGVN
ZWRpYUNhcHR1cmUKIHsKICAgICBfcGFnZS0+c2V0TWVkaWFTdHJlYW1DYXB0dXJlTXV0ZWQodHJ1
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaAppbmRleCAxNzBjMmFhZWZhMTUwYjQxZjk5NmNjZTQ2OGNlMzI3NzliYWQ2Zjhm
Li5mYTFjOGQ0NDlhZTZhOGIzYmQyZmIxNTdmODg5ZWNmOGE0M2FiOWFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAg
LTM5MCw2ICszOTAsOSBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVk
Z2UpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEZ1bGxzY3JlZW5EZWxlZ2F0
ZTopIGlkPF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4gX2Z1bGxzY3JlZW5EZWxlZ2F0ZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIEJPT0wgX2lzSW5GdWxsc2NyZWVuIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEyLjMpKTsKIAorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tNZWRpYUNh
cHR1cmVTdGF0ZSBfbWVkaWFDYXB0dXJlU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKKy0gKHZvaWQpX3NldE1lZGlhQ2FwdHVyZU11
dGVkOihCT09MKW11dGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwogLSAodm9pZClfbXV0ZU1lZGlhQ2FwdHVyZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiAtICh2b2lkKV9zZXRQYWdlTXV0ZWQ6KF9XS01l
ZGlhTXV0ZWRTdGF0ZSltdXRlZFN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwg
aW9zKDExLjApKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0VUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0VUlDbGllbnQuY3BwCmluZGV4IDFjNzY4ODY5MDc4MWYyYTA5YzBjOGI3YjQ4Zjc4ZThl
ZWU1NTY5MGYuLmM1MmIxNzBjNTM5YmU3NTlhYmJkZDE0YTEzNDU2ZTdkMTI3ZDY5MjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5j
cHAKQEAgLTE4NCwxOCArMTg0LDE2IEBAIHByaXZhdGU6CiAgICAgICAgIHdlYmtpdFdlYlZpZXdN
YWtlUGVybWlzc2lvblJlcXVlc3QobV93ZWJWaWV3LCBXRUJLSVRfUEVSTUlTU0lPTl9SRVFVRVNU
KGdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuZ2V0KCkpKTsKICAgICB9CiAKLSAgICBib29s
IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYs
IFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcGVybWlzc2lvblJlcXVlc3QpIGZpbmFsCisgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJv
eHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5hbAog
ICAgIHsKICAgICAgICAgR1JlZlB0cjxXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdD4g
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBhZG9wdEdSZWYod2Via2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RDcmVhdGUocGVybWlzc2lvblJlcXVlc3QsIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luKSk7CiAgICAgICAgIHdlYmtpdFdlYlZpZXdN
YWtlUGVybWlzc2lvblJlcXVlc3QobV93ZWJWaWV3LCBXRUJLSVRfUEVSTUlTU0lPTl9SRVFVRVNU
KHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIAotICAgIGJvb2wgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdl
YlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVz
ZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcGVybWlzc2lvblJlcXVl
c3QpIG92ZXJyaWRlCisgICAgdm9pZCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4o
V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYg
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9j
dW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiBwZXJtaXNzaW9uUmVx
dWVzdCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGF1dG8gZGV2aWNlSW5mb1Blcm1pc3Npb25S
ZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdERldmljZUluZm9QZXJtaXNzaW9uUmVxdWVzdENyZWF0
ZShwZXJtaXNzaW9uUmVxdWVzdCwgcGFnZS53ZWJzaXRlRGF0YVN0b3JlKCkuZGV2aWNlSWRIYXNo
U2FsdFN0b3JhZ2UoKSkpOwogICAgICAgICB3ZWJraXRXZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1
ZXN0KG1fd2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVChkZXZpY2VJbmZvUGVybWlz
c2lvblJlcXVlc3QuZ2V0KCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdl
UHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikgZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjVmOTM4YmFmNTZkYWU5
ZGFlODU2ZTdjMTI1N2YxZDQ3NTFiNzVlNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5oCkBAIC0wLDAgKzEsMzUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2ltcG9ydCAiV0tXZWJWaWV3UHJpdmF0
ZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitfV0tNZWRpYUNhcHR1cmVTdGF0ZSB0b1dLTWVkaWFDYXB0dXJlU3RhdGUoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1
cmVVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1
cmVVdGlsaXRpZXMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDVhNmM4MTFlZWNhMWVjZWJmM2ZlOTQ2YjBmMmYw
YmE3YjYzNTYwYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbQpAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhQ2FwdHVyZVV0aWxpdGllcy5o
IgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworX1dLTWVkaWFDYXB0dXJlU3RhdGUgdG9XS01lZGlh
Q2FwdHVyZVN0YXRlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0
ZSkKK3sKKyAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZSBtZWRpYUNhcHR1cmVTdGF0ZSA9IF9XS01l
ZGlhQ2FwdHVyZVN0YXRlTm9uZTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgICAgIG1lZGlhQ2FwdHVyZVN0
YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9uZTsKKyAgICBpZiAoc3Rh
dGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2Up
CisgICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZl
Q2FtZXJhOworICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVk
QXVkaW9DYXB0dXJlRGV2aWNlKQorICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRp
YUNhcHR1cmVTdGF0ZU11dGVkTWljcm9waG9uZTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKKyAgICAgICAgbWVkaWFD
YXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZENhbWVyYTsKKworICAgIHJl
dHVybiBtZWRpYUNhcHR1cmVTdGF0ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggMzhkZDdlY2JjZmI1
ZjJhNjBmYzg2Yzk4YmU4YjBmMzFhODU0ZmY4Ni4uOGZkMTZhOTgxMmMwNGFkZjA4NWU1NDRhZWUz
ODA0YzgyMmQ1ZjE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaApAQCAtMTIzLDggKzEyMyw4IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICAgICAgYm9vbCBu
ZWVkc0ZvbnRBdHRyaWJ1dGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV91aURlbGVnYXRlLm1f
ZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRDaGFuZ2VGb250QXR0cmlidXRlczsgfQogICAgICAg
ICB2b2lkIGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZvbnRBdHRyaWJ1
dGVzJikgZmluYWw7Ci0gICAgICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlP
cmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eSYpIGZpbmFsOwotICAgICAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9y
aWdpbihXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYs
IEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIGZp
bmFsOworICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwg
QVBJOjpTZWN1cml0eU9yaWdpbiYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSBm
aW5hbDsKKyAgICAgICAgdm9pZCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2Vi
UGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNl
Y3VyaXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmKSBmaW5hbDsKICAg
ICAgICAgdm9pZCBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOwogICAgICAgICB2b2lkIHByaW50RnJhbWUoV2Vi
UGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYpIGZpbmFsOwogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCkBAIC0xOTgsOCArMTk4LDggQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3RnVs
bHNjcmVlbk1heVJldHVyblRvSW5saW5lIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRW50
ZXJGdWxsc2NyZWVuIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW4g
OiAxOwotICAgICAgICBib29sIHdlYlZpZXdSZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZv
ckRldmljZXNVUkxNYWluRnJhbWVVUkxEZWNpc2lvbkhhbmRsZXIgOiAxOwotICAgICAgICBib29s
IHdlYlZpZXdDaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVVUkxGcmFtZUlk
ZW50aWZpZXJEZWNpc2lvbkhhbmRsZXIgOiAxOworICAgICAgICBib29sIHdlYlZpZXdSZXF1ZXN0
TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lRGVjaXNpb25IYW5kbGVyIDogMTsKKyAg
ICAgICAgYm9vbCB3ZWJWaWV3SXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWVEZWNpc2lv
bkhhbmRsZXIgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdNZWRpYUNhcHR1cmVTdGF0ZURpZENo
YW5nZSA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1dGVzIDog
MTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUubW0KaW5kZXggY2U4NGE4ODg0Nzg5NzM1ZDFhMTMyYjFlYjZlYTZkZTI4
MDNhNzg2ZC4uZjY1YzExMDIyMTZlYTg5NzQ5NTc4ZDAxN2NmZDE4NjQzYjc1ZWYwMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0zMSw2ICszMSw3
IEBACiAjaW1wb3J0ICJBUElGcmFtZUluZm8uaCIKICNpbXBvcnQgIkFQSUhpdFRlc3RSZXN1bHQu
aCIKICNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCIKKyNpbXBvcnQgIk1l
ZGlhQ2FwdHVyZVV0aWxpdGllcy5oIgogI2ltcG9ydCAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgog
I2ltcG9ydCAiTmF2aWdhdGlvbkFjdGlvbkRhdGEuaCIKICNpbXBvcnQgIlVzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5LmgiCkBAIC0xNTAsOCArMTUxLDkgQEAgdm9pZCBVSURlbGVnYXRlOjpz
ZXREZWxlZ2F0ZShpZCA8V0tVSURlbGVnYXRlPiBkZWxlZ2F0ZSkKICAgICBtX2RlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3RGlkTm90SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQgPSBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWROb3RIYW5kbGVUYXBBc0NsaWNr
QXRQb2ludDopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5wcmVzZW50aW5nVmlld0NvbnRyb2xs
ZXJGb3JXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3By
ZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6KV07CiAjZW5kaWYKLSAgICBtX2RlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2Vz
VVJMTWFpbkZyYW1lVVJMRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JE
ZXZpY2VzOnVybDptYWluRnJhbWVVUkw6ZGVjaXNpb25IYW5kbGVyOildOwotICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdDaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVV
UkxGcmFtZUlkZW50aWZpZXJEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6
bWFpbkZyYW1lVVJMOmZyYW1lSWRlbnRpZmllcjpkZWNpc2lvbkhhbmRsZXI6KV07CisgICAgbV9k
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9y
RnJhbWVEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3Rvcihfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6dXJs
Om1haW5GcmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6KV0gfHwgW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRp
b25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjopXTsKKyAgICBtX2RlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3SXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWVEZWNpc2lvbkhhbmRs
ZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpjaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6bWFpbkZyYW1lVVJMOmZyYW1lSWRlbnRpZmllcjpk
ZWNpc2lvbkhhbmRsZXI6KV0gfHwgW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXc6aXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWU6ZGVjaXNpb25IYW5k
bGVyOildOworCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld01lZGlhQ2FwdHVyZVN0YXRl
RGlkQ2hhbmdlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZp
ZXc6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMu
d2ViVmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1dGVzID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXM6KV07CiAgICAg
bV9kZWxlZ2F0ZU1ldGhvZHMuZGF0YURldGVjdGlvbkNvbnRleHRGb3JXZWJWaWV3ID0gW2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX2RhdGFEZXRlY3Rpb25Db250ZXh0Rm9y
V2ViVmlldzopXTsKQEAgLTg1NSw3ICs4NTcsNyBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50
OjpydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSogd2ViRnJhbWVQcgog
I2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotc3RhdGljIHZvaWQgcmVxdWVzdFVz
ZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzKGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1l
LCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0LCBpZCA8V0tVSURlbGVn
YXRlUHJpdmF0ZT4gZGVsZWdhdGUsIFdLV2ViVmlldyYgd2ViVmlldykKK3N0YXRpYyB2b2lkIHJl
cXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWUoY29uc3QgV2ViRnJhbWVQcm94eSYg
ZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0LCBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gZGVs
ZWdhdGUsIFdLV2ViVmlldyYgd2ViVmlldykKIHsKICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9
IG1ha2VCbG9ja1B0cihbcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCldKEJPT0wg
YXV0aG9yaXplZCkgewogICAgICAgICBpZiAoIWF1dGhvcml6ZWQpIHsKQEAgLTg2NywxMCArODY5
LDYgQEAgc3RhdGljIHZvaWQgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2Vz
KGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLAogICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0LT5h
bGxvdyhhdWRpb0RldmljZVVJRCwgdmlkZW9EZXZpY2VVSUQpOwogICAgIH0pOwogCi0gICAgY29u
c3QgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lID0gZnJhbWUucGFnZSgpLT5tYWluRnJhbWUoKTsK
LSAgICBVUkwgcmVxdWVzdEZyYW1lVVJMKFVSTCgpLCBmcmFtZS51cmwoKSk7Ci0gICAgVVJMIG1h
aW5GcmFtZVVSTChVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSk7Ci0KICAgICBfV0tDYXB0dXJlRGV2
aWNlcyBkZXZpY2VzID0gMDsKICAgICBpZiAocmVxdWVzdC5yZXF1aXJlc0F1ZGlvQ2FwdHVyZSgp
KQogICAgICAgICBkZXZpY2VzIHw9IF9XS0NhcHR1cmVEZXZpY2VNaWNyb3Bob25lOwpAQCAtODgx
LDggKzg3OSwxOSBAQCBzdGF0aWMgdm9pZCByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZv
ckRldmljZXMoY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsCiAgICAgICAgIEFTU0VSVCghKGRl
dmljZXMgJiBfV0tDYXB0dXJlRGV2aWNlQ2FtZXJhKSk7CiAgICAgfQogCi0gICAgYXV0byBwcm90
ZWN0ZWRXZWJWaWV3ID0gUmV0YWluUHRyPFdLV2ViVmlldz4oJndlYlZpZXcpOwotICAgIFtkZWxl
Z2F0ZSBfd2ViVmlldzpwcm90ZWN0ZWRXZWJWaWV3LmdldCgpIHJlcXVlc3RVc2VyTWVkaWFBdXRo
b3JpemF0aW9uRm9yRGV2aWNlczpkZXZpY2VzIHVybDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1l
VVJMOm1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsK
KyAgICBjb25zdCBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUgPSBmcmFtZS5wYWdlKCktPm1haW5G
cmFtZSgpOworCisgICAgLy8gRklYTUU6IFByb3ZpZGUgYSBzcGVjaWZpYyBkZWxlZ2F0ZSBmb3Ig
ZGlzcGxheSBjYXB0dXJlLgorICAgIGlmICghcmVxdWVzdC5yZXF1aXJlc0Rpc3BsYXlDYXB0dXJl
KCkgJiYgW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVx
dWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFu
ZGxlcjopXSkgeworCisgICAgICAgIFtkZWxlZ2F0ZSBfd2ViVmlldzomd2ViVmlldyByZXF1ZXN0
TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOndyYXBwZXIoQVBJOjpGcmFtZUluZm86
OmNyZWF0ZSgqbWFpbkZyYW1lLCB0b3BMZXZlbE9yaWdpbi5zZWN1cml0eU9yaWdpbigpKSkgZGV2
aWNlczpkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgVVJMIHJlcXVlc3RGcmFtZVVSTChVUkwoKSwgZnJh
bWUudXJsKCkpOworICAgIFVSTCBtYWluRnJhbWVVUkwoVVJMKCksIG1haW5GcmFtZS0+dXJsKCkp
OworCisgICAgW2RlbGVnYXRlIF93ZWJWaWV3OiZ3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRo
b3JpemF0aW9uRm9yRGV2aWNlczpkZXZpY2VzIHVybDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1l
VVJMOm1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsK
IH0KICNlbmRpZgogCkBAIC04OTUsMTMgKzkwNCwxMyBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xp
ZW50OjpkaWRDaGFuZ2VGb250QXR0cmlidXRlcyhjb25zdCBXZWJDb3JlOjpGb250QXR0cmlidXRl
cwogICAgIFtwcml2YXRlVUlEZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3
IGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzOmZvbnRBdHRyaWJ1dGVzLmNyZWF0ZURpY3Rpb25hcnko
KS5nZXQoKV07CiB9CiAKLWJvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQ
cm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpT
ZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkmIHJlcXVlc3QpCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1l
UHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5JiByZXF1ZXN0KQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgYXV0byBk
ZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOwotICAgIGlmICghZGVsZWdh
dGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdFVzZXJN
ZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzVVJMTWFpbkZyYW1lVVJMRGVjaXNpb25IYW5kbGVy
KSB7CisgICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdSZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lRGVjaXNpb25I
YW5kbGVyKSB7CiAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2FibGVkKTsK
LSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBib29s
IHJlcXVpcmVzQXVkaW9DYXB0dXJlID0gcmVxdWVzdC5yZXF1aXJlc0F1ZGlvQ2FwdHVyZSgpOwpA
QCAtOTA5LDMzICs5MTgsMzMgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9s
aWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3gKICAgICBib29sIHJl
cXVpcmVzRGlzcGxheUNhcHR1cmUgPSByZXF1ZXN0LnJlcXVpcmVzRGlzcGxheUNhcHR1cmUoKTsK
ICAgICBpZiAoIXJlcXVpcmVzQXVkaW9DYXB0dXJlICYmICFyZXF1aXJlc1ZpZGVvQ2FwdHVyZSAm
JiAhcmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSkgewogICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpO
b0NvbnN0cmFpbnRzKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGJvb2wgdXNpbmdNb2NrQ2FwdHVy
ZURldmljZXMgPSBwYWdlLnByZWZlcmVuY2VzKCkubW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCgp
OwotICAgIGF1dG8gcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb24gPSBtYWtlQmxvY2tQdHIoW3Ro
aXMsICZmcmFtZSwgcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCksIHdlYlZpZXcg
PSBSZXRhaW5QdHI8V0tXZWJWaWV3PihtX3VpRGVsZWdhdGUubV93ZWJWaWV3KSwgdXNpbmdNb2Nr
Q2FwdHVyZURldmljZXNdKCkgeworICAgIGF1dG8gcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb24g
PSBtYWtlQmxvY2tQdHIoW3RoaXMsICZmcmFtZSwgcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYo
cmVxdWVzdCksIHdlYlZpZXcgPSBSZXRhaW5QdHI8V0tXZWJWaWV3PihtX3VpRGVsZWdhdGUubV93
ZWJWaWV3KSwgdG9wTGV2ZWxPcmlnaW4gPSBtYWtlUmVmKHRvcExldmVsT3JpZ2luKSwgdXNpbmdN
b2NrQ2FwdHVyZURldmljZXNdKCkgbXV0YWJsZSB7CiAKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRS
ZXF1ZXN0LT5yZXF1aXJlc1ZpZGVvQ2FwdHVyZSgpKSB7Ci0gICAgICAgICAgICByZXF1ZXN0VXNl
ck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QsIChp
ZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3
ZWJWaWV3LmdldCgpKTsKKyAgICAgICAgICAgIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9u
Rm9yRnJhbWUoZnJhbWUsIHRvcExldmVsT3JpZ2luLCBwcm90ZWN0ZWRSZXF1ZXN0LCAoaWQgPFdL
VUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqd2ViVmll
dy5nZXQoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgQVZBdXRo
b3JpemF0aW9uU3RhdHVzIGNhbWVyYUF1dGhvcml6YXRpb25TdGF0dXMgPSB1c2luZ01vY2tDYXB0
dXJlRGV2aWNlcyA/IEFWQXV0aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQgOiBbZ2V0QVZDYXB0
dXJlRGV2aWNlQ2xhc3MoKSBhdXRob3JpemF0aW9uU3RhdHVzRm9yTWVkaWFUeXBlOmdldEFWTWVk
aWFUeXBlVmlkZW8oKV07CiAgICAgICAgIHN3aXRjaCAoY2FtZXJhQXV0aG9yaXphdGlvblN0YXR1
cykgewogICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQ6Ci0gICAg
ICAgICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHBy
b3RlY3RlZFJlcXVlc3QsIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1f
ZGVsZWdhdGUuZ2V0KCksICp3ZWJWaWV3LmdldCgpKTsKKyAgICAgICAgICAgIHJlcXVlc3RVc2Vy
TWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWUoZnJhbWUsIHRvcExldmVsT3JpZ2luLCBwcm90ZWN0
ZWRSZXF1ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVn
YXRlLmdldCgpLCAqd2ViVmlldy5nZXQoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNEZW5pZWQ6CiAgICAgICAgIGNhc2UgQVZBdXRob3Jp
emF0aW9uU3RhdHVzUmVzdHJpY3RlZDoKICAgICAgICAgICAgIHByb3RlY3RlZFJlcXVlc3QtPmRl
bnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFs
UmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
Y2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNOb3REZXRlcm1pbmVkOgotICAgICAgICAgICAgYXV0
byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3RoaXMsICZmcmFtZSwgcHJvdGVjdGVk
UmVxdWVzdCA9IG1ha2VSZWYocHJvdGVjdGVkUmVxdWVzdC5nZXQoKSksIHdlYlZpZXcgPSBSZXRh
aW5QdHI8V0tXZWJWaWV3PihtX3VpRGVsZWdhdGUubV93ZWJWaWV3KV0oQk9PTCBhdXRob3JpemVk
KSB7CisgICAgICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbdGhp
cywgJmZyYW1lLCBwcm90ZWN0ZWRSZXF1ZXN0ID0gbWFrZVJlZihwcm90ZWN0ZWRSZXF1ZXN0Lmdl
dCgpKSwgd2ViVmlldyA9IFJldGFpblB0cjxXS1dlYlZpZXc+KG1fdWlEZWxlZ2F0ZS5tX3dlYlZp
ZXcpLCB0b3BMZXZlbE9yaWdpbiA9IFdURk1vdmUodG9wTGV2ZWxPcmlnaW4pXShCT09MIGF1dGhv
cml6ZWQpIHsKICAgICAgICAgICAgICAgICBpZiAoIWF1dGhvcml6ZWQpIHsKICAgICAgICAgICAg
ICAgICAgICAgcHJvdGVjdGVkUmVxdWVzdC0+ZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOwog
ICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlcyhmcmFtZSwgcHJv
dGVjdGVkUmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9k
ZWxlZ2F0ZS5nZXQoKSwgKndlYlZpZXcuZ2V0KCkpOworICAgICAgICAgICAgICAgIHJlcXVlc3RV
c2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWUoZnJhbWUsIHRvcExldmVsT3JpZ2luLCBwcm90
ZWN0ZWRSZXF1ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2Rl
bGVnYXRlLmdldCgpLCAqd2ViVmlldy5nZXQoKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICAgICAgW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgcmVxdWVzdEFjY2Vzc0Zvck1lZGlhVHlw
ZTpnZXRBVk1lZGlhVHlwZVZpZGVvKCkgY29tcGxldGlvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVy
LmdldCgpXTsKQEAgLTk1Miw3ICs5NjEsNyBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpk
ZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveAogICAg
ICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c0RlbmllZDoKICAgICAgICAgY2FzZSBBVkF1
dGhvcml6YXRpb25TdGF0dXNSZXN0cmljdGVkOgogICAgICAgICAgICAgcmVxdWVzdC5kZW55KFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNv
bjo6UGVybWlzc2lvbkRlbmllZCk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNOb3REZXRlcm1p
bmVkOgogICAgICAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3By
b3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpLCByZXF1ZXN0Q2FtZXJhQXV0aG9yaXph
dGlvbl0oQk9PTCBhdXRob3JpemVkKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFhdXRob3JpemVk
KSB7CkBAIC05NjgsNTMgKzk3Nyw1MSBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveAogICAgIH0g
ZWxzZQogICAgICAgICByZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbigpOwogI2Vsc2UKLSAgICBy
ZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHJlcXVlc3QsIChp
ZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICpt
X3VpRGVsZWdhdGUubV93ZWJWaWV3KTsKKyAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlv
bkZvckZyYW1lKGZyYW1lLCB0b3BMZXZlbE9yaWdpbiwgcmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdh
dGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwgKm1fdWlEZWxlZ2F0ZS5t
X3dlYlZpZXcpOwogI2VuZGlmCiAjZW5kaWYKLQotICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4o
V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9y
aWdpbiYgdXNlck1lZGlhT3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdp
biwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIHJlcXVlc3QpCit2b2lkIFVJRGVsZWdh
dGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVBy
b3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNl
ck1lZGlhT3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1l
ZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIHJlcXVlc3QpCiB7CiAgICAgYXV0byBkZWxlZ2F0ZSA9
IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOwotICAgIGlmICghZGVsZWdhdGUgfHwgIW1f
dWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q2hlY2tVc2VyTWVkaWFQZXJtaXNz
aW9uRm9yVVJMTWFpbkZyYW1lVVJMRnJhbWVJZGVudGlmaWVyRGVjaXNpb25IYW5kbGVyKSB7Cisg
ICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdJc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZURlY2lzaW9uSGFuZGxlcikgewogICAg
ICAgICByZXF1ZXN0LnNldFVzZXJNZWRpYUFjY2Vzc0luZm8oZmFsc2UpOwotICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdLV2ViVmlldyAqd2ViVmll
dyA9IG1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXc7Ci0gICAgY29uc3QgV2ViRnJhbWVQcm94eSogbWFp
bkZyYW1lID0gZnJhbWUucGFnZSgpLT5tYWluRnJhbWUoKTsKLSAgICBVUkwgcmVxdWVzdEZyYW1l
VVJMKFVSTCgpLCBmcmFtZS51cmwoKSk7Ci0gICAgVVJMIG1haW5GcmFtZVVSTChVUkwoKSwgbWFp
bkZyYW1lLT51cmwoKSk7CisgICAgY29uc3QgYXV0byBtYWluRnJhbWUgPSBmcmFtZS5wYWdlKCkt
Pm1haW5GcmFtZSgpOworCisgICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OmlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1lOmRlY2lzaW9u
SGFuZGxlcjopXSkgeworICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0
cihbcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCldKEJPT0wgYXV0aG9yaXplZCkg
eworICAgICAgICAgICAgcHJvdGVjdGVkUmVxdWVzdC0+c2V0VXNlck1lZGlhQWNjZXNzSW5mbyhh
dXRob3JpemVkKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJp
dmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBpc01lZGlhQ2Fw
dHVyZUF1dGhvcml6ZWRGb3JGcmFtZTp3cmFwcGVyKEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUoKm1h
aW5GcmFtZSwgdG9wTGV2ZWxPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSkpIGRlY2lzaW9uSGFuZGxl
cjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAg
YXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFJlcXVlc3QgPSBt
YWtlUmVmKHJlcXVlc3QpXShOU1N0cmluZyosIEJPT0wgYXV0aG9yaXplZCkgewogICAgICAgICBw
cm90ZWN0ZWRSZXF1ZXN0LT5zZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKGF1dGhvcml6ZWQpOwogICAg
IH0pOwogCi0gICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6
d2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1h
aW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQoKSBk
ZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKKyAgICBVUkwgcmVxdWVzdEZy
YW1lVVJMKFVSTCgpLCBmcmFtZS51cmwoKSk7CisgICAgVVJMIG1haW5GcmFtZVVSTChVUkwoKSwg
bWFpbkZyYW1lLT51cmwoKSk7CiAKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBbKGlkIDxXS1VJRGVs
ZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGNo
ZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJM
Om1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUuZnJhbWVJRCgpIGRlY2lzaW9uSGFu
ZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwogfQogCiB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xp
ZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgV0tXZWJWaWV3ICp3ZWJWaWV3ID0gbV91aURl
bGVnYXRlLm1fd2ViVmlldzsKKworICAgIFt3ZWJWaWV3IGRpZENoYW5nZVZhbHVlRm9yS2V5OkAi
bWVkaWFDYXB0dXJlU3RhdGUiXTsKKwogICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUu
bV9kZWxlZ2F0ZS5nZXQoKTsKICAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVsZWdhdGUubV9k
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld01lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZSBtZWRpYUNhcHR1cmVTdGF0ZSA9
IF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIG1lZGlhQ2Fw
dHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9uZTsKLSAgICBp
ZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVE
ZXZpY2UpCi0gICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRl
QWN0aXZlQ2FtZXJhOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhh
c011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBf
V0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkTWljcm9waG9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKLSAgICAgICAg
bWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZENhbWVyYTsKLQot
ICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3OndlYlZpZXcg
bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6bWVkaWFDYXB0dXJlU3RhdGVdOworICAgIFsoaWQg
PFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3OndlYlZpZXcgbWVkaWFDYXB0
dXJlU3RhdGVEaWRDaGFuZ2U6dG9XS01lZGlhQ2FwdHVyZVN0YXRlKHN0YXRlKV07CiB9CiAKIHZv
aWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5
T3JpZ2luLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQs
IEZ1bmN0aW9uPHZvaWQgKHVuc2lnbmVkIGxvbmcgbG9uZyk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
Q2hlY2tQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHkuaAppbmRleCBkOTFmMDRmZmRhYjhkMTQyNDU0ZDUwNjNmZTE3ZjBlYmZhODMz
NGViLi42YTA4OTUwNmNlYTM4OGQxZDRjM2Q2ZGVmZGE1ZmUwZTBhZWU1N2M0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5LmgKQEAgLTQ2LDYgKzQ2LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eShmcmFtZUlELCBXVEZNb3ZlKGhhbmRs
ZXIpLCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERv
Y3VtZW50T3JpZ2luKSkpOwogICAgIH0KIAorICAgIHZvaWQgZGVueSgpIHsgc2V0VXNlck1lZGlh
QWNjZXNzSW5mbyhmYWxzZSk7IH0KICAgICB2b2lkIHNldFVzZXJNZWRpYUFjY2Vzc0luZm8oYm9v
bCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcAppbmRleCA5NWY1NTNkZDIyNWViY2FmM2RiOGY5YWQwMmI1N2E0M2E4YmNiZjgzLi43
NGQ1Nzg4OTk3OGQ3YzMxZjBkMTNjOWUxYzRjODFjOGM4ZmE0NTlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0zNzQsOCArMzc0LDcgQEAgdm9pZCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25G
b3JGcmFtZSgKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmICgh
bV9wYWdlLnVpQ2xpZW50KCkuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QobV9wYWdlLCAqbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKSwgV1RGTW92ZSh1
c2VyTWVkaWFPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsT3JpZ2luKSwgcGVuZGluZ1JlcXVlc3Qu
Z2V0KCkpKQotICAgICAgICAgICAgdXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVzZXJNZWRpYUlE
LCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxS
ZWFzb246OlVzZXJNZWRpYURpc2FibGVkKTsKKyAgICAgICAgbV9wYWdlLnVpQ2xpZW50KCkuZGVj
aWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QobV9wYWdlLCAqbV9wYWdlLnBy
b2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKSwgV1RGTW92ZSh1c2VyTWVkaWFPcmlnaW4pLCBXVEZN
b3ZlKHRvcExldmVsT3JpZ2luKSwgcGVuZGluZ1JlcXVlc3QuZ2V0KCkpOwogICAgIH07CiAKICAg
ICBhdXRvIHJlcXVlc3RJRCA9IGdlbmVyYXRlUmVxdWVzdElEKCk7CkBAIC00MTcsMTAgKzQxNiw3
IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJN
ZWRpYVBlcm1pc3Npb25JbmZvKHVpbnQ2NF90CiAgICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHk6OmNyZWF0ZShmcmFtZUlELCBXVEZNb3ZlKGhhbmRsZXIpLCBX
VEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50
T3JpZ2luKSk7CiAKICAgICBtX3BlbmRpbmdEZXZpY2VSZXF1ZXN0cy5hZGQocmVxdWVzdElELCBy
ZXF1ZXN0LmNvcHlSZWYoKSk7Ci0gICAgaWYgKCFtX3BhZ2UudWlDbGllbnQoKS5jaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4obV9wYWdlLCAqbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFt
ZShmcmFtZUlEKSwgdXNlck1lZGlhT3JpZ2luLmdldCgpLCB0b3BMZXZlbE9yaWdpbi5nZXQoKSwg
cmVxdWVzdC5nZXQoKSkpIHsKLSAgICAgICAgbV9wZW5kaW5nRGV2aWNlUmVxdWVzdHMudGFrZShy
ZXF1ZXN0SUQpOwotICAgICAgICBoYW5kbGVyKGZhbHNlKTsKLSAgICB9CisgICAgbV9wYWdlLnVp
Q2xpZW50KCkuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKG1fcGFnZSwgKm1fcGFn
ZS5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRCksIHVzZXJNZWRpYU9yaWdpbi5nZXQoKSwgdG9w
TGV2ZWxPcmlnaW4uZ2V0KCksIHJlcXVlc3QuZ2V0KCkpOwogfQogCiBib29sIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNz
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmgKaW5kZXggNTk4MGRjNzA5YTAwMjg1ZDBhYThlNzM1Y2QzMDgxOTdjOTEx
OGJkYi4uYWM4MDVlNzg4YmUyMzE3ZTBhN2FhZWI3MTg5MDljZjQ1YmNhODkwOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhbGxvdygpOwog
CiAgICAgZW51bSBjbGFzcyBVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24geyBOb0NvbnN0cmFp
bnRzLCBVc2VyTWVkaWFEaXNhYmxlZCwgTm9DYXB0dXJlRGV2aWNlcywgSW52YWxpZENvbnN0cmFp
bnQsIEhhcmR3YXJlRXJyb3IsIFBlcm1pc3Npb25EZW5pZWQsIE90aGVyRmFpbHVyZSB9OwotICAg
IHZvaWQgZGVueShVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24pOworICAgIHZvaWQgZGVueShV
c2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24gPSBVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246
OlVzZXJNZWRpYURpc2FibGVkKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyODMyYmI3
YzRiODFhZTg5OTY1NjY2ZWU0YjUxN2ZlMGQzMDdiMWY3Li5jZTc4OGVkMjE1YjEzOGEwOTVmN2U3
ZTJjODZkMzg5YTVmZWExNzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTI5OTgsNiArMjk5OCw4IEBACiAJCTQxMDQ4MkNCMURERDJG
QjUwMEYwMDZEMCAvKiBSVENOZXR3b3JrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJUQ05ldHdvcmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTA0ODJDQzFEREQyRkI1MDBGMDA2RDAgLyogUlRDTmV0d29yay5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSVENOZXR3b3JrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxMTE0MzYzMjBGNjc3QjEwMDI2RjkxMiAvKiBJbmplY3RVc2VyU2NyaXB0SW1tZWRpYXRl
bHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0VXNlclNjcmlwdElt
bWVkaWF0ZWx5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMTI4NkVGMjFDOEE5
MEMwMDNBODU1MCAvKiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxMTI4NkYwMjFDOEE5MEQwMDNBODU1MCAvKiBNZWRpYUNhcHR1cmVVdGls
aXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYUNh
cHR1cmVVdGlsaXRpZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTJCNTQ3
MUY5RkQzQUIwMEU2Nzg3NSAvKiBOZXR3b3JrUlRDUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1JUQ1Jlc29sdmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMkI1NDcxRjlGRDNBQjAwRTY3OTg2IC8qIE5ldHdvcmtS
VENSZXNvbHZlckNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE5ldHdvcmtSVENSZXNvbHZlckNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDExMkI1NDgxRjlGRDNBQzAwRTY3ODc1IC8qIE5ldHdvcmtSVENSZXNvbHZlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrUlRDUmVzb2x2ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUzMDAsNiArNTMwMiw4IEBACiAJCQkJMEYwQzM2NTkx
OEMwNTU1ODAwRjYwN0Q3IC8qIExheWVyUmVwcmVzZW50YXRpb24uaCAqLywKIAkJCQk3QTgyMUY0
QjFFMkY2NjQ4MDA2MDQ1NzcgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lmgg
Ki8sCiAJCQkJN0E4MjFGNEQxRTJGNjc5RTAwNjA0NTc3IC8qIExlZ2FjeUN1c3RvbVByb3RvY29s
TWFuYWdlckNsaWVudC5tbSAqLywKKwkJCQk0MTEyODZFRjIxQzhBOTBDMDAzQTg1NTAgLyogTWVk
aWFDYXB0dXJlVXRpbGl0aWVzLmggKi8sCisJCQkJNDExMjg2RjAyMUM4QTkwRDAwM0E4NTUwIC8q
IE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbSAqLywKIAkJCQkxQUJDM0RGNDE4OTlFNDM3MDA0RjA2
MjYgLyogTmF2aWdhdGlvblN0YXRlLmggKi8sCiAJCQkJMUFCQzNERjMxODk5RTQzNzAwNEYwNjI2
IC8qIE5hdmlnYXRpb25TdGF0ZS5tbSAqLywKIAkJCQk1QzZDRTZEMzFGNTlFQTM1MDAwN0M2Q0Ig
LyogUGFnZUNsaWVudEltcGxDb2NvYS5oICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGU3YzAzMjRhOGNjMDJmMTM4OTZjMmQzMjMxNjllZDE4
OWVkNjc5NmEuLjVjOGQxZmJiYzcwMjRkMTllMThjYzEyMmVhZWFlYmRhZWY0YmZhNWEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NiBAQAorMjAxOC0xMi0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIGEgbmV3IFNQSSBmb3IgY29udHJvbGxpbmcgZ2V0VXNlck1lZGlhCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI3OTMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL21h
Yy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAoLVtXSzJCcm93c2VyV2lu
ZG93Q29udHJvbGxlciBfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZy
YW1lOmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXSzJCcm93c2VyV2lu
ZG93Q29udHJvbGxlciBfd2ViVmlldzppc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTpk
ZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
R2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKC1bTmF2aWdhdGlvbldoaWxlR2V0
VXNlck1lZGlhUHJvbXB0RGlzcGxheWVkVUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0TWVkaWFD
YXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0
Lm1tOgorICAgICAgICAoLVtHZXRVc2VyTWVkaWFSZXByb21wdFVJRGVsZWdhdGUgX3dlYlZpZXc6
cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9u
SGFuZGxlcjpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0
cmVhbVRyYWNrRGV0YWNoZWQubW06CisgICAgICAgICgtW01lZGlhU3RyZWFtVHJhY2tEZXRhY2hl
ZFVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JG
cmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1tOgorICAgICAgICAoLVtVc2Vy
TWVkaWFVSURlbGVnYXRlIF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9u
Rm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1VzZXJNZWRp
YVVJRGVsZWdhdGUgX3dlYlZpZXc6aXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWU6ZGVj
aXNpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvVXNlck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tOgorICAgICAgICAoLVtTaW11bGF0
ZUZhaWxlZFNhbmRib3hVSURlbGVnYXRlIF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRo
b3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgt
W1NpbXVsYXRlRmFpbGVkU2FuZGJveFVJRGVsZWdhdGUgX3dlYlZpZXc6aXNNZWRpYUNhcHR1cmVB
dXRob3JpemVkRm9yRnJhbWU6ZGVjaXNpb25IYW5kbGVyOl0pOgorCiAyMDE4LTEyLTE3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IGNvbmNhdGVu
YXRpbmcgU3RyaW5nVmlldyB3aXRoIG90aGVyIHN0cmluZyB0eXBlcwpkaWZmIC0tZ2l0IGEvVG9v
bHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gYi9Ub29scy9N
aW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQppbmRleCAzZTczOWQ3
YzkxNTUzOGUwMDMyOWNmZjBjMDQ3YWFhNzBmZDRhMWJmLi45YjQ4MTJjMTc0Y2MzMTRjZDE4ZjQx
ZmUxM2M5YjUwYjczMTg5OWY1IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0sy
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0sy
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAtNzkxLDE0ICs3OTEsMTQgQEAgLSAodm9pZClm
aW5kQmFyVmlld0RpZENoYW5nZUhlaWdodAogewogfQogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczoo
X1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDoo
TlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhv
cml6ZWQpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyAq
KSBtYWluRnJhbWUgZGV2aWNlczogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25I
YW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgogewogICAg
IGRlY2lzaW9uSGFuZGxlcih0cnVlKTsKIH0KIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1h
aW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRl
Z2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpz
YWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBpc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTooV0tG
cmFtZUluZm8gKikgbWFpbkZyYW1lIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRo
b3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKIHsKLSAgICBkZWNpc2lvbkhhbmRsZXIoQCIiLCBmYWxz
ZSk7CisgICAgZGVjaXNpb25IYW5kbGVyKGZhbHNlKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRp
b24ubW0KaW5kZXggNDIxZWVhNDI5MmNiYWIxNGU5NDZmNzk4YTM1ZGViNzNmODJiMzUwOC4uNmFm
NmNmYTk4MzBmYTRjNWRhNzc3YmZiODMwYWMxMTgyNDEyYmUzNCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9u
Lm1tCkBAIC00MiwxMiArNDIsMTIgQEAgc3RhdGljIGJvb2wgb2tUb1Byb2NlZWQgPSBmYWxzZTsK
IHN0YXRpYyBib29sIHNob3VsZFJlbGVhc2VJbkVudW1lcmF0ZSA9IGZhbHNlOwogCiBAaW50ZXJm
YWNlIE5hdmlnYXRpb25XaGlsZUdldFVzZXJNZWRpYVByb21wdERpc3BsYXllZFVJRGVsZWdhdGUg
OiBOU09iamVjdDxXS1VJRGVsZWdhdGU+Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVy
ZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKilt
YWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRl
Y2lzaW9uSGFuZGxlcjsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVx
dWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTooV0tGcmFtZUluZm8qKSBtYWlu
RnJhbWUgZGV2aWNlczogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVy
Oih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1
cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5T
VUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJp
bmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOwogQGVuZAogCiBAaW1w
bGVtZW50YXRpb24gTmF2aWdhdGlvbldoaWxlR2V0VXNlck1lZGlhUHJvbXB0RGlzcGxheWVkVUlE
ZWxlZ2F0ZQotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNl
ck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMg
dXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lz
aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKKy0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1
dGhvcml6YXRpb25Gb3JGcmFtZTooV0tGcmFtZUluZm8qKSBtYWluRnJhbWUgZGV2aWNlczogKF9X
S0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlk
ZWNpc2lvbkhhbmRsZXIKIHsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiYWJvdXQ6YmxhbmsiXV1dOwog
ICAgIFt3ZWJWaWV3IHJlbGVhc2VdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQppbmRleCBjNDMyZmNhZTVlOGZj
NTk3OTEyMzNlNTBiZGJiNzUzMmNiYWM0ZjdlLi5kOWRiNjU3ZDUwYjA0M2JkMGJmMmRiZjEyODE0
YmVmY2M5Y2FhZTdmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQpAQCAtNDEsMTIgKzQxLDEyIEBACiBzdGF0
aWMgYm9vbCB3YXNQcm9tcHRlZCA9IGZhbHNlOwogCiBAaW50ZXJmYWNlIEdldFVzZXJNZWRpYVJl
cHJvbXB0VUlEZWxlZ2F0ZSA6IE5TT2JqZWN0PFdLVUlEZWxlZ2F0ZT4KLS0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JE
ZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZy
YW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJP
T0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOworLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOihX
S0ZyYW1lSW5mbyopIG1haW5GcmFtZSBkZXZpY2VzOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNl
cyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcjsKIC0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZy
YW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVy
Oih2b2lkICheKShOU1N0cmluZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRs
ZXI7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBHZXRVc2VyTWVkaWFSZXByb21wdFVJRGVsZWdh
dGUKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRp
YUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDoo
TlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhh
bmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCistICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3Jp
emF0aW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvKikgbWFpbkZyYW1lIGRldmljZXM6IChfV0tDYXB0
dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNp
b25IYW5kbGVyCiB7CiAgICAgd2FzUHJvbXB0ZWQgPSB0cnVlOwogICAgIGRlY2lzaW9uSGFuZGxl
cihZRVMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVk
aWFTdHJlYW1UcmFja0RldGFjaGVkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCmluZGV4IDFlY2NkMGE2ZWUzMzE2NDI2MzJk
NGQ1YzZkZjBiYmNkMDJhZTJmNDMuLmNhYTc5ZGQ0YTI1ZTVhMTVkZWJiZDU1NDYxZmFjYTRmNjBi
NjYxNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlh
U3RyZWFtVHJhY2tEZXRhY2hlZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KQEAgLTQwLDEzICs0MCwxMyBAQAogc3Rh
dGljIGJvb2wgaGFzUmVjaWV2ZWRDb3JyZWN0Q2FwdHVyZVN0YXRlID0gZmFsc2U7CiAKIEBpbnRl
cmZhY2UgTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0ZSA6IE5TT2JqZWN0PFdLVUlE
ZWxlZ2F0ZT4KLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVz
ZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2Vz
IHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNp
c2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOwor
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJl
QXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyopIG1haW5GcmFtZSBkZXZpY2VzOiAo
X1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wp
KWRlY2lzaW9uSGFuZGxlcjsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6
KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlk
ZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqc2FsdCwgQk9PTCBh
dXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0
ZSlzdGF0ZTsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hl
ZFVJRGVsZWdhdGUKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVz
dFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZp
Y2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBk
ZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVy
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1
cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvKikgbWFpbkZyYW1lIGRldmljZXM6
IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9P
TCkpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgZGVjaXNpb25IYW5kbGVyKFlFUyk7CiB9CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURp
c2FibGVkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVk
aWFEaXNhYmxlZC5tbQppbmRleCA4ODMzM2MzZmJiNjgwZTE2NWU3ZjI2MWE2MjZlNWIxZDEzMWIz
YmFiLi4xMDg1YzVlYzM3OGZlNjk3ODMwMWJmMjJiOWUyZjgwMzUyM2M1NmU0IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURpc2FibGVk
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlh
RGlzYWJsZWQubW0KQEAgLTM5LDcgKzM5LDYgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLXN0
YXRpYyBib29sIHJlZnVzZVJlcXVlc3QgPSBmYWxzZTsKIHN0YXRpYyBib29sIHdhc1Byb21wdGVk
ID0gZmFsc2U7CiAKIHN0YXRpYyBib29sIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwpA
QCAtNjIsMTUgKzYxLDEwIEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFVzZXJNZWRpYVVJRGVs
ZWdhdGUKIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNl
ck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KE5TVUludGVnZXIpZGV2aWNlcyB1cmw6KE5T
VVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5k
bGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFt
ZTooV0tGcmFtZUluZm8qKSBtYWluRnJhbWUgZGV2aWNlczogKF9XS0NhcHR1cmVEZXZpY2VzKWRl
dmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKIHsK
ICAgICB3YXNQcm9tcHRlZCA9IHRydWU7CiAKLSAgICBpZiAocmVmdXNlUmVxdWVzdCkgewotICAg
ICAgICBkZWNpc2lvbkhhbmRsZXIoTk8pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAg
Qk9PTCBuZWVkc01pY3JvcGhvbmVBdXRob3JpemVkID0gZGV2aWNlcyAmIF9XS0NhcHR1cmVEZXZp
Y2VNaWNyb3Bob25lOwogICAgIEJPT0wgbmVlZHNDYW1lcmFBdXRob3JpemVkID0gZGV2aWNlcyAm
IF9XS0NhcHR1cmVEZXZpY2VDYW1lcmE7CiAgICAgaWYgKCFuZWVkc01pY3JvcGhvbmVBdXRob3Jp
emVkICYmICFuZWVkc0NhbWVyYUF1dGhvcml6ZWQpIHsKQEAgLTgxLDE0ICs3NSw5IEBAIC0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6
YXRpb25Gb3JEZXZpY2VzOihOCiAgICAgZGVjaXNpb25IYW5kbGVyKFlFUyk7CiB9CiAKLS0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZy
YW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVy
Oih2b2lkICheKShOU1N0cmluZyAqLCBCT09MKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJh
bWU6KFdLRnJhbWVJbmZvICopIG1haW5GcmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJP
T0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCiB7Ci0gICAgaWYgKHJlZnVzZVJlcXVlc3Qp
IHsKLSAgICAgICAgZGVjaXNpb25IYW5kbGVyKG5pbCwgTk8pOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgZGVjaXNpb25IYW5kbGVyKEAiMHg5ODc2NTQzMjEiLCBOTyk7CisgICAgZGVj
aXNpb25IYW5kbGVyKE5PKTsKIH0KIEBlbmQKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRl
RmFpbGVkU2FuZGJveC5tbQppbmRleCBjNzNjOTg5OTRlNDE3MzM0OTAyNTUyYTg3OGRlZjVkMTcy
MjViZGY0Li45Y2Q5ODVmNzlmMTRmMzU2OTZlNTk2ZGFhMTNhOTNjYTMwNGE4NDI2IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVs
YXRlRmFpbGVkU2FuZGJveC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbQpAQCAtMzksNyArMzksNiBA
QAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAotc3RhdGljIGJvb2wgcmVmdXNlUmVxdWVzdCA9IGZh
bHNlOwogc3RhdGljIGJvb2wgd2FzUHJvbXB0ZWQgPSBmYWxzZTsKIAogc3RhdGljIGJvb2wgcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CkBAIC02MiwxNSArNjEsMTAgQEAgQGVuZAogCiBA
aW1wbGVtZW50YXRpb24gU2ltdWxhdGVGYWlsZWRTYW5kYm94VUlEZWxlZ2F0ZQogCi0tICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0
aW9uRm9yRGV2aWNlczooTlNVSW50ZWdlcilkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZy
YW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJP
T0wpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyop
IG1haW5GcmFtZSBkZXZpY2VzOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhh
bmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgogewogICAgIHdhc1Byb21wdGVk
ID0gdHJ1ZTsKIAotICAgIGlmIChyZWZ1c2VSZXF1ZXN0KSB7Ci0gICAgICAgIGRlY2lzaW9uSGFu
ZGxlcihOTyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBCT09MIG5lZWRzTWljcm9w
aG9uZUF1dGhvcml6ZWQgPSBkZXZpY2VzICYgX1dLQ2FwdHVyZURldmljZU1pY3JvcGhvbmU7CiAg
ICAgQk9PTCBuZWVkc0NhbWVyYUF1dGhvcml6ZWQgPSBkZXZpY2VzICYgX1dLQ2FwdHVyZURldmlj
ZUNhbWVyYTsKICAgICBpZiAoIW5lZWRzTWljcm9waG9uZUF1dGhvcml6ZWQgJiYgIW5lZWRzQ2Ft
ZXJhQXV0aG9yaXplZCkgewpAQCAtODEsMTQgKzc1LDkgQEAgLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6
KE4KICAgICBkZWNpc2lvbkhhbmRsZXIoWUVTKTsKIH0KIAotLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICop
dXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihO
U1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3Ry
aW5nICosIEJPT0wpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBpc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTooV0tGcmFtZUluZm8g
KikgbWFpbkZyYW1lIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlk
ZWNpc2lvbkhhbmRsZXIKIHsKLSAgICBpZiAocmVmdXNlUmVxdWVzdCkgewotICAgICAgICBkZWNp
c2lvbkhhbmRsZXIobmlsLCBOTyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkZWNp
c2lvbkhhbmRsZXIoQCIweDk4NzY1NDMyMSIsIE5PKTsKKyAgICBkZWNpc2lvbkhhbmRsZXIoTk8p
OwogfQogQGVuZAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357639</attachid>
            <date>2018-12-18 17:28:34 -0800</date>
            <delta_ts>2018-12-19 14:52:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192793-20181218172833.patch</filename>
            <type>text/plain</type>
            <size>52916</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MjgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNjOWM0YWI0ZmE0YzdkY2E0
NTY5NjJiZmYyNTkxZjRjMDgyZDMxN2IuLjAwMWUyZmEyOWE4Nzg4NTg4ZDZlYzU0MjcxMDc1N2Yz
NWU5ZmZjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTgtMTItMTcgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgZm9yIGNv
bnRyb2xsaW5nIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyNzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU29tZSB3ZWFrbmVzc2VzIG9mIHRoZSBjdXJyZW50IGdldFVzZXJNZWRp
YSBTUEkgd2VyZSBmb3VuZC4KKyAgICAgICAgSW4gcGFydGljdWxhcjoKKyAgICAgICAgLSBUaGUg
aGFzaCBzYWx0IHNob3VsZCBiZSBoYW5kbGVkIGJ5IFdlYktpdAorICAgICAgICAtIE5vIG5lZWQg
dG8gZXhwb3NlIHRoZSBmcmFtZSBVUkwsIG9ubHkgdGhlIHRvcCBsZXZlbCBvcmlnaW4gaXMgbmVl
ZGVkCisgICAgICAgIC0gVGhlIG5hbWVzIG9mIHRoZSBjYWxsYmFjayBjYW4gYmUgaW1wcm92ZWQu
CisgICAgICAgIEFkZHJlc3NlZCB0aGVzZSBieSBjcmVhdGluZyBhIG5ldyBTUEkgd2hpY2ggd2ls
bCByZXBsYWNlIHRoZSBjdXJyZW50IG9uZS4KKyAgICAgICAgVGhlIGN1cnJlbnQgU1BJIHdpbGwg
YmUgcmVtb3ZlZCBsYXRlciBvbi4KKworICAgICAgICBEaWQgc29tZSByZWZhY3RvcmluZyBieSBt
YWtpbmcgdGhlIGNhbGxiYWNrcyBub3QgcmV0dXJuaW5nIGZhbHNlLgorICAgICAgICBJbnN0ZWFk
LCBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgYmVoYXZpb3IgaW5zaWRlIHRoZSByZXF1ZXN0IG9iamVj
dHMgYXMgZGVueSBtZXRob2RzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVu
dC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfbWVkaWFDYXB0dXJl
U3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRNZWRpYUNhcHR1cmVNdXRlZDpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbTogQWRkZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6c2V0RGVsZWdh
dGUpOgorICAgICAgICAoV2ViS2l0OjpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGlj
eUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxl
Z2F0ZTo6VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbik6CisgICAg
ICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENo
YW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpkZW55
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRVc2Vy
TWVkaWFQZXJtaXNzaW9uSW5mbyk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaDoKKwogMjAxOC0xMi0xNyAgWmFuIERvYmVyc2VrICA8emRvYmVy
c2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBXUEUgYnVpbGQgZml4IGFmdGVy
IHIyMzkyNzcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggZjFhMDU3YTQ1ZGIwZmEzNWNlMTBk
Y2Y0MTk2OTNlZmU4MThhNmRhMy4uZWI2OWE1M2QyMjcyMDQyOWZhODc5ZmZiZTUzZGY4Nzg1NThj
NWM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMzE5LDYgKzMxOSw3IEBAIFVJUHJvY2Vz
cy9Db2NvYS9GaW5kQ2xpZW50Lm1tCiBVSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5t
bQogVUlQcm9jZXNzL0NvY29hL0ljb25Mb2FkaW5nRGVsZWdhdGUubW0KIFVJUHJvY2Vzcy9Db2Nv
YS9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0KK1VJUHJvY2Vzcy9Db2NvYS9N
ZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0KIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUu
bW0KIFVJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tCiBVSVByb2Nlc3MvQ29j
b2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDQzZmY3NjNiOTA0OGNjNDBhOTY3ZDk0NTZiYmUwM2Fj
YmI5NTAyN2MuLjAzZDEyMzAwZDE3MTY5ZjQ3YzgxZGMyNjAxYTZhNDA3MTdkNzBhYWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0xMjksOCArMTI5LDgg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHJ1bk9wZW5QYW5lbChXZWJLaXQ6OldlYlBh
Z2VQcm94eSosIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYsIE9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJLaXQ6OldlYk9wZW5QYW5lbFJl
c3VsdExpc3RlbmVyUHJveHkqKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFn
ZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBGdW5jdGlv
bjx2b2lkKGJvb2wpPiYpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2Vi
RnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgU2VjdXJpdHlPcmlnaW4mLCBXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZp
cnR1YWwgYm9vbCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViS2l0OjpXZWJQ
YWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIFNlY3Vy
aXR5T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVBy
b3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6Oldl
YkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIFNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0OjpV
c2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7IH0KICAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0
OjpXZWJGcmFtZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmIHJlcXVlc3RpbmdEb21haW4sIGNv
bnN0IFdURjo6U3RyaW5nJiBjdXJyZW50RG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDJjZTM4YmJmNzg5
NzM4ZGM1YTQxZTgzNTA4ODBmYWJhOTc4ZWM2NDIuLmJkMWVmY2FjNmY4MjU0YWM1ZjhmMjRjYzBi
MDM5YjBjMDg4OGI3N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cApAQCAtMTg1NSwyMiArMTg1NSwyNCBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1Bh
Z2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogICAgICAg
ICAgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dCh0b0FQSSgmcGFnZSksIHRvQVBJKCZmcmFtZSksIHRvQVBJKCZvcmlnaW4pLCB0b0FQSShHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUoc3RkOjpleGNoYW5nZShjb21wbGV0aW9u
SGFuZGxlciwgbnVsbHB0cikpLnB0cigpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAg
ICAgICAgfQogCi0gICAgICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpT
ZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmln
aW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5hbAorICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQ
cm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5JiBwZXJtaXNzaW9uUmVxdWVzdCkgZmluYWwKICAgICAgICAg
ewotICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
KSB7CisgICAgICAgICAgICAgICAgcGVybWlzc2lvblJlcXVlc3QuZGVueSgpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgbV9jbGllbnQuZGVj
aWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QodG9BUEkoJnBhZ2UpLCB0b0FQ
SSgmZnJhbWUpLCB0b0FQSSgmdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCB0b0FQSSgmdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiksIHRvQVBJKCZwZXJtaXNzaW9uUmVxdWVzdCksIG1fY2xpZW50LmJh
c2UuY2xpZW50SW5mbyk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCi0g
ICAgICAgIGJvb2wgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94
eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcmVxdWVzdCkgZmluYWwKKyAg
ICAgICAgdm9pZCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5
JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KSBmaW5hbAogICAg
ICAgICB7Ci0gICAgICAgICAgICBpZiAoIW1fY2xpZW50LmNoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkZvck9yaWdpbikKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBp
ZiAoIW1fY2xpZW50LmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbikgeworICAgICAg
ICAgICAgICAgIHJlcXVlc3QuZGVueSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgbV9jbGllbnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yT3JpZ2luKHRvQVBJKCZwYWdlKSwgdG9BUEkoJmZyYW1lKSwgdG9BUEkoJnVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luKSwgdG9BUEkoJnRvcExldmVsRG9jdW1lbnRPcmlnaW4pLCB0b0FQSSgmcmVx
dWVzdCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJp
dHlPcmlnaW4mIG9yaWdpbiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikgZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IDQ2Yzk1MTdhZjBlZmFlYjQ2YWM5MmE0OGY4MmRl
NWE4YTlmNTUwMDIuLmI5YTkyOTExNDFiZjBmYjZkNmZjZmUxMWI5Nzc5MjkxYmQ0MjEwZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxl
Z2F0ZVByaXZhdGUuaApAQCAtMTA1LDYgKzEwNSw4IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAK
IC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaW1hZ2VPck1lZGlhRG9jdW1l
bnRTaXplQ2hhbmdlZDooQ0dTaXplKXNpemUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIp
LCBpb3MoMTAuMCkpOwogLSAoTlNEaWN0aW9uYXJ5ICopX2RhdGFEZXRlY3Rpb25Db250ZXh0Rm9y
V2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MiksIGlvcygxMC4wKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJl
cXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvICopbWFp
bkZyYW1lIGRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVy
Oih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWU6
KFdLRnJhbWVJbmZvICopbWFpbkZyYW1lIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBh
dXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVy
ZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKilt
YWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRl
Y2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7
CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVy
bWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFt
ZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpOwog
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURp
ZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMpLCBpb3MoMTEuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KaW5kZXggYmEyMDQ4ZWFiYWFiNjhjZDczMzgyNWM2NGY4YjkyMGZh
Yjk2NDQxZS4uZGIzNGRkMTU3MjcwYTAxZGJkMmI5MmNkOTE4NTA4YmZlMjFmNzBiMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC00MCw2
ICs0MCw3IEBACiAjaW1wb3J0ICJJY29uTG9hZGluZ0RlbGVnYXRlLmgiCiAjaW1wb3J0ICJMZWdh
Y3lTZXNzaW9uU3RhdGVDb2RpbmcuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgIk1l
ZGlhQ2FwdHVyZVV0aWxpdGllcy5oIgogI2ltcG9ydCAiTmF2aWdhdGlvblN0YXRlLmgiCiAjaW1w
b3J0ICJPYmpDT2JqZWN0R3JhcGguaCIKICNpbXBvcnQgIlBhZ2VDbGllbnQuaCIKQEAgLTU0Mzgs
NiArNTQzOSwxNiBAQCAtIChCT09MKV9pc0luRnVsbHNjcmVlbgogI2VuZGlmCiB9CiAKKy0gKF9X
S01lZGlhQ2FwdHVyZVN0YXRlKV9tZWRpYUNhcHR1cmVTdGF0ZQoreworICAgIHJldHVybiBXZWJL
aXQ6OnRvV0tNZWRpYUNhcHR1cmVTdGF0ZShfcGFnZS0+bWVkaWFTdGF0ZUZsYWdzKCkpOworfQor
CistICh2b2lkKV9zZXRNZWRpYUNhcHR1cmVNdXRlZDooQk9PTCltdXRlZAoreworICAgIF9wYWdl
LT5zZXRNZWRpYVN0cmVhbUNhcHR1cmVNdXRlZChtdXRlZCk7Cit9CisKIC0gKHZvaWQpX211dGVN
ZWRpYUNhcHR1cmUKIHsKICAgICBfcGFnZS0+c2V0TWVkaWFTdHJlYW1DYXB0dXJlTXV0ZWQodHJ1
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaAppbmRleCAxNzBjMmFhZWZhMTUwYjQxZjk5NmNjZTQ2OGNlMzI3NzliYWQ2Zjhm
Li5mYTFjOGQ0NDlhZTZhOGIzYmQyZmIxNTdmODg5ZWNmOGE0M2FiOWFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAg
LTM5MCw2ICszOTAsOSBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVk
Z2UpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEZ1bGxzY3JlZW5EZWxlZ2F0
ZTopIGlkPF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4gX2Z1bGxzY3JlZW5EZWxlZ2F0ZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIEJPT0wgX2lzSW5GdWxsc2NyZWVuIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEyLjMpKTsKIAorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tNZWRpYUNh
cHR1cmVTdGF0ZSBfbWVkaWFDYXB0dXJlU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKKy0gKHZvaWQpX3NldE1lZGlhQ2FwdHVyZU11
dGVkOihCT09MKW11dGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwogLSAodm9pZClfbXV0ZU1lZGlhQ2FwdHVyZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiAtICh2b2lkKV9zZXRQYWdlTXV0ZWQ6KF9XS01l
ZGlhTXV0ZWRTdGF0ZSltdXRlZFN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwg
aW9zKDExLjApKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0VUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0VUlDbGllbnQuY3BwCmluZGV4IDFjNzY4ODY5MDc4MWYyYTA5YzBjOGI3YjQ4Zjc4ZThl
ZWU1NTY5MGYuLmM1MmIxNzBjNTM5YmU3NTlhYmJkZDE0YTEzNDU2ZTdkMTI3ZDY5MjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5j
cHAKQEAgLTE4NCwxOCArMTg0LDE2IEBAIHByaXZhdGU6CiAgICAgICAgIHdlYmtpdFdlYlZpZXdN
YWtlUGVybWlzc2lvblJlcXVlc3QobV93ZWJWaWV3LCBXRUJLSVRfUEVSTUlTU0lPTl9SRVFVRVNU
KGdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuZ2V0KCkpKTsKICAgICB9CiAKLSAgICBib29s
IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYs
IFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcGVybWlzc2lvblJlcXVlc3QpIGZpbmFsCisgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJv
eHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5hbAog
ICAgIHsKICAgICAgICAgR1JlZlB0cjxXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdD4g
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBhZG9wdEdSZWYod2Via2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RDcmVhdGUocGVybWlzc2lvblJlcXVlc3QsIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luKSk7CiAgICAgICAgIHdlYmtpdFdlYlZpZXdN
YWtlUGVybWlzc2lvblJlcXVlc3QobV93ZWJWaWV3LCBXRUJLSVRfUEVSTUlTU0lPTl9SRVFVRVNU
KHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIAotICAgIGJvb2wgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdl
YlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVz
ZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcGVybWlzc2lvblJlcXVl
c3QpIG92ZXJyaWRlCisgICAgdm9pZCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4o
V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYg
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9j
dW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiBwZXJtaXNzaW9uUmVx
dWVzdCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGF1dG8gZGV2aWNlSW5mb1Blcm1pc3Npb25S
ZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdERldmljZUluZm9QZXJtaXNzaW9uUmVxdWVzdENyZWF0
ZShwZXJtaXNzaW9uUmVxdWVzdCwgcGFnZS53ZWJzaXRlRGF0YVN0b3JlKCkuZGV2aWNlSWRIYXNo
U2FsdFN0b3JhZ2UoKSkpOwogICAgICAgICB3ZWJraXRXZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1
ZXN0KG1fd2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVChkZXZpY2VJbmZvUGVybWlz
c2lvblJlcXVlc3QuZ2V0KCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdl
UHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikgZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDAwNDAzZmZkODM5YjFk
NjczOTBiMjA1MjUwMjQzMmFlMWExNmIyMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5oCkBAIC0wLDAgKzEsMzkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNp
bXBvcnQgIldLV2ViVmlld1ByaXZhdGUuaCIKKyNpbXBvcnQgPFdlYkNvcmUvTWVkaWFQcm9kdWNl
ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworX1dLTWVkaWFDYXB0dXJlU3RhdGUgdG9XS01l
ZGlhQ2FwdHVyZVN0YXRlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41YWVlMzhlYjY0ZTJlMjQ4NDE2MDg3Njg4ZjNmYzYwMGQ2YTExMjhjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVz
Lm1tCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworX1dLTWVkaWFDYXB0dXJlU3RhdGUgdG9XS01lZGlhQ2Fw
dHVyZVN0YXRlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkK
K3sKKyAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZSBtZWRpYUNhcHR1cmVTdGF0ZSA9IF9XS01lZGlh
Q2FwdHVyZVN0YXRlTm9uZTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRl
IHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9uZTsKKyAgICBpZiAoc3RhdGUg
JiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCisg
ICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2Ft
ZXJhOworICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkQXVk
aW9DYXB0dXJlRGV2aWNlKQorICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNh
cHR1cmVTdGF0ZU11dGVkTWljcm9waG9uZTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKKyAgICAgICAgbWVkaWFDYXB0
dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZENhbWVyYTsKKworICAgIHJldHVy
biBtZWRpYUNhcHR1cmVTdGF0ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCmluZGV4IDM4ZGQ3
ZWNiY2ZiNWYyYTYwZmM4NmM5OGJlOGIwZjMxYTg1NGZmODYuLjhmZDE2YTk4MTJjMDRhZGYwODVl
NTQ0YWVlMzgwNGM4MjJkNWYxNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
SURlbGVnYXRlLmgKQEAgLTEyMyw4ICsxMjMsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgICAg
IGJvb2wgbmVlZHNGb250QXR0cmlidXRlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdWlEZWxl
Z2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXM7IH0K
ICAgICAgICAgdm9pZCBkaWRDaGFuZ2VGb250QXR0cmlidXRlcyhjb25zdCBXZWJDb3JlOjpGb250
QXR0cmlidXRlcyYpIGZpbmFsOwotICAgICAgICBib29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNl
Y3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkmKSBmaW5hbDsKLSAgICAgICAgYm9vbCBjaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlP
cmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJv
eHkmKSBmaW5hbDsKKyAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9y
aWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5JikgZmluYWw7CisgICAgICAgIHZvaWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3Jp
Z2luKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwg
QVBJOjpTZWN1cml0eU9yaWdpbiYsIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JikgZmlu
YWw7CiAgICAgICAgIHZvaWQgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSBmaW5hbDsKICAgICAgICAgdm9pZCBwcmludEZy
YW1lKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmKSBmaW5hbDsKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQpAQCAtMTk4LDggKzE5OCw4IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2Vi
Vmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmll
d0RpZEVudGVyRnVsbHNjcmVlbiA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZEV4aXRGdWxs
c2NyZWVuIDogMTsKLSAgICAgICAgYm9vbCB3ZWJWaWV3UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6
YXRpb25Gb3JEZXZpY2VzVVJMTWFpbkZyYW1lVVJMRGVjaXNpb25IYW5kbGVyIDogMTsKLSAgICAg
ICAgYm9vbCB3ZWJWaWV3Q2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMTWFpbkZyYW1lVVJM
RnJhbWVJZGVudGlmaWVyRGVjaXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3
UmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZURlY2lzaW9uSGFuZGxlciA6
IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0lzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1l
RGVjaXNpb25IYW5kbGVyIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3TWVkaWFDYXB0dXJlU3Rh
dGVEaWRDaGFuZ2UgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRDaGFuZ2VGb250QXR0cmli
dXRlcyA6IDE7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCmluZGV4IGNlODRhODg4NDc4OTczNWQxYTEzMmIxZWI2
ZWE2ZGUyODAzYTc4NmQuLmY2NWMxMTAyMjE2ZWE4OTc0OTU3OGQwMTdjZmQxODY0M2I3NWVmMDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMzEs
NiArMzEsNyBAQAogI2ltcG9ydCAiQVBJRnJhbWVJbmZvLmgiCiAjaW1wb3J0ICJBUElIaXRUZXN0
UmVzdWx0LmgiCiAjaW1wb3J0ICJDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLmgiCisjaW1w
b3J0ICJNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYldoZWVsRXZl
bnQuaCIKICNpbXBvcnQgIk5hdmlnYXRpb25BY3Rpb25EYXRhLmgiCiAjaW1wb3J0ICJVc2VyTWVk
aWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIgpAQCAtMTUwLDggKzE1MSw5IEBAIHZvaWQgVUlEZWxl
Z2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAgICAgbV9kZWxl
Z2F0ZU1ldGhvZHMud2ViVmlld0RpZE5vdEhhbmRsZVRhcEFzQ2xpY2tBdFBvaW50ID0gW2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkTm90SGFuZGxlVGFw
QXNDbGlja0F0UG9pbnQ6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMucHJlc2VudGluZ1ZpZXdD
b250cm9sbGVyRm9yV2ViVmlldyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF9wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3OildOwogI2VuZGlmCi0gICAg
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9y
RGV2aWNlc1VSTE1haW5GcmFtZVVSTERlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0
aW9uRm9yRGV2aWNlczp1cmw6bWFpbkZyYW1lVVJMOmRlY2lzaW9uSGFuZGxlcjopXTsKLSAgICBt
X2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMTWFp
bkZyYW1lVVJMRnJhbWVJZGVudGlmaWVyRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yVVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVjaXNpb25IYW5kbGVyOildOwor
ICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXph
dGlvbkZvckZyYW1lRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZp
Y2VzOnVybDptYWluRnJhbWVVUkw6ZGVjaXNpb25IYW5kbGVyOildIHx8IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRo
b3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lvbkhhbmRsZXI6KV07CisgICAgbV9kZWxl
Z2F0ZU1ldGhvZHMud2ViVmlld0lzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1lRGVjaXNp
b25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZp
ZXc6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50
aWZpZXI6ZGVjaXNpb25IYW5kbGVyOildIHx8IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKF93ZWJWaWV3OmlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1lOmRlY2lz
aW9uSGFuZGxlcjopXTsKKwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdNZWRpYUNhcHR1
cmVTdGF0ZURpZENoYW5nZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOildOwogICAgIG1fZGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdEaWRDaGFuZ2VGb250QXR0cmlidXRlcyA9IFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzOild
OwogICAgIG1fZGVsZWdhdGVNZXRob2RzLmRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmlldyA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9kYXRhRGV0ZWN0aW9uQ29u
dGV4dEZvcldlYlZpZXc6KV07CkBAIC04NTUsNyArODU3LDcgQEAgYm9vbCBVSURlbGVnYXRlOjpV
SUNsaWVudDo6cnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqIHdlYkZy
YW1lUHIKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLXN0YXRpYyB2b2lkIHJl
cXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlcyhjb25zdCBXZWJGcmFtZVByb3h5
JiBmcmFtZSwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCwgaWQgPFdL
VUlEZWxlZ2F0ZVByaXZhdGU+IGRlbGVnYXRlLCBXS1dlYlZpZXcmIHdlYlZpZXcpCitzdGF0aWMg
dm9pZCByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGNvbnN0IFdlYkZyYW1l
UHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCwgaWQgPFdLVUlEZWxlZ2F0ZVByaXZh
dGU+IGRlbGVnYXRlLCBXS1dlYlZpZXcmIHdlYlZpZXcpCiB7CiAgICAgYXV0byBkZWNpc2lvbkhh
bmRsZXIgPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3Qp
XShCT09MIGF1dGhvcml6ZWQpIHsKICAgICAgICAgaWYgKCFhdXRob3JpemVkKSB7CkBAIC04Njcs
MTAgKzg2OSw2IEBAIHN0YXRpYyB2b2lkIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9y
RGV2aWNlcyhjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwKICAgICAgICAgcHJvdGVjdGVkUmVx
dWVzdC0+YWxsb3coYXVkaW9EZXZpY2VVSUQsIHZpZGVvRGV2aWNlVUlEKTsKICAgICB9KTsKIAot
ICAgIGNvbnN0IFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+bWFpbkZy
YW1lKCk7Ci0gICAgVVJMIHJlcXVlc3RGcmFtZVVSTChVUkwoKSwgZnJhbWUudXJsKCkpOwotICAg
IFVSTCBtYWluRnJhbWVVUkwoVVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOwotCiAgICAgX1dLQ2Fw
dHVyZURldmljZXMgZGV2aWNlcyA9IDA7CiAgICAgaWYgKHJlcXVlc3QucmVxdWlyZXNBdWRpb0Nh
cHR1cmUoKSkKICAgICAgICAgZGV2aWNlcyB8PSBfV0tDYXB0dXJlRGV2aWNlTWljcm9waG9uZTsK
QEAgLTg4MSw4ICs4NzksMTkgQEAgc3RhdGljIHZvaWQgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6
YXRpb25Gb3JEZXZpY2VzKGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLAogICAgICAgICBBU1NF
UlQoIShkZXZpY2VzICYgX1dLQ2FwdHVyZURldmljZUNhbWVyYSkpOwogICAgIH0KIAotICAgIGF1
dG8gcHJvdGVjdGVkV2ViVmlldyA9IFJldGFpblB0cjxXS1dlYlZpZXc+KCZ3ZWJWaWV3KTsKLSAg
ICBbZGVsZWdhdGUgX3dlYlZpZXc6cHJvdGVjdGVkV2ViVmlldy5nZXQoKSByZXF1ZXN0VXNlck1l
ZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6ZGV2aWNlcyB1cmw6cmVxdWVzdEZyYW1lVVJMIG1h
aW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5n
ZXQoKV07CisgICAgY29uc3QgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lID0gZnJhbWUucGFnZSgp
LT5tYWluRnJhbWUoKTsKKworICAgIC8vIEZJWE1FOiBQcm92aWRlIGEgc3BlY2lmaWMgZGVsZWdh
dGUgZm9yIGRpc3BsYXkgY2FwdHVyZS4KKyAgICBpZiAoIXJlcXVlc3QucmVxdWlyZXNEaXNwbGF5
Q2FwdHVyZSgpICYmIFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNp
c2lvbkhhbmRsZXI6KV0pIHsKKworICAgICAgICBbZGVsZWdhdGUgX3dlYlZpZXc6JndlYlZpZXcg
cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTp3cmFwcGVyKEFQSTo6RnJh
bWVJbmZvOjpjcmVhdGUoKm1haW5GcmFtZSwgdG9wTGV2ZWxPcmlnaW4uc2VjdXJpdHlPcmlnaW4o
KSkpIGRldmljZXM6ZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgp
XTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFVSTCByZXF1ZXN0RnJhbWVVUkwoVVJM
KCksIGZyYW1lLnVybCgpKTsKKyAgICBVUkwgbWFpbkZyYW1lVVJMKFVSTCgpLCBtYWluRnJhbWUt
PnVybCgpKTsKKworICAgIFtkZWxlZ2F0ZSBfd2ViVmlldzomd2ViVmlldyByZXF1ZXN0VXNlck1l
ZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6ZGV2aWNlcyB1cmw6cmVxdWVzdEZyYW1lVVJMIG1h
aW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5n
ZXQoKV07CiB9CiAjZW5kaWYKIApAQCAtODk1LDEzICs5MDQsMTMgQEAgdm9pZCBVSURlbGVnYXRl
OjpVSUNsaWVudDo6ZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0
dHJpYnV0ZXMKICAgICBbcHJpdmF0ZVVJRGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1f
d2ViVmlldyBkaWRDaGFuZ2VGb250QXR0cmlidXRlczpmb250QXR0cmlidXRlcy5jcmVhdGVEaWN0
aW9uYXJ5KCkuZ2V0KCldOwogfQogCi1ib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2UsIFdl
YkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4s
IEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5JiByZXF1ZXN0KQordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRl
UG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBX
ZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2lu
LCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eSYgcmVxdWVzdCkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAg
IGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKLSAgICBpZiAo
IWRlbGVnYXRlIHx8ICFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVl
c3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlc1VSTE1haW5GcmFtZVVSTERlY2lzaW9u
SGFuZGxlcikgeworICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3UmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZURl
Y2lzaW9uSGFuZGxlcikgewogICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNh
YmxlZCk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgYm9vbCByZXF1aXJlc0F1ZGlvQ2FwdHVyZSA9IHJlcXVlc3QucmVxdWlyZXNBdWRpb0NhcHR1
cmUoKTsKQEAgLTkwOSwzMyArOTE4LDMzIEBAIGJvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94CiAgICAg
Ym9vbCByZXF1aXJlc0Rpc3BsYXlDYXB0dXJlID0gcmVxdWVzdC5yZXF1aXJlc0Rpc3BsYXlDYXB0
dXJlKCk7CiAgICAgaWYgKCFyZXF1aXJlc0F1ZGlvQ2FwdHVyZSAmJiAhcmVxdWlyZXNWaWRlb0Nh
cHR1cmUgJiYgIXJlcXVpcmVzRGlzcGxheUNhcHR1cmUpIHsKICAgICAgICAgcmVxdWVzdC5kZW55
KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJl
YXNvbjo6Tm9Db25zdHJhaW50cyk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1
cm47CiAgICAgfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBib29sIHVzaW5nTW9j
a0NhcHR1cmVEZXZpY2VzID0gcGFnZS5wcmVmZXJlbmNlcygpLm1vY2tDYXB0dXJlRGV2aWNlc0Vu
YWJsZWQoKTsKLSAgICBhdXRvIHJlcXVlc3RDYW1lcmFBdXRob3JpemF0aW9uID0gbWFrZUJsb2Nr
UHRyKFt0aGlzLCAmZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpLCB3
ZWJWaWV3ID0gUmV0YWluUHRyPFdLV2ViVmlldz4obV91aURlbGVnYXRlLm1fd2ViVmlldyksIHVz
aW5nTW9ja0NhcHR1cmVEZXZpY2VzXSgpIHsKKyAgICBhdXRvIHJlcXVlc3RDYW1lcmFBdXRob3Jp
emF0aW9uID0gbWFrZUJsb2NrUHRyKFt0aGlzLCAmZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QgPSBt
YWtlUmVmKHJlcXVlc3QpLCB3ZWJWaWV3ID0gUmV0YWluUHRyPFdLV2ViVmlldz4obV91aURlbGVn
YXRlLm1fd2ViVmlldyksIHRvcExldmVsT3JpZ2luID0gbWFrZVJlZih0b3BMZXZlbE9yaWdpbiks
IHVzaW5nTW9ja0NhcHR1cmVEZXZpY2VzXSgpIG11dGFibGUgewogCiAgICAgICAgIGlmICghcHJv
dGVjdGVkUmVxdWVzdC0+cmVxdWlyZXNWaWRlb0NhcHR1cmUoKSkgewotICAgICAgICAgICAgcmVx
dWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzKGZyYW1lLCBwcm90ZWN0ZWRSZXF1
ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdl
dCgpLCAqd2ViVmlldy5nZXQoKSk7CisgICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9y
aXphdGlvbkZvckZyYW1lKGZyYW1lLCB0b3BMZXZlbE9yaWdpbiwgcHJvdGVjdGVkUmVxdWVzdCwg
KGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwg
KndlYlZpZXcuZ2V0KCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAg
IEFWQXV0aG9yaXphdGlvblN0YXR1cyBjYW1lcmFBdXRob3JpemF0aW9uU3RhdHVzID0gdXNpbmdN
b2NrQ2FwdHVyZURldmljZXMgPyBBVkF1dGhvcml6YXRpb25TdGF0dXNBdXRob3JpemVkIDogW2dl
dEFWQ2FwdHVyZURldmljZUNsYXNzKCkgYXV0aG9yaXphdGlvblN0YXR1c0Zvck1lZGlhVHlwZTpn
ZXRBVk1lZGlhVHlwZVZpZGVvKCldOwogICAgICAgICBzd2l0Y2ggKGNhbWVyYUF1dGhvcml6YXRp
b25TdGF0dXMpIHsKICAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNBdXRob3JpemVk
OgotICAgICAgICAgICAgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzKGZy
YW1lLCBwcm90ZWN0ZWRSZXF1ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxl
Z2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqd2ViVmlldy5nZXQoKSk7CisgICAgICAgICAgICByZXF1
ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGZyYW1lLCB0b3BMZXZlbE9yaWdpbiwg
cHJvdGVjdGVkUmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUu
bV9kZWxlZ2F0ZS5nZXQoKSwgKndlYlZpZXcuZ2V0KCkpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgQVZBdXRob3JpemF0aW9uU3RhdHVzRGVuaWVkOgogICAgICAgICBjYXNlIEFW
QXV0aG9yaXphdGlvblN0YXR1c1Jlc3RyaWN0ZWQ6CiAgICAgICAgICAgICBwcm90ZWN0ZWRSZXF1
ZXN0LT5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vz
c0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIGNhc2UgQVZBdXRob3JpemF0aW9uU3RhdHVzTm90RGV0ZXJtaW5lZDoKLSAgICAgICAg
ICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFt0aGlzLCAmZnJhbWUsIHBy
b3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHByb3RlY3RlZFJlcXVlc3QuZ2V0KCkpLCB3ZWJWaWV3
ID0gUmV0YWluUHRyPFdLV2ViVmlldz4obV91aURlbGVnYXRlLm1fd2ViVmlldyldKEJPT0wgYXV0
aG9yaXplZCkgeworICAgICAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQ
dHIoW3RoaXMsICZmcmFtZSwgcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocHJvdGVjdGVkUmVx
dWVzdC5nZXQoKSksIHdlYlZpZXcgPSBSZXRhaW5QdHI8V0tXZWJWaWV3PihtX3VpRGVsZWdhdGUu
bV93ZWJWaWV3KSwgdG9wTGV2ZWxPcmlnaW4gPSBXVEZNb3ZlKHRvcExldmVsT3JpZ2luKV0oQk9P
TCBhdXRob3JpemVkKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFhdXRob3JpemVkKSB7CiAgICAg
ICAgICAgICAgICAgICAgIHByb3RlY3RlZFJlcXVlc3QtPmRlbnkoVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVu
aWVkKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJh
bWUsIHByb3RlY3RlZFJlcXVlc3QsIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVn
YXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3ZWJWaWV3LmdldCgpKTsKKyAgICAgICAgICAgICAgICBy
ZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGZyYW1lLCB0b3BMZXZlbE9yaWdp
biwgcHJvdGVjdGVkUmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdh
dGUubV9kZWxlZ2F0ZS5nZXQoKSwgKndlYlZpZXcuZ2V0KCkpOwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgICAgIFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIHJlcXVlc3RBY2Nlc3NGb3JN
ZWRpYVR5cGU6Z2V0QVZNZWRpYVR5cGVWaWRlbygpIGNvbXBsZXRpb25IYW5kbGVyOmRlY2lzaW9u
SGFuZGxlci5nZXQoKV07CkBAIC05NTIsNyArOTYxLDcgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNs
aWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVBy
b3gKICAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNEZW5pZWQ6CiAgICAgICAgIGNh
c2UgQVZBdXRob3JpemF0aW9uU3RhdHVzUmVzdHJpY3RlZDoKICAgICAgICAgICAgIHJlcXVlc3Qu
ZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5p
YWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNhc2UgQVZBdXRob3JpemF0aW9uU3RhdHVzTm90
RGV0ZXJtaW5lZDoKICAgICAgICAgICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2Nr
UHRyKFtwcm90ZWN0ZWRSZXF1ZXN0ID0gbWFrZVJlZihyZXF1ZXN0KSwgcmVxdWVzdENhbWVyYUF1
dGhvcml6YXRpb25dKEJPT0wgYXV0aG9yaXplZCkgewogICAgICAgICAgICAgICAgIGlmICghYXV0
aG9yaXplZCkgewpAQCAtOTY4LDUzICs5NzcsNTEgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVu
dDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3gK
ICAgICB9IGVsc2UKICAgICAgICAgcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb24oKTsKICNlbHNl
Ci0gICAgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzKGZyYW1lLCByZXF1
ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdl
dCgpLCAqbV91aURlbGVnYXRlLm1fd2ViVmlldyk7CisgICAgcmVxdWVzdFVzZXJNZWRpYUF1dGhv
cml6YXRpb25Gb3JGcmFtZShmcmFtZSwgdG9wTGV2ZWxPcmlnaW4sIHJlcXVlc3QsIChpZCA8V0tV
SURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICptX3VpRGVs
ZWdhdGUubV93ZWJWaWV3KTsKICNlbmRpZgogI2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
T3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2Vj
dXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2
ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KQordm9pZCBV
SURlbGVnYXRlOjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdl
YlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmln
aW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4s
IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KQogewogICAgIGF1dG8gZGVs
ZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKLSAgICBpZiAoIWRlbGVnYXRl
IHx8ICFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0NoZWNrVXNlck1lZGlh
UGVybWlzc2lvbkZvclVSTE1haW5GcmFtZVVSTEZyYW1lSWRlbnRpZmllckRlY2lzaW9uSGFuZGxl
cikgeworICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3SXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWVEZWNpc2lvbkhhbmRsZXIp
IHsKICAgICAgICAgcmVxdWVzdC5zZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKGZhbHNlKTsKLSAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBXS1dlYlZpZXcg
KndlYlZpZXcgPSBtX3VpRGVsZWdhdGUubV93ZWJWaWV3OwotICAgIGNvbnN0IFdlYkZyYW1lUHJv
eHkqIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0gICAgVVJMIHJlcXVl
c3RGcmFtZVVSTChVUkwoKSwgZnJhbWUudXJsKCkpOwotICAgIFVSTCBtYWluRnJhbWVVUkwoVVJM
KCksIG1haW5GcmFtZS0+dXJsKCkpOworICAgIGNvbnN0IGF1dG8gbWFpbkZyYW1lID0gZnJhbWUu
cGFnZSgpLT5tYWluRnJhbWUoKTsKKworICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcihfd2ViVmlldzppc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTpk
ZWNpc2lvbkhhbmRsZXI6KV0pIHsKKyAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoW3Byb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpXShCT09MIGF1dGhv
cml6ZWQpIHsKKyAgICAgICAgICAgIHByb3RlY3RlZFJlcXVlc3QtPnNldFVzZXJNZWRpYUFjY2Vz
c0luZm8oYXV0aG9yaXplZCk7CisgICAgICAgIH0pOworCisgICAgICAgIFsoaWQgPFdLVUlEZWxl
Z2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgaXNN
ZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWU6d3JhcHBlcihBUEk6OkZyYW1lSW5mbzo6Y3Jl
YXRlKCptYWluRnJhbWUsIHRvcExldmVsT3JpZ2luLnNlY3VyaXR5T3JpZ2luKCkpKSBkZWNpc2lv
bkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
IAogICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRSZXF1
ZXN0ID0gbWFrZVJlZihyZXF1ZXN0KV0oTlNTdHJpbmcqLCBCT09MIGF1dGhvcml6ZWQpIHsKICAg
ICAgICAgcHJvdGVjdGVkUmVxdWVzdC0+c2V0VXNlck1lZGlhQWNjZXNzSW5mbyhhdXRob3JpemVk
KTsKICAgICB9KTsKIAotICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93
ZWJWaWV3OndlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVlc3RGcmFt
ZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjpmcmFtZS5mcmFt
ZUlEKCkgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CisgICAgVVJMIHJl
cXVlc3RGcmFtZVVSTChVUkwoKSwgZnJhbWUudXJsKCkpOworICAgIFVSTCBtYWluRnJhbWVVUkwo
VVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOwogCi0gICAgcmV0dXJuIHRydWU7CisgICAgWyhpZCA8
V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2Vi
VmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1haW5G
cmFtZVVSTDptYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQoKSBkZWNp
c2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKIH0KIAogdm9pZCBVSURlbGVnYXRl
OjpVSUNsaWVudDo6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIFdLV2ViVmlldyAqd2ViVmlldyA9
IG1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXc7CisKKyAgICBbd2ViVmlldyBkaWRDaGFuZ2VWYWx1ZUZv
cktleTpAIm1lZGlhQ2FwdHVyZVN0YXRlIl07CisKICAgICBhdXRvIGRlbGVnYXRlID0gbV91aURl
bGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CiAgICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVn
YXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdNZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgX1dLTWVkaWFDYXB0dXJlU3RhdGUgbWVkaWFDYXB0dXJl
U3RhdGUgPSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmU7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBt
ZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZU1pY3JvcGhvbmU7
Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9D
YXB0dXJlRGV2aWNlKQotICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1
cmVTdGF0ZUFjdGl2ZUNhbWVyYTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkKLSAgICAgICAgbWVkaWFDYXB0dXJlU3Rh
dGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZE1pY3JvcGhvbmU7Ci0gICAgaWYgKHN0YXRl
ICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCi0g
ICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRDYW1l
cmE7Ci0KLSAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzp3
ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOm1lZGlhQ2FwdHVyZVN0YXRlXTsKKyAg
ICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzp3ZWJWaWV3IG1l
ZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOnRvV0tNZWRpYUNhcHR1cmVTdGF0ZShzdGF0ZSldOwog
fQogCiB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKFdlYlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBz
ZWN1cml0eU9yaWdpbiwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVz
TmVlZGVkLCBGdW5jdGlvbjx2b2lkICh1bnNpZ25lZCBsb25nIGxvbmcpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25DaGVja1Byb3h5LmgKaW5kZXggZDkxZjA0ZmZkYWI4ZDE0MjQ1NGQ1MDYzZmUxN2Yw
ZWJmYTgzMzRlYi4uNmEwODk1MDZjZWEzODhkMWQ0YzNkNmRlZmRhNWZlMGUwYWVlNTdjNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
Q2hlY2tQcm94eS5oCkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkoZnJhbWVJRCwgV1RGTW92
ZShoYW5kbGVyKSwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUodG9w
TGV2ZWxEb2N1bWVudE9yaWdpbikpKTsKICAgICB9CiAKKyAgICB2b2lkIGRlbnkoKSB7IHNldFVz
ZXJNZWRpYUFjY2Vzc0luZm8oZmFsc2UpOyB9CiAgICAgdm9pZCBzZXRVc2VyTWVkaWFBY2Nlc3NJ
bmZvKGJvb2wpOwogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKaW5kZXggOTVmNTUzZGQyMjVlYmNhZjNkYjhmOWFkMDJiNTdhNDNhOGJj
YmY4My4uNzRkNTc4ODk5NzhkN2MzMWYwZDEzYzllMWM0YzgxYzhjOGZhNDU5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtMzc0LDggKzM3NCw3IEBAIHZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJt
aXNzaW9uRm9yRnJhbWUoCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAg
ICBpZiAoIW1fcGFnZS51aUNsaWVudCgpLmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0KG1fcGFnZSwgKm1fcGFnZS5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRCksIFdU
Rk1vdmUodXNlck1lZGlhT3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbE9yaWdpbiksIHBlbmRpbmdS
ZXF1ZXN0LmdldCgpKSkKLSAgICAgICAgICAgIHVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1c2Vy
TWVkaWFJRCwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNz
RGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7CisgICAgICAgIG1fcGFnZS51aUNsaWVu
dCgpLmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KG1fcGFnZSwgKm1f
cGFnZS5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRCksIFdURk1vdmUodXNlck1lZGlhT3JpZ2lu
KSwgV1RGTW92ZSh0b3BMZXZlbE9yaWdpbiksIHBlbmRpbmdSZXF1ZXN0LmdldCgpKTsKICAgICB9
OwogCiAgICAgYXV0byByZXF1ZXN0SUQgPSBnZW5lcmF0ZVJlcXVlc3RJRCgpOwpAQCAtNDE3LDEw
ICs0MTYsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpn
ZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyh1aW50NjRfdAogICAgIGF1dG8gcmVxdWVzdCA9IFVz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpjcmVhdGUoZnJhbWVJRCwgV1RGTW92ZShoYW5k
bGVyKSwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxE
b2N1bWVudE9yaWdpbikpOwogCiAgICAgbV9wZW5kaW5nRGV2aWNlUmVxdWVzdHMuYWRkKHJlcXVl
c3RJRCwgcmVxdWVzdC5jb3B5UmVmKCkpOwotICAgIGlmICghbV9wYWdlLnVpQ2xpZW50KCkuY2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKG1fcGFnZSwgKm1fcGFnZS5wcm9jZXNzKCku
d2ViRnJhbWUoZnJhbWVJRCksIHVzZXJNZWRpYU9yaWdpbi5nZXQoKSwgdG9wTGV2ZWxPcmlnaW4u
Z2V0KCksIHJlcXVlc3QuZ2V0KCkpKSB7Ci0gICAgICAgIG1fcGVuZGluZ0RldmljZVJlcXVlc3Rz
LnRha2UocmVxdWVzdElEKTsKLSAgICAgICAgaGFuZGxlcihmYWxzZSk7Ci0gICAgfQorICAgIG1f
cGFnZS51aUNsaWVudCgpLmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihtX3BhZ2Us
ICptX3BhZ2UucHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQpLCB1c2VyTWVkaWFPcmlnaW4uZ2V0
KCksIHRvcExldmVsT3JpZ2luLmdldCgpLCByZXF1ZXN0LmdldCgpKTsKIH0KIAogYm9vbCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6d2FzR3JhbnRlZFZpZGVvT3JBdWRp
b0FjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5oCmluZGV4IDU5ODBkYzcwOWEwMDI4NWQwYWE4ZTczNWNkMzA4
MTk3YzkxMThiZGIuLmFjODA1ZTc4OGJlMjMxN2UwYTdhYWViNzE4OTA5Y2Y0NWJjYTg5MDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWxs
b3coKTsKIAogICAgIGVudW0gY2xhc3MgVXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uIHsgTm9D
b25zdHJhaW50cywgVXNlck1lZGlhRGlzYWJsZWQsIE5vQ2FwdHVyZURldmljZXMsIEludmFsaWRD
b25zdHJhaW50LCBIYXJkd2FyZUVycm9yLCBQZXJtaXNzaW9uRGVuaWVkLCBPdGhlckZhaWx1cmUg
fTsKLSAgICB2b2lkIGRlbnkoVXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uKTsKKyAgICB2b2lk
IGRlbnkoVXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uID0gVXNlck1lZGlhQWNjZXNzRGVuaWFs
UmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MjgzMmJiN2M0YjgxYWU4OTk2NTY2NmVlNGI1MTdmZTBkMzA3YjFmNy4uY2U3ODhlZDIxNWIxMzhh
MDk1ZjdlN2UyYzg2ZDM4OWE1ZmVhMTcxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yOTk4LDYgKzI5OTgsOCBAQAogCQk0MTA0ODJD
QjFEREQyRkI1MDBGMDA2RDAgLyogUlRDTmV0d29yay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSVENOZXR3b3JrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDEwNDgyQ0MxREREMkZCNTAwRjAwNkQwIC8qIFJUQ05ldHdvcmsuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDTmV0d29yay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTExNDM2MzIwRjY3N0IxMDAyNkY5MTIgLyogSW5qZWN0VXNlclNjcmlwdElt
bWVkaWF0ZWx5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdFVzZXJT
Y3JpcHRJbW1lZGlhdGVseS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTEyODZF
RjIxQzhBOTBDMDAzQTg1NTAgLyogTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MTEyODZGMDIxQzhBOTBEMDAzQTg1NTAgLyogTWVkaWFDYXB0
dXJlVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
TWVkaWFDYXB0dXJlVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTEyQjU0NzFGOUZEM0FCMDBFNjc4NzUgLyogTmV0d29ya1JUQ1Jlc29sdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtSVENSZXNvbHZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTJCNTQ3MUY5RkQzQUIwMEU2Nzk4NiAvKiBO
ZXR3b3JrUlRDUmVzb2x2ZXJDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBOZXR3b3JrUlRDUmVzb2x2ZXJDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxMTJCNTQ4MUY5RkQzQUMwMEU2Nzg3NSAvKiBOZXR3b3JrUlRDUmVzb2x2ZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1JUQ1Jlc29sdmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MzAwLDYgKzUzMDIsOCBAQAogCQkJCTBG
MEMzNjU5MThDMDU1NTgwMEY2MDdENyAvKiBMYXllclJlcHJlc2VudGF0aW9uLmggKi8sCiAJCQkJ
N0E4MjFGNEIxRTJGNjY0ODAwNjA0NTc3IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNs
aWVudC5oICovLAogCQkJCTdBODIxRjREMUUyRjY3OUUwMDYwNDU3NyAvKiBMZWdhY3lDdXN0b21Q
cm90b2NvbE1hbmFnZXJDbGllbnQubW0gKi8sCisJCQkJNDExMjg2RUYyMUM4QTkwQzAwM0E4NTUw
IC8qIE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5oICovLAorCQkJCTQxMTI4NkYwMjFDOEE5MEQwMDNB
ODU1MCAvKiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0gKi8sCiAJCQkJMUFCQzNERjQxODk5RTQz
NzAwNEYwNjI2IC8qIE5hdmlnYXRpb25TdGF0ZS5oICovLAogCQkJCTFBQkMzREYzMTg5OUU0Mzcw
MDRGMDYyNiAvKiBOYXZpZ2F0aW9uU3RhdGUubW0gKi8sCiAJCQkJNUM2Q0U2RDMxRjU5RUEzNTAw
MDdDNkNCIC8qIFBhZ2VDbGllbnRJbXBsQ29jb2EuaCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlN2MwMzI0YThjYzAyZjEzODk2YzJkMzIz
MTY5ZWQxODllZDY3OTZhLi41YzhkMWZiYmM3MDI0ZDE5ZTE4Y2MxMjJlYWVhZWJkYWVmNGJmYTVh
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjYgQEAKKzIwMTgtMTItMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgZm9yIGNvbnRyb2xsaW5nIGdldFVzZXJNZWRpYQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyNzkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaW5pQnJv
d3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubToKKyAgICAgICAgKC1bV0syQnJv
d3NlcldpbmRvd0NvbnRyb2xsZXIgX3dlYlZpZXc6cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRp
b25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0syQnJv
d3NlcldpbmRvd0NvbnRyb2xsZXIgX3dlYlZpZXc6aXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9y
RnJhbWU6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW06CisgICAgICAgICgtW05hdmlnYXRpb25X
aGlsZUdldFVzZXJNZWRpYVByb21wdERpc3BsYXllZFVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVz
dE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxl
cjpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFS
ZXByb21wdC5tbToKKyAgICAgICAgKC1bR2V0VXNlck1lZGlhUmVwcm9tcHRVSURlbGVnYXRlIF93
ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpk
ZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
TWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tOgorICAgICAgICAoLVtNZWRpYVN0cmVhbVRyYWNr
RGV0YWNoZWRVSURlbGVnYXRlIF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0
aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbToKKyAgICAgICAg
KC1bVXNlck1lZGlhVUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9y
aXphdGlvbkZvckZyYW1lOmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtV
c2VyTWVkaWFVSURlbGVnYXRlIF93ZWJWaWV3OmlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZy
YW1lOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbToKKyAgICAgICAgKC1b
U2ltdWxhdGVGYWlsZWRTYW5kYm94VUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0
dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAg
ICAgICAoLVtTaW11bGF0ZUZhaWxlZFNhbmRib3hVSURlbGVnYXRlIF93ZWJWaWV3OmlzTWVkaWFD
YXB0dXJlQXV0aG9yaXplZEZvckZyYW1lOmRlY2lzaW9uSGFuZGxlcjpdKToKKwogMjAxOC0xMi0x
NyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBj
b25jYXRlbmF0aW5nIFN0cmluZ1ZpZXcgd2l0aCBvdGhlciBzdHJpbmcgdHlwZXMKZGlmZiAtLWdp
dCBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tIGIv
VG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KaW5kZXgg
M2U3MzlkN2M5MTU1MzhlMDAzMjljZmYwYzA0N2FhYTcwZmQ0YTFiZi4uOWI0ODEyYzE3NGNjMzE0
Y2QxOGY0MWZlMTNjOWI1MGI3MzE4OTlmNSAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIv
bWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KKysrIGIvVG9vbHMvTWluaUJyb3dzZXIv
bWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KQEAgLTc5MSwxNCArNzkxLDE0IEBAIC0g
KHZvaWQpZmluZEJhclZpZXdEaWRDaGFuZ2VIZWlnaHQKIHsKIH0KIAotLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRl
dmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJh
bWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9P
TCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JGcmFtZTooV0tGcmFt
ZUluZm8gKikgbWFpbkZyYW1lIGRldmljZXM6IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRl
Y2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIK
IHsKICAgICBkZWNpc2lvbkhhbmRsZXIodHJ1ZSk7CiB9CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAq
KXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjoo
TlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0
cmluZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJh
bWU6KFdLRnJhbWVJbmZvICopIG1haW5GcmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJP
T0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCiB7Ci0gICAgZGVjaXNpb25IYW5kbGVyKEAi
IiwgZmFsc2UpOworICAgIGRlY2lzaW9uSGFuZGxlcihmYWxzZSk7CiB9CiAKIEBlbmQKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmln
YXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFO
YXZpZ2F0aW9uLm1tCmluZGV4IDQyMWVlYTQyOTJjYmFiMTRlOTQ2Zjc5OGEzNWRlYjczZjgyYjM1
MDguLjZhZjZjZmE5ODMwZmE0YzVkYTc3N2JmYjgzMGFjMTE4MjQxMmJlMzQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24u
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2
aWdhdGlvbi5tbQpAQCAtNDIsMTIgKzQyLDEyIEBAIHN0YXRpYyBib29sIG9rVG9Qcm9jZWVkID0g
ZmFsc2U7CiBzdGF0aWMgYm9vbCBzaG91bGRSZWxlYXNlSW5FbnVtZXJhdGUgPSBmYWxzZTsKIAog
QGludGVyZmFjZSBOYXZpZ2F0aW9uV2hpbGVHZXRVc2VyTWVkaWFQcm9tcHREaXNwbGF5ZWRVSURl
bGVnYXRlIDogTlNPYmplY3Q8V0tVSURlbGVnYXRlPgotLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9X
S0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5T
VVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3Jp
emVkKSlkZWNpc2lvbkhhbmRsZXI7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZv
KikgbWFpbkZyYW1lIGRldmljZXM6IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyOwogLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5T
VVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlm
aWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4p
KE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsKIEBlbmQK
IAogQGltcGxlbWVudGF0aW9uIE5hdmlnYXRpb25XaGlsZUdldFVzZXJNZWRpYVByb21wdERpc3Bs
YXllZFVJRGVsZWdhdGUKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVx
dWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylk
ZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVS
TCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5k
bGVyCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNh
cHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvKikgbWFpbkZyYW1lIGRldmlj
ZXM6IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXiko
Qk9PTCkpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5r
Il1dXTsKICAgICBbd2ViVmlldyByZWxlYXNlXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0Lm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0KaW5kZXggYzQzMmZj
YWU1ZThmYzU5NzkxMjMzZTUwYmRiYjc1MzJjYmFjNGY3ZS4uZDlkYjY1N2Q1MGIwNDNiZDBiZjJk
YmYxMjgxNGJlZmNjOWNhYWU3ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0KQEAgLTQxLDEyICs0MSwxMiBA
QAogc3RhdGljIGJvb2wgd2FzUHJvbXB0ZWQgPSBmYWxzZTsKIAogQGludGVyZmFjZSBHZXRVc2Vy
TWVkaWFSZXByb21wdFVJRGVsZWdhdGUgOiBOU09iamVjdDxXS1VJRGVsZWdhdGU+Ci0tICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0
aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJs
IG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lk
ICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsKKy0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JG
cmFtZTooV0tGcmFtZUluZm8qKSBtYWluRnJhbWUgZGV2aWNlczogKF9XS0NhcHR1cmVEZXZpY2Vz
KWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXI7
CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVy
bWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFt
ZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNp
b25IYW5kbGVyOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gR2V0VXNlck1lZGlhUmVwcm9tcHRV
SURlbGVnYXRlCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RV
c2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNl
cyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVj
aXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgor
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJl
QXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyopIG1haW5GcmFtZSBkZXZpY2VzOiAo
X1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wp
KWRlY2lzaW9uSGFuZGxlcgogewogICAgIHdhc1Byb21wdGVkID0gdHJ1ZTsKICAgICBkZWNpc2lv
bkhhbmRsZXIoWUVTKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQppbmRleCAxZWNjZDBhNmVlMzMx
NjQyNjMyZDRkNWM2ZGYwYmJjZDAyYWUyZjQzLi5jYWE3OWRkNGEyNWU1YTE1ZGViYmQ1NTQ2MWZh
Y2E0ZjYwYjY2MTRkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCkBAIC00MCwxMyArNDAsMTMg
QEAKIHN0YXRpYyBib29sIGhhc1JlY2lldmVkQ29ycmVjdENhcHR1cmVTdGF0ZSA9IGZhbHNlOwog
CiBAaW50ZXJmYWNlIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUgOiBOU09iamVj
dDxXS1VJRGVsZWdhdGU+Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJl
cXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMp
ZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVV
UkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFu
ZGxlcjsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlh
Q2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTooV0tGcmFtZUluZm8qKSBtYWluRnJhbWUgZGV2
aWNlczogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkIChe
KShCT09MKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZy
YW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIp
ZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQs
IEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOwogLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0
dXJlU3RhdGUpc3RhdGU7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBNZWRpYVN0cmVhbVRyYWNr
RGV0YWNoZWRVSURlbGVnYXRlCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmlj
ZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJh
bWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9u
SGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVk
aWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyopIG1haW5GcmFtZSBk
ZXZpY2VzOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQg
KF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgogewogICAgIGRlY2lzaW9uSGFuZGxlcihZRVMpOwog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2Vy
TWVkaWFEaXNhYmxlZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
VXNlck1lZGlhRGlzYWJsZWQubW0KaW5kZXggODgzMzNjM2ZiYjY4MGUxNjVlN2YyNjFhNjI2ZTVi
MWQxMzFiM2JhYi4uMTA4NWM1ZWMzNzhmZTY5NzgzMDFiZjIyYjllMmY4MDM1MjNjNTZlNCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFE
aXNhYmxlZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Vz
ZXJNZWRpYURpc2FibGVkLm1tCkBAIC0zOSw3ICszOSw2IEBACiAKICNpZiBXS19BUElfRU5BQkxF
RAogCi1zdGF0aWMgYm9vbCByZWZ1c2VSZXF1ZXN0ID0gZmFsc2U7CiBzdGF0aWMgYm9vbCB3YXNQ
cm9tcHRlZCA9IGZhbHNlOwogCiBzdGF0aWMgYm9vbCByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBm
YWxzZTsKQEAgLTYyLDE1ICs2MSwxMCBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBVc2VyTWVk
aWFVSURlbGVnYXRlCiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVx
dWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihOU1VJbnRlZ2VyKWRldmljZXMg
dXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lz
aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyCistICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9u
Rm9yRnJhbWU6KFdLRnJhbWVJbmZvKikgbWFpbkZyYW1lIGRldmljZXM6IChfV0tDYXB0dXJlRGV2
aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5k
bGVyCiB7CiAgICAgd2FzUHJvbXB0ZWQgPSB0cnVlOwogCi0gICAgaWYgKHJlZnVzZVJlcXVlc3Qp
IHsKLSAgICAgICAgZGVjaXNpb25IYW5kbGVyKE5PKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQogICAgIEJPT0wgbmVlZHNNaWNyb3Bob25lQXV0aG9yaXplZCA9IGRldmljZXMgJiBfV0tDYXB0
dXJlRGV2aWNlTWljcm9waG9uZTsKICAgICBCT09MIG5lZWRzQ2FtZXJhQXV0aG9yaXplZCA9IGRl
dmljZXMgJiBfV0tDYXB0dXJlRGV2aWNlQ2FtZXJhOwogICAgIGlmICghbmVlZHNNaWNyb3Bob25l
QXV0aG9yaXplZCAmJiAhbmVlZHNDYW1lcmFBdXRob3JpemVkKSB7CkBAIC04MSwxNCArNzUsOSBA
QCAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFB
dXRob3JpemF0aW9uRm9yRGV2aWNlczooTgogICAgIGRlY2lzaW9uSGFuZGxlcihZRVMpOwogfQog
Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVy
bWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFt
ZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKiwgQk9PTCkpZGVjaXNpb25IYW5kbGVyCistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGlzTWVkaWFDYXB0dXJlQXV0aG9yaXpl
ZEZvckZyYW1lOihXS0ZyYW1lSW5mbyAqKSBtYWluRnJhbWUgZGVjaXNpb25IYW5kbGVyOih2b2lk
ICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgogewotICAgIGlmIChyZWZ1c2VS
ZXF1ZXN0KSB7Ci0gICAgICAgIGRlY2lzaW9uSGFuZGxlcihuaWwsIE5PKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIGRlY2lzaW9uSGFuZGxlcihAIjB4OTg3NjU0MzIxIiwgTk8pOwor
ICAgIGRlY2lzaW9uSGFuZGxlcihOTyk7CiB9CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5k
Ym94Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFT
aW11bGF0ZUZhaWxlZFNhbmRib3gubW0KaW5kZXggYzczYzk4OTk0ZTQxNzMzNDkwMjU1MmE4Nzhk
ZWY1ZDE3MjI1YmRmNC4uOWNkOTg1Zjc5ZjE0ZjM1Njk2ZTU5NmRhYTEzYTkzY2EzMDRhODQyNiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVk
aWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0KQEAgLTM5LDcg
KzM5LDYgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLXN0YXRpYyBib29sIHJlZnVzZVJlcXVl
c3QgPSBmYWxzZTsKIHN0YXRpYyBib29sIHdhc1Byb21wdGVkID0gZmFsc2U7CiAKIHN0YXRpYyBi
b29sIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwpAQCAtNjIsMTUgKzYxLDEwIEBAIEBl
bmQKIAogQGltcGxlbWVudGF0aW9uIFNpbXVsYXRlRmFpbGVkU2FuZGJveFVJRGVsZWdhdGUKIAot
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0
aG9yaXphdGlvbkZvckRldmljZXM6KE5TVUludGVnZXIpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJs
IG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lk
ICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTooV0tGcmFt
ZUluZm8qKSBtYWluRnJhbWUgZGV2aWNlczogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVj
aXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICB3YXNQ
cm9tcHRlZCA9IHRydWU7CiAKLSAgICBpZiAocmVmdXNlUmVxdWVzdCkgewotICAgICAgICBkZWNp
c2lvbkhhbmRsZXIoTk8pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgQk9PTCBuZWVk
c01pY3JvcGhvbmVBdXRob3JpemVkID0gZGV2aWNlcyAmIF9XS0NhcHR1cmVEZXZpY2VNaWNyb3Bo
b25lOwogICAgIEJPT0wgbmVlZHNDYW1lcmFBdXRob3JpemVkID0gZGV2aWNlcyAmIF9XS0NhcHR1
cmVEZXZpY2VDYW1lcmE7CiAgICAgaWYgKCFuZWVkc01pY3JvcGhvbmVBdXRob3JpemVkICYmICFu
ZWVkc0NhbWVyYUF1dGhvcml6ZWQpIHsKQEAgLTgxLDE0ICs3NSw5IEBAIC0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JE
ZXZpY2VzOihOCiAgICAgZGVjaXNpb25IYW5kbGVyKFlFUyk7CiB9CiAKLS0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihO
U1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRp
ZmllcjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkIChe
KShOU1N0cmluZyAqLCBCT09MKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgaXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWU6KFdLRnJh
bWVJbmZvICopIG1haW5GcmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9y
aXplZCkpZGVjaXNpb25IYW5kbGVyCiB7Ci0gICAgaWYgKHJlZnVzZVJlcXVlc3QpIHsKLSAgICAg
ICAgZGVjaXNpb25IYW5kbGVyKG5pbCwgTk8pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgZGVjaXNpb25IYW5kbGVyKEAiMHg5ODc2NTQzMjEiLCBOTyk7CisgICAgZGVjaXNpb25IYW5k
bGVyKE5PKTsKIH0KIEBlbmQKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357729</attachid>
            <date>2018-12-19 14:52:48 -0800</date>
            <delta_ts>2018-12-19 16:00:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192793-20181219145246.patch</filename>
            <type>text/plain</type>
            <size>55503</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc5Y2JlZmMxYjM4OWI1YzQw
N2M3M2RjMTUzOTQ5ODA3MDJmNTUzZjguLjEzZjAwYjRkYzQ5MWU5OTZlMjZkOGU5MzZjNTkxNGNi
YTNmMzAwNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTgtMTItMTkgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgZm9yIGNv
bnRyb2xsaW5nIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyNzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU29tZSB3ZWFrbmVzc2VzIG9mIHRoZSBjdXJyZW50IGdldFVzZXJNZWRp
YSBTUEkgd2VyZSBmb3VuZC4KKyAgICAgICAgSW4gcGFydGljdWxhcjoKKyAgICAgICAgLSBUaGUg
aGFzaCBzYWx0IHNob3VsZCBiZSBoYW5kbGVkIGJ5IFdlYktpdC4KKyAgICAgICAgLSBObyBuZWVk
IHRvIGV4cG9zZSB0aGUgZnJhbWUgVVJMLCBvbmx5IHRoZSB0b3AgbGV2ZWwgb3JpZ2luIGlzIG5l
ZWRlZC4KKyAgICAgICAgLSBUaGUgbmFtZXMgb2YgdGhlIGNhbGxiYWNrIGNhbiBiZSBpbXByb3Zl
ZC4KKyAgICAgICAgQWRkcmVzc2VkIHRoZXNlIGJ5IGNyZWF0aW5nIGEgbmV3IFNQSSB3aGljaCB3
aWxsIHJlcGxhY2UgdGhlIGN1cnJlbnQgb25lLgorICAgICAgICBUaGUgY3VycmVudCBTUEkgd2ls
bCBiZSByZW1vdmVkIGxhdGVyIG9uLgorCisgICAgICAgIERpZCBzb21lIHJlZmFjdG9yaW5nIGJ5
IG1ha2luZyB0aGUgY2FsbGJhY2tzIG5vdCByZXR1cm4gZmFsc2UuCisgICAgICAgIEluc3RlYWQs
IGltcGxlbWVudCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpbnNpZGUgdGhlIHJlcXVlc3Qgb2JqZWN0
cyBhcyBkZW55IG1ldGhvZHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBl
cm1pc3Npb25Gb3JPcmlnaW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
OgorICAgICAgICAoV0tQYWdlU2V0UGFnZVVJQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9tZWRpYUNhcHR1cmVT
dGF0ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldE1lZGlhQ2FwdHVyZU11dGVkOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHA6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLm1tOiBBZGRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0
ZSk6CisgICAgICAgIChXZWJLaXQ6OnJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVn
YXRlOjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAg
ICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hh
bmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHku
aDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OmRlbnkp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJN
ZWRpYVBlcm1pc3Npb25JbmZvKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oOgorCiAyMDE4LTEyLTA5ICBEYXJpbiBBZGxlciAgPGRhcmluQGFw
cGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBaZXJvIG1lbW9yeSBjb250YWluaW5nIHRoZSBwYXNz
d29yZCBmb3IgUERGIGRvY3VtZW50cyB3aGVuIGEgV0tQREZWaWV3IGlzIGRlYWxsb2NhdGVkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZGZlZjlmZWM1MmZkMjdlZTEwNWNkNTAwODgxYzhkY2FmYzJhYWU0Ny4uZTg0YzM0Y2JmMTJk
OThiZDJkYTRhZWI1Y2QzMGQyMWRiNjA4YjgwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjU1MTAsNiArMjU1MTAsOCBAQAog
CQkJCUQwRDg2NDhFMjFCNzA2NzYwMDNDOTgzQyAvKiBXZWJHUFVCdWZmZXIuaWRsICovLAogCQkJ
CUQwRDg2NDgyMjFCNjE3MjcwMDNDOTgzQyAvKiBXZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmggKi8s
CiAJCQkJRDBEODY0ODMyMUI2MTcyNzAwM0M5ODNDIC8qIFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3Iu
aWRsICovLAorCQkJCUQwNjNBRTRFMjFDMDgxMEEwMDBFNkEzNSAvKiBXZWJHUFVCdWZmZXJVc2Fn
ZS5oICovLAorCQkJCUQwNjNBRTRDMjFDMDdBQjUwMDBFNkEzNSAvKiBXZWJHUFVCdWZmZXJVc2Fn
ZS5pZGwgKi8sCiAJCQkJRDAwMUQ5QUMyMUIwQzgxQTAwMjNCOUJDIC8qIFdlYkdQVUNvbG9yLmgg
Ki8sCiAJCQkJRDAwMUQ5QUQyMUIwQzgxQTAwMjNCOUJDIC8qIFdlYkdQVUNvbG9yLmlkbCAqLywK
IAkJCQlEMEVBQ0Y3NzIxOTM3MjI4MDAwRkE3NUMgLyogV2ViR1BVQ29tbWFuZEJ1ZmZlci5jcHAg
Ki8sCkBAIC0yNTU2MSw4ICsyNTU2Myw2IEBACiAJCQkJRDBFQUNGODgyMTkzRUU0RTAwMEZBNzVD
IC8qIFdlYkdQVVRleHR1cmVWaWV3LmNwcCAqLywKIAkJCQlEMEVBQ0Y4NzIxOTNFRTRFMDAwRkE3
NUMgLyogV2ViR1BVVGV4dHVyZVZpZXcuaCAqLywKIAkJCQlEMEVBQ0Y4OTIxOTNFRTRFMDAwRkE3
NUMgLyogV2ViR1BVVGV4dHVyZVZpZXcuaWRsICovLAotCQkJCUQwNjNBRTRDMjFDMDdBQjUwMDBF
NkEzNSAvKiBXZWJHUFVCdWZmZXJVc2FnZS5pZGwgKi8sCi0JCQkJRDA2M0FFNEUyMUMwODEwQTAw
MEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHdlYmdw
dTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXgg
NTVlYWY1OTEzMTc4ODlhZjA2NmM1MjJmNDZmM2FkZWUzZGQyMjZmMS4uMDdjYjBhZDI3MDJlMmJm
NDM0ZjllZWEyZGJjYTA3ZjViNTljYTEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMzE5
LDYgKzMxOSw3IEBAIFVJUHJvY2Vzcy9Db2NvYS9GaW5kQ2xpZW50Lm1tCiBVSVByb2Nlc3MvQ29j
b2EvRnVsbHNjcmVlbkNsaWVudC5tbQogVUlQcm9jZXNzL0NvY29hL0ljb25Mb2FkaW5nRGVsZWdh
dGUubW0KIFVJUHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQu
bW0KK1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0KIFVJUHJvY2Vzcy9D
b2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KIFVJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENv
Y29hLm1tCiBVSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1tCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDFkMzUyNzJjOWMy
ZDQxZDM3ODExZTI1ODc1ZWJhODNkYzFjMTU0MjguLjZiYjRiZDMzZDA0NjkyMTQxZWQwOWRiYmVk
MDhmZDhlZjZkMWQ2MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVu
dC5oCkBAIC0xMjksOCArMTI5LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHJ1bk9w
ZW5QYW5lbChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIE9wZW5QYW5lbFBhcmFtZXRlcnMqLCBX
ZWJLaXQ6OldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkqKSB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2Vj
dXJpdHlPcmlnaW4mLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYpIHsgfQotICAgIHZpcnR1YWwgYm9v
bCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBh
Z2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgU2VjdXJp
dHlPcmlnaW4mLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSB7IHJl
dHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25G
b3JPcmlnaW4oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBT
ZWN1cml0eU9yaWdpbiYsIFNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eSYpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGRlY2lk
ZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5
JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBTZWN1cml0eU9yaWdp
biYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViS2l0OjpXZWJQ
YWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIFNlY3Vy
aXR5T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgRnVuY3Rpb248dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7
IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYktpdDo6
V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcm
IHJlcXVlc3RpbmdEb21haW4sIGNvbnN0IFdURjo6U3RyaW5nJiBjdXJyZW50RG9tYWluLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRp
b25IYW5kbGVyKHRydWUpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwCmluZGV4IDI1Mzc0Mzk2NDFiNmZmZTI3ZTE2MjYxNTU0Mzg1MjUxNTAzMzQ2NjguLjVhZDA5
NDZlMjZlZmQzNzYwMWRjZmU3ZTUxODMxNTE4ZGU3YjM0MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMTg1NCwyMiArMTg1NCwyNCBAQCB2b2lkIFdLUGFn
ZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRC
YXNlKiB3a0NsaWVudAogICAgICAgICAgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdCh0b0FQSSgmcGFnZSksIHRvQVBJKCZmcmFtZSksIHRvQVBJ
KCZvcmlnaW4pLCB0b0FQSShHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUoc3Rk
OjpleGNoYW5nZShjb21wbGV0aW9uSGFuZGxlciwgbnVsbHB0cikpLnB0cigpKSwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wgZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFt
ZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5hbAorICAgICAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQ
cm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVz
ZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiBwZXJtaXNzaW9uUmVx
dWVzdCkgZmluYWwKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCkKLSAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KSB7CisgICAgICAgICAgICAgICAgcGVybWlzc2lvblJlcXVl
c3QuZGVueSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QodG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b0FQSSgmdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4pLCB0b0FQSSgmdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIHRvQVBJKCZwZXJtaXNzaW9u
UmVxdWVzdCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Ci0gICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94
eSYgcmVxdWVzdCkgZmluYWwKKyAgICAgICAgdm9pZCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25G
b3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpT
ZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmln
aW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
JiByZXF1ZXN0KSBmaW5hbAogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIW1fY2xpZW50LmNo
ZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbikKLSAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmNoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkZvck9yaWdpbikgeworICAgICAgICAgICAgICAgIHJlcXVlc3QuZGVueSgpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgbV9jbGllbnQuY2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKHRvQVBJKCZwYWdlKSwgdG9BUEkoJmZyYW1l
KSwgdG9BUEkoJnVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgdG9BUEkoJnRvcExldmVsRG9jdW1l
bnRPcmlnaW4pLCB0b0FQSSgmcmVxdWVzdCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Ci0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJv
eHkmIHBhZ2UsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgRnVuY3Rpb248dm9pZChib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IDdmNjFhODJl
YmE3Y2JiNmU1ODExY2VkMjRmZGZmYzA4NTlmMDNjMWYuLjMwNTFkOGQ3NWE3ODE3ZTI3M2Q2OGZi
NzdjMDBhYjExMjJhMDIzOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAtMTA0LDYgKzEwNCw4IEBAIHN0
cnVjdCBVSUVkZ2VJbnNldHM7CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgaW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdlZDooQ0dTaXplKXNpemUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwogLSAoTlNEaWN0aW9uYXJ5ICopX2Rh
dGFEZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJh
bWU6KFdLRnJhbWVJbmZvICopbWFpbkZyYW1lIGRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRl
dmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaXNNZWRpYUNhcHR1
cmVBdXRob3JpemVkRm9yRnJhbWU6KFdLRnJhbWVJbmZvICopbWFpbkZyYW1lIGRlY2lzaW9uSGFu
ZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9u
Rm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1h
aW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkIChe
KShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMyksIGlvcygxMS4wKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1l
VVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJh
bWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJP
T0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEyLjMpLCBpb3MoMTAuMykpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggYmEyMDQ4ZWFiYWFi
NjhjZDczMzgyNWM2NGY4YjkyMGZhYjk2NDQxZS4uZGIzNGRkMTU3MjcwYTAxZGJkMmI5MmNkOTE4
NTA4YmZlMjFmNzBiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCkBAIC00MCw2ICs0MCw3IEBACiAjaW1wb3J0ICJJY29uTG9hZGluZ0RlbGVn
YXRlLmgiCiAjaW1wb3J0ICJMZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaCIKICNpbXBvcnQgIkxv
Z2dpbmcuaCIKKyNpbXBvcnQgIk1lZGlhQ2FwdHVyZVV0aWxpdGllcy5oIgogI2ltcG9ydCAiTmF2
aWdhdGlvblN0YXRlLmgiCiAjaW1wb3J0ICJPYmpDT2JqZWN0R3JhcGguaCIKICNpbXBvcnQgIlBh
Z2VDbGllbnQuaCIKQEAgLTU0MzgsNiArNTQzOSwxNiBAQCBzdGF0aWMgaW5saW5lIFdlYktpdDo6
RmluZE9wdGlvbnMgdG9GaW5kT3B0aW9ucyhfV0tGaW5kT3B0aW9ucyB3a0ZpbmRPcHRpb25zKQog
I2VuZGlmCiB9CiAKKy0gKF9XS01lZGlhQ2FwdHVyZVN0YXRlKV9tZWRpYUNhcHR1cmVTdGF0ZQor
eworICAgIHJldHVybiBXZWJLaXQ6OnRvV0tNZWRpYUNhcHR1cmVTdGF0ZShfcGFnZS0+bWVkaWFT
dGF0ZUZsYWdzKCkpOworfQorCistICh2b2lkKV9zZXRNZWRpYUNhcHR1cmVNdXRlZDooQk9PTClt
dXRlZAoreworICAgIF9wYWdlLT5zZXRNZWRpYVN0cmVhbUNhcHR1cmVNdXRlZChtdXRlZCk7Cit9
CisKIC0gKHZvaWQpX211dGVNZWRpYUNhcHR1cmUKIHsKICAgICBfcGFnZS0+c2V0TWVkaWFTdHJl
YW1DYXB0dXJlTXV0ZWQodHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCAxNzBjMmFhZWZhMTUwYjQxZjk5NmNj
ZTQ2OGNlMzI3NzliYWQ2ZjhmLi5mYTFjOGQ0NDlhZTZhOGIzYmQyZmIxNTdmODg5ZWNmOGE0M2Fi
OWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmgKQEAgLTM5MCw2ICszOTAsOSBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNV
SW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dEZ1bGxzY3JlZW5EZWxlZ2F0ZTopIGlkPF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4gX2Z1bGxzY3Jl
ZW5EZWxlZ2F0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2lzSW5GdWxsc2NyZWVuIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpKTsKIAorQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBfV0tNZWRpYUNhcHR1cmVTdGF0ZSBfbWVkaWFDYXB0dXJlU3RhdGUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKKy0gKHZvaWQp
X3NldE1lZGlhQ2FwdHVyZU11dGVkOihCT09MKW11dGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfbXV0ZU1lZGlhQ2FwdHVy
ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiAtICh2b2lkKV9z
ZXRQYWdlTXV0ZWQ6KF9XS01lZGlhTXV0ZWRTdGF0ZSltdXRlZFN0YXRlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCmluZGV4IDFjNzY4ODY5MDc4MWYy
YTA5YzBjOGI3YjQ4Zjc4ZThlZWU1NTY5MGYuLmM1MmIxNzBjNTM5YmU3NTlhYmJkZDE0YTEzNDU2
ZTdkMTI3ZDY5MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRVSUNsaWVudC5jcHAKQEAgLTE4NCwxOCArMTg0LDE2IEBAIHByaXZhdGU6CiAgICAg
ICAgIHdlYmtpdFdlYlZpZXdNYWtlUGVybWlzc2lvblJlcXVlc3QobV93ZWJWaWV3LCBXRUJLSVRf
UEVSTUlTU0lPTl9SRVFVRVNUKGdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuZ2V0KCkpKTsK
ICAgICB9CiAKLSAgICBib29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcGVybWlzc2lvblJl
cXVlc3QpIGZpbmFsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdChXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdp
biYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVs
RG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHBlcm1pc3Np
b25SZXF1ZXN0KSBmaW5hbAogICAgIHsKICAgICAgICAgR1JlZlB0cjxXZWJLaXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdD4gdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBhZG9wdEdSZWYo
d2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDcmVhdGUocGVybWlzc2lvblJlcXVlc3Qs
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luKSk7CiAgICAg
ICAgIHdlYmtpdFdlYlZpZXdNYWtlUGVybWlzc2lvblJlcXVlc3QobV93ZWJWaWV3LCBXRUJLSVRf
UEVSTUlTU0lPTl9SRVFVRVNUKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7Ci0g
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIGJvb2wgY2hlY2tVc2VyTWVkaWFQZXJt
aXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94
eSYgcGVybWlzc2lvblJlcXVlc3QpIG92ZXJyaWRlCisgICAgdm9pZCBjaGVja1VzZXJNZWRpYVBl
cm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiwgQVBJ
OjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlP
cmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5JiBwZXJtaXNzaW9uUmVxdWVzdCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGF1dG8gZGV2
aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdERldmljZUluZm9QZXJt
aXNzaW9uUmVxdWVzdENyZWF0ZShwZXJtaXNzaW9uUmVxdWVzdCwgcGFnZS53ZWJzaXRlRGF0YVN0
b3JlKCkuZGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UoKSkpOwogICAgICAgICB3ZWJraXRXZWJWaWV3
TWFrZVBlcm1pc3Npb25SZXF1ZXN0KG1fd2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVT
VChkZXZpY2VJbmZvUGVybWlzc2lvblJlcXVlc3QuZ2V0KCkpKTsKLSAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogCiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgRnVuY3Rpb248
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDAwNDAzZmZkODM5YjFkNjczOTBiMjA1MjUwMjQzMmFlMWExNmIyMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGll
cy5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFdL
X0FQSV9FTkFCTEVECisKKyNpbXBvcnQgIldLV2ViVmlld1ByaXZhdGUuaCIKKyNpbXBvcnQgPFdl
YkNvcmUvTWVkaWFQcm9kdWNlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworX1dLTWVkaWFD
YXB0dXJlU3RhdGUgdG9XS01lZGlhQ2FwdHVyZVN0YXRlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyk7CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxp
dGllcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxp
dGllcy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41YWVlMzhlYjY0ZTJlMjQ4NDE2MDg3Njg4ZjNmYzYwMGQ2YTEx
MjhjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVk
aWFDYXB0dXJlVXRpbGl0aWVzLm1tCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmgiCisKKyNp
ZiBXS19BUElfRU5BQkxFRAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworX1dLTWVkaWFDYXB0dXJl
U3RhdGUgdG9XS01lZGlhQ2FwdHVyZVN0YXRlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGVGbGFncyBzdGF0ZSkKK3sKKyAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZSBtZWRpYUNhcHR1
cmVTdGF0ZSA9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZTsKKyAgICBpZiAoc3RhdGUgJiBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgICAg
IG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9u
ZTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRl
b0NhcHR1cmVEZXZpY2UpCisgICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2Fw
dHVyZVN0YXRlQWN0aXZlQ2FtZXJhOworICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgICAgICBtZWRpYUNhcHR1cmVT
dGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkTWljcm9waG9uZTsKKyAgICBpZiAoc3Rh
dGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkK
KyAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZENh
bWVyYTsKKworICAgIHJldHVybiBtZWRpYUNhcHR1cmVTdGF0ZTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxl
Z2F0ZS5oCmluZGV4IGMwZGEzZmZkYTEwNjg5ZmUxM2QwYjMzNjgwOGVjODJmOTJmMWRhYWUuLjg4
ZmE0OGZiN2U3NGUxZWUwNWE3MGNkNjM0MjUxZGUwNmQyMTIyMTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAgLTEyMyw4ICsxMjMsOCBAQCBwcml2YXRl
OgogI2VuZGlmCiAgICAgICAgIGJvb2wgbmVlZHNGb250QXR0cmlidXRlcygpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkQ2hhbmdl
Rm9udEF0dHJpYnV0ZXM7IH0KICAgICAgICAgdm9pZCBkaWRDaGFuZ2VGb250QXR0cmlidXRlcyhj
b25zdCBXZWJDb3JlOjpGb250QXR0cmlidXRlcyYpIGZpbmFsOwotICAgICAgICBib29sIGRlY2lk
ZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIFdlYkZy
YW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSBmaW5hbDsKLSAgICAgICAgYm9vbCBjaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94
eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHkmKSBmaW5hbDsKKyAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5
JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5JikgZmluYWw7CisgICAgICAgIHZvaWQgY2hlY2tVc2VyTWVk
aWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6
OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIFVzZXJNZWRpYVBlcm1pc3Np
b25DaGVja1Byb3h5JikgZmluYWw7CiAgICAgICAgIHZvaWQgbWVkaWFDYXB0dXJlU3RhdGVEaWRD
aGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSBmaW5hbDsKICAg
ICAgICAgdm9pZCBwcmludEZyYW1lKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmKSBmaW5h
bDsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTk3LDggKzE5Nyw4IEBAIHByaXZhdGU6
CiAgICAgICAgIGJvb2wgd2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSA6IDE7CiAg
ICAgICAgIGJvb2wgd2ViVmlld0RpZEVudGVyRnVsbHNjcmVlbiA6IDE7CiAgICAgICAgIGJvb2wg
d2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuIDogMTsKLSAgICAgICAgYm9vbCB3ZWJWaWV3UmVxdWVz
dFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzVVJMTWFpbkZyYW1lVVJMRGVjaXNpb25I
YW5kbGVyIDogMTsKLSAgICAgICAgYm9vbCB3ZWJWaWV3Q2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yVVJMTWFpbkZyYW1lVVJMRnJhbWVJZGVudGlmaWVyRGVjaXNpb25IYW5kbGVyIDogMTsKKyAg
ICAgICAgYm9vbCB3ZWJWaWV3UmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFt
ZURlY2lzaW9uSGFuZGxlciA6IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0lzTWVkaWFDYXB0dXJl
QXV0aG9yaXplZEZvckZyYW1lRGVjaXNpb25IYW5kbGVyIDogMTsKICAgICAgICAgYm9vbCB3ZWJW
aWV3TWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdE
aWRDaGFuZ2VGb250QXR0cmlidXRlcyA6IDE7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCmluZGV4IGE3YTgzYjRl
YmFmZTAxZDYxNGZmMzZmZTRmMGJlYTg4ZTE4NTY3MzguLjg2YTU1ZmI5ZjZhM2MzNjdlMDNjZTYy
ZWIxMzc3ZTIxMTY3ZWU3ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiQVBJRnJhbWVJbmZvLmgiCiAj
aW1wb3J0ICJBUElIaXRUZXN0UmVzdWx0LmgiCiAjaW1wb3J0ICJDb21wbGV0aW9uSGFuZGxlckNh
bGxDaGVja2VyLmgiCisjaW1wb3J0ICJNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCIKICNpbXBvcnQg
Ik5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKICNpbXBvcnQgIk5hdmlnYXRpb25BY3Rpb25EYXRhLmgi
CiAjaW1wb3J0ICJVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIgpAQCAtMTUwLDggKzE1
MSw5IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVs
ZWdhdGUpCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZE5vdEhhbmRsZVRhcEFzQ2xp
Y2tBdFBvaW50ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZp
ZXc6ZGlkTm90SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQ6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhv
ZHMucHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldyA9IFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3
OildOwogI2VuZGlmCi0gICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RVc2VyTWVk
aWFBdXRob3JpemF0aW9uRm9yRGV2aWNlc1VSTE1haW5GcmFtZVVSTERlY2lzaW9uSGFuZGxlciA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3RV
c2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczp1cmw6bWFpbkZyYW1lVVJMOmRlY2lzaW9u
SGFuZGxlcjopXTsKLSAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yVVJMTWFpbkZyYW1lVVJMRnJhbWVJZGVudGlmaWVyRGVjaXNpb25IYW5kbGVy
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6Y2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVj
aXNpb25IYW5kbGVyOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0TWVk
aWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdFVzZXJNZWRpYUF1
dGhvcml6YXRpb25Gb3JEZXZpY2VzOnVybDptYWluRnJhbWVVUkw6ZGVjaXNpb25IYW5kbGVyOild
IHx8IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVl
c3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lvbkhhbmRs
ZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0lzTWVkaWFDYXB0dXJlQXV0aG9y
aXplZEZvckZyYW1lRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX3dlYlZpZXc6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1haW5G
cmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVjaXNpb25IYW5kbGVyOildIHx8IFtkZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmlzTWVkaWFDYXB0dXJlQXV0aG9y
aXplZEZvckZyYW1lOmRlY2lzaW9uSGFuZGxlcjopXTsKKwogICAgIG1fZGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdNZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOild
OwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRDaGFuZ2VGb250QXR0cmlidXRlcyA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZENoYW5n
ZUZvbnRBdHRyaWJ1dGVzOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLmRhdGFEZXRlY3Rpb25D
b250ZXh0Rm9yV2ViVmlldyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF9kYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldlYlZpZXc6KV07CkBAIC04NTQsOSArODU2LDE0IEBA
IGJvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBX
ZWJGcmFtZVByb3h5KiB3ZWJGcmFtZVByCiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCi1zdGF0aWMgdm9pZCByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMo
Y29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkmIHJlcXVlc3QsIGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiBkZWxlZ2F0ZSwgV0tXZWJWaWV3
JiB3ZWJWaWV3KQorc3RhdGljIHZvaWQgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JG
cmFtZShjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9w
TGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QsIGlk
IDxXS1VJRGVsZWdhdGVQcml2YXRlPiBkZWxlZ2F0ZSwgV0tXZWJWaWV3JiB3ZWJWaWV3KQogewot
ICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRSZXF1ZXN0
ID0gbWFrZVJlZihyZXF1ZXN0KV0oQk9PTCBhdXRob3JpemVkKSB7CisgICAgYXV0byBjaGVja2Vy
ID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRlbGVnYXRlLCBAc2VsZWN0
b3IoX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZp
Y2VzOmRlY2lzaW9uSGFuZGxlcjopKTsKKyAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VC
bG9ja1B0cihbcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCksIGNoZWNrZXIgPSBX
VEZNb3ZlKGNoZWNrZXIpXShCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAgICAgaWYgKGNoZWNrZXIt
PmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKKwogICAgICAgICBp
ZiAoIWF1dGhvcml6ZWQpIHsKICAgICAgICAgICAgIHByb3RlY3RlZFJlcXVlc3QtPmRlbnkoVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29u
OjpQZXJtaXNzaW9uRGVuaWVkKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTg2NiwxMCArODcz
LDYgQEAgc3RhdGljIHZvaWQgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2Vz
KGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLAogICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0LT5h
bGxvdyhhdWRpb0RldmljZVVJRCwgdmlkZW9EZXZpY2VVSUQpOwogICAgIH0pOwogCi0gICAgY29u
c3QgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lID0gZnJhbWUucGFnZSgpLT5tYWluRnJhbWUoKTsK
LSAgICBVUkwgcmVxdWVzdEZyYW1lVVJMKFVSTCgpLCBmcmFtZS51cmwoKSk7Ci0gICAgVVJMIG1h
aW5GcmFtZVVSTChVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSk7Ci0KICAgICBfV0tDYXB0dXJlRGV2
aWNlcyBkZXZpY2VzID0gMDsKICAgICBpZiAocmVxdWVzdC5yZXF1aXJlc0F1ZGlvQ2FwdHVyZSgp
KQogICAgICAgICBkZXZpY2VzIHw9IF9XS0NhcHR1cmVEZXZpY2VNaWNyb3Bob25lOwpAQCAtODgw
LDggKzg4MywxOSBAQCBzdGF0aWMgdm9pZCByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZv
ckRldmljZXMoY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsCiAgICAgICAgIEFTU0VSVCghKGRl
dmljZXMgJiBfV0tDYXB0dXJlRGV2aWNlQ2FtZXJhKSk7CiAgICAgfQogCi0gICAgYXV0byBwcm90
ZWN0ZWRXZWJWaWV3ID0gUmV0YWluUHRyPFdLV2ViVmlldz4oJndlYlZpZXcpOwotICAgIFtkZWxl
Z2F0ZSBfd2ViVmlldzpwcm90ZWN0ZWRXZWJWaWV3LmdldCgpIHJlcXVlc3RVc2VyTWVkaWFBdXRo
b3JpemF0aW9uRm9yRGV2aWNlczpkZXZpY2VzIHVybDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1l
VVJMOm1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsK
KyAgICBjb25zdCBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUgPSBmcmFtZS5wYWdlKCktPm1haW5G
cmFtZSgpOworCisgICAgLy8gRklYTUU6IFByb3ZpZGUgYSBzcGVjaWZpYyBkZWxlZ2F0ZSBmb3Ig
ZGlzcGxheSBjYXB0dXJlLgorICAgIGlmICghcmVxdWVzdC5yZXF1aXJlc0Rpc3BsYXlDYXB0dXJl
KCkgJiYgW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVx
dWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFu
ZGxlcjopXSkgeworCisgICAgICAgIFtkZWxlZ2F0ZSBfd2ViVmlldzomd2ViVmlldyByZXF1ZXN0
TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOndyYXBwZXIoQVBJOjpGcmFtZUluZm86
OmNyZWF0ZSgqbWFpbkZyYW1lLCB0b3BMZXZlbE9yaWdpbi5zZWN1cml0eU9yaWdpbigpKSkgZGV2
aWNlczpkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgVVJMIHJlcXVlc3RGcmFtZVVSTChVUkwoKSwgZnJh
bWUudXJsKCkpOworICAgIFVSTCBtYWluRnJhbWVVUkwoVVJMKCksIG1haW5GcmFtZS0+dXJsKCkp
OworCisgICAgW2RlbGVnYXRlIF93ZWJWaWV3OiZ3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRo
b3JpemF0aW9uRm9yRGV2aWNlczpkZXZpY2VzIHVybDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1l
VVJMOm1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsK
IH0KICNlbmRpZgogCkBAIC04OTQsMTMgKzkwOCwxMyBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xp
ZW50OjpkaWRDaGFuZ2VGb250QXR0cmlidXRlcyhjb25zdCBXZWJDb3JlOjpGb250QXR0cmlidXRl
cwogICAgIFtwcml2YXRlVUlEZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3
IGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzOmZvbnRBdHRyaWJ1dGVzLmNyZWF0ZURpY3Rpb25hcnko
KS5nZXQoKV07CiB9CiAKLWJvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQ
cm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpT
ZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkmIHJlcXVlc3QpCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1l
UHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5JiByZXF1ZXN0KQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgYXV0byBk
ZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOwotICAgIGlmICghZGVsZWdh
dGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdFVzZXJN
ZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzVVJMTWFpbkZyYW1lVVJMRGVjaXNpb25IYW5kbGVy
KSB7CisgICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdSZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lRGVjaXNpb25I
YW5kbGVyKSB7CiAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2FibGVkKTsK
LSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBib29s
IHJlcXVpcmVzQXVkaW9DYXB0dXJlID0gcmVxdWVzdC5yZXF1aXJlc0F1ZGlvQ2FwdHVyZSgpOwpA
QCAtOTA4LDMzICs5MjIsMzMgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9s
aWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3gKICAgICBib29sIHJl
cXVpcmVzRGlzcGxheUNhcHR1cmUgPSByZXF1ZXN0LnJlcXVpcmVzRGlzcGxheUNhcHR1cmUoKTsK
ICAgICBpZiAoIXJlcXVpcmVzQXVkaW9DYXB0dXJlICYmICFyZXF1aXJlc1ZpZGVvQ2FwdHVyZSAm
JiAhcmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSkgewogICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpO
b0NvbnN0cmFpbnRzKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGJvb2wgdXNpbmdNb2NrQ2FwdHVy
ZURldmljZXMgPSBwYWdlLnByZWZlcmVuY2VzKCkubW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCgp
OwotICAgIGF1dG8gcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb24gPSBtYWtlQmxvY2tQdHIoW3Ro
aXMsICZmcmFtZSwgcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCksIHdlYlZpZXcg
PSBSZXRhaW5QdHI8V0tXZWJWaWV3PihtX3VpRGVsZWdhdGUubV93ZWJWaWV3KSwgdXNpbmdNb2Nr
Q2FwdHVyZURldmljZXNdKCkgeworICAgIGF1dG8gcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb24g
PSBtYWtlQmxvY2tQdHIoW3RoaXMsICZmcmFtZSwgcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYo
cmVxdWVzdCksIHdlYlZpZXcgPSBSZXRhaW5QdHI8V0tXZWJWaWV3PihtX3VpRGVsZWdhdGUubV93
ZWJWaWV3KSwgdG9wTGV2ZWxPcmlnaW4gPSBtYWtlUmVmKHRvcExldmVsT3JpZ2luKSwgdXNpbmdN
b2NrQ2FwdHVyZURldmljZXNdKCkgbXV0YWJsZSB7CiAKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRS
ZXF1ZXN0LT5yZXF1aXJlc1ZpZGVvQ2FwdHVyZSgpKSB7Ci0gICAgICAgICAgICByZXF1ZXN0VXNl
ck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QsIChp
ZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3
ZWJWaWV3LmdldCgpKTsKKyAgICAgICAgICAgIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9u
Rm9yRnJhbWUoZnJhbWUsIHRvcExldmVsT3JpZ2luLCBwcm90ZWN0ZWRSZXF1ZXN0LCAoaWQgPFdL
VUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqd2ViVmll
dy5nZXQoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgQVZBdXRo
b3JpemF0aW9uU3RhdHVzIGNhbWVyYUF1dGhvcml6YXRpb25TdGF0dXMgPSB1c2luZ01vY2tDYXB0
dXJlRGV2aWNlcyA/IEFWQXV0aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQgOiBbZ2V0QVZDYXB0
dXJlRGV2aWNlQ2xhc3MoKSBhdXRob3JpemF0aW9uU3RhdHVzRm9yTWVkaWFUeXBlOmdldEFWTWVk
aWFUeXBlVmlkZW8oKV07CiAgICAgICAgIHN3aXRjaCAoY2FtZXJhQXV0aG9yaXphdGlvblN0YXR1
cykgewogICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQ6Ci0gICAg
ICAgICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHBy
b3RlY3RlZFJlcXVlc3QsIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1f
ZGVsZWdhdGUuZ2V0KCksICp3ZWJWaWV3LmdldCgpKTsKKyAgICAgICAgICAgIHJlcXVlc3RVc2Vy
TWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWUoZnJhbWUsIHRvcExldmVsT3JpZ2luLCBwcm90ZWN0
ZWRSZXF1ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVn
YXRlLmdldCgpLCAqd2ViVmlldy5nZXQoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNEZW5pZWQ6CiAgICAgICAgIGNhc2UgQVZBdXRob3Jp
emF0aW9uU3RhdHVzUmVzdHJpY3RlZDoKICAgICAgICAgICAgIHByb3RlY3RlZFJlcXVlc3QtPmRl
bnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFs
UmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
Y2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNOb3REZXRlcm1pbmVkOgotICAgICAgICAgICAgYXV0
byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3RoaXMsICZmcmFtZSwgcHJvdGVjdGVk
UmVxdWVzdCA9IG1ha2VSZWYocHJvdGVjdGVkUmVxdWVzdC5nZXQoKSksIHdlYlZpZXcgPSBSZXRh
aW5QdHI8V0tXZWJWaWV3PihtX3VpRGVsZWdhdGUubV93ZWJWaWV3KV0oQk9PTCBhdXRob3JpemVk
KSB7CisgICAgICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbdGhp
cywgJmZyYW1lLCBwcm90ZWN0ZWRSZXF1ZXN0ID0gbWFrZVJlZihwcm90ZWN0ZWRSZXF1ZXN0Lmdl
dCgpKSwgd2ViVmlldyA9IFJldGFpblB0cjxXS1dlYlZpZXc+KG1fdWlEZWxlZ2F0ZS5tX3dlYlZp
ZXcpLCB0b3BMZXZlbE9yaWdpbiA9IFdURk1vdmUodG9wTGV2ZWxPcmlnaW4pXShCT09MIGF1dGhv
cml6ZWQpIHsKICAgICAgICAgICAgICAgICBpZiAoIWF1dGhvcml6ZWQpIHsKICAgICAgICAgICAg
ICAgICAgICAgcHJvdGVjdGVkUmVxdWVzdC0+ZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOwog
ICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlcyhmcmFtZSwgcHJv
dGVjdGVkUmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9k
ZWxlZ2F0ZS5nZXQoKSwgKndlYlZpZXcuZ2V0KCkpOworICAgICAgICAgICAgICAgIHJlcXVlc3RV
c2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWUoZnJhbWUsIHRvcExldmVsT3JpZ2luLCBwcm90
ZWN0ZWRSZXF1ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2Rl
bGVnYXRlLmdldCgpLCAqd2ViVmlldy5nZXQoKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICAgICAgW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgcmVxdWVzdEFjY2Vzc0Zvck1lZGlhVHlw
ZTpnZXRBVk1lZGlhVHlwZVZpZGVvKCkgY29tcGxldGlvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVy
LmdldCgpXTsKQEAgLTk1MSw3ICs5NjUsNyBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpk
ZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveAogICAg
ICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c0RlbmllZDoKICAgICAgICAgY2FzZSBBVkF1
dGhvcml6YXRpb25TdGF0dXNSZXN0cmljdGVkOgogICAgICAgICAgICAgcmVxdWVzdC5kZW55KFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNv
bjo6UGVybWlzc2lvbkRlbmllZCk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNOb3REZXRlcm1p
bmVkOgogICAgICAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3By
b3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpLCByZXF1ZXN0Q2FtZXJhQXV0aG9yaXph
dGlvbl0oQk9PTCBhdXRob3JpemVkKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFhdXRob3JpemVk
KSB7CkBAIC05NjcsNTMgKzk4MSw2MSBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveAogICAgIH0g
ZWxzZQogICAgICAgICByZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbigpOwogI2Vsc2UKLSAgICBy
ZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHJlcXVlc3QsIChp
ZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICpt
X3VpRGVsZWdhdGUubV93ZWJWaWV3KTsKKyAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlv
bkZvckZyYW1lKGZyYW1lLCB0b3BMZXZlbE9yaWdpbiwgcmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdh
dGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwgKm1fdWlEZWxlZ2F0ZS5t
X3dlYlZpZXcpOwogI2VuZGlmCiAjZW5kaWYKLQotICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4o
V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9y
aWdpbiYgdXNlck1lZGlhT3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdp
biwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIHJlcXVlc3QpCit2b2lkIFVJRGVsZWdh
dGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVBy
b3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNl
ck1lZGlhT3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1l
ZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIHJlcXVlc3QpCiB7CiAgICAgYXV0byBkZWxlZ2F0ZSA9
IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOwotICAgIGlmICghZGVsZWdhdGUgfHwgIW1f
dWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q2hlY2tVc2VyTWVkaWFQZXJtaXNz
aW9uRm9yVVJMTWFpbkZyYW1lVVJMRnJhbWVJZGVudGlmaWVyRGVjaXNpb25IYW5kbGVyKSB7Cisg
ICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdJc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZURlY2lzaW9uSGFuZGxlcikgewogICAg
ICAgICByZXF1ZXN0LnNldFVzZXJNZWRpYUFjY2Vzc0luZm8oZmFsc2UpOwotICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdLV2ViVmlldyAqd2ViVmll
dyA9IG1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXc7Ci0gICAgY29uc3QgV2ViRnJhbWVQcm94eSogbWFp
bkZyYW1lID0gZnJhbWUucGFnZSgpLT5tYWluRnJhbWUoKTsKLSAgICBVUkwgcmVxdWVzdEZyYW1l
VVJMKFVSTCgpLCBmcmFtZS51cmwoKSk7Ci0gICAgVVJMIG1haW5GcmFtZVVSTChVUkwoKSwgbWFp
bkZyYW1lLT51cmwoKSk7CisgICAgY29uc3QgYXV0byBtYWluRnJhbWUgPSBmcmFtZS5wYWdlKCkt
Pm1haW5GcmFtZSgpOworCisgICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OmlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1lOmRlY2lzaW9u
SGFuZGxlcjopXSkgeworICAgICAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNh
bGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzppc01l
ZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTpkZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgICAg
IGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRSZXF1ZXN0ID0g
bWFrZVJlZihyZXF1ZXN0KSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildKEJPT0wgYXV0aG9y
aXplZCkgeworICAgICAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVl
bkNhbGxlZCgpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGNoZWNrZXIt
PmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOworCisgICAgICAgICAgICBwcm90ZWN0ZWRSZXF1
ZXN0LT5zZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKGF1dGhvcml6ZWQpOworICAgICAgICB9KTsKKwor
ICAgICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3Vp
RGVsZWdhdGUubV93ZWJWaWV3IGlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1lOndyYXBw
ZXIoQVBJOjpGcmFtZUluZm86OmNyZWF0ZSgqbWFpbkZyYW1lLCB0b3BMZXZlbE9yaWdpbi5zZWN1
cml0eU9yaWdpbigpKSkgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFu
ZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmll
dzpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6bWFpbkZyYW1lVVJMOmZyYW1lSWRlbnRp
ZmllcjpkZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoW3Byb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpLCBjaGVja2VyID0g
V1RGTW92ZShjaGVja2VyKV0oTlNTdHJpbmcqLCBCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAgICAg
aWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQorICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsK
IAotICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRSZXF1
ZXN0ID0gbWFrZVJlZihyZXF1ZXN0KV0oTlNTdHJpbmcqLCBCT09MIGF1dGhvcml6ZWQpIHsKICAg
ICAgICAgcHJvdGVjdGVkUmVxdWVzdC0+c2V0VXNlck1lZGlhQWNjZXNzSW5mbyhhdXRob3JpemVk
KTsKICAgICB9KTsKIAotICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93
ZWJWaWV3OndlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVlc3RGcmFt
ZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjpmcmFtZS5mcmFt
ZUlEKCkgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CisgICAgVVJMIHJl
cXVlc3RGcmFtZVVSTChVUkwoKSwgZnJhbWUudXJsKCkpOworICAgIFVSTCBtYWluRnJhbWVVUkwo
VVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOwogCi0gICAgcmV0dXJuIHRydWU7CisgICAgWyhpZCA8
V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2Vi
VmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1haW5G
cmFtZVVSTDptYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQoKSBkZWNp
c2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKIH0KIAogdm9pZCBVSURlbGVnYXRl
OjpVSUNsaWVudDo6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIFdLV2ViVmlldyAqd2ViVmlldyA9
IG1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXc7CisKKyAgICBbd2ViVmlldyBkaWRDaGFuZ2VWYWx1ZUZv
cktleTpAIm1lZGlhQ2FwdHVyZVN0YXRlIl07CisKICAgICBhdXRvIGRlbGVnYXRlID0gbV91aURl
bGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CiAgICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVn
YXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdNZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgX1dLTWVkaWFDYXB0dXJlU3RhdGUgbWVkaWFDYXB0dXJl
U3RhdGUgPSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmU7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBt
ZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZU1pY3JvcGhvbmU7
Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9D
YXB0dXJlRGV2aWNlKQotICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1
cmVTdGF0ZUFjdGl2ZUNhbWVyYTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkKLSAgICAgICAgbWVkaWFDYXB0dXJlU3Rh
dGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZE1pY3JvcGhvbmU7Ci0gICAgaWYgKHN0YXRl
ICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCi0g
ICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRDYW1l
cmE7Ci0KLSAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzp3
ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOm1lZGlhQ2FwdHVyZVN0YXRlXTsKKyAg
ICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzp3ZWJWaWV3IG1l
ZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOnRvV0tNZWRpYUNhcHR1cmVTdGF0ZShzdGF0ZSldOwog
fQogCiB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKFdlYlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBz
ZWN1cml0eU9yaWdpbiwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVz
TmVlZGVkLCBGdW5jdGlvbjx2b2lkICh1bnNpZ25lZCBsb25nIGxvbmcpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25DaGVja1Byb3h5LmgKaW5kZXggZDkxZjA0ZmZkYWI4ZDE0MjQ1NGQ1MDYzZmUxN2Yw
ZWJmYTgzMzRlYi4uNmEwODk1MDZjZWEzODhkMWQ0YzNkNmRlZmRhNWZlMGUwYWVlNTdjNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
Q2hlY2tQcm94eS5oCkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkoZnJhbWVJRCwgV1RGTW92
ZShoYW5kbGVyKSwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUodG9w
TGV2ZWxEb2N1bWVudE9yaWdpbikpKTsKICAgICB9CiAKKyAgICB2b2lkIGRlbnkoKSB7IHNldFVz
ZXJNZWRpYUFjY2Vzc0luZm8oZmFsc2UpOyB9CiAgICAgdm9pZCBzZXRVc2VyTWVkaWFBY2Nlc3NJ
bmZvKGJvb2wpOwogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKaW5kZXggOTVmNTUzZGQyMjVlYmNhZjNkYjhmOWFkMDJiNTdhNDNhOGJj
YmY4My4uNzRkNTc4ODk5NzhkN2MzMWYwZDEzYzllMWM0YzgxYzhjOGZhNDU5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtMzc0LDggKzM3NCw3IEBAIHZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJt
aXNzaW9uRm9yRnJhbWUoCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAg
ICBpZiAoIW1fcGFnZS51aUNsaWVudCgpLmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0KG1fcGFnZSwgKm1fcGFnZS5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRCksIFdU
Rk1vdmUodXNlck1lZGlhT3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbE9yaWdpbiksIHBlbmRpbmdS
ZXF1ZXN0LmdldCgpKSkKLSAgICAgICAgICAgIHVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1c2Vy
TWVkaWFJRCwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNz
RGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7CisgICAgICAgIG1fcGFnZS51aUNsaWVu
dCgpLmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KG1fcGFnZSwgKm1f
cGFnZS5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRCksIFdURk1vdmUodXNlck1lZGlhT3JpZ2lu
KSwgV1RGTW92ZSh0b3BMZXZlbE9yaWdpbiksIHBlbmRpbmdSZXF1ZXN0LmdldCgpKTsKICAgICB9
OwogCiAgICAgYXV0byByZXF1ZXN0SUQgPSBnZW5lcmF0ZVJlcXVlc3RJRCgpOwpAQCAtNDE3LDEw
ICs0MTYsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpn
ZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyh1aW50NjRfdAogICAgIGF1dG8gcmVxdWVzdCA9IFVz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpjcmVhdGUoZnJhbWVJRCwgV1RGTW92ZShoYW5k
bGVyKSwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxE
b2N1bWVudE9yaWdpbikpOwogCiAgICAgbV9wZW5kaW5nRGV2aWNlUmVxdWVzdHMuYWRkKHJlcXVl
c3RJRCwgcmVxdWVzdC5jb3B5UmVmKCkpOwotICAgIGlmICghbV9wYWdlLnVpQ2xpZW50KCkuY2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKG1fcGFnZSwgKm1fcGFnZS5wcm9jZXNzKCku
d2ViRnJhbWUoZnJhbWVJRCksIHVzZXJNZWRpYU9yaWdpbi5nZXQoKSwgdG9wTGV2ZWxPcmlnaW4u
Z2V0KCksIHJlcXVlc3QuZ2V0KCkpKSB7Ci0gICAgICAgIG1fcGVuZGluZ0RldmljZVJlcXVlc3Rz
LnRha2UocmVxdWVzdElEKTsKLSAgICAgICAgaGFuZGxlcihmYWxzZSk7Ci0gICAgfQorICAgIG1f
cGFnZS51aUNsaWVudCgpLmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihtX3BhZ2Us
ICptX3BhZ2UucHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQpLCB1c2VyTWVkaWFPcmlnaW4uZ2V0
KCksIHRvcExldmVsT3JpZ2luLmdldCgpLCByZXF1ZXN0LmdldCgpKTsKIH0KIAogYm9vbCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6d2FzR3JhbnRlZFZpZGVvT3JBdWRp
b0FjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5oCmluZGV4IDU5ODBkYzcwOWEwMDI4NWQwYWE4ZTczNWNkMzA4
MTk3YzkxMThiZGIuLmFjODA1ZTc4OGJlMjMxN2UwYTdhYWViNzE4OTA5Y2Y0NWJjYTg5MDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWxs
b3coKTsKIAogICAgIGVudW0gY2xhc3MgVXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uIHsgTm9D
b25zdHJhaW50cywgVXNlck1lZGlhRGlzYWJsZWQsIE5vQ2FwdHVyZURldmljZXMsIEludmFsaWRD
b25zdHJhaW50LCBIYXJkd2FyZUVycm9yLCBQZXJtaXNzaW9uRGVuaWVkLCBPdGhlckZhaWx1cmUg
fTsKLSAgICB2b2lkIGRlbnkoVXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uKTsKKyAgICB2b2lk
IGRlbnkoVXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uID0gVXNlck1lZGlhQWNjZXNzRGVuaWFs
UmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NmIxODkwMDg0NTMwOTViNGM0ZGI3ZTUwZWUzMjkzNmExYjZjZjkzYy4uZDhlZDdjYWJlODdmYjVm
OGEzZjJiOWRiZjJhYTczNTQ1YTEzODkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yOTk3LDYgKzI5OTcsOCBAQAogCQk0MTA0ODJD
QjFEREQyRkI1MDBGMDA2RDAgLyogUlRDTmV0d29yay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSVENOZXR3b3JrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDEwNDgyQ0MxREREMkZCNTAwRjAwNkQwIC8qIFJUQ05ldHdvcmsuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDTmV0d29yay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTExNDM2MzIwRjY3N0IxMDAyNkY5MTIgLyogSW5qZWN0VXNlclNjcmlwdElt
bWVkaWF0ZWx5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdFVzZXJT
Y3JpcHRJbW1lZGlhdGVseS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTEyODZF
RjIxQzhBOTBDMDAzQTg1NTAgLyogTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MTEyODZGMDIxQzhBOTBEMDAzQTg1NTAgLyogTWVkaWFDYXB0
dXJlVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
TWVkaWFDYXB0dXJlVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTEyQjU0NzFGOUZEM0FCMDBFNjc4NzUgLyogTmV0d29ya1JUQ1Jlc29sdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtSVENSZXNvbHZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTJCNTQ3MUY5RkQzQUIwMEU2Nzk4NiAvKiBO
ZXR3b3JrUlRDUmVzb2x2ZXJDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBOZXR3b3JrUlRDUmVzb2x2ZXJDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxMTJCNTQ4MUY5RkQzQUMwMEU2Nzg3NSAvKiBOZXR3b3JrUlRDUmVzb2x2ZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1JUQ1Jlc29sdmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01Mjk3LDYgKzUyOTksOCBAQAogCQkJCTBG
MEMzNjU5MThDMDU1NTgwMEY2MDdENyAvKiBMYXllclJlcHJlc2VudGF0aW9uLmggKi8sCiAJCQkJ
N0E4MjFGNEIxRTJGNjY0ODAwNjA0NTc3IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNs
aWVudC5oICovLAogCQkJCTdBODIxRjREMUUyRjY3OUUwMDYwNDU3NyAvKiBMZWdhY3lDdXN0b21Q
cm90b2NvbE1hbmFnZXJDbGllbnQubW0gKi8sCisJCQkJNDExMjg2RUYyMUM4QTkwQzAwM0E4NTUw
IC8qIE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5oICovLAorCQkJCTQxMTI4NkYwMjFDOEE5MEQwMDNB
ODU1MCAvKiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0gKi8sCiAJCQkJMUFCQzNERjQxODk5RTQz
NzAwNEYwNjI2IC8qIE5hdmlnYXRpb25TdGF0ZS5oICovLAogCQkJCTFBQkMzREYzMTg5OUU0Mzcw
MDRGMDYyNiAvKiBOYXZpZ2F0aW9uU3RhdGUubW0gKi8sCiAJCQkJNUM2Q0U2RDMxRjU5RUEzNTAw
MDdDNkNCIC8qIFBhZ2VDbGllbnRJbXBsQ29jb2EuaCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiMmJmYzgwMTUxM2U3N2RiOTYzZjc2NmNl
NTNmMDU5MjlmMWVjNTZhLi5iNWQwYThhOGVmNDkzM2NjOGIxODQwOWJlNzc1MGYzNWI3MjEwN2I1
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjYgQEAKKzIwMTgtMTItMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgZm9yIGNvbnRyb2xsaW5nIGdldFVzZXJNZWRpYQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyNzkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaW5pQnJv
d3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubToKKyAgICAgICAgKC1bV0syQnJv
d3NlcldpbmRvd0NvbnRyb2xsZXIgX3dlYlZpZXc6cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRp
b25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0syQnJv
d3NlcldpbmRvd0NvbnRyb2xsZXIgX3dlYlZpZXc6aXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9y
RnJhbWU6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW06CisgICAgICAgICgtW05hdmlnYXRpb25X
aGlsZUdldFVzZXJNZWRpYVByb21wdERpc3BsYXllZFVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVz
dE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxl
cjpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFS
ZXByb21wdC5tbToKKyAgICAgICAgKC1bR2V0VXNlck1lZGlhUmVwcm9tcHRVSURlbGVnYXRlIF93
ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpk
ZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
TWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tOgorICAgICAgICAoLVtNZWRpYVN0cmVhbVRyYWNr
RGV0YWNoZWRVSURlbGVnYXRlIF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0
aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbToKKyAgICAgICAg
KC1bVXNlck1lZGlhVUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9y
aXphdGlvbkZvckZyYW1lOmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtV
c2VyTWVkaWFVSURlbGVnYXRlIF93ZWJWaWV3OmlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZy
YW1lOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbToKKyAgICAgICAgKC1b
U2ltdWxhdGVGYWlsZWRTYW5kYm94VUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0
dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAg
ICAgICAoLVtTaW11bGF0ZUZhaWxlZFNhbmRib3hVSURlbGVnYXRlIF93ZWJWaWV3OmlzTWVkaWFD
YXB0dXJlQXV0aG9yaXplZEZvckZyYW1lOmRlY2lzaW9uSGFuZGxlcjpdKToKKwogMjAxOC0xMi0x
MiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzOTEwMy4KZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93
c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tIGIvVG9vbHMvTWluaUJyb3dzZXIv
bWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KaW5kZXggM2U3MzlkN2M5MTU1MzhlMDAz
MjljZmYwYzA0N2FhYTcwZmQ0YTFiZi4uOWI0ODEyYzE3NGNjMzE0Y2QxOGY0MWZlMTNjOWI1MGI3
MzE4OTlmNSAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5k
b3dDb250cm9sbGVyLm0KKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5k
b3dDb250cm9sbGVyLm0KQEAgLTc5MSwxNCArNzkxLDE0IEBAIC0gKHZvaWQpZmluZEJhclZpZXdE
aWRDaGFuZ2VIZWlnaHQKIHsKIH0KIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVE
ZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFp
bkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNp
c2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVz
dFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JGcmFtZTooV0tGcmFtZUluZm8gKikgbWFpbkZyYW1l
IGRldmljZXM6IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICBkZWNpc2lvbkhh
bmRsZXIodHJ1ZSk7CiB9CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6
KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlk
ZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqc2FsdCwgQk9PTCBh
dXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgaXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWU6KFdLRnJhbWVJbmZvICop
IG1haW5GcmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVj
aXNpb25IYW5kbGVyCiB7Ci0gICAgZGVjaXNpb25IYW5kbGVyKEAiIiwgZmFsc2UpOworICAgIGRl
Y2lzaW9uSGFuZGxlcihmYWxzZSk7CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tCmluZGV4
IDQyMWVlYTQyOTJjYmFiMTRlOTQ2Zjc5OGEzNWRlYjczZjgyYjM1MDguLjZhZjZjZmE5ODMwZmE0
YzVkYTc3N2JmYjgzMGFjMTE4MjQxMmJlMzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbQpAQCAtNDIs
MTIgKzQyLDEyIEBAIHN0YXRpYyBib29sIG9rVG9Qcm9jZWVkID0gZmFsc2U7CiBzdGF0aWMgYm9v
bCBzaG91bGRSZWxlYXNlSW5FbnVtZXJhdGUgPSBmYWxzZTsKIAogQGludGVyZmFjZSBOYXZpZ2F0
aW9uV2hpbGVHZXRVc2VyTWVkaWFQcm9tcHREaXNwbGF5ZWRVSURlbGVnYXRlIDogTlNPYmplY3Q8
V0tVSURlbGVnYXRlPgotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1
ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRl
dmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJM
IGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRs
ZXI7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNh
cHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvKikgbWFpbkZyYW1lIGRldmlj
ZXM6IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXiko
Qk9PTCkpZGVjaXNpb25IYW5kbGVyOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFt
ZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZy
YW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBC
T09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9u
IE5hdmlnYXRpb25XaGlsZUdldFVzZXJNZWRpYVByb21wdERpc3BsYXllZFVJRGVsZWdhdGUKLS0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhv
cml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwg
Kil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6
KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCistICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9u
Rm9yRnJhbWU6KFdLRnJhbWVJbmZvKikgbWFpbkZyYW1lIGRldmljZXM6IChfV0tDYXB0dXJlRGV2
aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5k
bGVyCiB7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5rIl1dXTsKICAgICBbd2ViVmll
dyByZWxlYXNlXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0dldFVzZXJNZWRpYVJlcHJvbXB0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0KaW5kZXggYzQzMmZjYWU1ZThmYzU5NzkxMjMzZTUw
YmRiYjc1MzJjYmFjNGY3ZS4uZDlkYjY1N2Q1MGIwNDNiZDBiZjJkYmYxMjgxNGJlZmNjOWNhYWU3
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1l
ZGlhUmVwcm9tcHQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0
VXNlck1lZGlhUmVwcm9tcHQubW0KQEAgLTQxLDEyICs0MSwxMiBAQAogc3RhdGljIGJvb2wgd2Fz
UHJvbXB0ZWQgPSBmYWxzZTsKIAogQGludGVyZmFjZSBHZXRVc2VyTWVkaWFSZXByb21wdFVJRGVs
ZWdhdGUgOiBOU09iamVjdDxXS1VJRGVsZWdhdGU+Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dL
Q2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNV
UkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6
ZWQpKWRlY2lzaW9uSGFuZGxlcjsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTooV0tGcmFtZUluZm8q
KSBtYWluRnJhbWUgZGV2aWNlczogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25I
YW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNV
UkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZp
ZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXiko
TlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOwogQGVuZAog
CiBAaW1wbGVtZW50YXRpb24gR2V0VXNlck1lZGlhUmVwcm9tcHRVSURlbGVnYXRlCi0tICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0
aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJs
IG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lk
ICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZy
YW1lOihXS0ZyYW1lSW5mbyopIG1haW5GcmFtZSBkZXZpY2VzOiAoX1dLQ2FwdHVyZURldmljZXMp
ZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgog
ewogICAgIHdhc1Byb21wdGVkID0gdHJ1ZTsKICAgICBkZWNpc2lvbkhhbmRsZXIoWUVTKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlhU3RyZWFtVHJh
Y2tEZXRhY2hlZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlhU3Ry
ZWFtVHJhY2tEZXRhY2hlZC5tbQppbmRleCAxZWNjZDBhNmVlMzMxNjQyNjMyZDRkNWM2ZGYwYmJj
ZDAyYWUyZjQzLi5jYWE3OWRkNGEyNWU1YTE1ZGViYmQ1NTQ2MWZhY2E0ZjYwYjY2MTRkIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNr
RGV0YWNoZWQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFT
dHJlYW1UcmFja0RldGFjaGVkLm1tCkBAIC00MCwxMyArNDAsMTMgQEAKIHN0YXRpYyBib29sIGhh
c1JlY2lldmVkQ29ycmVjdENhcHR1cmVTdGF0ZSA9IGZhbHNlOwogCiBAaW50ZXJmYWNlIE1lZGlh
U3RyZWFtVHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUgOiBOU09iamVjdDxXS1VJRGVsZWdhdGU+Ci0t
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRo
b3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJM
ICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVy
Oih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsKKy0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRp
b25Gb3JGcmFtZTooV0tGcmFtZUluZm8qKSBtYWluRnJhbWUgZGV2aWNlczogKF9XS0NhcHR1cmVE
ZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhh
bmRsZXI7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1l
ZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1h
aW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRl
Y2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkp
ZGVjaXNpb25IYW5kbGVyOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBt
ZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGU7CiBA
ZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWRVSURlbGVnYXRl
Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFB
dXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5T
VVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5k
bGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXph
dGlvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyopIG1haW5GcmFtZSBkZXZpY2VzOiAoX1dLQ2FwdHVy
ZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9u
SGFuZGxlcgogewogICAgIGRlY2lzaW9uSGFuZGxlcihZRVMpOwogfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQu
bW0KaW5kZXggODgzMzNjM2ZiYjY4MGUxNjVlN2YyNjFhNjI2ZTViMWQxMzFiM2JhYi4uMTA4NWM1
ZWMzNzhmZTY5NzgzMDFiZjIyYjllMmY4MDM1MjNjNTZlNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1t
CkBAIC0zOSw3ICszOSw2IEBACiAKICNpZiBXS19BUElfRU5BQkxFRAogCi1zdGF0aWMgYm9vbCBy
ZWZ1c2VSZXF1ZXN0ID0gZmFsc2U7CiBzdGF0aWMgYm9vbCB3YXNQcm9tcHRlZCA9IGZhbHNlOwog
CiBzdGF0aWMgYm9vbCByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKQEAgLTYyLDE1ICs2
MSwxMCBAQCBzdGF0aWMgUmV0YWluUHRyPFdLU2NyaXB0TWVzc2FnZT4gbGFzdFNjcmlwdE1lc3Nh
Z2U7CiAKIEBpbXBsZW1lbnRhdGlvbiBVc2VyTWVkaWFVSURlbGVnYXRlCiAKLS0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25G
b3JEZXZpY2VzOihOU1VJbnRlZ2VyKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVV
Ukw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkp
ZGVjaXNpb25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJl
cXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvKikgbWFp
bkZyYW1lIGRldmljZXM6IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxl
cjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgd2FzUHJvbXB0ZWQgPSB0
cnVlOwogCi0gICAgaWYgKHJlZnVzZVJlcXVlc3QpIHsKLSAgICAgICAgZGVjaXNpb25IYW5kbGVy
KE5PKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIEJPT0wgbmVlZHNNaWNyb3Bob25l
QXV0aG9yaXplZCA9IGRldmljZXMgJiBfV0tDYXB0dXJlRGV2aWNlTWljcm9waG9uZTsKICAgICBC
T09MIG5lZWRzQ2FtZXJhQXV0aG9yaXplZCA9IGRldmljZXMgJiBfV0tDYXB0dXJlRGV2aWNlQ2Ft
ZXJhOwogICAgIGlmICghbmVlZHNNaWNyb3Bob25lQXV0aG9yaXplZCAmJiAhbmVlZHNDYW1lcmFB
dXRob3JpemVkKSB7CkBAIC04MSwxNCArNzUsOSBAQCBzdGF0aWMgUmV0YWluUHRyPFdLU2NyaXB0
TWVzc2FnZT4gbGFzdFNjcmlwdE1lc3NhZ2U7CiAgICAgZGVjaXNpb25IYW5kbGVyKFlFUyk7CiB9
CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZy
YW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqLCBCT09MKSlkZWNpc2lvbkhhbmRsZXIKKy0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaXNNZWRpYUNhcHR1cmVBdXRob3Jp
emVkRm9yRnJhbWU6KFdLRnJhbWVJbmZvICopIG1haW5GcmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZv
aWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCiB7Ci0gICAgaWYgKHJlZnVz
ZVJlcXVlc3QpIHsKLSAgICAgICAgZGVjaXNpb25IYW5kbGVyKG5pbCwgTk8pOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgZGVjaXNpb25IYW5kbGVyKEAiMHg5ODc2NTQzMjEiLCBOTyk7
CisgICAgZGVjaXNpb25IYW5kbGVyKE5PKTsKIH0KIEBlbmQKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNh
bmRib3gubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRp
YVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbQppbmRleCBjNzNjOTg5OTRlNDE3MzM0OTAyNTUyYTg3
OGRlZjVkMTcyMjViZGY0Li45Y2Q5ODVmNzlmMTRmMzU2OTZlNTk2ZGFhMTNhOTNjYTMwNGE4NDI2
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJN
ZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbQpAQCAtMzks
NyArMzksNiBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAotc3RhdGljIGJvb2wgcmVmdXNlUmVx
dWVzdCA9IGZhbHNlOwogc3RhdGljIGJvb2wgd2FzUHJvbXB0ZWQgPSBmYWxzZTsKIAogc3RhdGlj
IGJvb2wgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CkBAIC02MiwxNSArNjEsMTAgQEAg
c3RhdGljIFJldGFpblB0cjxXS1NjcmlwdE1lc3NhZ2U+IGxhc3RTY3JpcHRNZXNzYWdlOwogCiBA
aW1wbGVtZW50YXRpb24gU2ltdWxhdGVGYWlsZWRTYW5kYm94VUlEZWxlZ2F0ZQogCi0tICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0
aW9uRm9yRGV2aWNlczooTlNVSW50ZWdlcilkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZy
YW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJP
T0wpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyop
IG1haW5GcmFtZSBkZXZpY2VzOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhh
bmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgogewogICAgIHdhc1Byb21wdGVk
ID0gdHJ1ZTsKIAotICAgIGlmIChyZWZ1c2VSZXF1ZXN0KSB7Ci0gICAgICAgIGRlY2lzaW9uSGFu
ZGxlcihOTyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBCT09MIG5lZWRzTWljcm9w
aG9uZUF1dGhvcml6ZWQgPSBkZXZpY2VzICYgX1dLQ2FwdHVyZURldmljZU1pY3JvcGhvbmU7CiAg
ICAgQk9PTCBuZWVkc0NhbWVyYUF1dGhvcml6ZWQgPSBkZXZpY2VzICYgX1dLQ2FwdHVyZURldmlj
ZUNhbWVyYTsKICAgICBpZiAoIW5lZWRzTWljcm9waG9uZUF1dGhvcml6ZWQgJiYgIW5lZWRzQ2Ft
ZXJhQXV0aG9yaXplZCkgewpAQCAtODEsMTQgKzc1LDkgQEAgc3RhdGljIFJldGFpblB0cjxXS1Nj
cmlwdE1lc3NhZ2U+IGxhc3RTY3JpcHRNZXNzYWdlOwogICAgIGRlY2lzaW9uSGFuZGxlcihZRVMp
OwogfQogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1l
ZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1h
aW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRl
Y2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKiwgQk9PTCkpZGVjaXNpb25IYW5kbGVy
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGlzTWVkaWFDYXB0dXJlQXV0
aG9yaXplZEZvckZyYW1lOihXS0ZyYW1lSW5mbyAqKSBtYWluRnJhbWUgZGVjaXNpb25IYW5kbGVy
Oih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgogewotICAgIGlmIChy
ZWZ1c2VSZXF1ZXN0KSB7Ci0gICAgICAgIGRlY2lzaW9uSGFuZGxlcihuaWwsIE5PKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIGRlY2lzaW9uSGFuZGxlcihAIjB4OTg3NjU0MzIxIiwg
Tk8pOworICAgIGRlY2lzaW9uSGFuZGxlcihOTyk7CiB9CiBAZW5kCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357745</attachid>
            <date>2018-12-19 16:00:37 -0800</date>
            <delta_ts>2018-12-20 14:42:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192793-20181219160035.patch</filename>
            <type>text/plain</type>
            <size>49823</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ3ZTQ1ZWZiODg0N2FhYWMw
NTNlZThjMGY2MDk2ZWE1MTkxZjIxZDEuLjY1NTQwYjBlOTE4ODBmMDQ2M2M0NmJlZjk0NGU4NDgw
N2E0ZjM2MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTgtMTItMTkgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgZm9yIGNv
bnRyb2xsaW5nIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyNzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU29tZSB3ZWFrbmVzc2VzIG9mIHRoZSBjdXJyZW50IGdldFVzZXJNZWRp
YSBTUEkgd2VyZSBmb3VuZC4KKyAgICAgICAgSW4gcGFydGljdWxhcjoKKyAgICAgICAgLSBUaGUg
aGFzaCBzYWx0IHNob3VsZCBiZSBoYW5kbGVkIGJ5IFdlYktpdC4KKyAgICAgICAgLSBObyBuZWVk
IHRvIGV4cG9zZSB0aGUgZnJhbWUgVVJMLCBvbmx5IHRoZSB0b3AgbGV2ZWwgb3JpZ2luIGlzIG5l
ZWRlZC4KKyAgICAgICAgLSBUaGUgbmFtZXMgb2YgdGhlIGNhbGxiYWNrIGNhbiBiZSBpbXByb3Zl
ZC4KKyAgICAgICAgQWRkcmVzc2VkIHRoZXNlIGJ5IGNyZWF0aW5nIGEgbmV3IFNQSSB3aGljaCB3
aWxsIHJlcGxhY2UgdGhlIGN1cnJlbnQgb25lLgorICAgICAgICBUaGUgY3VycmVudCBTUEkgd2ls
bCBiZSByZW1vdmVkIGxhdGVyIG9uLgorCisgICAgICAgIERpZCBzb21lIHJlZmFjdG9yaW5nIGJ5
IG1ha2luZyB0aGUgY2FsbGJhY2tzIG5vdCByZXR1cm4gZmFsc2UuCisgICAgICAgIEluc3RlYWQs
IGltcGxlbWVudCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpbnNpZGUgdGhlIHJlcXVlc3Qgb2JqZWN0
cyBhcyBkZW55IG1ldGhvZHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBl
cm1pc3Npb25Gb3JPcmlnaW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
OgorICAgICAgICAoV0tQYWdlU2V0UGFnZVVJQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9tZWRpYUNhcHR1cmVT
dGF0ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldE1lZGlhQ2FwdHVyZU11dGVkOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHA6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLm1tOiBBZGRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0
ZSk6CisgICAgICAgIChXZWJLaXQ6OnJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVn
YXRlOjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAg
ICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hh
bmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHku
aDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OmRlbnkp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJN
ZWRpYVBlcm1pc3Npb25JbmZvKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oOgorCiAyMDE4LTEyLTE5ICBUaW0gSG9ydG9uICA8dGltb3RoeV9o
b3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFVJIHByb2Nlc3MgY3Jhc2ggd2hlbiBmb2N1c2lu
ZyBhbiBlZGl0YWJsZSBpbWFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGVkNjViOGZhNzM5
ZThlMTk2MGIzZGNlNmI4NjRlNTE0NWUyZjkxODMuLmZhM2U3ZGEzODhkODIzODU1MmQwYWNjMDU1
NWJhYzExY2I4OGI5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTMxOSw2ICszMTksNyBA
QCBVSVByb2Nlc3MvQ29jb2EvRmluZENsaWVudC5tbQogVUlQcm9jZXNzL0NvY29hL0Z1bGxzY3Jl
ZW5DbGllbnQubW0KIFVJUHJvY2Vzcy9Db2NvYS9JY29uTG9hZGluZ0RlbGVnYXRlLm1tCiBVSVBy
b2Nlc3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tCitVSVByb2Nl
c3MvQ29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLm1tCiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdh
dGlvblN0YXRlLm1tCiBVSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbQogVUlQ
cm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tbQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCA0M2ZmNzYzYjkwNDhjYzQwYTk2N2Q5
NDU2YmJlMDNhY2JiOTUwMjdjLi4wM2QxMjMwMGQxNzE2OWY0N2M4MWRjMjYwMWE2YTQwNzE3ZDcw
YWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMTI5
LDggKzEyOSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBydW5PcGVuUGFuZWwoV2Vi
S2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmLCBPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViS2l0OjpXZWJP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJL
aXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2lu
JiwgRnVuY3Rpb248dm9pZChib29sKT4mKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9s
aWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBX
ZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIFNlY3VyaXR5T3JpZ2luJiwg
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JikgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdl
YktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmln
aW4mLCBTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJv
eHkmKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6
V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgU2VjdXJpdHlPcmlnaW4mLCBXZWJLaXQ6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYktpdDo6V2ViUGFnZVByb3h5Jiwg
V2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBTZWN1cml0eU9yaWdpbiYs
IFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0
OjpXZWJQYWdlUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9CiAgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJLaXQ6OldlYlBhZ2VQcm94
eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiByZXF1ZXN0aW5n
RG9tYWluLCBjb25zdCBXVEY6OlN0cmluZyYgY3VycmVudERvbWFpbiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcih0
cnVlKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCAy
Y2UzOGJiZjc4OTczOGRjNWE0MWU4MzUwODgwZmFiYTk3OGVjNjQyLi5iZDFlZmNhYzZmODI1NGFj
NWY4ZjI0Y2MwYjAzOWIwYzA4ODhiNzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAKQEAgLTE4NTUsMjIgKzE4NTUsMjQgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlD
bGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGll
bnQKICAgICAgICAgICAgIG1fY2xpZW50LmRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QodG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b0FQSSgmb3JpZ2luKSwg
dG9BUEkoR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKHN0ZDo6ZXhjaGFuZ2Uo
Y29tcGxldGlvbkhhbmRsZXIsIG51bGxwdHIpKS5wdHIoKSksIG1fY2xpZW50LmJhc2UuY2xpZW50
SW5mbyk7CiAgICAgICAgIH0KIAotICAgICAgICBib29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJh
bWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNl
Y3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5JiBwZXJtaXNzaW9uUmVxdWVzdCkgZmluYWwKKyAgICAgICAgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2Us
IFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcGVybWlzc2lvblJlcXVlc3QpIGZpbmFs
CiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdCkgeworICAgICAgICAgICAgICAgIHBlcm1pc3Npb25SZXF1ZXN0LmRlbnkoKTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG1f
Y2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KHRvQVBJKCZw
YWdlKSwgdG9BUEkoJmZyYW1lKSwgdG9BUEkoJnVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgdG9B
UEkoJnRvcExldmVsRG9jdW1lbnRPcmlnaW4pLCB0b0FQSSgmcGVybWlzc2lvblJlcXVlc3QpLCBt
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KIAotICAgICAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihX
ZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIHJlcXVlc3Qp
IGZpbmFsCisgICAgICAgIHZvaWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdl
YlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmln
aW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcmVxdWVzdCkg
ZmluYWwKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5jaGVja1VzZXJNZWRp
YVBlcm1pc3Npb25Gb3JPcmlnaW4pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgaWYgKCFtX2NsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4p
IHsKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmRlbnkoKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG1fY2xpZW50LmNoZWNrVXNlck1lZGlh
UGVybWlzc2lvbkZvck9yaWdpbih0b0FQSSgmcGFnZSksIHRvQVBJKCZmcmFtZSksIHRvQVBJKCZ1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIHRvQVBJKCZ0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwg
dG9BUEkoJnJlcXVlc3QpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwotICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHZvaWQgZGVjaWRlUG9s
aWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBB
UEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIGZpbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCA0NmM5NTE3YWYwZWZhZWI0NmFj
OTJhNDhmODJkZTVhOGE5ZjU1MDAyLi5iOWE5MjkxMTQxYmYwZmI2ZDZmY2ZlMTFiOTc3OTI5MWJk
NDIxMGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
SURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTEwNSw2ICsxMDUsOCBAQCBzdHJ1Y3QgVUlFZGdl
SW5zZXRzOwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGltYWdlT3JN
ZWRpYURvY3VtZW50U2l6ZUNoYW5nZWQ6KENHU2l6ZSlzaXplIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKIC0gKE5TRGljdGlvbmFyeSAqKV9kYXRhRGV0ZWN0aW9u
Q29udGV4dEZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0ZyYW1l
SW5mbyAqKW1haW5GcmFtZSBkZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lz
aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGlzTWVkaWFDYXB0dXJlQXV0aG9yaXpl
ZEZvckZyYW1lOihXS0ZyYW1lSW5mbyAqKW1haW5GcmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQg
KF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6
KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6
KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRo
b3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBp
b3MoMTEuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1Vz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwg
KiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmll
ciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6
ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9z
KDEwLjMpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0
dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDlmNjVmMmVlN2EzMjc5MWNlMjVhNjA1
Y2ZiMjgxN2YwYzNlZDQ0MWYuLjA2MTQ5NDhiNDJlNWVlNzczNjA0NGFmYzhiYjdiNWZjMTJiZGM4
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQpAQCAtNDAsNiArNDAsNyBAQAogI2ltcG9ydCAiSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oIgogI2lt
cG9ydCAiTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCisj
aW1wb3J0ICJNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCIKICNpbXBvcnQgIk5hdmlnYXRpb25TdGF0
ZS5oIgogI2ltcG9ydCAiT2JqQ09iamVjdEdyYXBoLmgiCiAjaW1wb3J0ICJQYWdlQ2xpZW50Lmgi
CkBAIC01NDc2LDYgKzU0NzcsMTYgQEAgc3RhdGljIGlubGluZSBXZWJLaXQ6OkZpbmRPcHRpb25z
IHRvRmluZE9wdGlvbnMoX1dLRmluZE9wdGlvbnMgd2tGaW5kT3B0aW9ucykKICNlbmRpZgogfQog
CistIChfV0tNZWRpYUNhcHR1cmVTdGF0ZSlfbWVkaWFDYXB0dXJlU3RhdGUKK3sKKyAgICByZXR1
cm4gV2ViS2l0Ojp0b1dLTWVkaWFDYXB0dXJlU3RhdGUoX3BhZ2UtPm1lZGlhU3RhdGVGbGFncygp
KTsKK30KKworLSAodm9pZClfc2V0TWVkaWFDYXB0dXJlTXV0ZWQ6KEJPT0wpbXV0ZWQKK3sKKyAg
ICBfcGFnZS0+c2V0TWVkaWFTdHJlYW1DYXB0dXJlTXV0ZWQobXV0ZWQpOworfQorCiAtICh2b2lk
KV9tdXRlTWVkaWFDYXB0dXJlCiB7CiAgICAgX3BhZ2UtPnNldE1lZGlhU3RyZWFtQ2FwdHVyZU11
dGVkKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmgKaW5kZXggOGFmODUyZTFjYjQ3NWM2MTQwZjgzY2E1ZGRlN2NkZDhh
NWQ5NDI0ZC4uZDAwNTNhOTg0NGQ5ZGRjNWQwNTE4Y2EyMTZmYTFiYjY3Y2I5YjY5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oCkBAIC0zOTEsNiArMzkxLDkgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9X
S1JlY3RFZGdlKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRGdWxsc2NyZWVu
RGVsZWdhdGU6KSBpZDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+IF9mdWxsc2NyZWVuRGVsZWdhdGUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9pc0luRnVsbHNjcmVlbiBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMi4zKSk7CiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dL
TWVkaWFDYXB0dXJlU3RhdGUgX21lZGlhQ2FwdHVyZVN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCistICh2b2lkKV9zZXRNZWRpYUNh
cHR1cmVNdXRlZDooQk9PTCltdXRlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX211dGVNZWRpYUNhcHR1cmUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfc2V0UGFnZU11dGVk
OihfV0tNZWRpYU11dGVkU3RhdGUpbXV0ZWRTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMyksIGlvcygxMS4wKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCAxYzc2ODg2OTA3ODFmMmEwOWMwYzhiN2I0
OGY3OGU4ZWVlNTU2OTBmLi5jNTJiMTcwYzUzOWJlNzU5YWJiZGQxNGExMzQ1NmU3ZDEyN2Q2OTIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlD
bGllbnQuY3BwCkBAIC0xODQsMTggKzE4NCwxNiBAQCBwcml2YXRlOgogICAgICAgICB3ZWJraXRX
ZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0KG1fd2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05f
UkVRVUVTVChnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CiAgICAgfQogCi0g
ICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdl
UHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4s
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5h
bAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2Vi
UGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiBwZXJtaXNzaW9uUmVxdWVzdCkg
ZmluYWwKICAgICB7CiAgICAgICAgIEdSZWZQdHI8V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3Q+IHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRlKHBlcm1pc3Npb25SZXF1ZXN0LCB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikpOwogICAgICAgICB3ZWJraXRX
ZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0KG1fd2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05f
UkVRVUVTVCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5nZXQoKSkpOwotICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9y
aWdpbihXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIHBlcm1pc3Np
b25SZXF1ZXN0KSBvdmVycmlkZQorICAgIHZvaWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
T3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlP
cmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcGVybWlz
c2lvblJlcXVlc3QpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBhdXRvIGRldmljZUluZm9QZXJt
aXNzaW9uUmVxdWVzdCA9IGFkb3B0R1JlZih3ZWJraXREZXZpY2VJbmZvUGVybWlzc2lvblJlcXVl
c3RDcmVhdGUocGVybWlzc2lvblJlcXVlc3QsIHBhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpLmRldmlj
ZUlkSGFzaFNhbHRTdG9yYWdlKCkpKTsKICAgICAgICAgd2Via2l0V2ViVmlld01ha2VQZXJtaXNz
aW9uUmVxdWVzdChtX3dlYlZpZXcsIFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1QoZGV2aWNlSW5m
b1Blcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IAogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qo
V2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLmgKaW5kZXggMzhkZDdlY2JjZmI1ZjJhNjBmYzg2Yzk4YmU4YjBmMzFhODU0
ZmY4Ni4uOGZkMTZhOTgxMmMwNGFkZjA4NWU1NDRhZWUzODA0YzgyMmQ1ZjE2NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaApAQCAtMTIzLDggKzEyMyw4IEBA
IHByaXZhdGU6CiAjZW5kaWYKICAgICAgICAgYm9vbCBuZWVkc0ZvbnRBdHRyaWJ1dGVzKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdE
aWRDaGFuZ2VGb250QXR0cmlidXRlczsgfQogICAgICAgICB2b2lkIGRpZENoYW5nZUZvbnRBdHRy
aWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZvbnRBdHRyaWJ1dGVzJikgZmluYWw7Ci0gICAgICAgIGJv
b2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5
JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpIGZpbmFsOwotICAgICAgICBi
b29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmLCBXZWJG
cmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBV
c2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIGZpbmFsOworICAgICAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIFdlYkZy
YW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSBmaW5hbDsKKyAgICAgICAgdm9pZCBjaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94
eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBtZWRpYUNhcHR1cmVT
dGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZp
bmFsOwogICAgICAgICB2b2lkIHByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94
eSYpIGZpbmFsOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xOTgsOCArMTk4LDggQEAg
cHJpdmF0ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3RnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5l
IDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuIDogMTsKICAgICAg
ICAgYm9vbCB3ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW4gOiAxOwotICAgICAgICBib29sIHdlYlZp
ZXdSZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXNVUkxNYWluRnJhbWVVUkxE
ZWNpc2lvbkhhbmRsZXIgOiAxOwotICAgICAgICBib29sIHdlYlZpZXdDaGVja1VzZXJNZWRpYVBl
cm1pc3Npb25Gb3JVUkxNYWluRnJhbWVVUkxGcmFtZUlkZW50aWZpZXJEZWNpc2lvbkhhbmRsZXIg
OiAxOworICAgICAgICBib29sIHdlYlZpZXdSZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlv
bkZvckZyYW1lRGVjaXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3SXNNZWRp
YUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWVEZWNpc2lvbkhhbmRsZXIgOiAxOwogICAgICAgICBi
b29sIHdlYlZpZXdNZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSA6IDE7CiAgICAgICAgIGJvb2wg
d2ViVmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1dGVzIDogMTsKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXgg
MGVkOTMwODY0NzBhNDliNWNmZWQwNDYwOGMwMTE3MmI2NDJhNWRmMy4uOWFhZDIxZmJjYWZmMDY1
YmFjMTVhNjNjMmM3ZWI4MjU4ZTgzYjY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJBUElGcmFtZUlu
Zm8uaCIKICNpbXBvcnQgIkFQSUhpdFRlc3RSZXN1bHQuaCIKICNpbXBvcnQgIkNvbXBsZXRpb25I
YW5kbGVyQ2FsbENoZWNrZXIuaCIKKyNpbXBvcnQgIk1lZGlhQ2FwdHVyZVV0aWxpdGllcy5oIgog
I2ltcG9ydCAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgogI2ltcG9ydCAiTmF2aWdhdGlvbkFjdGlv
bkRhdGEuaCIKICNpbXBvcnQgIlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgiCkBAIC0x
NTAsOCArMTUxLDkgQEAgdm9pZCBVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURlbGVn
YXRlPiBkZWxlZ2F0ZSkKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkTm90SGFuZGxl
VGFwQXNDbGlja0F0UG9pbnQgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihfd2ViVmlldzpkaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludDopXTsKICAgICBtX2RlbGVn
YXRlTWV0aG9kcy5wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3ID0gW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3ByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZv
cldlYlZpZXc6KV07CiAjZW5kaWYKLSAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVz
dFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzVVJMTWFpbkZyYW1lVVJMRGVjaXNpb25I
YW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6
cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOnVybDptYWluRnJhbWVVUkw6
ZGVjaXNpb25IYW5kbGVyOildOwotICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdDaGVja1Vz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVVUkxGcmFtZUlkZW50aWZpZXJEZWNpc2lv
bkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmll
dzpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6bWFpbkZyYW1lVVJMOmZyYW1lSWRlbnRp
ZmllcjpkZWNpc2lvbkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1Jl
cXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWVEZWNpc2lvbkhhbmRsZXIgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0VXNl
ck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lvbkhh
bmRsZXI6KV0gfHwgW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZp
ZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lz
aW9uSGFuZGxlcjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3SXNNZWRpYUNhcHR1
cmVBdXRob3JpemVkRm9yRnJhbWVEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JV
Ukw6bWFpbkZyYW1lVVJMOmZyYW1lSWRlbnRpZmllcjpkZWNpc2lvbkhhbmRsZXI6KV0gfHwgW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6aXNNZWRpYUNhcHR1
cmVBdXRob3JpemVkRm9yRnJhbWU6ZGVjaXNpb25IYW5kbGVyOildOworCiAgICAgbV9kZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld01lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlID0gW2RlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6bWVkaWFDYXB0dXJlU3RhdGVEaWRD
aGFuZ2U6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZENoYW5nZUZvbnRBdHRy
aWJ1dGVzID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6
ZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXM6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuZGF0YURl
dGVjdGlvbkNvbnRleHRGb3JXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX2RhdGFEZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmlldzopXTsKQEAgLTg1NSw5ICs4
NTcsMTQgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cnVuT3BlblBhbmVsKFdlYlBhZ2VQ
cm94eSosIFdlYkZyYW1lUHJveHkqIHdlYkZyYW1lUHIKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKLXN0YXRpYyB2b2lkIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9y
RGV2aWNlcyhjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eSYgcmVxdWVzdCwgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IGRlbGVnYXRlLCBX
S1dlYlZpZXcmIHdlYlZpZXcpCitzdGF0aWMgdm9pZCByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXph
dGlvbkZvckZyYW1lKGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVx
dWVzdCwgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IGRlbGVnYXRlLCBXS1dlYlZpZXcmIHdlYlZp
ZXcpCiB7Ci0gICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3Rl
ZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpXShCT09MIGF1dGhvcml6ZWQpIHsKKyAgICBhdXRv
IGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUs
IEBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZy
YW1lOmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOikpOworICAgIGF1dG8gZGVjaXNpb25IYW5kbGVy
ID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRSZXF1ZXN0ID0gbWFrZVJlZihyZXF1ZXN0KSwgY2hl
Y2tlciA9IFdURk1vdmUoY2hlY2tlcildKEJPT0wgYXV0aG9yaXplZCkgeworICAgICAgICBpZiAo
Y2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOworCiAg
ICAgICAgIGlmICghYXV0aG9yaXplZCkgewogICAgICAgICAgICAgcHJvdGVjdGVkUmVxdWVzdC0+
ZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5p
YWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODY3
LDEwICs4NzQsNiBAQCBzdGF0aWMgdm9pZCByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZv
ckRldmljZXMoY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsCiAgICAgICAgIHByb3RlY3RlZFJl
cXVlc3QtPmFsbG93KGF1ZGlvRGV2aWNlVUlELCB2aWRlb0RldmljZVVJRCk7CiAgICAgfSk7CiAK
LSAgICBjb25zdCBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUgPSBmcmFtZS5wYWdlKCktPm1haW5G
cmFtZSgpOwotICAgIFVSTCByZXF1ZXN0RnJhbWVVUkwoVVJMKCksIGZyYW1lLnVybCgpKTsKLSAg
ICBVUkwgbWFpbkZyYW1lVVJMKFVSTCgpLCBtYWluRnJhbWUtPnVybCgpKTsKLQogICAgIF9XS0Nh
cHR1cmVEZXZpY2VzIGRldmljZXMgPSAwOwogICAgIGlmIChyZXF1ZXN0LnJlcXVpcmVzQXVkaW9D
YXB0dXJlKCkpCiAgICAgICAgIGRldmljZXMgfD0gX1dLQ2FwdHVyZURldmljZU1pY3JvcGhvbmU7
CkBAIC04ODEsOCArODg0LDE5IEBAIHN0YXRpYyB2b2lkIHJlcXVlc3RVc2VyTWVkaWFBdXRob3Jp
emF0aW9uRm9yRGV2aWNlcyhjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwKICAgICAgICAgQVNT
RVJUKCEoZGV2aWNlcyAmIF9XS0NhcHR1cmVEZXZpY2VDYW1lcmEpKTsKICAgICB9CiAKLSAgICBh
dXRvIHByb3RlY3RlZFdlYlZpZXcgPSBSZXRhaW5QdHI8V0tXZWJWaWV3Pigmd2ViVmlldyk7Ci0g
ICAgW2RlbGVnYXRlIF93ZWJWaWV3OnByb3RlY3RlZFdlYlZpZXcuZ2V0KCkgcmVxdWVzdFVzZXJN
ZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOmRldmljZXMgdXJsOnJlcXVlc3RGcmFtZVVSTCBt
YWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIu
Z2V0KCldOworICAgIGNvbnN0IFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2Uo
KS0+bWFpbkZyYW1lKCk7CisKKyAgICAvLyBGSVhNRTogUHJvdmlkZSBhIHNwZWNpZmljIGRlbGVn
YXRlIGZvciBkaXNwbGF5IGNhcHR1cmUuCisgICAgaWYgKCFyZXF1ZXN0LnJlcXVpcmVzRGlzcGxh
eUNhcHR1cmUoKSAmJiBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
VmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOmRldmljZXM6ZGVj
aXNpb25IYW5kbGVyOildKSB7CisKKyAgICAgICAgW2RlbGVnYXRlIF93ZWJWaWV3OiZ3ZWJWaWV3
IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6d3JhcHBlcihBUEk6OkZy
YW1lSW5mbzo6Y3JlYXRlKCptYWluRnJhbWUsIHRvcExldmVsT3JpZ2luLnNlY3VyaXR5T3JpZ2lu
KCkpKSBkZXZpY2VzOmRldmljZXMgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQo
KV07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBVUkwgcmVxdWVzdEZyYW1lVVJMKFVS
TCgpLCBmcmFtZS51cmwoKSk7CisgICAgVVJMIG1haW5GcmFtZVVSTChVUkwoKSwgbWFpbkZyYW1l
LT51cmwoKSk7CisKKyAgICBbZGVsZWdhdGUgX3dlYlZpZXc6JndlYlZpZXcgcmVxdWVzdFVzZXJN
ZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOmRldmljZXMgdXJsOnJlcXVlc3RGcmFtZVVSTCBt
YWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIu
Z2V0KCldOwogfQogI2VuZGlmCiAKQEAgLTg5NSwxMyArOTA5LDEzIEBAIHZvaWQgVUlEZWxlZ2F0
ZTo6VUlDbGllbnQ6OmRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZvbnRB
dHRyaWJ1dGVzCiAgICAgW3ByaXZhdGVVSURlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5t
X3dlYlZpZXcgZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXM6Zm9udEF0dHJpYnV0ZXMuY3JlYXRlRGlj
dGlvbmFyeSgpLmdldCgpXTsKIH0KIAotYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRl
UG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBX
ZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2lu
LCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eSYgcmVxdWVzdCkKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lk
ZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwg
V2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdp
biwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkmIHJlcXVlc3QpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAg
ICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7Ci0gICAgaWYg
KCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1
ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXNVUkxNYWluRnJhbWVVUkxEZWNpc2lv
bkhhbmRsZXIpIHsKKyAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWVE
ZWNpc2lvbkhhbmRsZXIpIHsKICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6VXNlck1lZGlhRGlz
YWJsZWQpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIGJvb2wgcmVxdWlyZXNBdWRpb0NhcHR1cmUgPSByZXF1ZXN0LnJlcXVpcmVzQXVkaW9DYXB0
dXJlKCk7CkBAIC05MDksMzMgKzkyMywzMyBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpk
ZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveAogICAg
IGJvb2wgcmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSA9IHJlcXVlc3QucmVxdWlyZXNEaXNwbGF5Q2Fw
dHVyZSgpOwogICAgIGlmICghcmVxdWlyZXNBdWRpb0NhcHR1cmUgJiYgIXJlcXVpcmVzVmlkZW9D
YXB0dXJlICYmICFyZXF1aXJlc0Rpc3BsYXlDYXB0dXJlKSB7CiAgICAgICAgIHJlcXVlc3QuZGVu
eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxS
ZWFzb246Ok5vQ29uc3RyYWludHMpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0
dXJuOwogICAgIH0KIAogI2lmIEhBVkUoQVVUSE9SSVpBVElPTl9TVEFUVVNfRk9SX01FRElBX1RZ
UEUpCiAgICAgYm9vbCB1c2luZ01vY2tDYXB0dXJlRGV2aWNlcyA9IHBhZ2UucHJlZmVyZW5jZXMo
KS5tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKCk7Ci0gICAgYXV0byByZXF1ZXN0Q2FtZXJhQXV0
aG9yaXphdGlvbiA9IG1ha2VCbG9ja1B0cihbdGhpcywgJmZyYW1lLCBwcm90ZWN0ZWRSZXF1ZXN0
ID0gbWFrZVJlZihyZXF1ZXN0KSwgd2ViVmlldyA9IFJldGFpblB0cjxXS1dlYlZpZXc+KG1fdWlE
ZWxlZ2F0ZS5tX3dlYlZpZXcpLCB1c2luZ01vY2tDYXB0dXJlRGV2aWNlc10oKSB7CisgICAgYXV0
byByZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbiA9IG1ha2VCbG9ja1B0cihbdGhpcywgJmZyYW1l
LCBwcm90ZWN0ZWRSZXF1ZXN0ID0gbWFrZVJlZihyZXF1ZXN0KSwgd2ViVmlldyA9IFJldGFpblB0
cjxXS1dlYlZpZXc+KG1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcpLCB0b3BMZXZlbE9yaWdpbiA9IG1h
a2VSZWYodG9wTGV2ZWxPcmlnaW4pLCB1c2luZ01vY2tDYXB0dXJlRGV2aWNlc10oKSBtdXRhYmxl
IHsKIAogICAgICAgICBpZiAoIXByb3RlY3RlZFJlcXVlc3QtPnJlcXVpcmVzVmlkZW9DYXB0dXJl
KCkpIHsKLSAgICAgICAgICAgIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNl
cyhmcmFtZSwgcHJvdGVjdGVkUmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3Vp
RGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwgKndlYlZpZXcuZ2V0KCkpOworICAgICAgICAgICAg
cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JGcmFtZShmcmFtZSwgdG9wTGV2ZWxPcmln
aW4sIHByb3RlY3RlZFJlcXVlc3QsIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVn
YXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3ZWJWaWV3LmdldCgpKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogICAgICAgICBBVkF1dGhvcml6YXRpb25TdGF0dXMgY2FtZXJhQXV0aG9y
aXphdGlvblN0YXR1cyA9IHVzaW5nTW9ja0NhcHR1cmVEZXZpY2VzID8gQVZBdXRob3JpemF0aW9u
U3RhdHVzQXV0aG9yaXplZCA6IFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGF1dGhvcml6YXRp
b25TdGF0dXNGb3JNZWRpYVR5cGU6Z2V0QVZNZWRpYVR5cGVWaWRlbygpXTsKICAgICAgICAgc3dp
dGNoIChjYW1lcmFBdXRob3JpemF0aW9uU3RhdHVzKSB7CiAgICAgICAgIGNhc2UgQVZBdXRob3Jp
emF0aW9uU3RhdHVzQXV0aG9yaXplZDoKLSAgICAgICAgICAgIHJlcXVlc3RVc2VyTWVkaWFBdXRo
b3JpemF0aW9uRm9yRGV2aWNlcyhmcmFtZSwgcHJvdGVjdGVkUmVxdWVzdCwgKGlkIDxXS1VJRGVs
ZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwgKndlYlZpZXcuZ2V0
KCkpOworICAgICAgICAgICAgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JGcmFtZShm
cmFtZSwgdG9wTGV2ZWxPcmlnaW4sIHByb3RlY3RlZFJlcXVlc3QsIChpZCA8V0tVSURlbGVnYXRl
UHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3ZWJWaWV3LmdldCgpKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c0Rl
bmllZDoKICAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNSZXN0cmljdGVkOgogICAg
ICAgICAgICAgcHJvdGVjdGVkUmVxdWVzdC0+ZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c05v
dERldGVybWluZWQ6Ci0gICAgICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9j
a1B0cihbdGhpcywgJmZyYW1lLCBwcm90ZWN0ZWRSZXF1ZXN0ID0gbWFrZVJlZihwcm90ZWN0ZWRS
ZXF1ZXN0LmdldCgpKSwgd2ViVmlldyA9IFJldGFpblB0cjxXS1dlYlZpZXc+KG1fdWlEZWxlZ2F0
ZS5tX3dlYlZpZXcpXShCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAgICAgICAgIGF1dG8gZGVjaXNp
b25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFt0aGlzLCAmZnJhbWUsIHByb3RlY3RlZFJlcXVlc3Qg
PSBtYWtlUmVmKHByb3RlY3RlZFJlcXVlc3QuZ2V0KCkpLCB3ZWJWaWV3ID0gUmV0YWluUHRyPFdL
V2ViVmlldz4obV91aURlbGVnYXRlLm1fd2ViVmlldyksIHRvcExldmVsT3JpZ2luID0gV1RGTW92
ZSh0b3BMZXZlbE9yaWdpbildKEJPT0wgYXV0aG9yaXplZCkgewogICAgICAgICAgICAgICAgIGlm
ICghYXV0aG9yaXplZCkgewogICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0LT5k
ZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0Rlbmlh
bFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmVxdWVzdFVzZXJNZWRpYUF1dGhv
cml6YXRpb25Gb3JEZXZpY2VzKGZyYW1lLCBwcm90ZWN0ZWRSZXF1ZXN0LCAoaWQgPFdLVUlEZWxl
Z2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqd2ViVmlldy5nZXQo
KSk7CisgICAgICAgICAgICAgICAgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JGcmFt
ZShmcmFtZSwgdG9wTGV2ZWxPcmlnaW4sIHByb3RlY3RlZFJlcXVlc3QsIChpZCA8V0tVSURlbGVn
YXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3ZWJWaWV3LmdldCgp
KTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgICAgICBbZ2V0QVZDYXB0dXJlRGV2aWNlQ2xh
c3MoKSByZXF1ZXN0QWNjZXNzRm9yTWVkaWFUeXBlOmdldEFWTWVkaWFUeXBlVmlkZW8oKSBjb21w
bGV0aW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwpAQCAtOTUyLDcgKzk2Niw3IEBA
IGJvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94CiAgICAgICAgIGNhc2UgQVZBdXRob3JpemF0aW9uU3Rh
dHVzRGVuaWVkOgogICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c1Jlc3RyaWN0ZWQ6
CiAgICAgICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKLSAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBjYXNlIEFW
QXV0aG9yaXphdGlvblN0YXR1c05vdERldGVybWluZWQ6CiAgICAgICAgICAgICBhdXRvIGRlY2lz
aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocmVx
dWVzdCksIHJlcXVlc3RDYW1lcmFBdXRob3JpemF0aW9uXShCT09MIGF1dGhvcml6ZWQpIHsKICAg
ICAgICAgICAgICAgICBpZiAoIWF1dGhvcml6ZWQpIHsKQEAgLTk2OCw1MyArOTgyLDYxIEBAIGJv
b2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0KFdlYlBhZ2VQcm94CiAgICAgfSBlbHNlCiAgICAgICAgIHJlcXVlc3RDYW1lcmFB
dXRob3JpemF0aW9uKCk7CiAjZWxzZQotICAgIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9u
Rm9yRGV2aWNlcyhmcmFtZSwgcmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3Vp
RGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwgKm1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcpOworICAg
IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWUoZnJhbWUsIHRvcExldmVsT3Jp
Z2luLCByZXF1ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2Rl
bGVnYXRlLmdldCgpLCAqbV91aURlbGVnYXRlLm1fd2ViVmlldyk7CiAjZW5kaWYKICNlbmRpZgot
Ci0gICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1l
UHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQ
cm94eSYgcmVxdWVzdCkKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlh
UGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZy
YW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlP
cmlnaW4mIHRvcExldmVsT3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcmVx
dWVzdCkKIHsKICAgICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0
KCk7Ci0gICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdDaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVVUkxGcmFtZUlk
ZW50aWZpZXJEZWNpc2lvbkhhbmRsZXIpIHsKKyAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVs
ZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0lzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZv
ckZyYW1lRGVjaXNpb25IYW5kbGVyKSB7CiAgICAgICAgIHJlcXVlc3Quc2V0VXNlck1lZGlhQWNj
ZXNzSW5mbyhmYWxzZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgV0tXZWJWaWV3ICp3ZWJWaWV3ID0gbV91aURlbGVnYXRlLm1fd2ViVmlldzsK
LSAgICBjb25zdCBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUgPSBmcmFtZS5wYWdlKCktPm1haW5G
cmFtZSgpOwotICAgIFVSTCByZXF1ZXN0RnJhbWVVUkwoVVJMKCksIGZyYW1lLnVybCgpKTsKLSAg
ICBVUkwgbWFpbkZyYW1lVVJMKFVSTCgpLCBtYWluRnJhbWUtPnVybCgpKTsKKyAgICBjb25zdCBh
dXRvIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCk7CisKKyAgICBpZiAoW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6aXNNZWRpYUNhcHR1
cmVBdXRob3JpemVkRm9yRnJhbWU6ZGVjaXNpb25IYW5kbGVyOildKSB7CisgICAgICAgIGF1dG8g
Y2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZS5n
ZXQoKSwgQHNlbGVjdG9yKF93ZWJWaWV3OmlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1l
OmRlY2lzaW9uSGFuZGxlcjopKTsKKyAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoW3Byb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpLCBjaGVja2VyID0g
V1RGTW92ZShjaGVja2VyKV0oQk9PTCBhdXRob3JpemVkKSB7CisgICAgICAgICAgICBpZiAoY2hl
Y2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7
CisKKyAgICAgICAgICAgIHByb3RlY3RlZFJlcXVlc3QtPnNldFVzZXJNZWRpYUFjY2Vzc0luZm8o
YXV0aG9yaXplZCk7CisgICAgICAgIH0pOworCisgICAgICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVBy
aXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgaXNNZWRpYUNh
cHR1cmVBdXRob3JpemVkRm9yRnJhbWU6d3JhcHBlcihBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKCpt
YWluRnJhbWUsIHRvcExldmVsT3JpZ2luLnNlY3VyaXR5T3JpZ2luKCkpKSBkZWNpc2lvbkhhbmRs
ZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShkZWxl
Z2F0ZS5nZXQoKSwgQHNlbGVjdG9yKF93ZWJWaWV3OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZv
clVSTDptYWluRnJhbWVVUkw6ZnJhbWVJZGVudGlmaWVyOmRlY2lzaW9uSGFuZGxlcjopKTsKKyAg
ICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbcHJvdGVjdGVkUmVxdWVzdCA9
IG1ha2VSZWYocmVxdWVzdCksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXShOU1N0cmluZyos
IEJPT0wgYXV0aG9yaXplZCkgeworICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRs
ZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNoZWNrZXIt
PmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOwogCi0gICAgYXV0byBkZWNpc2lvbkhhbmRsZXIg
PSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpXShOU1N0
cmluZyosIEJPT0wgYXV0aG9yaXplZCkgewogICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0LT5zZXRV
c2VyTWVkaWFBY2Nlc3NJbmZvKGF1dGhvcml6ZWQpOwogICAgIH0pOwogCi0gICAgWyhpZCA8V0tV
SURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6d2ViVmlldyBjaGVja1VzZXJNZWRp
YVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJhbWVV
UkwgZnJhbWVJZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQoKSBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNp
b25IYW5kbGVyLmdldCgpXTsKKyAgICBVUkwgcmVxdWVzdEZyYW1lVVJMKFVSTCgpLCBmcmFtZS51
cmwoKSk7CisgICAgVVJMIG1haW5GcmFtZVVSTChVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSk7CiAK
LSAgICByZXR1cm4gdHJ1ZTsKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0
ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkZvclVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlk
ZW50aWZpZXI6ZnJhbWUuZnJhbWVJRCgpIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIu
Z2V0KCldOwogfQogCiB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0
ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUp
CiB7CiAgICAgV0tXZWJWaWV3ICp3ZWJWaWV3ID0gbV91aURlbGVnYXRlLm1fd2ViVmlldzsKKwor
ICAgIFt3ZWJWaWV3IGRpZENoYW5nZVZhbHVlRm9yS2V5OkAibWVkaWFDYXB0dXJlU3RhdGUiXTsK
KwogICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKICAg
ICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d01lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBfV0tN
ZWRpYUNhcHR1cmVTdGF0ZSBtZWRpYUNhcHR1cmVTdGF0ZSA9IF9XS01lZGlhQ2FwdHVyZVN0YXRl
Tm9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVB
dWRpb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlh
Q2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIG1lZGlh
Q2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJhOwotICAgIGlm
IChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2
aWNlKQotICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11
dGVkTWljcm9waG9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpI
YXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKLSAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0g
X1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZENhbWVyYTsKLQotICAgIFsoaWQgPFdLVUlEZWxlZ2F0
ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3OndlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRD
aGFuZ2U6bWVkaWFDYXB0dXJlU3RhdGVdOworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+
KWRlbGVnYXRlIF93ZWJWaWV3OndlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6dG9X
S01lZGlhQ2FwdHVyZVN0YXRlKHN0YXRlKV07CiB9CiAKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViUGFnZVByb3h5KiwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBjdXJy
ZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIEZ1bmN0aW9uPHZvaWQgKHVuc2ln
bmVkIGxvbmcgbG9uZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaAppbmRleCBk
OTFmMDRmZmRhYjhkMTQyNDU0ZDUwNjNmZTE3ZjBlYmZhODMzNGViLi42YTA4OTUwNmNlYTM4OGQx
ZDRjM2Q2ZGVmZGE1ZmUwZTBhZWU1N2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgKQEAgLTQ2LDYgKzQ2LDcg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eShmcmFtZUlELCBXVEZNb3ZlKGhhbmRsZXIpLCBXVEZNb3ZlKHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSkpOwogICAg
IH0KIAorICAgIHZvaWQgZGVueSgpIHsgc2V0VXNlck1lZGlhQWNjZXNzSW5mbyhmYWxzZSk7IH0K
ICAgICB2b2lkIHNldFVzZXJNZWRpYUFjY2Vzc0luZm8oYm9vbCk7CiAgICAgdm9pZCBpbnZhbGlk
YXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCBlN2IzNzA4
NGQ5YjIxYzg1NzhiMTY1ODE3ZGUyZGM5NjAzZTM1MzhlLi40YzRjOTliODUyMTBjYzI1ZjlkYWM1
ZTE5NzQ4ZmM0NjdmM2Y0NjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
CkBAIC0zNzQsOCArMzc0LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSgKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmICghbV9wYWdlLnVpQ2xpZW50KCkuZGVj
aWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QobV9wYWdlLCAqbV9wYWdlLnBy
b2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKSwgV1RGTW92ZSh1c2VyTWVkaWFPcmlnaW4pLCBXVEZN
b3ZlKHRvcExldmVsT3JpZ2luKSwgcGVuZGluZ1JlcXVlc3QuZ2V0KCkpKQotICAgICAgICAgICAg
dXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVzZXJNZWRpYUlELCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2Fi
bGVkKTsKKyAgICAgICAgbV9wYWdlLnVpQ2xpZW50KCkuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QobV9wYWdlLCAqbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFt
ZUlEKSwgV1RGTW92ZSh1c2VyTWVkaWFPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsT3JpZ2luKSwg
cGVuZGluZ1JlcXVlc3QuZ2V0KCkpOwogICAgIH07CiAKICAgICBhdXRvIHJlcXVlc3RJRCA9IGdl
bmVyYXRlUmVxdWVzdElEKCk7CkBAIC00MTcsMTAgKzQxNiw3IEBAIHZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKHVp
bnQ2NF90CiAgICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6
OmNyZWF0ZShmcmFtZUlELCBXVEZNb3ZlKGhhbmRsZXIpLCBXVEZNb3ZlKHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSk7CiAKICAgICBtX3Bl
bmRpbmdEZXZpY2VSZXF1ZXN0cy5hZGQocmVxdWVzdElELCByZXF1ZXN0LmNvcHlSZWYoKSk7Ci0g
ICAgaWYgKCFtX3BhZ2UudWlDbGllbnQoKS5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmln
aW4obV9wYWdlLCAqbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKSwgdXNlck1lZGlh
T3JpZ2luLmdldCgpLCB0b3BMZXZlbE9yaWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSkpIHsKLSAg
ICAgICAgbV9wZW5kaW5nRGV2aWNlUmVxdWVzdHMudGFrZShyZXF1ZXN0SUQpOwotICAgICAgICBo
YW5kbGVyKGZhbHNlKTsKLSAgICB9CisgICAgbV9wYWdlLnVpQ2xpZW50KCkuY2hlY2tVc2VyTWVk
aWFQZXJtaXNzaW9uRm9yT3JpZ2luKG1fcGFnZSwgKm1fcGFnZS5wcm9jZXNzKCkud2ViRnJhbWUo
ZnJhbWVJRCksIHVzZXJNZWRpYU9yaWdpbi5nZXQoKSwgdG9wTGV2ZWxPcmlnaW4uZ2V0KCksIHJl
cXVlc3QuZ2V0KCkpOwogfQogCiBib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5Ojp3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJp
dHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKaW5kZXgg
NTk4MGRjNzA5YTAwMjg1ZDBhYThlNzM1Y2QzMDgxOTdjOTExOGJkYi4uYWM4MDVlNzg4YmUyMzE3
ZTBhN2FhZWI3MTg5MDljZjQ1YmNhODkwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApAQCAtNDUsNyAr
NDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhbGxvdygpOwogCiAgICAgZW51bSBjbGFzcyBVc2Vy
TWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24geyBOb0NvbnN0cmFpbnRzLCBVc2VyTWVkaWFEaXNhYmxl
ZCwgTm9DYXB0dXJlRGV2aWNlcywgSW52YWxpZENvbnN0cmFpbnQsIEhhcmR3YXJlRXJyb3IsIFBl
cm1pc3Npb25EZW5pZWQsIE90aGVyRmFpbHVyZSB9OwotICAgIHZvaWQgZGVueShVc2VyTWVkaWFB
Y2Nlc3NEZW5pYWxSZWFzb24pOworICAgIHZvaWQgZGVueShVc2VyTWVkaWFBY2Nlc3NEZW5pYWxS
ZWFzb24gPSBVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2FibGVkKTsK
IAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlZjFiMDVkYjQ3ZGRiMGI4ZjE0ZjJhZWIxZDA0
NDA4NmFhYTM2ODYwLi44MDQyYjQ4M2Q4OGNjMTViODQ0ZTAxZGFmZjhkYjMxZmRmMDkzMDMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTI5OTksNiArMjk5OSw4IEBACiAJCTQxMDQ4MkNCMURERDJGQjUwMEYwMDZEMCAvKiBSVENOZXR3
b3JrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ05ldHdvcmsu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTA0ODJDQzFEREQyRkI1MDBGMDA2
RDAgLyogUlRDTmV0d29yay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENO
ZXR3b3JrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTE0MzYzMjBGNjc3QjEw
MDI2RjkxMiAvKiBJbmplY3RVc2VyU2NyaXB0SW1tZWRpYXRlbHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMTI4NkVGMjFDOEE5MEMwMDNBODU1MCAvKiBNZWRpYUNh
cHR1cmVVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFD
YXB0dXJlVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMTI4NkYw
MjFDOEE5MEQwMDNBODU1MCAvKiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYUNhcHR1cmVVdGlsaXRpZXMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTJCNTQ3MUY5RkQzQUIwMEU2Nzg3NSAvKiBO
ZXR3b3JrUlRDUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTmV0d29ya1JUQ1Jlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDExMkI1NDcxRjlGRDNBQjAwRTY3OTg2IC8qIE5ldHdvcmtSVENSZXNvbHZlckNvY29hLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtSVENSZXNvbHZlckNv
Y29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMkI1NDgxRjlGRDNBQzAw
RTY3ODc1IC8qIE5ldHdvcmtSVENSZXNvbHZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBOZXR3b3JrUlRDUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTUzMDIsNiArNTMwNCw4IEBACiAJCQkJMEYwQzM2NTkxOEMwNTU1ODAwRjYwN0Q3IC8qIExh
eWVyUmVwcmVzZW50YXRpb24uaCAqLywKIAkJCQk3QTgyMUY0QjFFMkY2NjQ4MDA2MDQ1NzcgLyog
TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50LmggKi8sCiAJCQkJN0E4MjFGNEQxRTJG
Njc5RTAwNjA0NTc3IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5tbSAqLywK
KwkJCQk0MTEyODZFRjIxQzhBOTBDMDAzQTg1NTAgLyogTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmgg
Ki8sCisJCQkJNDExMjg2RjAyMUM4QTkwRDAwM0E4NTUwIC8qIE1lZGlhQ2FwdHVyZVV0aWxpdGll
cy5tbSAqLywKIAkJCQkxQUJDM0RGNDE4OTlFNDM3MDA0RjA2MjYgLyogTmF2aWdhdGlvblN0YXRl
LmggKi8sCiAJCQkJMUFCQzNERjMxODk5RTQzNzAwNEYwNjI2IC8qIE5hdmlnYXRpb25TdGF0ZS5t
bSAqLywKIAkJCQk1QzZDRTZEMzFGNTlFQTM1MDAwN0M2Q0IgLyogUGFnZUNsaWVudEltcGxDb2Nv
YS5oICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDMzZDQ2YWExZTQ4ZDQwN2QwYjdjNDQ2ODlkOTRkNDg3N2ViMzA2NjcuLjlkNjYxMzA2OGMx
ZWJiNDI3NjMwODNhODExZmFlYmM3YWE3N2MwZjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOC0xMi0xOSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbmV3IFNQSSBm
b3IgY29udHJvbGxpbmcgZ2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI3OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29u
dHJvbGxlci5tOgorICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciBfd2ViVmll
dzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lOmRldmljZXM6ZGVjaXNpb25I
YW5kbGVyOl0pOgorICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciBfd2ViVmll
dzppc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTpkZWNpc2lvbkhhbmRsZXI6XSk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlv
bi5tbToKKyAgICAgICAgKC1bTmF2aWdhdGlvbldoaWxlR2V0VXNlck1lZGlhUHJvbXB0RGlzcGxh
eWVkVUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZv
ckZyYW1lOmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0Lm1tOgorICAgICAgICAoLVtHZXRV
c2VyTWVkaWFSZXByb21wdFVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1
dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW06
CisgICAgICAgICgtW01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUgX3dlYlZpZXc6
cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9u
SGFuZGxlcjpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Vz
ZXJNZWRpYURpc2FibGVkLm1tOgorICAgICAgICAoLVtVc2VyTWVkaWFVSURlbGVnYXRlIF93ZWJW
aWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNp
c2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1VzZXJNZWRpYVVJRGVsZWdhdGUgX3dlYlZpZXc6
aXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWU6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhU2ltdWxhdGVG
YWlsZWRTYW5kYm94Lm1tOgorICAgICAgICAoLVtTaW11bGF0ZUZhaWxlZFNhbmRib3hVSURlbGVn
YXRlIF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2
aWNlczpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1NpbXVsYXRlRmFpbGVkU2FuZGJv
eFVJRGVsZWdhdGUgX3dlYlZpZXc6aXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWU6ZGVj
aXNpb25IYW5kbGVyOl0pOgorCiAyMDE4LTEyLTE5ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8
YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBVbmlmeSBUZXN0Q29udHJv
bGxlcjo6cGxhdGZvcm1SdW5VbnRpbCgpIGFuZCBob25vciBjb25kaXRpb24gZmxhZwpkaWZmIC0t
Z2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0g
Yi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQppbmRl
eCAzZTczOWQ3YzkxNTUzOGUwMDMyOWNmZjBjMDQ3YWFhNzBmZDRhMWJmLi45YjQ4MTJjMTc0Y2Mz
MTRjZDE4ZjQxZmUxM2M5YjUwYjczMTg5OWY1IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nl
ci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysgYi9Ub29scy9NaW5pQnJvd3Nl
ci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAtNzkxLDE0ICs3OTEsMTQgQEAg
LSAodm9pZClmaW5kQmFyVmlld0RpZENoYW5nZUhlaWdodAogewogfQogCi0tICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9y
RGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5G
cmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShC
T09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0Zy
YW1lSW5mbyAqKSBtYWluRnJhbWUgZGV2aWNlczogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMg
ZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxl
cgogewogICAgIGRlY2lzaW9uSGFuZGxlcih0cnVlKTsKIH0KIAotLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJM
ICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVy
OihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
U3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBpc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JG
cmFtZTooV0tGcmFtZUluZm8gKikgbWFpbkZyYW1lIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXiko
Qk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKIHsKLSAgICBkZWNpc2lvbkhhbmRsZXIo
QCIiLCBmYWxzZSk7CisgICAgZGVjaXNpb25IYW5kbGVyKGZhbHNlKTsKIH0KIAogQGVuZApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2
aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRp
YU5hdmlnYXRpb24ubW0KaW5kZXggNDIxZWVhNDI5MmNiYWIxNGU5NDZmNzk4YTM1ZGViNzNmODJi
MzUwOC4uNmFmNmNmYTk4MzBmYTRjNWRhNzc3YmZiODMwYWMxMTgyNDEyYmUzNCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlv
bi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFO
YXZpZ2F0aW9uLm1tCkBAIC00MiwxMiArNDIsMTIgQEAgc3RhdGljIGJvb2wgb2tUb1Byb2NlZWQg
PSBmYWxzZTsKIHN0YXRpYyBib29sIHNob3VsZFJlbGVhc2VJbkVudW1lcmF0ZSA9IGZhbHNlOwog
CiBAaW50ZXJmYWNlIE5hdmlnYXRpb25XaGlsZUdldFVzZXJNZWRpYVByb21wdERpc3BsYXllZFVJ
RGVsZWdhdGUgOiBOU09iamVjdDxXS1VJRGVsZWdhdGU+Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczoo
X1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDoo
TlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhv
cml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTooV0tGcmFtZUlu
Zm8qKSBtYWluRnJhbWUgZGV2aWNlczogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDoo
TlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50
aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAo
XikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOwogQGVu
ZAogCiBAaW1wbGVtZW50YXRpb24gTmF2aWdhdGlvbldoaWxlR2V0VXNlck1lZGlhUHJvbXB0RGlz
cGxheWVkVUlEZWxlZ2F0ZQotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBy
ZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2Vz
KWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1l
VVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhh
bmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlh
Q2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTooV0tGcmFtZUluZm8qKSBtYWluRnJhbWUgZGV2
aWNlczogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkIChe
KShCT09MKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiYWJvdXQ6Ymxh
bmsiXV1dOwogICAgIFt3ZWJWaWV3IHJlbGVhc2VdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQppbmRleCBjNDMy
ZmNhZTVlOGZjNTk3OTEyMzNlNTBiZGJiNzUzMmNiYWM0ZjdlLi5kOWRiNjU3ZDUwYjA0M2JkMGJm
MmRiZjEyODE0YmVmY2M5Y2FhZTdmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQpAQCAtNDEsMTIgKzQxLDEy
IEBACiBzdGF0aWMgYm9vbCB3YXNQcm9tcHRlZCA9IGZhbHNlOwogCiBAaW50ZXJmYWNlIEdldFVz
ZXJNZWRpYVJlcHJvbXB0VUlEZWxlZ2F0ZSA6IE5TT2JqZWN0PFdLVUlEZWxlZ2F0ZT4KLS0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6
YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1
cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZv
aWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOworLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZv
ckZyYW1lOihXS0ZyYW1lSW5mbyopIG1haW5GcmFtZSBkZXZpY2VzOiAoX1dLQ2FwdHVyZURldmlj
ZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxl
cjsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZy
YW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSlkZWNp
c2lvbkhhbmRsZXI7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBHZXRVc2VyTWVkaWFSZXByb21w
dFVJRGVsZWdhdGUKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVz
dFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZp
Y2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBk
ZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVy
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1
cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvKikgbWFpbkZyYW1lIGRldmljZXM6
IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9P
TCkpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgd2FzUHJvbXB0ZWQgPSB0cnVlOwogICAgIGRlY2lz
aW9uSGFuZGxlcihZRVMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCmluZGV4IDFlY2NkMGE2ZWUz
MzE2NDI2MzJkNGQ1YzZkZjBiYmNkMDJhZTJmNDMuLmNhYTc5ZGQ0YTI1ZTVhMTVkZWJiZDU1NDYx
ZmFjYTRmNjBiNjYxNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KQEAgLTQwLDEzICs0MCwx
MyBAQAogc3RhdGljIGJvb2wgaGFzUmVjaWV2ZWRDb3JyZWN0Q2FwdHVyZVN0YXRlID0gZmFsc2U7
CiAKIEBpbnRlcmZhY2UgTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0ZSA6IE5TT2Jq
ZWN0PFdLVUlEZWxlZ2F0ZT4KLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNl
cylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFt
ZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25I
YW5kbGVyOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVk
aWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyopIG1haW5GcmFtZSBk
ZXZpY2VzOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQg
KF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcjsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWlu
RnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdl
cilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqc2Fs
dCwgQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNh
cHR1cmVTdGF0ZSlzdGF0ZTsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIE1lZGlhU3RyZWFtVHJh
Y2tEZXRhY2hlZFVJRGVsZWdhdGUKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2
aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5G
cmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNp
b25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RN
ZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvKikgbWFpbkZyYW1l
IGRldmljZXM6IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgZGVjaXNpb25IYW5kbGVyKFlFUyk7
CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Vz
ZXJNZWRpYURpc2FibGVkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Vc2VyTWVkaWFEaXNhYmxlZC5tbQppbmRleCA4ODMzM2MzZmJiNjgwZTE2NWU3ZjI2MWE2MjZl
NWIxZDEzMWIzYmFiLi4xMDg1YzVlYzM3OGZlNjk3ODMwMWJmMjJiOWUyZjgwMzUyM2M1NmU0IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRp
YURpc2FibGVkLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
VXNlck1lZGlhRGlzYWJsZWQubW0KQEAgLTM5LDcgKzM5LDYgQEAKIAogI2lmIFdLX0FQSV9FTkFC
TEVECiAKLXN0YXRpYyBib29sIHJlZnVzZVJlcXVlc3QgPSBmYWxzZTsKIHN0YXRpYyBib29sIHdh
c1Byb21wdGVkID0gZmFsc2U7CiAKIHN0YXRpYyBib29sIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9
IGZhbHNlOwpAQCAtNjIsMTUgKzYxLDEwIEBAIHN0YXRpYyBSZXRhaW5QdHI8V0tTY3JpcHRNZXNz
YWdlPiBsYXN0U2NyaXB0TWVzc2FnZTsKIAogQGltcGxlbWVudGF0aW9uIFVzZXJNZWRpYVVJRGVs
ZWdhdGUKIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNl
ck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KE5TVUludGVnZXIpZGV2aWNlcyB1cmw6KE5T
VVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5k
bGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFt
ZTooV0tGcmFtZUluZm8qKSBtYWluRnJhbWUgZGV2aWNlczogKF9XS0NhcHR1cmVEZXZpY2VzKWRl
dmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKIHsK
ICAgICB3YXNQcm9tcHRlZCA9IHRydWU7CiAKLSAgICBpZiAocmVmdXNlUmVxdWVzdCkgewotICAg
ICAgICBkZWNpc2lvbkhhbmRsZXIoTk8pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAg
Qk9PTCBuZWVkc01pY3JvcGhvbmVBdXRob3JpemVkID0gZGV2aWNlcyAmIF9XS0NhcHR1cmVEZXZp
Y2VNaWNyb3Bob25lOwogICAgIEJPT0wgbmVlZHNDYW1lcmFBdXRob3JpemVkID0gZGV2aWNlcyAm
IF9XS0NhcHR1cmVEZXZpY2VDYW1lcmE7CiAgICAgaWYgKCFuZWVkc01pY3JvcGhvbmVBdXRob3Jp
emVkICYmICFuZWVkc0NhbWVyYUF1dGhvcml6ZWQpIHsKQEAgLTgxLDE0ICs3NSw5IEBAIHN0YXRp
YyBSZXRhaW5QdHI8V0tTY3JpcHRNZXNzYWdlPiBsYXN0U2NyaXB0TWVzc2FnZTsKICAgICBkZWNp
c2lvbkhhbmRsZXIoWUVTKTsKIH0KIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFt
ZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZy
YW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICosIEJPT0wp
KWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBp
c01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTooV0tGcmFtZUluZm8gKikgbWFpbkZyYW1l
IGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRs
ZXIKIHsKLSAgICBpZiAocmVmdXNlUmVxdWVzdCkgewotICAgICAgICBkZWNpc2lvbkhhbmRsZXIo
bmlsLCBOTyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkZWNpc2lvbkhhbmRsZXIo
QCIweDk4NzY1NDMyMSIsIE5PKTsKKyAgICBkZWNpc2lvbkhhbmRsZXIoTk8pOwogfQogQGVuZAog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJN
ZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvVXNlck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tCmluZGV4IGM3M2M5
ODk5NGU0MTczMzQ5MDI1NTJhODc4ZGVmNWQxNzIyNWJkZjQuLjljZDk4NWY3OWYxNGYzNTY5NmU1
OTZkYWExM2E5M2NhMzA0YTg0MjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhU2ltdWxhdGVGYWls
ZWRTYW5kYm94Lm1tCkBAIC0zOSw3ICszOSw2IEBACiAKICNpZiBXS19BUElfRU5BQkxFRAogCi1z
dGF0aWMgYm9vbCByZWZ1c2VSZXF1ZXN0ID0gZmFsc2U7CiBzdGF0aWMgYm9vbCB3YXNQcm9tcHRl
ZCA9IGZhbHNlOwogCiBzdGF0aWMgYm9vbCByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsK
QEAgLTYyLDE1ICs2MSwxMCBAQCBzdGF0aWMgUmV0YWluUHRyPFdLU2NyaXB0TWVzc2FnZT4gbGFz
dFNjcmlwdE1lc3NhZ2U7CiAKIEBpbXBsZW1lbnRhdGlvbiBTaW11bGF0ZUZhaWxlZFNhbmRib3hV
SURlbGVnYXRlCiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVz
dFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihOU1VJbnRlZ2VyKWRldmljZXMgdXJs
OihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9y
RnJhbWU6KFdLRnJhbWVJbmZvKikgbWFpbkZyYW1lIGRldmljZXM6IChfV0tDYXB0dXJlRGV2aWNl
cylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVy
CiB7CiAgICAgd2FzUHJvbXB0ZWQgPSB0cnVlOwogCi0gICAgaWYgKHJlZnVzZVJlcXVlc3QpIHsK
LSAgICAgICAgZGVjaXNpb25IYW5kbGVyKE5PKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQog
ICAgIEJPT0wgbmVlZHNNaWNyb3Bob25lQXV0aG9yaXplZCA9IGRldmljZXMgJiBfV0tDYXB0dXJl
RGV2aWNlTWljcm9waG9uZTsKICAgICBCT09MIG5lZWRzQ2FtZXJhQXV0aG9yaXplZCA9IGRldmlj
ZXMgJiBfV0tDYXB0dXJlRGV2aWNlQ2FtZXJhOwogICAgIGlmICghbmVlZHNNaWNyb3Bob25lQXV0
aG9yaXplZCAmJiAhbmVlZHNDYW1lcmFBdXRob3JpemVkKSB7CkBAIC04MSwxNCArNzUsOSBAQCBz
dGF0aWMgUmV0YWluUHRyPFdLU2NyaXB0TWVzc2FnZT4gbGFzdFNjcmlwdE1lc3NhZ2U7CiAgICAg
ZGVjaXNpb25IYW5kbGVyKFlFUyk7CiB9CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWlu
RnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdl
cilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqLCBC
T09MKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgaXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWU6KFdLRnJhbWVJbmZvICopIG1haW5G
cmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25I
YW5kbGVyCiB7Ci0gICAgaWYgKHJlZnVzZVJlcXVlc3QpIHsKLSAgICAgICAgZGVjaXNpb25IYW5k
bGVyKG5pbCwgTk8pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZGVjaXNpb25IYW5k
bGVyKEAiMHg5ODc2NTQzMjEiLCBOTyk7CisgICAgZGVjaXNpb25IYW5kbGVyKE5PKTsKIH0KIEBl
bmQKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357873</attachid>
            <date>2018-12-20 14:42:34 -0800</date>
            <delta_ts>2018-12-20 15:54:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192793-20181220144233.patch</filename>
            <type>text/plain</type>
            <size>54210</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5Mzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUxMTZmNDdmOTk2MWY0YWE2
MDZkNTkxMGNhMzRlNDBkZjYwZGY2YmUuLmNiNWIxNTE5MGUwOTAxODc3YzcyNGM5OWVhYzc2YTc2
MTk3NzVhNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTgtMTItMjAgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgZm9yIGNv
bnRyb2xsaW5nIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyNzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU29tZSB3ZWFrbmVzc2VzIG9mIHRoZSBjdXJyZW50IGdldFVzZXJNZWRp
YSBTUEkgd2VyZSBmb3VuZC4KKyAgICAgICAgSW4gcGFydGljdWxhcjoKKyAgICAgICAgLSBUaGUg
aGFzaCBzYWx0IHNob3VsZCBiZSBoYW5kbGVkIGJ5IFdlYktpdC4KKyAgICAgICAgLSBObyBuZWVk
IHRvIGV4cG9zZSB0aGUgZnJhbWUgVVJMLCBvbmx5IHRoZSB0b3AgbGV2ZWwgb3JpZ2luIGlzIG5l
ZWRlZC4KKyAgICAgICAgLSBUaGUgbmFtZXMgb2YgdGhlIGNhbGxiYWNrIGNhbiBiZSBpbXByb3Zl
ZC4KKyAgICAgICAgQWRkcmVzc2VkIHRoZXNlIGJ5IGNyZWF0aW5nIGEgbmV3IFNQSSB3aGljaCB3
aWxsIHJlcGxhY2UgdGhlIGN1cnJlbnQgb25lLgorICAgICAgICBUaGUgY3VycmVudCBTUEkgd2ls
bCBiZSByZW1vdmVkIGxhdGVyIG9uLgorCisgICAgICAgIERpZCBzb21lIHJlZmFjdG9yaW5nIGJ5
IG1ha2luZyB0aGUgY2FsbGJhY2tzIG5vdCByZXR1cm4gZmFsc2UuCisgICAgICAgIEluc3RlYWQs
IGltcGxlbWVudCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpbnNpZGUgdGhlIHJlcXVlc3Qgb2JqZWN0
cyBhcyBkZW55IG1ldGhvZHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBl
cm1pc3Npb25Gb3JPcmlnaW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
OgorICAgICAgICAoV0tQYWdlU2V0UGFnZVVJQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9tZWRpYUNhcHR1cmVT
dGF0ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldE1lZGlhQ2FwdHVyZU11dGVkOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHA6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLm1tOiBBZGRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0
ZSk6CisgICAgICAgIChXZWJLaXQ6OnJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVn
YXRlOjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAg
ICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hh
bmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHku
aDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OmRlbnkp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJN
ZWRpYVBlcm1pc3Npb25JbmZvKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oOgorCiAyMDE4LTEyLTE5ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5f
Z2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb3cgY2xpZW50cyB0byBzZXQgdGhlIG5h
dmlnYXRvciBwbGF0Zm9ybQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGYxYTA1N2E0NWRiMGZh
MzVjZTEwZGNmNDE5NjkzZWZlODE4YTZkYTMuLmViNjlhNTNkMjI3MjA0MjlmYTg3OWZmYmU1M2Rm
ODc4NTU4YzVjNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTMxOSw2ICszMTksNyBAQCBV
SVByb2Nlc3MvQ29jb2EvRmluZENsaWVudC5tbQogVUlQcm9jZXNzL0NvY29hL0Z1bGxzY3JlZW5D
bGllbnQubW0KIFVJUHJvY2Vzcy9Db2NvYS9JY29uTG9hZGluZ0RlbGVnYXRlLm1tCiBVSVByb2Nl
c3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tCitVSVByb2Nlc3Mv
Q29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLm1tCiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlv
blN0YXRlLm1tCiBVSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbQogVUlQcm9j
ZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCA0M2ZmNzYzYjkwNDhjYzQwYTk2N2Q5NDU2
YmJlMDNhY2JiOTUwMjdjLi4wM2QxMjMwMGQxNzE2OWY0N2M4MWRjMjYwMWE2YTQwNzE3ZDcwYWFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMTI5LDgg
KzEyOSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBydW5PcGVuUGFuZWwoV2ViS2l0
OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmLCBPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViS2l0OjpXZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwg
RnVuY3Rpb248dm9pZChib29sKT4mKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJL
aXQ6OldlYkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIFNlY3VyaXR5T3JpZ2luJiwgV2Vi
S2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JikgeyByZXR1cm4gZmFsc2U7IH0K
LSAgICB2aXJ0dWFsIGJvb2wgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYktp
dDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4m
LCBTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkm
KSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2Vi
RnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgU2VjdXJpdHlPcmlnaW4mLCBXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2Vi
S2l0OjpXZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBTZWN1cml0eU9yaWdpbiYsIFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpX
ZWJQYWdlUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9CiAgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJLaXQ6OldlYlBhZ2VQcm94eSYs
IFdlYktpdDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiByZXF1ZXN0aW5nRG9t
YWluLCBjb25zdCBXVEY6OlN0cmluZyYgY3VycmVudERvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcih0cnVl
KTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCAyY2Uz
OGJiZjc4OTczOGRjNWE0MWU4MzUwODgwZmFiYTk3OGVjNjQyLi5iZDFlZmNhYzZmODI1NGFjNWY4
ZjI0Y2MwYjAzOWIwYzA4ODhiNzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAKQEAgLTE4NTUsMjIgKzE4NTUsMjQgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGll
bnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQK
ICAgICAgICAgICAgIG1fY2xpZW50LmRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QodG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b0FQSSgmb3JpZ2luKSwgdG9B
UEkoR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKHN0ZDo6ZXhjaGFuZ2UoY29t
cGxldGlvbkhhbmRsZXIsIG51bGxwdHIpKS5wdHIoKSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5m
byk7CiAgICAgICAgIH0KIAotICAgICAgICBib29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUs
IEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3Vy
aXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5JiBwZXJtaXNzaW9uUmVxdWVzdCkgZmluYWwKKyAgICAgICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2UsIFdl
YkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcGVybWlzc2lvblJlcXVlc3QpIGZpbmFsCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdCkgeworICAgICAgICAgICAgICAgIHBlcm1pc3Npb25SZXF1ZXN0LmRlbnkoKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG1fY2xp
ZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KHRvQVBJKCZwYWdl
KSwgdG9BUEkoJmZyYW1lKSwgdG9BUEkoJnVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgdG9BUEko
JnRvcExldmVsRG9jdW1lbnRPcmlnaW4pLCB0b0FQSSgmcGVybWlzc2lvblJlcXVlc3QpLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KIAotICAgICAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQ
YWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2lu
JiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIHJlcXVlc3QpIGZp
bmFsCisgICAgICAgIHZvaWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBh
Z2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4m
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcmVxdWVzdCkgZmlu
YWwKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5jaGVja1VzZXJNZWRpYVBl
cm1pc3Npb25Gb3JPcmlnaW4pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgaWYgKCFtX2NsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pIHsK
KyAgICAgICAgICAgICAgICByZXF1ZXN0LmRlbnkoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG1fY2xpZW50LmNoZWNrVXNlck1lZGlhUGVy
bWlzc2lvbkZvck9yaWdpbih0b0FQSSgmcGFnZSksIHRvQVBJKCZmcmFtZSksIHRvQVBJKCZ1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiksIHRvQVBJKCZ0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgdG9B
UEkoJnJlcXVlc3QpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwotICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6
OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpIGZpbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCA0NmM5NTE3YWYwZWZhZWI0NmFjOTJh
NDhmODJkZTVhOGE5ZjU1MDAyLi5iOWE5MjkxMTQxYmYwZmI2ZDZmY2ZlMTFiOTc3OTI5MWJkNDIx
MGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURl
bGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTEwNSw2ICsxMDUsOCBAQCBzdHJ1Y3QgVUlFZGdlSW5z
ZXRzOwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGltYWdlT3JNZWRp
YURvY3VtZW50U2l6ZUNoYW5nZWQ6KENHU2l6ZSlzaXplIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEyKSwgaW9zKDEwLjApKTsKIC0gKE5TRGljdGlvbmFyeSAqKV9kYXRhRGV0ZWN0aW9uQ29u
dGV4dEZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTIpLCBpb3MoMTAuMCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0ZyYW1lSW5m
byAqKW1haW5GcmFtZSBkZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZv
ckZyYW1lOihXS0ZyYW1lSW5mbyAqKW1haW5GcmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4p
KEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9X
S0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5T
VVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3Jp
emVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3Mo
MTEuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKilt
YWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBk
ZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQp
KWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEw
LjMpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJl
U3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDlmNjVmMmVlN2EzMjc5MWNlMjVhNjA1Y2Zi
MjgxN2YwYzNlZDQ0MWYuLjA2MTQ5NDhiNDJlNWVlNzczNjA0NGFmYzhiYjdiNWZjMTJiZGM4NmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpA
QCAtNDAsNiArNDAsNyBAQAogI2ltcG9ydCAiSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oIgogI2ltcG9y
dCAiTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1w
b3J0ICJNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCIKICNpbXBvcnQgIk5hdmlnYXRpb25TdGF0ZS5o
IgogI2ltcG9ydCAiT2JqQ09iamVjdEdyYXBoLmgiCiAjaW1wb3J0ICJQYWdlQ2xpZW50LmgiCkBA
IC01NDc2LDYgKzU0NzcsMTYgQEAgLSAoQk9PTClfaXNJbkZ1bGxzY3JlZW4KICNlbmRpZgogfQog
CistIChfV0tNZWRpYUNhcHR1cmVTdGF0ZSlfbWVkaWFDYXB0dXJlU3RhdGUKK3sKKyAgICByZXR1
cm4gV2ViS2l0Ojp0b1dLTWVkaWFDYXB0dXJlU3RhdGUoX3BhZ2UtPm1lZGlhU3RhdGVGbGFncygp
KTsKK30KKworLSAodm9pZClfc2V0TWVkaWFDYXB0dXJlTXV0ZWQ6KEJPT0wpbXV0ZWQKK3sKKyAg
ICBfcGFnZS0+c2V0TWVkaWFTdHJlYW1DYXB0dXJlTXV0ZWQobXV0ZWQpOworfQorCiAtICh2b2lk
KV9tdXRlTWVkaWFDYXB0dXJlCiB7CiAgICAgX3BhZ2UtPnNldE1lZGlhU3RyZWFtQ2FwdHVyZU11
dGVkKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmgKaW5kZXggOGFmODUyZTFjYjQ3NWM2MTQwZjgzY2E1ZGRlN2NkZDhh
NWQ5NDI0ZC4uZDAwNTNhOTg0NGQ5ZGRjNWQwNTE4Y2EyMTZmYTFiYjY3Y2I5YjY5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oCkBAIC0zOTEsNiArMzkxLDkgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9X
S1JlY3RFZGdlKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRGdWxsc2NyZWVu
RGVsZWdhdGU6KSBpZDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+IF9mdWxsc2NyZWVuRGVsZWdhdGUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9pc0luRnVsbHNjcmVlbiBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMi4zKSk7CiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dL
TWVkaWFDYXB0dXJlU3RhdGUgX21lZGlhQ2FwdHVyZVN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCistICh2b2lkKV9zZXRNZWRpYUNh
cHR1cmVNdXRlZDooQk9PTCltdXRlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX211dGVNZWRpYUNhcHR1cmUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfc2V0UGFnZU11dGVk
OihfV0tNZWRpYU11dGVkU3RhdGUpbXV0ZWRTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMyksIGlvcygxMS4wKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCAxYzc2ODg2OTA3ODFmMmEwOWMwYzhiN2I0
OGY3OGU4ZWVlNTU2OTBmLi5jNTJiMTcwYzUzOWJlNzU5YWJiZGQxNGExMzQ1NmU3ZDEyN2Q2OTIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlD
bGllbnQuY3BwCkBAIC0xODQsMTggKzE4NCwxNiBAQCBwcml2YXRlOgogICAgICAgICB3ZWJraXRX
ZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0KG1fd2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05f
UkVRVUVTVChnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CiAgICAgfQogCi0g
ICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdl
UHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4s
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5h
bAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2Vi
UGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiBwZXJtaXNzaW9uUmVxdWVzdCkg
ZmluYWwKICAgICB7CiAgICAgICAgIEdSZWZQdHI8V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3Q+IHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRlKHBlcm1pc3Npb25SZXF1ZXN0LCB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikpOwogICAgICAgICB3ZWJraXRX
ZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0KG1fd2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05f
UkVRVUVTVCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5nZXQoKSkpOwotICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9y
aWdpbihXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIHBlcm1pc3Np
b25SZXF1ZXN0KSBvdmVycmlkZQorICAgIHZvaWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
T3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlP
cmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcGVybWlz
c2lvblJlcXVlc3QpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBhdXRvIGRldmljZUluZm9QZXJt
aXNzaW9uUmVxdWVzdCA9IGFkb3B0R1JlZih3ZWJraXREZXZpY2VJbmZvUGVybWlzc2lvblJlcXVl
c3RDcmVhdGUocGVybWlzc2lvblJlcXVlc3QsIHBhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpLmRldmlj
ZUlkSGFzaFNhbHRTdG9yYWdlKCkpKTsKICAgICAgICAgd2Via2l0V2ViVmlld01ha2VQZXJtaXNz
aW9uUmVxdWVzdChtX3dlYlZpZXcsIFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1QoZGV2aWNlSW5m
b1Blcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IAogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qo
V2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwMDQwM2Zm
ZDgzOWIxZDY3MzkwYjIwNTI1MDI0MzJhZTFhMTZiMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMuaApAQCAtMCww
ICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBXS19BUElfRU5BQkxF
RAorCisjaW1wb3J0ICJXS1dlYlZpZXdQcml2YXRlLmgiCisjaW1wb3J0IDxXZWJDb3JlL01lZGlh
UHJvZHVjZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK19XS01lZGlhQ2FwdHVyZVN0YXRl
IHRvV0tNZWRpYUNhcHR1cmVTdGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MpOworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWFlZTM4ZWI2NGUyZTI0ODQxNjA4NzY4OGYzZmM2MDBkNmExMTI4YwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0
aWxpdGllcy5tbQpAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIk1lZGlhQ2FwdHVyZVV0aWxpdGllcy5oIgorCisjaWYgV0tfQVBJX0VO
QUJMRUQKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK19XS01lZGlhQ2FwdHVyZVN0YXRlIHRvV0tN
ZWRpYUNhcHR1cmVTdGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mg
c3RhdGUpCit7CisgICAgX1dLTWVkaWFDYXB0dXJlU3RhdGUgbWVkaWFDYXB0dXJlU3RhdGUgPSBf
V0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmU7CisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgICAgICBtZWRpYUNhcHR1
cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZU1pY3JvcGhvbmU7CisgICAgaWYg
KHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2
aWNlKQorICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFj
dGl2ZUNhbWVyYTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNN
dXRlZEF1ZGlvQ2FwdHVyZURldmljZSkKKyAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dL
TWVkaWFDYXB0dXJlU3RhdGVNdXRlZE1pY3JvcGhvbmU7CisgICAgaWYgKHN0YXRlICYgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgICAgIG1l
ZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRDYW1lcmE7CisKKyAg
ICByZXR1cm4gbWVkaWFDYXB0dXJlU3RhdGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVs
ZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAppbmRl
eCAzOGRkN2VjYmNmYjVmMmE2MGZjODZjOThiZThiMGYzMWE4NTRmZjg2Li44ZmQxNmE5ODEyYzA0
YWRmMDg1ZTU0NGFlZTM4MDRjODIyZDVmMTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0xMjMsOCArMTIzLDggQEAgcHJpdmF0ZToKICNlbmRpZgog
ICAgICAgICBib29sIG5lZWRzRm9udEF0dHJpYnV0ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1
dGVzOyB9CiAgICAgICAgIHZvaWQgZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29y
ZTo6Rm9udEF0dHJpYnV0ZXMmKSBmaW5hbDsKLSAgICAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5Jiwg
QVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5JikgZmluYWw7Ci0gICAgICAgIGJvb2wgY2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNl
Y3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIFVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5JikgZmluYWw7CisgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2Vj
dXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eSYpIGZpbmFsOworICAgICAgICB2b2lkIGNoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkZvck9yaWdpbihXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9y
aWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94
eSYpIGZpbmFsOwogICAgICAgICB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgZmluYWw7CiAgICAgICAgIHZvaWQg
cHJpbnRGcmFtZShXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JikgZmluYWw7CiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE5OCw4ICsxOTgsOCBAQCBwcml2YXRlOgogICAgICAgICBi
b29sIHdlYlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUgOiAxOwogICAgICAgICBib29s
IHdlYlZpZXdEaWRFbnRlckZ1bGxzY3JlZW4gOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRF
eGl0RnVsbHNjcmVlbiA6IDE7Ci0gICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3RVc2VyTWVkaWFB
dXRob3JpemF0aW9uRm9yRGV2aWNlc1VSTE1haW5GcmFtZVVSTERlY2lzaW9uSGFuZGxlciA6IDE7
Ci0gICAgICAgIGJvb2wgd2ViVmlld0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTE1haW5G
cmFtZVVSTEZyYW1lSWRlbnRpZmllckRlY2lzaW9uSGFuZGxlciA6IDE7CisgICAgICAgIGJvb2wg
d2ViVmlld1JlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWVEZWNpc2lvbkhh
bmRsZXIgOiAxOworICAgICAgICBib29sIHdlYlZpZXdJc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRG
b3JGcmFtZURlY2lzaW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld01lZGlhQ2Fw
dHVyZVN0YXRlRGlkQ2hhbmdlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkQ2hhbmdlRm9u
dEF0dHJpYnV0ZXMgOiAxOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBjZTg0YTg4ODQ3ODk3MzVkMWEx
MzJiMWViNmVhNmRlMjgwM2E3ODZkLi42YmRkYTkyN2MzNjdiOTg4NGYwMDYwZjFkMDUwZTViYmM2
YWFmM2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0K
QEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkFQSUZyYW1lSW5mby5oIgogI2ltcG9ydCAiQVBJ
SGl0VGVzdFJlc3VsdC5oIgogI2ltcG9ydCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5o
IgorI2ltcG9ydCAiTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJOYXRpdmVXZWJX
aGVlbEV2ZW50LmgiCiAjaW1wb3J0ICJOYXZpZ2F0aW9uQWN0aW9uRGF0YS5oIgogI2ltcG9ydCAi
VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaCIKQEAgLTE1MCw4ICsxNTEsOSBAQCB2b2lk
IFVJRGVsZWdhdGU6OnNldERlbGVnYXRlKGlkIDxXS1VJRGVsZWdhdGU+IGRlbGVnYXRlKQogICAg
IG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludCA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZE5vdEhh
bmRsZVRhcEFzQ2xpY2tBdFBvaW50OildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLnByZXNlbnRp
bmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXcgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3RvcihfcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldzopXTsKICNlbmRp
ZgotICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXph
dGlvbkZvckRldmljZXNVUkxNYWluRnJhbWVVUkxEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0
aG9yaXphdGlvbkZvckRldmljZXM6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6KV07
Ci0gICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZv
clVSTE1haW5GcmFtZVVSTEZyYW1lSWRlbnRpZmllckRlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmNoZWNrVXNlck1lZGlhUGVy
bWlzc2lvbkZvclVSTDptYWluRnJhbWVVUkw6ZnJhbWVJZGVudGlmaWVyOmRlY2lzaW9uSGFuZGxl
cjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdE1lZGlhQ2FwdHVyZUF1
dGhvcml6YXRpb25Gb3JGcmFtZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9u
Rm9yRGV2aWNlczp1cmw6bWFpbkZyYW1lVVJMOmRlY2lzaW9uSGFuZGxlcjopXSB8fCBbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0
dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOildOworICAg
IG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdJc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFt
ZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDptYWluRnJhbWVVUkw6ZnJh
bWVJZGVudGlmaWVyOmRlY2lzaW9uSGFuZGxlcjopXSB8fCBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzppc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFt
ZTpkZWNpc2lvbkhhbmRsZXI6KV07CisKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3TWVk
aWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcihfd2ViVmlldzptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTopXTsKICAgICBtX2Rl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXMgPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWRDaGFuZ2VGb250QXR0cmli
dXRlczopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5kYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldl
YlZpZXcgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfZGF0YURldGVj
dGlvbkNvbnRleHRGb3JXZWJWaWV3OildOwpAQCAtODU1LDkgKzg1NywxNCBAQCBib29sIFVJRGVs
ZWdhdGU6OlVJQ2xpZW50OjpydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94
eSogd2ViRnJhbWVQcgogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotc3RhdGlj
IHZvaWQgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzKGNvbnN0IFdlYkZy
YW1lUHJveHkmIGZyYW1lLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0
LCBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gZGVsZWdhdGUsIFdLV2ViVmlldyYgd2ViVmlldykK
K3N0YXRpYyB2b2lkIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWUoY29uc3Qg
V2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2lu
LCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0LCBpZCA8V0tVSURlbGVn
YXRlUHJpdmF0ZT4gZGVsZWdhdGUsIFdLV2ViVmlldyYgd2ViVmlldykKIHsKLSAgICBhdXRvIGRl
Y2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYo
cmVxdWVzdCldKEJPT0wgYXV0aG9yaXplZCkgeworICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRp
b25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZSwgQHNlbGVjdG9yKF93ZWJWaWV3
OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lv
bkhhbmRsZXI6KSk7CisgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3By
b3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpLCBjaGVja2VyID0gV1RGTW92ZShjaGVj
a2VyKV0oQk9PTCBhdXRob3JpemVkKSB7CisgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9u
SGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2hl
Y2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisKICAgICAgICAgaWYgKCFhdXRob3Jp
emVkKSB7CiAgICAgICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0LT5kZW55KFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lv
bkRlbmllZCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04NjcsMTAgKzg3NCw2IEBAIHN0YXRp
YyB2b2lkIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlcyhjb25zdCBXZWJG
cmFtZVByb3h5JiBmcmFtZSwKICAgICAgICAgcHJvdGVjdGVkUmVxdWVzdC0+YWxsb3coYXVkaW9E
ZXZpY2VVSUQsIHZpZGVvRGV2aWNlVUlEKTsKICAgICB9KTsKIAotICAgIGNvbnN0IFdlYkZyYW1l
UHJveHkqIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0gICAgVVJMIHJl
cXVlc3RGcmFtZVVSTChVUkwoKSwgZnJhbWUudXJsKCkpOwotICAgIFVSTCBtYWluRnJhbWVVUkwo
VVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOwotCiAgICAgX1dLQ2FwdHVyZURldmljZXMgZGV2aWNl
cyA9IDA7CiAgICAgaWYgKHJlcXVlc3QucmVxdWlyZXNBdWRpb0NhcHR1cmUoKSkKICAgICAgICAg
ZGV2aWNlcyB8PSBfV0tDYXB0dXJlRGV2aWNlTWljcm9waG9uZTsKQEAgLTg4MSw4ICs4ODQsMTkg
QEAgc3RhdGljIHZvaWQgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzKGNv
bnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLAogICAgICAgICBBU1NFUlQoIShkZXZpY2VzICYgX1dL
Q2FwdHVyZURldmljZUNhbWVyYSkpOwogICAgIH0KIAotICAgIGF1dG8gcHJvdGVjdGVkV2ViVmll
dyA9IFJldGFpblB0cjxXS1dlYlZpZXc+KCZ3ZWJWaWV3KTsKLSAgICBbZGVsZWdhdGUgX3dlYlZp
ZXc6cHJvdGVjdGVkV2ViVmlldy5nZXQoKSByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZv
ckRldmljZXM6ZGV2aWNlcyB1cmw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJh
bWVVUkwgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CisgICAgY29uc3Qg
V2ViRnJhbWVQcm94eSogbWFpbkZyYW1lID0gZnJhbWUucGFnZSgpLT5tYWluRnJhbWUoKTsKKwor
ICAgIC8vIEZJWE1FOiBQcm92aWRlIGEgc3BlY2lmaWMgZGVsZWdhdGUgZm9yIGRpc3BsYXkgY2Fw
dHVyZS4KKyAgICBpZiAoIXJlcXVlc3QucmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSgpICYmIFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNh
cHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lvbkhhbmRsZXI6KV0pIHsK
KworICAgICAgICBbZGVsZWdhdGUgX3dlYlZpZXc6JndlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVy
ZUF1dGhvcml6YXRpb25Gb3JGcmFtZTp3cmFwcGVyKEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUoKm1h
aW5GcmFtZSwgdG9wTGV2ZWxPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSkpIGRldmljZXM6ZGV2aWNl
cyBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIFVSTCByZXF1ZXN0RnJhbWVVUkwoVVJMKCksIGZyYW1lLnVybCgpKTsK
KyAgICBVUkwgbWFpbkZyYW1lVVJMKFVSTCgpLCBtYWluRnJhbWUtPnVybCgpKTsKKworICAgIFtk
ZWxlZ2F0ZSBfd2ViVmlldzomd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZv
ckRldmljZXM6ZGV2aWNlcyB1cmw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJh
bWVVUkwgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CiB9CiAjZW5kaWYK
IApAQCAtODk1LDEzICs5MDksMTMgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkQ2hh
bmdlRm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMKICAgICBbcHJp
dmF0ZVVJRGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBkaWRDaGFuZ2VG
b250QXR0cmlidXRlczpmb250QXR0cmlidXRlcy5jcmVhdGVEaWN0aW9uYXJ5KCkuZ2V0KCldOwog
fQogCi1ib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1l
LCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmln
aW4mIHRvcExldmVsT3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1
ZXN0KQordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFt
ZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVx
dWVzdCkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIGF1dG8gZGVsZWdhdGUgPSBt
X3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKLSAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3Vp
RGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RVc2VyTWVkaWFBdXRob3Jp
emF0aW9uRm9yRGV2aWNlc1VSTE1haW5GcmFtZVVSTERlY2lzaW9uSGFuZGxlcikgeworICAgIGlm
ICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVx
dWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZURlY2lzaW9uSGFuZGxlcikgewog
ICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNl
ck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7Ci0gICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgYm9vbCByZXF1aXJlc0F1
ZGlvQ2FwdHVyZSA9IHJlcXVlc3QucmVxdWlyZXNBdWRpb0NhcHR1cmUoKTsKQEAgLTkwOSwzMyAr
OTIzLDMzIEBAIGJvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94CiAgICAgYm9vbCByZXF1aXJlc0Rpc3Bs
YXlDYXB0dXJlID0gcmVxdWVzdC5yZXF1aXJlc0Rpc3BsYXlDYXB0dXJlKCk7CiAgICAgaWYgKCFy
ZXF1aXJlc0F1ZGlvQ2FwdHVyZSAmJiAhcmVxdWlyZXNWaWRlb0NhcHR1cmUgJiYgIXJlcXVpcmVz
RGlzcGxheUNhcHR1cmUpIHsKICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50
cyk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm47CiAgICAgfQogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBib29sIHVzaW5nTW9ja0NhcHR1cmVEZXZpY2VzID0g
cGFnZS5wcmVmZXJlbmNlcygpLm1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoKTsKLSAgICBhdXRv
IHJlcXVlc3RDYW1lcmFBdXRob3JpemF0aW9uID0gbWFrZUJsb2NrUHRyKFt0aGlzLCAmZnJhbWUs
IHByb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpLCB3ZWJWaWV3ID0gUmV0YWluUHRy
PFdLV2ViVmlldz4obV91aURlbGVnYXRlLm1fd2ViVmlldyksIHVzaW5nTW9ja0NhcHR1cmVEZXZp
Y2VzXSgpIHsKKyAgICBhdXRvIHJlcXVlc3RDYW1lcmFBdXRob3JpemF0aW9uID0gbWFrZUJsb2Nr
UHRyKFt0aGlzLCAmZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpLCB3
ZWJWaWV3ID0gUmV0YWluUHRyPFdLV2ViVmlldz4obV91aURlbGVnYXRlLm1fd2ViVmlldyksIHRv
cExldmVsT3JpZ2luID0gbWFrZVJlZih0b3BMZXZlbE9yaWdpbiksIHVzaW5nTW9ja0NhcHR1cmVE
ZXZpY2VzXSgpIG11dGFibGUgewogCiAgICAgICAgIGlmICghcHJvdGVjdGVkUmVxdWVzdC0+cmVx
dWlyZXNWaWRlb0NhcHR1cmUoKSkgewotICAgICAgICAgICAgcmVxdWVzdFVzZXJNZWRpYUF1dGhv
cml6YXRpb25Gb3JEZXZpY2VzKGZyYW1lLCBwcm90ZWN0ZWRSZXF1ZXN0LCAoaWQgPFdLVUlEZWxl
Z2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqd2ViVmlldy5nZXQo
KSk7CisgICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGZy
YW1lLCB0b3BMZXZlbE9yaWdpbiwgcHJvdGVjdGVkUmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQ
cml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwgKndlYlZpZXcuZ2V0KCkpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIEFWQXV0aG9yaXphdGlvblN0
YXR1cyBjYW1lcmFBdXRob3JpemF0aW9uU3RhdHVzID0gdXNpbmdNb2NrQ2FwdHVyZURldmljZXMg
PyBBVkF1dGhvcml6YXRpb25TdGF0dXNBdXRob3JpemVkIDogW2dldEFWQ2FwdHVyZURldmljZUNs
YXNzKCkgYXV0aG9yaXphdGlvblN0YXR1c0Zvck1lZGlhVHlwZTpnZXRBVk1lZGlhVHlwZVZpZGVv
KCldOwogICAgICAgICBzd2l0Y2ggKGNhbWVyYUF1dGhvcml6YXRpb25TdGF0dXMpIHsKICAgICAg
ICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNBdXRob3JpemVkOgotICAgICAgICAgICAgcmVx
dWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzKGZyYW1lLCBwcm90ZWN0ZWRSZXF1
ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdl
dCgpLCAqd2ViVmlldy5nZXQoKSk7CisgICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9y
aXphdGlvbkZvckZyYW1lKGZyYW1lLCB0b3BMZXZlbE9yaWdpbiwgcHJvdGVjdGVkUmVxdWVzdCwg
KGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwg
KndlYlZpZXcuZ2V0KCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVZBdXRo
b3JpemF0aW9uU3RhdHVzRGVuaWVkOgogICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1
c1Jlc3RyaWN0ZWQ6CiAgICAgICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0LT5kZW55KFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVy
bWlzc2lvbkRlbmllZCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNhc2UgQVZBdXRo
b3JpemF0aW9uU3RhdHVzTm90RGV0ZXJtaW5lZDoKLSAgICAgICAgICAgIGF1dG8gZGVjaXNpb25I
YW5kbGVyID0gbWFrZUJsb2NrUHRyKFt0aGlzLCAmZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QgPSBt
YWtlUmVmKHByb3RlY3RlZFJlcXVlc3QuZ2V0KCkpLCB3ZWJWaWV3ID0gUmV0YWluUHRyPFdLV2Vi
Vmlldz4obV91aURlbGVnYXRlLm1fd2ViVmlldyldKEJPT0wgYXV0aG9yaXplZCkgeworICAgICAg
ICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3RoaXMsICZmcmFtZSwg
cHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocHJvdGVjdGVkUmVxdWVzdC5nZXQoKSksIHdlYlZp
ZXcgPSBSZXRhaW5QdHI8V0tXZWJWaWV3PihtX3VpRGVsZWdhdGUubV93ZWJWaWV3KSwgdG9wTGV2
ZWxPcmlnaW4gPSBXVEZNb3ZlKHRvcExldmVsT3JpZ2luKV0oQk9PTCBhdXRob3JpemVkKSB7CiAg
ICAgICAgICAgICAgICAgaWYgKCFhdXRob3JpemVkKSB7CiAgICAgICAgICAgICAgICAgICAgIHBy
b3RlY3RlZFJlcXVlc3QtPmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNl
ck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXF1
ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHByb3RlY3RlZFJlcXVl
c3QsIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0
KCksICp3ZWJWaWV3LmdldCgpKTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlhQXV0
aG9yaXphdGlvbkZvckZyYW1lKGZyYW1lLCB0b3BMZXZlbE9yaWdpbiwgcHJvdGVjdGVkUmVxdWVz
dCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQo
KSwgKndlYlZpZXcuZ2V0KCkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIFtnZXRB
VkNhcHR1cmVEZXZpY2VDbGFzcygpIHJlcXVlc3RBY2Nlc3NGb3JNZWRpYVR5cGU6Z2V0QVZNZWRp
YVR5cGVWaWRlbygpIGNvbXBsZXRpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CkBA
IC05NTIsNyArOTY2LDcgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3gKICAgICAgICAgY2FzZSBB
VkF1dGhvcml6YXRpb25TdGF0dXNEZW5pZWQ6CiAgICAgICAgIGNhc2UgQVZBdXRob3JpemF0aW9u
U3RhdHVzUmVzdHJpY3RlZDoKICAgICAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Np
b25EZW5pZWQpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIGNhc2UgQVZBdXRob3JpemF0aW9uU3RhdHVzTm90RGV0ZXJtaW5lZDoKICAgICAg
ICAgICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRSZXF1
ZXN0ID0gbWFrZVJlZihyZXF1ZXN0KSwgcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb25dKEJPT0wg
YXV0aG9yaXplZCkgewogICAgICAgICAgICAgICAgIGlmICghYXV0aG9yaXplZCkgewpAQCAtOTY4
LDUzICs5ODIsNjEgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3gKICAgICB9IGVsc2UKICAgICAg
ICAgcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb24oKTsKICNlbHNlCi0gICAgcmVxdWVzdFVzZXJN
ZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzKGZyYW1lLCByZXF1ZXN0LCAoaWQgPFdLVUlEZWxl
Z2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqbV91aURlbGVnYXRl
Lm1fd2ViVmlldyk7CisgICAgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JGcmFtZShm
cmFtZSwgdG9wTGV2ZWxPcmlnaW4sIHJlcXVlc3QsIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4p
bV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICptX3VpRGVsZWdhdGUubV93ZWJWaWV3KTsK
ICNlbmRpZgogI2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBVSURlbGVnYXRl
OjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94
eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJN
ZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFVzZXJNZWRp
YVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KQordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVu
dDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwg
V2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdp
biwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Np
b25DaGVja1Byb3h5JiByZXF1ZXN0KQogewogICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdh
dGUubV9kZWxlZ2F0ZS5nZXQoKTsKLSAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVsZWdhdGUu
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTE1h
aW5GcmFtZVVSTEZyYW1lSWRlbnRpZmllckRlY2lzaW9uSGFuZGxlcikgeworICAgIGlmICghZGVs
ZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3SXNNZWRpYUNh
cHR1cmVBdXRob3JpemVkRm9yRnJhbWVEZWNpc2lvbkhhbmRsZXIpIHsKICAgICAgICAgcmVxdWVz
dC5zZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKGZhbHNlKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBXS1dlYlZpZXcgKndlYlZpZXcgPSBtX3VpRGVs
ZWdhdGUubV93ZWJWaWV3OwotICAgIGNvbnN0IFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9IGZy
YW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0gICAgVVJMIHJlcXVlc3RGcmFtZVVSTChVUkwoKSwg
ZnJhbWUudXJsKCkpOwotICAgIFVSTCBtYWluRnJhbWVVUkwoVVJMKCksIG1haW5GcmFtZS0+dXJs
KCkpOworICAgIGNvbnN0IGF1dG8gbWFpbkZyYW1lID0gZnJhbWUucGFnZSgpLT5tYWluRnJhbWUo
KTsKKworICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
Vmlldzppc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTpkZWNpc2lvbkhhbmRsZXI6KV0p
IHsKKyAgICAgICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6
Y3JlYXRlKGRlbGVnYXRlLmdldCgpLCBAc2VsZWN0b3IoX3dlYlZpZXc6aXNNZWRpYUNhcHR1cmVB
dXRob3JpemVkRm9yRnJhbWU6ZGVjaXNpb25IYW5kbGVyOikpOworICAgICAgICBhdXRvIGRlY2lz
aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocmVx
dWVzdCksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXShCT09MIGF1dGhvcml6ZWQpIHsKKyAg
ICAgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29t
cGxldGlvbkhhbmRsZXIoKTsKKworICAgICAgICAgICAgcHJvdGVjdGVkUmVxdWVzdC0+c2V0VXNl
ck1lZGlhQWNjZXNzSW5mbyhhdXRob3JpemVkKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgWyhp
ZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1f
d2ViVmlldyBpc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTp3cmFwcGVyKEFQSTo6RnJh
bWVJbmZvOjpjcmVhdGUoKm1haW5GcmFtZSwgdG9wTGV2ZWxPcmlnaW4uc2VjdXJpdHlPcmlnaW4o
KSkpIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hl
Y2tlcjo6Y3JlYXRlKGRlbGVnYXRlLmdldCgpLCBAc2VsZWN0b3IoX3dlYlZpZXc6Y2hlY2tVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVjaXNp
b25IYW5kbGVyOikpOworICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFtw
cm90ZWN0ZWRSZXF1ZXN0ID0gbWFrZVJlZihyZXF1ZXN0KSwgY2hlY2tlciA9IFdURk1vdmUoY2hl
Y2tlcildKE5TU3RyaW5nKiwgQk9PTCBhdXRob3JpemVkKSB7CisgICAgICAgIGlmIChjaGVja2Vy
LT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CiAKLSAgICBhdXRv
IGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VS
ZWYocmVxdWVzdCldKE5TU3RyaW5nKiwgQk9PTCBhdXRob3JpemVkKSB7CiAgICAgICAgIHByb3Rl
Y3RlZFJlcXVlc3QtPnNldFVzZXJNZWRpYUFjY2Vzc0luZm8oYXV0aG9yaXplZCk7CiAgICAgfSk7
CiAKLSAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzp3ZWJW
aWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZy
YW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUuZnJhbWVJRCgpIGRlY2lz
aW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOworICAgIFVSTCByZXF1ZXN0RnJhbWVV
UkwoVVJMKCksIGZyYW1lLnVybCgpKTsKKyAgICBVUkwgbWFpbkZyYW1lVVJMKFVSTCgpLCBtYWlu
RnJhbWUtPnVybCgpKTsKIAotICAgIHJldHVybiB0cnVlOworICAgIFsoaWQgPFdLVUlEZWxlZ2F0
ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgY2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVlc3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFp
bkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjpmcmFtZS5mcmFtZUlEKCkgZGVjaXNpb25IYW5kbGVy
OmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CiB9CiAKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6
Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBXS1dlYlZpZXcgKndlYlZpZXcgPSBtX3VpRGVsZWdh
dGUubV93ZWJWaWV3OworCisgICAgW3dlYlZpZXcgZGlkQ2hhbmdlVmFsdWVGb3JLZXk6QCJtZWRp
YUNhcHR1cmVTdGF0ZSJdOworCiAgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2Rl
bGVnYXRlLmdldCgpOwogICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3TWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlIG1lZGlhQ2FwdHVyZVN0YXRlID0gX1dL
TWVkaWFDYXB0dXJlU3RhdGVOb25lOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkKLSAgICAgICAgbWVkaWFDYXB0dXJl
U3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVNaWNyb3Bob25lOwotICAgIGlmIChz
dGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmlj
ZSkKLSAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3Rp
dmVDYW1lcmE7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzTXV0
ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01l
ZGlhQ2FwdHVyZVN0YXRlTXV0ZWRNaWNyb3Bob25lOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBtZWRp
YUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkQ2FtZXJhOwotCi0gICAg
WyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6d2ViVmlldyBtZWRp
YUNhcHR1cmVTdGF0ZURpZENoYW5nZTptZWRpYUNhcHR1cmVTdGF0ZV07CisgICAgWyhpZCA8V0tV
SURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6d2ViVmlldyBtZWRpYUNhcHR1cmVT
dGF0ZURpZENoYW5nZTp0b1dLTWVkaWFDYXB0dXJlU3RhdGUoc3RhdGUpXTsKIH0KIAogdm9pZCBV
SURlbGVnYXRlOjpVSUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShX
ZWJQYWdlUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmln
aW4sIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxCeXRlc05lZWRlZCwgRnVu
Y3Rpb248dm9pZCAodW5zaWduZWQgbG9uZyBsb25nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVj
a1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hl
Y2tQcm94eS5oCmluZGV4IGQ5MWYwNGZmZGFiOGQxNDI0NTRkNTA2M2ZlMTdmMGViZmE4MzM0ZWIu
LjZhMDg5NTA2Y2VhMzg4ZDFkNGMzZDZkZWZkYTVmZTBlMGFlZTU3YzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHku
aApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5KGZyYW1lSUQsIFdURk1vdmUoaGFuZGxlciks
IFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1l
bnRPcmlnaW4pKSk7CiAgICAgfQogCisgICAgdm9pZCBkZW55KCkgeyBzZXRVc2VyTWVkaWFBY2Nl
c3NJbmZvKGZhbHNlKTsgfQogICAgIHZvaWQgc2V0VXNlck1lZGlhQWNjZXNzSW5mbyhib29sKTsK
ICAgICB2b2lkIGludmFsaWRhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwCmluZGV4IGU3YjM3MDg0ZDliMjFjODU3OGIxNjU4MTdkZTJkYzk2MDNlMzUzOGUuLjRjNGM5
OWI4NTIxMGNjMjVmOWRhYzVlMTk3NDhmYzQ2N2YzZjQ2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5jcHAKQEAgLTM3NCw4ICszNzQsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZy
YW1lKAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFtX3Bh
Z2UudWlDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCht
X3BhZ2UsICptX3BhZ2UucHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQpLCBXVEZNb3ZlKHVzZXJN
ZWRpYU9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxPcmlnaW4pLCBwZW5kaW5nUmVxdWVzdC5nZXQo
KSkpCi0gICAgICAgICAgICB1c2VyTWVkaWFBY2Nlc3NXYXNEZW5pZWQodXNlck1lZGlhSUQsIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNv
bjo6VXNlck1lZGlhRGlzYWJsZWQpOworICAgICAgICBtX3BhZ2UudWlDbGllbnQoKS5kZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChtX3BhZ2UsICptX3BhZ2UucHJvY2Vz
cygpLndlYkZyYW1lKGZyYW1lSUQpLCBXVEZNb3ZlKHVzZXJNZWRpYU9yaWdpbiksIFdURk1vdmUo
dG9wTGV2ZWxPcmlnaW4pLCBwZW5kaW5nUmVxdWVzdC5nZXQoKSk7CiAgICAgfTsKIAogICAgIGF1
dG8gcmVxdWVzdElEID0gZ2VuZXJhdGVSZXF1ZXN0SUQoKTsKQEAgLTQxNywxMCArNDE2LDcgQEAg
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Z2V0VXNlck1lZGlh
UGVybWlzc2lvbkluZm8odWludDY0X3QKICAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFQZXJt
aXNzaW9uQ2hlY2tQcm94eTo6Y3JlYXRlKGZyYW1lSUQsIFdURk1vdmUoaGFuZGxlciksIFdURk1v
dmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmln
aW4pKTsKIAogICAgIG1fcGVuZGluZ0RldmljZVJlcXVlc3RzLmFkZChyZXF1ZXN0SUQsIHJlcXVl
c3QuY29weVJlZigpKTsKLSAgICBpZiAoIW1fcGFnZS51aUNsaWVudCgpLmNoZWNrVXNlck1lZGlh
UGVybWlzc2lvbkZvck9yaWdpbihtX3BhZ2UsICptX3BhZ2UucHJvY2VzcygpLndlYkZyYW1lKGZy
YW1lSUQpLCB1c2VyTWVkaWFPcmlnaW4uZ2V0KCksIHRvcExldmVsT3JpZ2luLmdldCgpLCByZXF1
ZXN0LmdldCgpKSkgewotICAgICAgICBtX3BlbmRpbmdEZXZpY2VSZXF1ZXN0cy50YWtlKHJlcXVl
c3RJRCk7Ci0gICAgICAgIGhhbmRsZXIoZmFsc2UpOwotICAgIH0KKyAgICBtX3BhZ2UudWlDbGll
bnQoKS5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4obV9wYWdlLCAqbV9wYWdlLnBy
b2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKSwgdXNlck1lZGlhT3JpZ2luLmdldCgpLCB0b3BMZXZl
bE9yaWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSk7CiB9CiAKIGJvb2wgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3ModWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaAppbmRleCA1OTgwZGM3MDlhMDAyODVkMGFhOGU3MzVjZDMwODE5N2M5MTE4YmRi
Li5hYzgwNWU3ODhiZTIzMTdlMGE3YWFlYjcxODkwOWNmNDViY2E4OTA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFsbG93KCk7CiAKICAg
ICBlbnVtIGNsYXNzIFVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiB7IE5vQ29uc3RyYWludHMs
IFVzZXJNZWRpYURpc2FibGVkLCBOb0NhcHR1cmVEZXZpY2VzLCBJbnZhbGlkQ29uc3RyYWludCwg
SGFyZHdhcmVFcnJvciwgUGVybWlzc2lvbkRlbmllZCwgT3RoZXJGYWlsdXJlIH07Ci0gICAgdm9p
ZCBkZW55KFVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbik7CisgICAgdm9pZCBkZW55KFVzZXJN
ZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiA9IFVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6VXNl
ck1lZGlhRGlzYWJsZWQpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGZmYjhmOTUwMzZi
ODUyYjc4NTRjNDk0ZjQ0MjBiYTk1OGExMjgyZDUuLmQ4NDY1NGU4MzkxYTdhNDQwY2YxMjZhZGQ1
MzU4MmE3ZDNjODYyODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjk5OSw2ICsyOTk5LDggQEAKIAkJNDEwNDgyQ0IxREREMkZCNTAw
RjAwNkQwIC8qIFJUQ05ldHdvcmsuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUlRDTmV0d29yay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDQ4
MkNDMURERDJGQjUwMEYwMDZEMCAvKiBSVENOZXR3b3JrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJUQ05ldHdvcmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDExMTQzNjMyMEY2NzdCMTAwMjZGOTEyIC8qIEluamVjdFVzZXJTY3JpcHRJbW1lZGlhdGVseS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RVc2VyU2NyaXB0SW1tZWRp
YXRlbHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDExMjg2RUYyMUM4QTkwQzAw
M0E4NTUwIC8qIE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDExMjg2RjAyMUM4QTkwRDAwM0E4NTUwIC8qIE1lZGlhQ2FwdHVyZVV0aWxpdGll
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhQ2FwdHVy
ZVV0aWxpdGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMkI1NDcxRjlG
RDNBQjAwRTY3ODc1IC8qIE5ldHdvcmtSVENSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUlRDUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTEyQjU0NzFGOUZEM0FCMDBFNjc5ODYgLyogTmV0d29ya1JUQ1Jl
c29sdmVyQ29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0
d29ya1JUQ1Jlc29sdmVyQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTEyQjU0ODFGOUZEM0FDMDBFNjc4NzUgLyogTmV0d29ya1JUQ1Jlc29sdmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtSVENSZXNvbHZlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNTMwMiw2ICs1MzA0LDggQEAKIAkJCQkwRjBDMzY1OTE4QzA1
NTU4MDBGNjA3RDcgLyogTGF5ZXJSZXByZXNlbnRhdGlvbi5oICovLAogCQkJCTdBODIxRjRCMUUy
RjY2NDgwMDYwNDU3NyAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQuaCAqLywK
IAkJCQk3QTgyMUY0RDFFMkY2NzlFMDA2MDQ1NzcgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyQ2xpZW50Lm1tICovLAorCQkJCTQxMTI4NkVGMjFDOEE5MEMwMDNBODU1MCAvKiBNZWRpYUNh
cHR1cmVVdGlsaXRpZXMuaCAqLywKKwkJCQk0MTEyODZGMDIxQzhBOTBEMDAzQTg1NTAgLyogTWVk
aWFDYXB0dXJlVXRpbGl0aWVzLm1tICovLAogCQkJCTFBQkMzREY0MTg5OUU0MzcwMDRGMDYyNiAv
KiBOYXZpZ2F0aW9uU3RhdGUuaCAqLywKIAkJCQkxQUJDM0RGMzE4OTlFNDM3MDA0RjA2MjYgLyog
TmF2aWdhdGlvblN0YXRlLm1tICovLAogCQkJCTVDNkNFNkQzMUY1OUVBMzUwMDA3QzZDQiAvKiBQ
YWdlQ2xpZW50SW1wbENvY29hLmggKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggMjlmYjc0NGM2ZDljZWE2NGFmYWFjMjFmZjk1YTkxMGUzM2Jk
N2Y0Zi4uMjdkYjRlZDcyZDQ4NWMzODlhMjQxMDJmYWI5ZmNhZTNkOGE5ZDA4NSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBA
CisyMDE4LTEyLTIwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgYSBuZXcgU1BJIGZvciBjb250cm9sbGluZyBnZXRVc2VyTWVkaWEKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mjc5MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTWluaUJyb3dzZXIvbWFjL1dL
MkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm06CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dD
b250cm9sbGVyIF93ZWJWaWV3OnJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWU6
ZGV2aWNlczpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dD
b250cm9sbGVyIF93ZWJWaWV3OmlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1lOmRlY2lz
aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRV
c2VyTWVkaWFOYXZpZ2F0aW9uLm1tOgorICAgICAgICAoLVtOYXZpZ2F0aW9uV2hpbGVHZXRVc2Vy
TWVkaWFQcm9tcHREaXNwbGF5ZWRVSURlbGVnYXRlIF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1
cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW06
CisgICAgICAgICgtW0dldFVzZXJNZWRpYVJlcHJvbXB0VUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1
ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOmRldmljZXM6ZGVjaXNpb25IYW5k
bGVyOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlhU3RyZWFt
VHJhY2tEZXRhY2hlZC5tbToKKyAgICAgICAgKC1bTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkVUlE
ZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1l
OmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW06CisgICAgICAgICgtW1VzZXJNZWRp
YVVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JG
cmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bVXNlck1lZGlhVUlE
ZWxlZ2F0ZSBfd2ViVmlldzppc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTpkZWNpc2lv
bkhhbmRsZXI6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9V
c2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW06CisgICAgICAgICgtW1NpbXVsYXRlRmFp
bGVkU2FuZGJveFVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6
YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bU2lt
dWxhdGVGYWlsZWRTYW5kYm94VUlEZWxlZ2F0ZSBfd2ViVmlldzppc01lZGlhQ2FwdHVyZUF1dGhv
cml6ZWRGb3JGcmFtZTpkZWNpc2lvbkhhbmRsZXI6XSk6CisKIDIwMTgtMTItMTkgIE1lZ2FuIEdh
cmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyBjbGllbnRz
IHRvIHNldCB0aGUgbmF2aWdhdG9yIHBsYXRmb3JtCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJv
d3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubSBiL1Rvb2xzL01pbmlCcm93c2Vy
L21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tCmluZGV4IDNlNzM5ZDdjOTE1NTM4ZTAw
MzI5Y2ZmMGMwNDdhYWE3MGZkNGExYmYuLjliNDgxMmMxNzRjYzMxNGNkMThmNDFmZTEzYzliNTBi
NzMxODk5ZjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2lu
ZG93Q29udHJvbGxlci5tCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2lu
ZG93Q29udHJvbGxlci5tCkBAIC03OTEsMTQgKzc5MSwxNCBAQCAtICh2b2lkKWZpbmRCYXJWaWV3
RGlkQ2hhbmdlSGVpZ2h0CiB7CiB9CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJl
RGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1h
aW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVj
aXNpb25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVl
c3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvICopIG1haW5GcmFt
ZSBkZXZpY2VzOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZv
aWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgZGVjaXNpb25I
YW5kbGVyKHRydWUpOwogfQogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJM
OihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJ
ZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wg
YXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IGlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1lOihXS0ZyYW1lSW5mbyAq
KSBtYWluRnJhbWUgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRl
Y2lzaW9uSGFuZGxlcgogewotICAgIGRlY2lzaW9uSGFuZGxlcihAIiIsIGZhbHNlKTsKKyAgICBk
ZWNpc2lvbkhhbmRsZXIoZmFsc2UpOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbQppbmRl
eCA0MjFlZWE0MjkyY2JhYjE0ZTk0NmY3OThhMzVkZWI3M2Y4MmIzNTA4Li42YWY2Y2ZhOTgzMGZh
NGM1ZGE3NzdiZmI4MzBhYzExODI0MTJiZTM0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0KQEAgLTQy
LDEyICs0MiwxMiBAQCBzdGF0aWMgYm9vbCBva1RvUHJvY2VlZCA9IGZhbHNlOwogc3RhdGljIGJv
b2wgc2hvdWxkUmVsZWFzZUluRW51bWVyYXRlID0gZmFsc2U7CiAKIEBpbnRlcmZhY2UgTmF2aWdh
dGlvbldoaWxlR2V0VXNlck1lZGlhUHJvbXB0RGlzcGxheWVkVUlEZWxlZ2F0ZSA6IE5TT2JqZWN0
PFdLVUlEZWxlZ2F0ZT4KLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVx
dWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylk
ZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVS
TCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5k
bGVyOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFD
YXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyopIG1haW5GcmFtZSBkZXZp
Y2VzOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4p
KEJPT0wpKWRlY2lzaW9uSGFuZGxlcjsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJh
bWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilm
cmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqc2FsdCwg
Qk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlv
biBOYXZpZ2F0aW9uV2hpbGVHZXRVc2VyTWVkaWFQcm9tcHREaXNwbGF5ZWRVSURlbGVnYXRlCi0t
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRo
b3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJM
ICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVy
Oih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlv
bkZvckZyYW1lOihXS0ZyYW1lSW5mbyopIG1haW5GcmFtZSBkZXZpY2VzOiAoX1dLQ2FwdHVyZURl
dmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFu
ZGxlcgogewogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJhYm91dDpibGFuayJdXV07CiAgICAgW3dlYlZp
ZXcgcmVsZWFzZV07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0Lm1tCmluZGV4IGM0MzJmY2FlNWU4ZmM1OTc5MTIzM2U1
MGJkYmI3NTMyY2JhYzRmN2UuLmQ5ZGI2NTdkNTBiMDQzYmQwYmYyZGJmMTI4MTRiZWZjYzljYWFl
N2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJN
ZWRpYVJlcHJvbXB0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dl
dFVzZXJNZWRpYVJlcHJvbXB0Lm1tCkBAIC00MSwxMiArNDEsMTIgQEAKIHN0YXRpYyBib29sIHdh
c1Byb21wdGVkID0gZmFsc2U7CiAKIEBpbnRlcmZhY2UgR2V0VXNlck1lZGlhUmVwcm9tcHRVSURl
bGVnYXRlIDogTlNPYmplY3Q8V0tVSURlbGVnYXRlPgotLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9X
S0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5T
VVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3Jp
emVkKSlkZWNpc2lvbkhhbmRsZXI7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZv
KikgbWFpbkZyYW1lIGRldmljZXM6IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyOwogLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5T
VVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlm
aWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4p
KE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsKIEBlbmQK
IAogQGltcGxlbWVudGF0aW9uIEdldFVzZXJNZWRpYVJlcHJvbXB0VUlEZWxlZ2F0ZQotLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXph
dGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVy
bCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JG
cmFtZTooV0tGcmFtZUluZm8qKSBtYWluRnJhbWUgZGV2aWNlczogKF9XS0NhcHR1cmVEZXZpY2Vz
KWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIK
IHsKICAgICB3YXNQcm9tcHRlZCA9IHRydWU7CiAgICAgZGVjaXNpb25IYW5kbGVyKFlFUyk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRy
YWNrRGV0YWNoZWQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0
cmVhbVRyYWNrRGV0YWNoZWQubW0KaW5kZXggMWVjY2QwYTZlZTMzMTY0MjYzMmQ0ZDVjNmRmMGJi
Y2QwMmFlMmY0My4uY2FhNzlkZDRhMjVlNWExNWRlYmJkNTU0NjFmYWNhNGY2MGI2NjE0ZCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFj
a0RldGFjaGVkLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlh
U3RyZWFtVHJhY2tEZXRhY2hlZC5tbQpAQCAtNDAsMTMgKzQwLDEzIEBACiBzdGF0aWMgYm9vbCBo
YXNSZWNpZXZlZENvcnJlY3RDYXB0dXJlU3RhdGUgPSBmYWxzZTsKIAogQGludGVyZmFjZSBNZWRp
YVN0cmVhbVRyYWNrRGV0YWNoZWRVSURlbGVnYXRlIDogTlNPYmplY3Q8V0tVSURlbGVnYXRlPgot
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0
aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VS
TCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxl
cjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CistICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0
aW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvKikgbWFpbkZyYW1lIGRldmljZXM6IChfV0tDYXB0dXJl
RGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25I
YW5kbGVyOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKilt
YWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBk
ZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQp
KWRlY2lzaW9uSGFuZGxlcjsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlOwog
QGVuZAogCiBAaW1wbGVtZW50YXRpb24gTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0
ZQotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlh
QXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihO
U1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFu
ZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6
YXRpb25Gb3JGcmFtZTooV0tGcmFtZUluZm8qKSBtYWluRnJhbWUgZGV2aWNlczogKF9XS0NhcHR1
cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lv
bkhhbmRsZXIKIHsKICAgICBkZWNpc2lvbkhhbmRsZXIoWUVTKTsKIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURpc2FibGVk
Lm1tCmluZGV4IDg4MzMzYzNmYmI2ODBlMTY1ZTdmMjYxYTYyNmU1YjFkMTMxYjNiYWIuLjEwODVj
NWVjMzc4ZmU2OTc4MzAxYmYyMmI5ZTJmODAzNTIzYzU2ZTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5t
bQpAQCAtMzksNyArMzksNiBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAotc3RhdGljIGJvb2wg
cmVmdXNlUmVxdWVzdCA9IGZhbHNlOwogc3RhdGljIGJvb2wgd2FzUHJvbXB0ZWQgPSBmYWxzZTsK
IAogc3RhdGljIGJvb2wgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CkBAIC02MiwxNSAr
NjEsMTAgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gVXNlck1lZGlhVUlEZWxlZ2F0ZQogCi0t
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRo
b3JpemF0aW9uRm9yRGV2aWNlczooTlNVSW50ZWdlcilkZXZpY2VzIHVybDooTlNVUkwgKil1cmwg
bWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQg
KF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0ZyYW1l
SW5mbyopIG1haW5GcmFtZSBkZXZpY2VzOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNp
c2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgogewogICAgIHdhc1By
b21wdGVkID0gdHJ1ZTsKIAotICAgIGlmIChyZWZ1c2VSZXF1ZXN0KSB7Ci0gICAgICAgIGRlY2lz
aW9uSGFuZGxlcihOTyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBCT09MIG5lZWRz
TWljcm9waG9uZUF1dGhvcml6ZWQgPSBkZXZpY2VzICYgX1dLQ2FwdHVyZURldmljZU1pY3JvcGhv
bmU7CiAgICAgQk9PTCBuZWVkc0NhbWVyYUF1dGhvcml6ZWQgPSBkZXZpY2VzICYgX1dLQ2FwdHVy
ZURldmljZUNhbWVyYTsKICAgICBpZiAoIW5lZWRzTWljcm9waG9uZUF1dGhvcml6ZWQgJiYgIW5l
ZWRzQ2FtZXJhQXV0aG9yaXplZCkgewpAQCAtODEsMTQgKzc1LDkgQEAgLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRl
dmljZXM6KE4KICAgICBkZWNpc2lvbkhhbmRsZXIoWUVTKTsKIH0KIAotLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5T
VVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlm
aWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4p
KE5TU3RyaW5nICosIEJPT0wpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBpc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTooV0tGcmFt
ZUluZm8gKikgbWFpbkZyYW1lIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3Jp
emVkKSlkZWNpc2lvbkhhbmRsZXIKIHsKLSAgICBpZiAocmVmdXNlUmVxdWVzdCkgewotICAgICAg
ICBkZWNpc2lvbkhhbmRsZXIobmlsLCBOTyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBkZWNpc2lvbkhhbmRsZXIoQCIweDk4NzY1NDMyMSIsIE5PKTsKKyAgICBkZWNpc2lvbkhhbmRs
ZXIoTk8pOwogfQogQGVuZAogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5k
Ym94Lm1tCmluZGV4IGM3M2M5ODk5NGU0MTczMzQ5MDI1NTJhODc4ZGVmNWQxNzIyNWJkZjQuLjlj
ZDk4NWY3OWYxNGYzNTY5NmU1OTZkYWExM2E5M2NhMzA0YTg0MjYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhU2ltdWxhdGVGYWlsZWRT
YW5kYm94Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNl
ck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tCkBAIC0zOSw3ICszOSw2IEBACiAKICNpZiBX
S19BUElfRU5BQkxFRAogCi1zdGF0aWMgYm9vbCByZWZ1c2VSZXF1ZXN0ID0gZmFsc2U7CiBzdGF0
aWMgYm9vbCB3YXNQcm9tcHRlZCA9IGZhbHNlOwogCiBzdGF0aWMgYm9vbCByZWNlaXZlZFNjcmlw
dE1lc3NhZ2UgPSBmYWxzZTsKQEAgLTYyLDE1ICs2MSwxMCBAQCBAZW5kCiAKIEBpbXBsZW1lbnRh
dGlvbiBTaW11bGF0ZUZhaWxlZFNhbmRib3hVSURlbGVnYXRlCiAKLS0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZp
Y2VzOihOU1VJbnRlZ2VyKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5T
VVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNp
b25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RN
ZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvKikgbWFpbkZyYW1l
IGRldmljZXM6IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgd2FzUHJvbXB0ZWQgPSB0cnVlOwog
Ci0gICAgaWYgKHJlZnVzZVJlcXVlc3QpIHsKLSAgICAgICAgZGVjaXNpb25IYW5kbGVyKE5PKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIEJPT0wgbmVlZHNNaWNyb3Bob25lQXV0aG9y
aXplZCA9IGRldmljZXMgJiBfV0tDYXB0dXJlRGV2aWNlTWljcm9waG9uZTsKICAgICBCT09MIG5l
ZWRzQ2FtZXJhQXV0aG9yaXplZCA9IGRldmljZXMgJiBfV0tDYXB0dXJlRGV2aWNlQ2FtZXJhOwog
ICAgIGlmICghbmVlZHNNaWNyb3Bob25lQXV0aG9yaXplZCAmJiAhbmVlZHNDYW1lcmFBdXRob3Jp
emVkKSB7CkBAIC04MSwxNCArNzUsOSBAQCAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooTgogICAgIGRl
Y2lzaW9uSGFuZGxlcihZRVMpOwogfQogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZy
YW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIp
ZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKiwgQk9P
TCkpZGVjaXNpb25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1lOihXS0ZyYW1lSW5mbyAqKSBtYWluRnJh
bWUgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFu
ZGxlcgogewotICAgIGlmIChyZWZ1c2VSZXF1ZXN0KSB7Ci0gICAgICAgIGRlY2lzaW9uSGFuZGxl
cihuaWwsIE5PKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGRlY2lzaW9uSGFuZGxl
cihAIjB4OTg3NjU0MzIxIiwgTk8pOworICAgIGRlY2lzaW9uSGFuZGxlcihOTyk7CiB9CiBAZW5k
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357885</attachid>
            <date>2018-12-20 15:54:09 -0800</date>
            <delta_ts>2019-01-08 13:33:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192793-20181220155406.patch</filename>
            <type>text/plain</type>
            <size>54328</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZmNWM1OTU5NTUwYTAyYjZl
MWVjNGM3NDYwNWVhMGQ2ZmY0YjIyZWQuLmQ3NzI4MTMyZDM3ZDViMjU4ODdjZTlhMDUwODlhNjUz
M2JjNzI1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTgtMTItMjAgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgZm9yIGNv
bnRyb2xsaW5nIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyNzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU29tZSB3ZWFrbmVzc2VzIG9mIHRoZSBjdXJyZW50IGdldFVzZXJNZWRp
YSBTUEkgd2VyZSBmb3VuZC4KKyAgICAgICAgSW4gcGFydGljdWxhcjoKKyAgICAgICAgLSBUaGUg
aGFzaCBzYWx0IHNob3VsZCBiZSBoYW5kbGVkIGJ5IFdlYktpdC4KKyAgICAgICAgLSBObyBuZWVk
IHRvIGV4cG9zZSB0aGUgZnJhbWUgVVJMLCBvbmx5IHRoZSB0b3AgbGV2ZWwgb3JpZ2luIGlzIG5l
ZWRlZC4KKyAgICAgICAgLSBUaGUgbmFtZXMgb2YgdGhlIGNhbGxiYWNrIGNhbiBiZSBpbXByb3Zl
ZC4KKyAgICAgICAgQWRkcmVzc2VkIHRoZXNlIGJ5IGNyZWF0aW5nIGEgbmV3IFNQSSB3aGljaCB3
aWxsIHJlcGxhY2UgdGhlIGN1cnJlbnQgb25lLgorICAgICAgICBUaGUgY3VycmVudCBTUEkgd2ls
bCBiZSByZW1vdmVkIGxhdGVyIG9uLgorCisgICAgICAgIERpZCBzb21lIHJlZmFjdG9yaW5nIGJ5
IG1ha2luZyB0aGUgY2FsbGJhY2tzIG5vdCByZXR1cm4gZmFsc2UuCisgICAgICAgIEluc3RlYWQs
IGltcGxlbWVudCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpbnNpZGUgdGhlIHJlcXVlc3Qgb2JqZWN0
cyBhcyBkZW55IG1ldGhvZHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBl
cm1pc3Npb25Gb3JPcmlnaW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
OgorICAgICAgICAoV0tQYWdlU2V0UGFnZVVJQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9tZWRpYUNhcHR1cmVT
dGF0ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldE1lZGlhQ2FwdHVyZU11dGVkOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHA6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLm1tOiBBZGRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0
ZSk6CisgICAgICAgIChXZWJLaXQ6OnJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVn
YXRlOjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAg
ICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hh
bmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHku
aDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OmRlbnkp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJN
ZWRpYVBlcm1pc3Npb25JbmZvKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oOgorCiAyMDE4LTEyLTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgVXNlIE9wdGlvbmFsOjp2YWx1ZU9yKCkgaW5zdGVhZCBvZiBP
cHRpb25hbDo6dmFsdWVfb3IoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDlkN2NjNWNjNmM0
ZTcxYzRiYzYzY2QxZmJmMzQyNGRmNDdhM2ZjNGMuLmQ0MjYyOGNiZGM2YzIzYjEzMmI5MmUwZmJm
MGE0NDMwOGU1NzQ0NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTMxOSw2ICszMTksNyBA
QCBVSVByb2Nlc3MvQ29jb2EvRmluZENsaWVudC5tbQogVUlQcm9jZXNzL0NvY29hL0Z1bGxzY3Jl
ZW5DbGllbnQubW0KIFVJUHJvY2Vzcy9Db2NvYS9JY29uTG9hZGluZ0RlbGVnYXRlLm1tCiBVSVBy
b2Nlc3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tCitVSVByb2Nl
c3MvQ29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLm1tCiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdh
dGlvblN0YXRlLm1tCiBVSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbQogVUlQ
cm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tbQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCA0M2ZmNzYzYjkwNDhjYzQwYTk2N2Q5
NDU2YmJlMDNhY2JiOTUwMjdjLi4wM2QxMjMwMGQxNzE2OWY0N2M4MWRjMjYwMWE2YTQwNzE3ZDcw
YWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMTI5
LDggKzEyOSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBydW5PcGVuUGFuZWwoV2Vi
S2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmLCBPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViS2l0OjpXZWJP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJL
aXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2lu
JiwgRnVuY3Rpb248dm9pZChib29sKT4mKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9s
aWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBX
ZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIFNlY3VyaXR5T3JpZ2luJiwg
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JikgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdl
YktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmln
aW4mLCBTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJv
eHkmKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6
V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgU2VjdXJpdHlPcmlnaW4mLCBXZWJLaXQ6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYktpdDo6V2ViUGFnZVByb3h5Jiwg
V2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBTZWN1cml0eU9yaWdpbiYs
IFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0
OjpXZWJQYWdlUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9CiAgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJLaXQ6OldlYlBhZ2VQcm94
eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiByZXF1ZXN0aW5n
RG9tYWluLCBjb25zdCBXVEY6OlN0cmluZyYgY3VycmVudERvbWFpbiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcih0
cnVlKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCBl
YzU2MWRkNTc3NTM1OTEyMTgzZDc5OGYyOGQ3MmVkOGE3NTJiYjE3Li43ZTE3ODU2MmI4ZmI1NzY3
ZmY4MmQzZjg2YjNjMmUwNDJiZjgxM2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAKQEAgLTE4NTUsMjIgKzE4NTUsMjQgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlD
bGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGll
bnQKICAgICAgICAgICAgIG1fY2xpZW50LmRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QodG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b0FQSSgmb3JpZ2luKSwg
dG9BUEkoR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKHN0ZDo6ZXhjaGFuZ2Uo
Y29tcGxldGlvbkhhbmRsZXIsIG51bGxwdHIpKS5wdHIoKSksIG1fY2xpZW50LmJhc2UuY2xpZW50
SW5mbyk7CiAgICAgICAgIH0KIAotICAgICAgICBib29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJh
bWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNl
Y3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5JiBwZXJtaXNzaW9uUmVxdWVzdCkgZmluYWwKKyAgICAgICAgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2Us
IFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcGVybWlzc2lvblJlcXVlc3QpIGZpbmFs
CiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdCkgeworICAgICAgICAgICAgICAgIHBlcm1pc3Npb25SZXF1ZXN0LmRlbnkoKTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG1f
Y2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KHRvQVBJKCZw
YWdlKSwgdG9BUEkoJmZyYW1lKSwgdG9BUEkoJnVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgdG9B
UEkoJnRvcExldmVsRG9jdW1lbnRPcmlnaW4pLCB0b0FQSSgmcGVybWlzc2lvblJlcXVlc3QpLCBt
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KIAotICAgICAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihX
ZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIHJlcXVlc3Qp
IGZpbmFsCisgICAgICAgIHZvaWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdl
YlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmln
aW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcmVxdWVzdCkg
ZmluYWwKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5jaGVja1VzZXJNZWRp
YVBlcm1pc3Npb25Gb3JPcmlnaW4pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgaWYgKCFtX2NsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4p
IHsKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmRlbnkoKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG1fY2xpZW50LmNoZWNrVXNlck1lZGlh
UGVybWlzc2lvbkZvck9yaWdpbih0b0FQSSgmcGFnZSksIHRvQVBJKCZmcmFtZSksIHRvQVBJKCZ1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIHRvQVBJKCZ0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwg
dG9BUEkoJnJlcXVlc3QpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwotICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHZvaWQgZGVjaWRlUG9s
aWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBB
UEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIGZpbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCA0NmM5NTE3YWYwZWZhZWI0NmFj
OTJhNDhmODJkZTVhOGE5ZjU1MDAyLi5iOWE5MjkxMTQxYmYwZmI2ZDZmY2ZlMTFiOTc3OTI5MWJk
NDIxMGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
SURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTEwNSw2ICsxMDUsOCBAQCBzdHJ1Y3QgVUlFZGdl
SW5zZXRzOwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGltYWdlT3JN
ZWRpYURvY3VtZW50U2l6ZUNoYW5nZWQ6KENHU2l6ZSlzaXplIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKIC0gKE5TRGljdGlvbmFyeSAqKV9kYXRhRGV0ZWN0aW9u
Q29udGV4dEZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0ZyYW1l
SW5mbyAqKW1haW5GcmFtZSBkZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lz
aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGlzTWVkaWFDYXB0dXJlQXV0aG9yaXpl
ZEZvckZyYW1lOihXS0ZyYW1lSW5mbyAqKW1haW5GcmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQg
KF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6
KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6
KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRo
b3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBp
b3MoMTEuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1Vz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwg
KiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmll
ciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6
ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9z
KDEwLjMpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0
dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IGIyZDMzYzQ0ZjQxOTgxMjhjZWM2ZmE3
MDgzNmM1ZjViOTJjOTIxYjUuLmU4ZTQ4MDkyZGYwMTYyYzZiNjlkOWU1YTI3MjVmM2M5MjQxOGRh
MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQpAQCAtNDAsNiArNDAsNyBAQAogI2ltcG9ydCAiSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oIgogI2lt
cG9ydCAiTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCisj
aW1wb3J0ICJNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCIKICNpbXBvcnQgIk5hdmlnYXRpb25TdGF0
ZS5oIgogI2ltcG9ydCAiT2JqQ09iamVjdEdyYXBoLmgiCiAjaW1wb3J0ICJQYWdlQ2xpZW50Lmgi
CkBAIC01NDkwLDYgKzU0OTEsMTYgQEAgc3RhdGljIGlubGluZSBXZWJLaXQ6OkZpbmRPcHRpb25z
IHRvRmluZE9wdGlvbnMoX1dLRmluZE9wdGlvbnMgd2tGaW5kT3B0aW9ucykKICNlbmRpZgogfQog
CistIChfV0tNZWRpYUNhcHR1cmVTdGF0ZSlfbWVkaWFDYXB0dXJlU3RhdGUKK3sKKyAgICByZXR1
cm4gV2ViS2l0Ojp0b1dLTWVkaWFDYXB0dXJlU3RhdGUoX3BhZ2UtPm1lZGlhU3RhdGVGbGFncygp
KTsKK30KKworLSAodm9pZClfc2V0TWVkaWFDYXB0dXJlTXV0ZWQ6KEJPT0wpbXV0ZWQKK3sKKyAg
ICBfcGFnZS0+c2V0TWVkaWFTdHJlYW1DYXB0dXJlTXV0ZWQobXV0ZWQpOworfQorCiAtICh2b2lk
KV9tdXRlTWVkaWFDYXB0dXJlCiB7CiAgICAgX3BhZ2UtPnNldE1lZGlhU3RyZWFtQ2FwdHVyZU11
dGVkKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmgKaW5kZXggOGFmODUyZTFjYjQ3NWM2MTQwZjgzY2E1ZGRlN2NkZDhh
NWQ5NDI0ZC4uZDAwNTNhOTg0NGQ5ZGRjNWQwNTE4Y2EyMTZmYTFiYjY3Y2I5YjY5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oCkBAIC0zOTEsNiArMzkxLDkgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9X
S1JlY3RFZGdlKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRGdWxsc2NyZWVu
RGVsZWdhdGU6KSBpZDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+IF9mdWxsc2NyZWVuRGVsZWdhdGUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9pc0luRnVsbHNjcmVlbiBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMi4zKSk7CiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dL
TWVkaWFDYXB0dXJlU3RhdGUgX21lZGlhQ2FwdHVyZVN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCistICh2b2lkKV9zZXRNZWRpYUNh
cHR1cmVNdXRlZDooQk9PTCltdXRlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX211dGVNZWRpYUNhcHR1cmUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfc2V0UGFnZU11dGVk
OihfV0tNZWRpYU11dGVkU3RhdGUpbXV0ZWRTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMyksIGlvcygxMS4wKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCBiMDhjZTFkMGFmYzliOTRmMTAyNjQ1ZDE5
YzY2MDY4OGUyNTJjNDNjLi5jZDc3YTM4N2EzOTFkNjQ1MWUyOWMzNjU4YzNlNDZkZjA5MjBkZGI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlD
bGllbnQuY3BwCkBAIC0xODQsMTggKzE4NCwxNiBAQCBwcml2YXRlOgogICAgICAgICB3ZWJraXRX
ZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0KG1fd2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05f
UkVRVUVTVChnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CiAgICAgfQogCi0g
ICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdl
UHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4s
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5h
bAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2Vi
UGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiBwZXJtaXNzaW9uUmVxdWVzdCkg
ZmluYWwKICAgICB7CiAgICAgICAgIEdSZWZQdHI8V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3Q+IHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRlKHBlcm1pc3Npb25SZXF1ZXN0LCB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikpOwogICAgICAgICB3ZWJraXRX
ZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0KG1fd2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05f
UkVRVUVTVCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5nZXQoKSkpOwotICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9y
aWdpbihXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIHBlcm1pc3Np
b25SZXF1ZXN0KSBvdmVycmlkZQorICAgIHZvaWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
T3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlP
cmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcGVybWlz
c2lvblJlcXVlc3QpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBhdXRvIGRldmljZUluZm9QZXJt
aXNzaW9uUmVxdWVzdCA9IGFkb3B0R1JlZih3ZWJraXREZXZpY2VJbmZvUGVybWlzc2lvblJlcXVl
c3RDcmVhdGUocGVybWlzc2lvblJlcXVlc3QsIHBhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpLmRldmlj
ZUlkSGFzaFNhbHRTdG9yYWdlKCkpKTsKICAgICAgICAgd2Via2l0V2ViVmlld01ha2VQZXJtaXNz
aW9uUmVxdWVzdChtX3dlYlZpZXcsIFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1QoZGV2aWNlSW5m
b1Blcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IAogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qo
V2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwMDQwM2Zm
ZDgzOWIxZDY3MzkwYjIwNTI1MDI0MzJhZTFhMTZiMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMuaApAQCAtMCww
ICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBXS19BUElfRU5BQkxF
RAorCisjaW1wb3J0ICJXS1dlYlZpZXdQcml2YXRlLmgiCisjaW1wb3J0IDxXZWJDb3JlL01lZGlh
UHJvZHVjZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK19XS01lZGlhQ2FwdHVyZVN0YXRl
IHRvV0tNZWRpYUNhcHR1cmVTdGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MpOworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWFlZTM4ZWI2NGUyZTI0ODQxNjA4NzY4OGYzZmM2MDBkNmExMTI4YwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0
aWxpdGllcy5tbQpAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIk1lZGlhQ2FwdHVyZVV0aWxpdGllcy5oIgorCisjaWYgV0tfQVBJX0VO
QUJMRUQKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK19XS01lZGlhQ2FwdHVyZVN0YXRlIHRvV0tN
ZWRpYUNhcHR1cmVTdGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mg
c3RhdGUpCit7CisgICAgX1dLTWVkaWFDYXB0dXJlU3RhdGUgbWVkaWFDYXB0dXJlU3RhdGUgPSBf
V0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmU7CisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgICAgICBtZWRpYUNhcHR1
cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZU1pY3JvcGhvbmU7CisgICAgaWYg
KHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2
aWNlKQorICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFj
dGl2ZUNhbWVyYTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNN
dXRlZEF1ZGlvQ2FwdHVyZURldmljZSkKKyAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dL
TWVkaWFDYXB0dXJlU3RhdGVNdXRlZE1pY3JvcGhvbmU7CisgICAgaWYgKHN0YXRlICYgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgICAgIG1l
ZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRDYW1lcmE7CisKKyAg
ICByZXR1cm4gbWVkaWFDYXB0dXJlU3RhdGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVs
ZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAppbmRl
eCAzOGRkN2VjYmNmYjVmMmE2MGZjODZjOThiZThiMGYzMWE4NTRmZjg2Li44ZmQxNmE5ODEyYzA0
YWRmMDg1ZTU0NGFlZTM4MDRjODIyZDVmMTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0xMjMsOCArMTIzLDggQEAgcHJpdmF0ZToKICNlbmRpZgog
ICAgICAgICBib29sIG5lZWRzRm9udEF0dHJpYnV0ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1
dGVzOyB9CiAgICAgICAgIHZvaWQgZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29y
ZTo6Rm9udEF0dHJpYnV0ZXMmKSBmaW5hbDsKLSAgICAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5Jiwg
QVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5JikgZmluYWw7Ci0gICAgICAgIGJvb2wgY2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNl
Y3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIFVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5JikgZmluYWw7CisgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2Vj
dXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eSYpIGZpbmFsOworICAgICAgICB2b2lkIGNoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkZvck9yaWdpbihXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9y
aWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94
eSYpIGZpbmFsOwogICAgICAgICB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgZmluYWw7CiAgICAgICAgIHZvaWQg
cHJpbnRGcmFtZShXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JikgZmluYWw7CiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE5OCw4ICsxOTgsOCBAQCBwcml2YXRlOgogICAgICAgICBi
b29sIHdlYlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUgOiAxOwogICAgICAgICBib29s
IHdlYlZpZXdEaWRFbnRlckZ1bGxzY3JlZW4gOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRF
eGl0RnVsbHNjcmVlbiA6IDE7Ci0gICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3RVc2VyTWVkaWFB
dXRob3JpemF0aW9uRm9yRGV2aWNlc1VSTE1haW5GcmFtZVVSTERlY2lzaW9uSGFuZGxlciA6IDE7
Ci0gICAgICAgIGJvb2wgd2ViVmlld0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTE1haW5G
cmFtZVVSTEZyYW1lSWRlbnRpZmllckRlY2lzaW9uSGFuZGxlciA6IDE7CisgICAgICAgIGJvb2wg
d2ViVmlld1JlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWVEZWNpc2lvbkhh
bmRsZXIgOiAxOworICAgICAgICBib29sIHdlYlZpZXdJc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRG
b3JGcmFtZURlY2lzaW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld01lZGlhQ2Fw
dHVyZVN0YXRlRGlkQ2hhbmdlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkQ2hhbmdlRm9u
dEF0dHJpYnV0ZXMgOiAxOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBjZjEzOGQ2ZmE0ZDZlMWFmMDk4
Zjk5Zjk3OGE5MzNjZjhjYTViNGE3Li44Nzc0ZmIxYjkwMzA3MjQ2ODhmMjU4YjFiNmVhMWFjOTJm
YmRhOTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0K
QEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkFQSUZyYW1lSW5mby5oIgogI2ltcG9ydCAiQVBJ
SGl0VGVzdFJlc3VsdC5oIgogI2ltcG9ydCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5o
IgorI2ltcG9ydCAiTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJOYXRpdmVXZWJX
aGVlbEV2ZW50LmgiCiAjaW1wb3J0ICJOYXZpZ2F0aW9uQWN0aW9uRGF0YS5oIgogI2ltcG9ydCAi
VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaCIKQEAgLTE1MCw4ICsxNTEsOSBAQCB2b2lk
IFVJRGVsZWdhdGU6OnNldERlbGVnYXRlKGlkIDxXS1VJRGVsZWdhdGU+IGRlbGVnYXRlKQogICAg
IG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludCA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZE5vdEhh
bmRsZVRhcEFzQ2xpY2tBdFBvaW50OildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLnByZXNlbnRp
bmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXcgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3RvcihfcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldzopXTsKICNlbmRp
ZgotICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXph
dGlvbkZvckRldmljZXNVUkxNYWluRnJhbWVVUkxEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0
aG9yaXphdGlvbkZvckRldmljZXM6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6KV07
Ci0gICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZv
clVSTE1haW5GcmFtZVVSTEZyYW1lSWRlbnRpZmllckRlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmNoZWNrVXNlck1lZGlhUGVy
bWlzc2lvbkZvclVSTDptYWluRnJhbWVVUkw6ZnJhbWVJZGVudGlmaWVyOmRlY2lzaW9uSGFuZGxl
cjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdE1lZGlhQ2FwdHVyZUF1
dGhvcml6YXRpb25Gb3JGcmFtZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9u
Rm9yRGV2aWNlczp1cmw6bWFpbkZyYW1lVVJMOmRlY2lzaW9uSGFuZGxlcjopXSB8fCBbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0
dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOildOworICAg
IG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdJc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFt
ZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDptYWluRnJhbWVVUkw6ZnJh
bWVJZGVudGlmaWVyOmRlY2lzaW9uSGFuZGxlcjopXSB8fCBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzppc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFt
ZTpkZWNpc2lvbkhhbmRsZXI6KV07CisKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3TWVk
aWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcihfd2ViVmlldzptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTopXTsKICAgICBtX2Rl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXMgPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWRDaGFuZ2VGb250QXR0cmli
dXRlczopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5kYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldl
YlZpZXcgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfZGF0YURldGVj
dGlvbkNvbnRleHRGb3JXZWJWaWV3OildOwpAQCAtODU1LDkgKzg1NywxNCBAQCBib29sIFVJRGVs
ZWdhdGU6OlVJQ2xpZW50OjpydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94
eSogd2ViRnJhbWVQcgogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotc3RhdGlj
IHZvaWQgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzKGNvbnN0IFdlYkZy
YW1lUHJveHkmIGZyYW1lLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0
LCBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gZGVsZWdhdGUsIFdLV2ViVmlldyYgd2ViVmlldykK
K3N0YXRpYyB2b2lkIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWUoY29uc3Qg
V2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2lu
LCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0LCBpZCA8V0tVSURlbGVn
YXRlUHJpdmF0ZT4gZGVsZWdhdGUsIFdLV2ViVmlldyYgd2ViVmlldykKIHsKLSAgICBhdXRvIGRl
Y2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYo
cmVxdWVzdCldKEJPT0wgYXV0aG9yaXplZCkgeworICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRp
b25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZSwgQHNlbGVjdG9yKF93ZWJWaWV3
OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lv
bkhhbmRsZXI6KSk7CisgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3By
b3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpLCBjaGVja2VyID0gV1RGTW92ZShjaGVj
a2VyKV0oQk9PTCBhdXRob3JpemVkKSB7CisgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9u
SGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2hl
Y2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisKICAgICAgICAgaWYgKCFhdXRob3Jp
emVkKSB7CiAgICAgICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0LT5kZW55KFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lv
bkRlbmllZCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04NjcsMTAgKzg3NCw2IEBAIHN0YXRp
YyB2b2lkIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlcyhjb25zdCBXZWJG
cmFtZVByb3h5JiBmcmFtZSwKICAgICAgICAgcHJvdGVjdGVkUmVxdWVzdC0+YWxsb3coYXVkaW9E
ZXZpY2VVSUQsIHZpZGVvRGV2aWNlVUlEKTsKICAgICB9KTsKIAotICAgIGNvbnN0IFdlYkZyYW1l
UHJveHkqIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0gICAgVVJMIHJl
cXVlc3RGcmFtZVVSTChVUkwoKSwgZnJhbWUudXJsKCkpOwotICAgIFVSTCBtYWluRnJhbWVVUkwo
VVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOwotCiAgICAgX1dLQ2FwdHVyZURldmljZXMgZGV2aWNl
cyA9IDA7CiAgICAgaWYgKHJlcXVlc3QucmVxdWlyZXNBdWRpb0NhcHR1cmUoKSkKICAgICAgICAg
ZGV2aWNlcyB8PSBfV0tDYXB0dXJlRGV2aWNlTWljcm9waG9uZTsKQEAgLTg4MSw4ICs4ODQsMTkg
QEAgc3RhdGljIHZvaWQgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzKGNv
bnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLAogICAgICAgICBBU1NFUlQoIShkZXZpY2VzICYgX1dL
Q2FwdHVyZURldmljZUNhbWVyYSkpOwogICAgIH0KIAotICAgIGF1dG8gcHJvdGVjdGVkV2ViVmll
dyA9IFJldGFpblB0cjxXS1dlYlZpZXc+KCZ3ZWJWaWV3KTsKLSAgICBbZGVsZWdhdGUgX3dlYlZp
ZXc6cHJvdGVjdGVkV2ViVmlldy5nZXQoKSByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZv
ckRldmljZXM6ZGV2aWNlcyB1cmw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJh
bWVVUkwgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CisgICAgY29uc3Qg
V2ViRnJhbWVQcm94eSogbWFpbkZyYW1lID0gZnJhbWUucGFnZSgpLT5tYWluRnJhbWUoKTsKKwor
ICAgIC8vIEZJWE1FOiBQcm92aWRlIGEgc3BlY2lmaWMgZGVsZWdhdGUgZm9yIGRpc3BsYXkgY2Fw
dHVyZS4KKyAgICBpZiAoIXJlcXVlc3QucmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSgpICYmIFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNh
cHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lvbkhhbmRsZXI6KV0pIHsK
KworICAgICAgICBbZGVsZWdhdGUgX3dlYlZpZXc6JndlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVy
ZUF1dGhvcml6YXRpb25Gb3JGcmFtZTp3cmFwcGVyKEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUoKm1h
aW5GcmFtZSwgdG9wTGV2ZWxPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSkpIGRldmljZXM6ZGV2aWNl
cyBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIFVSTCByZXF1ZXN0RnJhbWVVUkwoVVJMKCksIGZyYW1lLnVybCgpKTsK
KyAgICBVUkwgbWFpbkZyYW1lVVJMKFVSTCgpLCBtYWluRnJhbWUtPnVybCgpKTsKKworICAgIFtk
ZWxlZ2F0ZSBfd2ViVmlldzomd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZv
ckRldmljZXM6ZGV2aWNlcyB1cmw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJh
bWVVUkwgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CiB9CiAjZW5kaWYK
IApAQCAtODk1LDEzICs5MDksMTMgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkQ2hh
bmdlRm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMKICAgICBbcHJp
dmF0ZVVJRGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBkaWRDaGFuZ2VG
b250QXR0cmlidXRlczpmb250QXR0cmlidXRlcy5jcmVhdGVEaWN0aW9uYXJ5KCkuZ2V0KCldOwog
fQogCi1ib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1l
LCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmln
aW4mIHRvcExldmVsT3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1
ZXN0KQordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFt
ZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVx
dWVzdCkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIGF1dG8gZGVsZWdhdGUgPSBt
X3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKLSAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3Vp
RGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RVc2VyTWVkaWFBdXRob3Jp
emF0aW9uRm9yRGV2aWNlc1VSTE1haW5GcmFtZVVSTERlY2lzaW9uSGFuZGxlcikgeworICAgIGlm
ICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVx
dWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZURlY2lzaW9uSGFuZGxlcikgewog
ICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNl
ck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7Ci0gICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgYm9vbCByZXF1aXJlc0F1
ZGlvQ2FwdHVyZSA9IHJlcXVlc3QucmVxdWlyZXNBdWRpb0NhcHR1cmUoKTsKQEAgLTkwOSwzMyAr
OTIzLDMzIEBAIGJvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94CiAgICAgYm9vbCByZXF1aXJlc0Rpc3Bs
YXlDYXB0dXJlID0gcmVxdWVzdC5yZXF1aXJlc0Rpc3BsYXlDYXB0dXJlKCk7CiAgICAgaWYgKCFy
ZXF1aXJlc0F1ZGlvQ2FwdHVyZSAmJiAhcmVxdWlyZXNWaWRlb0NhcHR1cmUgJiYgIXJlcXVpcmVz
RGlzcGxheUNhcHR1cmUpIHsKICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50
cyk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm47CiAgICAgfQogCiAjaWYg
SEFWRShBVVRIT1JJWkFUSU9OX1NUQVRVU19GT1JfTUVESUFfVFlQRSkKICAgICBib29sIHVzaW5n
TW9ja0NhcHR1cmVEZXZpY2VzID0gcGFnZS5wcmVmZXJlbmNlcygpLm1vY2tDYXB0dXJlRGV2aWNl
c0VuYWJsZWQoKTsKLSAgICBhdXRvIHJlcXVlc3RDYW1lcmFBdXRob3JpemF0aW9uID0gbWFrZUJs
b2NrUHRyKFt0aGlzLCAmZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3Qp
LCB3ZWJWaWV3ID0gUmV0YWluUHRyPFdLV2ViVmlldz4obV91aURlbGVnYXRlLm1fd2ViVmlldyks
IHVzaW5nTW9ja0NhcHR1cmVEZXZpY2VzXSgpIHsKKyAgICBhdXRvIHJlcXVlc3RDYW1lcmFBdXRo
b3JpemF0aW9uID0gbWFrZUJsb2NrUHRyKFt0aGlzLCAmZnJhbWUsIHByb3RlY3RlZFJlcXVlc3Qg
PSBtYWtlUmVmKHJlcXVlc3QpLCB3ZWJWaWV3ID0gUmV0YWluUHRyPFdLV2ViVmlldz4obV91aURl
bGVnYXRlLm1fd2ViVmlldyksIHRvcExldmVsT3JpZ2luID0gbWFrZVJlZih0b3BMZXZlbE9yaWdp
biksIHVzaW5nTW9ja0NhcHR1cmVEZXZpY2VzXSgpIG11dGFibGUgewogCiAgICAgICAgIGlmICgh
cHJvdGVjdGVkUmVxdWVzdC0+cmVxdWlyZXNWaWRlb0NhcHR1cmUoKSkgewotICAgICAgICAgICAg
cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzKGZyYW1lLCBwcm90ZWN0ZWRS
ZXF1ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRl
LmdldCgpLCAqd2ViVmlldy5nZXQoKSk7CisgICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlhQXV0
aG9yaXphdGlvbkZvckZyYW1lKGZyYW1lLCB0b3BMZXZlbE9yaWdpbiwgcHJvdGVjdGVkUmVxdWVz
dCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQo
KSwgKndlYlZpZXcuZ2V0KCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
ICAgIEFWQXV0aG9yaXphdGlvblN0YXR1cyBjYW1lcmFBdXRob3JpemF0aW9uU3RhdHVzID0gdXNp
bmdNb2NrQ2FwdHVyZURldmljZXMgPyBBVkF1dGhvcml6YXRpb25TdGF0dXNBdXRob3JpemVkIDog
W2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgYXV0aG9yaXphdGlvblN0YXR1c0Zvck1lZGlhVHlw
ZTpnZXRBVk1lZGlhVHlwZVZpZGVvKCldOwogICAgICAgICBzd2l0Y2ggKGNhbWVyYUF1dGhvcml6
YXRpb25TdGF0dXMpIHsKICAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNBdXRob3Jp
emVkOgotICAgICAgICAgICAgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2Vz
KGZyYW1lLCBwcm90ZWN0ZWRSZXF1ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlE
ZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqd2ViVmlldy5nZXQoKSk7CisgICAgICAgICAgICBy
ZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGZyYW1lLCB0b3BMZXZlbE9yaWdp
biwgcHJvdGVjdGVkUmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdh
dGUubV9kZWxlZ2F0ZS5nZXQoKSwgKndlYlZpZXcuZ2V0KCkpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQVZBdXRob3JpemF0aW9uU3RhdHVzRGVuaWVkOgogICAgICAgICBjYXNl
IEFWQXV0aG9yaXphdGlvblN0YXR1c1Jlc3RyaWN0ZWQ6CiAgICAgICAgICAgICBwcm90ZWN0ZWRS
ZXF1ZXN0LT5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFj
Y2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIGNhc2UgQVZBdXRob3JpemF0aW9uU3RhdHVzTm90RGV0ZXJtaW5lZDoKLSAgICAg
ICAgICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFt0aGlzLCAmZnJhbWUs
IHByb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHByb3RlY3RlZFJlcXVlc3QuZ2V0KCkpLCB3ZWJW
aWV3ID0gUmV0YWluUHRyPFdLV2ViVmlldz4obV91aURlbGVnYXRlLm1fd2ViVmlldyldKEJPT0wg
YXV0aG9yaXplZCkgeworICAgICAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxv
Y2tQdHIoW3RoaXMsICZmcmFtZSwgcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocHJvdGVjdGVk
UmVxdWVzdC5nZXQoKSksIHdlYlZpZXcgPSBSZXRhaW5QdHI8V0tXZWJWaWV3PihtX3VpRGVsZWdh
dGUubV93ZWJWaWV3KSwgdG9wTGV2ZWxPcmlnaW4gPSBXVEZNb3ZlKHRvcExldmVsT3JpZ2luKV0o
Qk9PTCBhdXRob3JpemVkKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFhdXRob3JpemVkKSB7CiAg
ICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZFJlcXVlc3QtPmRlbnkoVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9u
RGVuaWVkKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMo
ZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QsIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURl
bGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3ZWJWaWV3LmdldCgpKTsKKyAgICAgICAgICAgICAg
ICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGZyYW1lLCB0b3BMZXZlbE9y
aWdpbiwgcHJvdGVjdGVkUmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVs
ZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwgKndlYlZpZXcuZ2V0KCkpOwogICAgICAgICAgICAgfSk7
CiAKICAgICAgICAgICAgIFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIHJlcXVlc3RBY2Nlc3NG
b3JNZWRpYVR5cGU6Z2V0QVZNZWRpYVR5cGVWaWRlbygpIGNvbXBsZXRpb25IYW5kbGVyOmRlY2lz
aW9uSGFuZGxlci5nZXQoKV07CkBAIC05NTIsNyArOTY2LDcgQEAgYm9vbCBVSURlbGVnYXRlOjpV
SUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFn
ZVByb3gKICAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNEZW5pZWQ6CiAgICAgICAg
IGNhc2UgQVZBdXRob3JpemF0aW9uU3RhdHVzUmVzdHJpY3RlZDoKICAgICAgICAgICAgIHJlcXVl
c3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NE
ZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNhc2UgQVZBdXRob3JpemF0aW9uU3RhdHVz
Tm90RGV0ZXJtaW5lZDoKICAgICAgICAgICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJs
b2NrUHRyKFtwcm90ZWN0ZWRSZXF1ZXN0ID0gbWFrZVJlZihyZXF1ZXN0KSwgcmVxdWVzdENhbWVy
YUF1dGhvcml6YXRpb25dKEJPT0wgYXV0aG9yaXplZCkgewogICAgICAgICAgICAgICAgIGlmICgh
YXV0aG9yaXplZCkgewpAQCAtOTY4LDUzICs5ODIsNjEgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNs
aWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVBy
b3gKICAgICB9IGVsc2UKICAgICAgICAgcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb24oKTsKICNl
bHNlCi0gICAgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzKGZyYW1lLCBy
ZXF1ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRl
LmdldCgpLCAqbV91aURlbGVnYXRlLm1fd2ViVmlldyk7CisgICAgcmVxdWVzdFVzZXJNZWRpYUF1
dGhvcml6YXRpb25Gb3JGcmFtZShmcmFtZSwgdG9wTGV2ZWxPcmlnaW4sIHJlcXVlc3QsIChpZCA8
V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICptX3Vp
RGVsZWdhdGUubV93ZWJWaWV3KTsKICNlbmRpZgogI2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9w
TGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KQordm9p
ZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2lu
KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlP
cmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmln
aW4sIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KQogewogICAgIGF1dG8g
ZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKLSAgICBpZiAoIWRlbGVn
YXRlIHx8ICFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0NoZWNrVXNlck1l
ZGlhUGVybWlzc2lvbkZvclVSTE1haW5GcmFtZVVSTEZyYW1lSWRlbnRpZmllckRlY2lzaW9uSGFu
ZGxlcikgeworICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3SXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWVEZWNpc2lvbkhhbmRs
ZXIpIHsKICAgICAgICAgcmVxdWVzdC5zZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKGZhbHNlKTsKLSAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBXS1dlYlZp
ZXcgKndlYlZpZXcgPSBtX3VpRGVsZWdhdGUubV93ZWJWaWV3OwotICAgIGNvbnN0IFdlYkZyYW1l
UHJveHkqIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0gICAgVVJMIHJl
cXVlc3RGcmFtZVVSTChVUkwoKSwgZnJhbWUudXJsKCkpOwotICAgIFVSTCBtYWluRnJhbWVVUkwo
VVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOworICAgIGNvbnN0IGF1dG8gbWFpbkZyYW1lID0gZnJh
bWUucGFnZSgpLT5tYWluRnJhbWUoKTsKKworICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzppc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFt
ZTpkZWNpc2lvbkhhbmRsZXI6KV0pIHsKKyAgICAgICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlv
bkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRlbGVnYXRlLmdldCgpLCBAc2VsZWN0b3IoX3dl
YlZpZXc6aXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWU6ZGVjaXNpb25IYW5kbGVyOikp
OworICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbcHJvdGVjdGVk
UmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXShC
T09MIGF1dGhvcml6ZWQpIHsKKyAgICAgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFu
ZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKKworICAgICAgICAgICAgcHJv
dGVjdGVkUmVxdWVzdC0+c2V0VXNlck1lZGlhQWNjZXNzSW5mbyhhdXRob3JpemVkKTsKKyAgICAg
ICAgfSk7CisKKyAgICAgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dl
YlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBpc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JG
cmFtZTp3cmFwcGVyKEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUoKm1haW5GcmFtZSwgdG9wTGV2ZWxP
cmlnaW4uc2VjdXJpdHlPcmlnaW4oKSkpIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIu
Z2V0KCldOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBjaGVja2VyID0gQ29t
cGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRlbGVnYXRlLmdldCgpLCBAc2VsZWN0
b3IoX3dlYlZpZXc6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1haW5GcmFtZVVSTDpm
cmFtZUlkZW50aWZpZXI6ZGVjaXNpb25IYW5kbGVyOikpOworICAgIGF1dG8gZGVjaXNpb25IYW5k
bGVyID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRSZXF1ZXN0ID0gbWFrZVJlZihyZXF1ZXN0KSwg
Y2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildKE5TU3RyaW5nKiwgQk9PTCBhdXRob3JpemVkKSB7
CisgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25I
YW5kbGVyKCk7CiAKLSAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbcHJv
dGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCldKE5TU3RyaW5nKiwgQk9PTCBhdXRob3Jp
emVkKSB7CiAgICAgICAgIHByb3RlY3RlZFJlcXVlc3QtPnNldFVzZXJNZWRpYUFjY2Vzc0luZm8o
YXV0aG9yaXplZCk7CiAgICAgfSk7CiAKLSAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilk
ZWxlZ2F0ZSBfd2ViVmlldzp3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDpy
ZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6
ZnJhbWUuZnJhbWVJRCgpIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwor
ICAgIFVSTCByZXF1ZXN0RnJhbWVVUkwoVVJMKCksIGZyYW1lLnVybCgpKTsKKyAgICBVUkwgbWFp
bkZyYW1lVVJMKFVSTCgpLCBtYWluRnJhbWUtPnVybCgpKTsKIAotICAgIHJldHVybiB0cnVlOwor
ICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxl
Z2F0ZS5tX3dlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVlc3RGcmFt
ZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjpmcmFtZS5mcmFt
ZUlEKCkgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CiB9CiAKIHZvaWQg
VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBXS1dlYlZpZXcg
KndlYlZpZXcgPSBtX3VpRGVsZWdhdGUubV93ZWJWaWV3OworCisgICAgW3dlYlZpZXcgZGlkQ2hh
bmdlVmFsdWVGb3JLZXk6QCJtZWRpYUNhcHR1cmVTdGF0ZSJdOworCiAgICAgYXV0byBkZWxlZ2F0
ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOwogICAgIGlmICghZGVsZWdhdGUgfHwg
IW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3TWVkaWFDYXB0dXJlU3RhdGVE
aWRDaGFuZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlIG1l
ZGlhQ2FwdHVyZVN0YXRlID0gX1dLTWVkaWFDYXB0dXJlU3RhdGVOb25lOwotICAgIGlmIChzdGF0
ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkK
LSAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVN
aWNyb3Bob25lOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0Fj
dGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKLSAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dL
TWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1lcmE7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIG1lZGlh
Q2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRNaWNyb3Bob25lOwotICAg
IGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkVmlkZW9DYXB0dXJl
RGV2aWNlKQotICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0
ZU11dGVkQ2FtZXJhOwotCi0gICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUg
X3dlYlZpZXc6d2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTptZWRpYUNhcHR1cmVT
dGF0ZV07CisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6
d2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTp0b1dLTWVkaWFDYXB0dXJlU3RhdGUo
c3RhdGUpXTsKIH0KIAogdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3Qg
dG90YWxCeXRlc05lZWRlZCwgRnVuY3Rpb248dm9pZCAodW5zaWduZWQgbG9uZyBsb25nKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oCmluZGV4IGQ5MWYwNGZmZGFiOGQxNDI0NTRk
NTA2M2ZlMTdmMGViZmE4MzM0ZWIuLjZhMDg5NTA2Y2VhMzg4ZDFkNGMzZDZkZWZkYTVmZTBlMGFl
ZTU3YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHkuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5KGZyYW1l
SUQsIFdURk1vdmUoaGFuZGxlciksIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBX
VEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pKSk7CiAgICAgfQogCisgICAgdm9pZCBkZW55
KCkgeyBzZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKGZhbHNlKTsgfQogICAgIHZvaWQgc2V0VXNlck1l
ZGlhQWNjZXNzSW5mbyhib29sKTsKICAgICB2b2lkIGludmFsaWRhdGUoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGU3YjM3MDg0ZDliMjFjODU3OGIxNjU4MTdk
ZTJkYzk2MDNlMzUzOGUuLjRjNGM5OWI4NTIxMGNjMjVmOWRhYzVlMTk3NDhmYzQ2N2YzZjQ2NzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTM3NCw4ICszNzQsNyBA
QCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNl
ck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKLSAgICAgICAgaWYgKCFtX3BhZ2UudWlDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdChtX3BhZ2UsICptX3BhZ2UucHJvY2VzcygpLndlYkZyYW1lKGZy
YW1lSUQpLCBXVEZNb3ZlKHVzZXJNZWRpYU9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxPcmlnaW4p
LCBwZW5kaW5nUmVxdWVzdC5nZXQoKSkpCi0gICAgICAgICAgICB1c2VyTWVkaWFBY2Nlc3NXYXNE
ZW5pZWQodXNlck1lZGlhSUQsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJN
ZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6VXNlck1lZGlhRGlzYWJsZWQpOworICAgICAgICBtX3Bh
Z2UudWlDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCht
X3BhZ2UsICptX3BhZ2UucHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQpLCBXVEZNb3ZlKHVzZXJN
ZWRpYU9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxPcmlnaW4pLCBwZW5kaW5nUmVxdWVzdC5nZXQo
KSk7CiAgICAgfTsKIAogICAgIGF1dG8gcmVxdWVzdElEID0gZ2VuZXJhdGVSZXF1ZXN0SUQoKTsK
QEAgLTQxNywxMCArNDE2LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6Z2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odWludDY0X3QKICAgICBhdXRvIHJl
cXVlc3QgPSBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6Y3JlYXRlKGZyYW1lSUQsIFdU
Rk1vdmUoaGFuZGxlciksIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3Zl
KHRvcExldmVsRG9jdW1lbnRPcmlnaW4pKTsKIAogICAgIG1fcGVuZGluZ0RldmljZVJlcXVlc3Rz
LmFkZChyZXF1ZXN0SUQsIHJlcXVlc3QuY29weVJlZigpKTsKLSAgICBpZiAoIW1fcGFnZS51aUNs
aWVudCgpLmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihtX3BhZ2UsICptX3BhZ2Uu
cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQpLCB1c2VyTWVkaWFPcmlnaW4uZ2V0KCksIHRvcExl
dmVsT3JpZ2luLmdldCgpLCByZXF1ZXN0LmdldCgpKSkgewotICAgICAgICBtX3BlbmRpbmdEZXZp
Y2VSZXF1ZXN0cy50YWtlKHJlcXVlc3RJRCk7Ci0gICAgICAgIGhhbmRsZXIoZmFsc2UpOwotICAg
IH0KKyAgICBtX3BhZ2UudWlDbGllbnQoKS5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmln
aW4obV9wYWdlLCAqbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKSwgdXNlck1lZGlh
T3JpZ2luLmdldCgpLCB0b3BMZXZlbE9yaWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSk7CiB9CiAK
IGJvb2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50ZWRW
aWRlb09yQXVkaW9BY2Nlc3ModWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4m
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAppbmRleCA1OTgwZGM3MDlhMDAyODVkMGFh
OGU3MzVjZDMwODE5N2M5MTE4YmRiLi5hYzgwNWU3ODhiZTIzMTdlMGE3YWFlYjcxODkwOWNmNDVi
Y2E4OTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGFsbG93KCk7CiAKICAgICBlbnVtIGNsYXNzIFVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJl
YXNvbiB7IE5vQ29uc3RyYWludHMsIFVzZXJNZWRpYURpc2FibGVkLCBOb0NhcHR1cmVEZXZpY2Vz
LCBJbnZhbGlkQ29uc3RyYWludCwgSGFyZHdhcmVFcnJvciwgUGVybWlzc2lvbkRlbmllZCwgT3Ro
ZXJGYWlsdXJlIH07Ci0gICAgdm9pZCBkZW55KFVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbik7
CisgICAgdm9pZCBkZW55KFVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiA9IFVzZXJNZWRpYUFj
Y2Vzc0RlbmlhbFJlYXNvbjo6VXNlck1lZGlhRGlzYWJsZWQpOwogCiAgICAgdm9pZCBpbnZhbGlk
YXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDJlOWYwZDg4ODFhNTVmMTAyYzAwNzE3NGMyZWNlMzExMjI4ZTJjODkuLjBmMWYy
MTVlNjBkYmM0YzZhM2E5YTI2N2EwZjE3OTIwYjVhYzFiNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzAwMCw2ICszMDAwLDggQEAK
IAkJNDEwNDgyQ0IxREREMkZCNTAwRjAwNkQwIC8qIFJUQ05ldHdvcmsuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRDTmV0d29yay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxMDQ4MkNDMURERDJGQjUwMEYwMDZEMCAvKiBSVENOZXR3b3JrLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ05ldHdvcmsuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMTQzNjMyMEY2NzdCMTAwMjZGOTEyIC8qIEluamVjdFVz
ZXJTY3JpcHRJbW1lZGlhdGVseS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bmplY3RVc2VyU2NyaXB0SW1tZWRpYXRlbHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDExMjg2RUYyMUM4QTkwQzAwM0E4NTUwIC8qIE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDExMjg2RjAyMUM4QTkwRDAwM0E4NTUwIC8q
IE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDExMkI1NDcxRjlGRDNBQjAwRTY3ODc1IC8qIE5ldHdvcmtSVENSZXNvbHZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUlRDUmVzb2x2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEyQjU0NzFGOUZEM0FCMDBF
Njc5ODYgLyogTmV0d29ya1JUQ1Jlc29sdmVyQ29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1JUQ1Jlc29sdmVyQ29jb2EuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTEyQjU0ODFGOUZEM0FDMDBFNjc4NzUgLyogTmV0d29ya1JU
Q1Jlc29sdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtSVENS
ZXNvbHZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTMwNSw2ICs1MzA3LDgg
QEAKIAkJCQkwRjBDMzY1OTE4QzA1NTU4MDBGNjA3RDcgLyogTGF5ZXJSZXByZXNlbnRhdGlvbi5o
ICovLAogCQkJCTdBODIxRjRCMUUyRjY2NDgwMDYwNDU3NyAvKiBMZWdhY3lDdXN0b21Qcm90b2Nv
bE1hbmFnZXJDbGllbnQuaCAqLywKIAkJCQk3QTgyMUY0RDFFMkY2NzlFMDA2MDQ1NzcgLyogTGVn
YWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tICovLAorCQkJCTQxMTI4NkVGMjFDOEE5
MEMwMDNBODU1MCAvKiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCAqLywKKwkJCQk0MTEyODZGMDIx
QzhBOTBEMDAzQTg1NTAgLyogTWVkaWFDYXB0dXJlVXRpbGl0aWVzLm1tICovLAogCQkJCTFBQkMz
REY0MTg5OUU0MzcwMDRGMDYyNiAvKiBOYXZpZ2F0aW9uU3RhdGUuaCAqLywKIAkJCQkxQUJDM0RG
MzE4OTlFNDM3MDA0RjA2MjYgLyogTmF2aWdhdGlvblN0YXRlLm1tICovLAogCQkJCTVDNkNFNkQz
MUY1OUVBMzUwMDA3QzZDQiAvKiBQYWdlQ2xpZW50SW1wbENvY29hLmggKi8sCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzY4ZGI0YzM3NDE1NTY2
YmIwODViZGY4MTRhYzUyYTJkZTM4YWZmMi4uZTc1YTU5ODA5NGYwYmJiMjBkNWIzMTkzYTYwYTMw
OTg4ZGU0NWYzNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE4LTEyLTIwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBuZXcgU1BJIGZvciBjb250cm9sbGluZyBnZXRV
c2VyTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5Mjc5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm06CisgICAgICAg
ICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIF93ZWJWaWV3OnJlcXVlc3RVc2VyTWVkaWFB
dXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAg
ICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIF93ZWJWaWV3OmlzTWVkaWFDYXB0dXJlQXV0
aG9yaXplZEZvckZyYW1lOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tOgorICAgICAgICAoLVtO
YXZpZ2F0aW9uV2hpbGVHZXRVc2VyTWVkaWFQcm9tcHREaXNwbGF5ZWRVSURlbGVnYXRlIF93ZWJW
aWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNp
c2lvbkhhbmRsZXI6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0
VXNlck1lZGlhUmVwcm9tcHQubW06CisgICAgICAgICgtW0dldFVzZXJNZWRpYVJlcHJvbXB0VUlE
ZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1l
OmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbToKKyAgICAgICAgKC1bTWVkaWFT
dHJlYW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJl
QXV0aG9yaXphdGlvbkZvckZyYW1lOmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW06
CisgICAgICAgICgtW1VzZXJNZWRpYVVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2Fw
dHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAg
ICAgICAgKC1bVXNlck1lZGlhVUlEZWxlZ2F0ZSBfd2ViVmlldzppc01lZGlhQ2FwdHVyZUF1dGhv
cml6ZWRGb3JGcmFtZTpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW06Cisg
ICAgICAgICgtW1NpbXVsYXRlRmFpbGVkU2FuZGJveFVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVz
dE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxl
cjpdKToKKyAgICAgICAgKC1bU2ltdWxhdGVGYWlsZWRTYW5kYm94VUlEZWxlZ2F0ZSBfd2ViVmll
dzppc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTpkZWNpc2lvbkhhbmRsZXI6XSk6CisK
IDIwMTgtMTItMjAgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAg
ICAgIHdlYmtpdHB5OiBBdXRvaW5zdGFsbCBwYWNrYWdlIFVSTHMgaGF2ZSBjaGFuZ2VkCmRpZmYg
LS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIu
bSBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tCmlu
ZGV4IDNlNzM5ZDdjOTE1NTM4ZTAwMzI5Y2ZmMGMwNDdhYWE3MGZkNGExYmYuLjliNDgxMmMxNzRj
YzMxNGNkMThmNDFmZTEzYzliNTBiNzMxODk5ZjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93
c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tCisrKyBiL1Rvb2xzL01pbmlCcm93
c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tCkBAIC03OTEsMTQgKzc5MSwxNCBA
QCAtICh2b2lkKWZpbmRCYXJWaWV3RGlkQ2hhbmdlSGVpZ2h0CiB7CiB9CiAKLS0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25G
b3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFp
bkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4p
KEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWU6KFdL
RnJhbWVJbmZvICopIG1haW5GcmFtZSBkZXZpY2VzOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNl
cyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5k
bGVyCiB7CiAgICAgZGVjaXNpb25IYW5kbGVyKHRydWUpOwogfQogCi0tICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNV
UkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZp
ZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXiko
TlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCistICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZv
ckZyYW1lOihXS0ZyYW1lSW5mbyAqKSBtYWluRnJhbWUgZGVjaXNpb25IYW5kbGVyOih2b2lkIChe
KShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgogewotICAgIGRlY2lzaW9uSGFuZGxl
cihAIiIsIGZhbHNlKTsKKyAgICBkZWNpc2lvbkhhbmRsZXIoZmFsc2UpOwogfQogCiBAZW5kCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFO
YXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1l
ZGlhTmF2aWdhdGlvbi5tbQppbmRleCA0MjFlZWE0MjkyY2JhYjE0ZTk0NmY3OThhMzVkZWI3M2Y4
MmIzNTA4Li42YWY2Y2ZhOTgzMGZhNGM1ZGE3NzdiZmI4MzBhYzExODI0MTJiZTM0IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0
aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRp
YU5hdmlnYXRpb24ubW0KQEAgLTQyLDEyICs0MiwxMiBAQCBzdGF0aWMgYm9vbCBva1RvUHJvY2Vl
ZCA9IGZhbHNlOwogc3RhdGljIGJvb2wgc2hvdWxkUmVsZWFzZUluRW51bWVyYXRlID0gZmFsc2U7
CiAKIEBpbnRlcmZhY2UgTmF2aWdhdGlvbldoaWxlR2V0VXNlck1lZGlhUHJvbXB0RGlzcGxheWVk
VUlEZWxlZ2F0ZSA6IE5TT2JqZWN0PFdLVUlEZWxlZ2F0ZT4KLS0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2Vz
OihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJM
OihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0
aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0ZyYW1l
SW5mbyopIG1haW5GcmFtZSBkZXZpY2VzOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNp
c2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcjsKIC0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJM
OihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRl
bnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lk
ICheKShOU1N0cmluZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CiBA
ZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBOYXZpZ2F0aW9uV2hpbGVHZXRVc2VyTWVkaWFQcm9tcHRE
aXNwbGF5ZWRVSURlbGVnYXRlCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmlj
ZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJh
bWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9u
SGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVk
aWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyopIG1haW5GcmFtZSBk
ZXZpY2VzOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQg
KF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgogewogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJhYm91dDpi
bGFuayJdXV07CiAgICAgW3dlYlZpZXcgcmVsZWFzZV07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0Lm1tCmluZGV4IGM0
MzJmY2FlNWU4ZmM1OTc5MTIzM2U1MGJkYmI3NTMyY2JhYzRmN2UuLmQ5ZGI2NTdkNTBiMDQzYmQw
YmYyZGJmMTI4MTRiZWZjYzljYWFlN2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0Lm1tCkBAIC00MSwxMiArNDEs
MTIgQEAKIHN0YXRpYyBib29sIHdhc1Byb21wdGVkID0gZmFsc2U7CiAKIEBpbnRlcmZhY2UgR2V0
VXNlck1lZGlhUmVwcm9tcHRVSURlbGVnYXRlIDogTlNPYmplY3Q8V0tVSURlbGVnYXRlPgotLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9y
aXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAq
KXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoo
dm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CistICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9u
Rm9yRnJhbWU6KFdLRnJhbWVJbmZvKikgbWFpbkZyYW1lIGRldmljZXM6IChfV0tDYXB0dXJlRGV2
aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5k
bGVyOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRp
YVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWlu
RnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNp
c2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRl
Y2lzaW9uSGFuZGxlcjsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIEdldFVzZXJNZWRpYVJlcHJv
bXB0VUlEZWxlZ2F0ZQotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1
ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRl
dmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJM
IGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRs
ZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2Fw
dHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTooV0tGcmFtZUluZm8qKSBtYWluRnJhbWUgZGV2aWNl
czogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShC
T09MKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICB3YXNQcm9tcHRlZCA9IHRydWU7CiAgICAgZGVj
aXNpb25IYW5kbGVyKFlFUyk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KaW5kZXggMWVjY2QwYTZl
ZTMzMTY0MjYzMmQ0ZDVjNmRmMGJiY2QwMmFlMmY0My4uY2FhNzlkZDRhMjVlNWExNWRlYmJkNTU0
NjFmYWNhNGY2MGI2NjE0ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQpAQCAtNDAsMTMgKzQw
LDEzIEBACiBzdGF0aWMgYm9vbCBoYXNSZWNpZXZlZENvcnJlY3RDYXB0dXJlU3RhdGUgPSBmYWxz
ZTsKIAogQGludGVyZmFjZSBNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWRVSURlbGVnYXRlIDogTlNP
YmplY3Q8V0tVSURlbGVnYXRlPgotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZp
Y2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZy
YW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lv
bkhhbmRsZXI7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RN
ZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvKikgbWFpbkZyYW1l
IGRldmljZXM6IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1h
aW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRl
Z2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpz
YWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlh
Q2FwdHVyZVN0YXRlKXN0YXRlOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gTWVkaWFTdHJlYW1U
cmFja0RldGFjaGVkVUlEZWxlZ2F0ZQotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVE
ZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFp
bkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNp
c2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVz
dE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTooV0tGcmFtZUluZm8qKSBtYWluRnJh
bWUgZGV2aWNlczogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2
b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICBkZWNpc2lvbkhhbmRsZXIoWUVT
KTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
VXNlck1lZGlhRGlzYWJsZWQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1VzZXJNZWRpYURpc2FibGVkLm1tCmluZGV4IDg4MzMzYzNmYmI2ODBlMTY1ZTdmMjYxYTYy
NmU1YjFkMTMxYjNiYWIuLjEwODVjNWVjMzc4ZmU2OTc4MzAxYmYyMmI5ZTJmODAzNTIzYzU2ZTQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1l
ZGlhRGlzYWJsZWQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Vc2VyTWVkaWFEaXNhYmxlZC5tbQpAQCAtMzksNyArMzksNiBAQAogCiAjaWYgV0tfQVBJX0VO
QUJMRUQKIAotc3RhdGljIGJvb2wgcmVmdXNlUmVxdWVzdCA9IGZhbHNlOwogc3RhdGljIGJvb2wg
d2FzUHJvbXB0ZWQgPSBmYWxzZTsKIAogc3RhdGljIGJvb2wgcmVjZWl2ZWRTY3JpcHRNZXNzYWdl
ID0gZmFsc2U7CkBAIC02MiwxNSArNjEsMTAgQEAgc3RhdGljIFJldGFpblB0cjxXS1NjcmlwdE1l
c3NhZ2U+IGxhc3RTY3JpcHRNZXNzYWdlOwogCiBAaW1wbGVtZW50YXRpb24gVXNlck1lZGlhVUlE
ZWxlZ2F0ZQogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RV
c2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooTlNVSW50ZWdlcilkZXZpY2VzIHVybDoo
TlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhh
bmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZy
YW1lOihXS0ZyYW1lSW5mbyopIG1haW5GcmFtZSBkZXZpY2VzOiAoX1dLQ2FwdHVyZURldmljZXMp
ZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgog
ewogICAgIHdhc1Byb21wdGVkID0gdHJ1ZTsKIAotICAgIGlmIChyZWZ1c2VSZXF1ZXN0KSB7Ci0g
ICAgICAgIGRlY2lzaW9uSGFuZGxlcihOTyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAg
ICBCT09MIG5lZWRzTWljcm9waG9uZUF1dGhvcml6ZWQgPSBkZXZpY2VzICYgX1dLQ2FwdHVyZURl
dmljZU1pY3JvcGhvbmU7CiAgICAgQk9PTCBuZWVkc0NhbWVyYUF1dGhvcml6ZWQgPSBkZXZpY2Vz
ICYgX1dLQ2FwdHVyZURldmljZUNhbWVyYTsKICAgICBpZiAoIW5lZWRzTWljcm9waG9uZUF1dGhv
cml6ZWQgJiYgIW5lZWRzQ2FtZXJhQXV0aG9yaXplZCkgewpAQCAtODEsMTQgKzc1LDkgQEAgc3Rh
dGljIFJldGFpblB0cjxXS1NjcmlwdE1lc3NhZ2U+IGxhc3RTY3JpcHRNZXNzYWdlOwogICAgIGRl
Y2lzaW9uSGFuZGxlcihZRVMpOwogfQogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZy
YW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIp
ZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKiwgQk9P
TCkpZGVjaXNpb25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1lOihXS0ZyYW1lSW5mbyAqKSBtYWluRnJh
bWUgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFu
ZGxlcgogewotICAgIGlmIChyZWZ1c2VSZXF1ZXN0KSB7Ci0gICAgICAgIGRlY2lzaW9uSGFuZGxl
cihuaWwsIE5PKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGRlY2lzaW9uSGFuZGxl
cihAIjB4OTg3NjU0MzIxIiwgTk8pOworICAgIGRlY2lzaW9uSGFuZGxlcihOTyk7CiB9CiBAZW5k
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNl
ck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0KaW5kZXggYzcz
Yzk4OTk0ZTQxNzMzNDkwMjU1MmE4NzhkZWY1ZDE3MjI1YmRmNC4uOWNkOTg1Zjc5ZjE0ZjM1Njk2
ZTU5NmRhYTEzYTkzY2EzMDRhODQyNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZh
aWxlZFNhbmRib3gubW0KQEAgLTM5LDcgKzM5LDYgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAK
LXN0YXRpYyBib29sIHJlZnVzZVJlcXVlc3QgPSBmYWxzZTsKIHN0YXRpYyBib29sIHdhc1Byb21w
dGVkID0gZmFsc2U7CiAKIHN0YXRpYyBib29sIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNl
OwpAQCAtNjIsMTUgKzYxLDEwIEBAIHN0YXRpYyBSZXRhaW5QdHI8V0tTY3JpcHRNZXNzYWdlPiBs
YXN0U2NyaXB0TWVzc2FnZTsKIAogQGltcGxlbWVudGF0aW9uIFNpbXVsYXRlRmFpbGVkU2FuZGJv
eFVJRGVsZWdhdGUKIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1
ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KE5TVUludGVnZXIpZGV2aWNlcyB1
cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25G
b3JGcmFtZTooV0tGcmFtZUluZm8qKSBtYWluRnJhbWUgZGV2aWNlczogKF9XS0NhcHR1cmVEZXZp
Y2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRs
ZXIKIHsKICAgICB3YXNQcm9tcHRlZCA9IHRydWU7CiAKLSAgICBpZiAocmVmdXNlUmVxdWVzdCkg
ewotICAgICAgICBkZWNpc2lvbkhhbmRsZXIoTk8pOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
CiAgICAgQk9PTCBuZWVkc01pY3JvcGhvbmVBdXRob3JpemVkID0gZGV2aWNlcyAmIF9XS0NhcHR1
cmVEZXZpY2VNaWNyb3Bob25lOwogICAgIEJPT0wgbmVlZHNDYW1lcmFBdXRob3JpemVkID0gZGV2
aWNlcyAmIF9XS0NhcHR1cmVEZXZpY2VDYW1lcmE7CiAgICAgaWYgKCFuZWVkc01pY3JvcGhvbmVB
dXRob3JpemVkICYmICFuZWVkc0NhbWVyYUF1dGhvcml6ZWQpIHsKQEAgLTgxLDE0ICs3NSw5IEBA
IHN0YXRpYyBSZXRhaW5QdHI8V0tTY3JpcHRNZXNzYWdlPiBsYXN0U2NyaXB0TWVzc2FnZTsKICAg
ICBkZWNpc2lvbkhhbmRsZXIoWUVTKTsKIH0KIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1h
aW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRl
Z2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICos
IEJPT0wpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBpc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTooV0tGcmFtZUluZm8gKikgbWFp
bkZyYW1lIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lv
bkhhbmRsZXIKIHsKLSAgICBpZiAocmVmdXNlUmVxdWVzdCkgewotICAgICAgICBkZWNpc2lvbkhh
bmRsZXIobmlsLCBOTyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkZWNpc2lvbkhh
bmRsZXIoQCIweDk4NzY1NDMyMSIsIE5PKTsKKyAgICBkZWNpc2lvbkhhbmRsZXIoTk8pOwogfQog
QGVuZAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358631</attachid>
            <date>2019-01-08 13:33:37 -0800</date>
            <delta_ts>2019-01-08 16:06:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192793-20190108133335.patch</filename>
            <type>text/plain</type>
            <size>54984</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYwNDU4ZjM2MWM5OGE4NDZk
ZTg4YzBiYjM0YmM0YWVmMzljMDQ2ODguLjU2MmY4YWY0MjIwM2Y4NmM0YmY3Y2UyODk3ZTJmNDYy
NjgxMmJkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTktMDEtMDggIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgZm9yIGNv
bnRyb2xsaW5nIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyNzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU29tZSB3ZWFrbmVzc2VzIG9mIHRoZSBjdXJyZW50IGdldFVzZXJNZWRp
YSBTUEkgd2VyZSBmb3VuZC4KKyAgICAgICAgSW4gcGFydGljdWxhcjoKKyAgICAgICAgLSBUaGUg
aGFzaCBzYWx0IHNob3VsZCBiZSBoYW5kbGVkIGJ5IFdlYktpdC4KKyAgICAgICAgLSBObyBuZWVk
IHRvIGV4cG9zZSB0aGUgZnJhbWUgVVJMLCBvbmx5IHRoZSB0b3AgbGV2ZWwgb3JpZ2luIGlzIG5l
ZWRlZC4KKyAgICAgICAgLSBUaGUgbmFtZXMgb2YgdGhlIGNhbGxiYWNrIGNhbiBiZSBpbXByb3Zl
ZC4KKyAgICAgICAgQWRkcmVzc2VkIHRoZXNlIGJ5IGNyZWF0aW5nIGEgbmV3IFNQSSB3aGljaCB3
aWxsIHJlcGxhY2UgdGhlIGN1cnJlbnQgb25lLgorICAgICAgICBUaGUgY3VycmVudCBTUEkgd2ls
bCBiZSByZW1vdmVkIGxhdGVyIG9uLgorCisgICAgICAgIERpZCBzb21lIHJlZmFjdG9yaW5nIGJ5
IG1ha2luZyB0aGUgY2FsbGJhY2tzIG5vdCByZXR1cm4gZmFsc2UuCisgICAgICAgIEluc3RlYWQs
IGltcGxlbWVudCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpbnNpZGUgdGhlIHJlcXVlc3Qgb2JqZWN0
cyBhcyBkZW55IG1ldGhvZHMuCisgICAgICAgIFNvbWUgZnVydGhlciByZWZhY3RvcmluZyB3aWxs
IGJlIGRvbmUgYXMgYSBmb2xsb3ctdXAgdG8gYmV0dGVyIGFsaWduIHRoZSBDIEFQSSB3aXRoIHRo
ZSBDb2NvYSBBUEkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6Cisg
ICAgICAgIChBUEk6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdCk6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25Gb3JPcmlnaW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAg
ICAgICAoV0tQYWdlU2V0UGFnZVVJQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9tZWRpYUNhcHR1cmVTdGF0ZV0p
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldE1lZGlhQ2FwdHVyZU11dGVkOl0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLm1tOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OnJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWUpOgor
ICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpV
SUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKFdl
YktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaDoKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OmRlbnkpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBl
cm1pc3Npb25JbmZvKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eS5oOgorCiAyMDE5LTAxLTA1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KIAogICAgICAgICBzZXJ2aWNlIHdvcmtlciBmZXRjaCBoYW5kbGVyIHJlc3VsdHMgaW4g
YmFkIHJlZmVycmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggYTU4NTViYTdlOTk5NzcwYTUy
N2UwMTcwODdmMDRlOTYzN2RmMjQ2Yi4uMmQ3ZjY5YzAwY2ZhZDk5YzJlMmI3NzU2MGViNWQ3YzRl
MjJhZDA1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMzIwLDYgKzMyMCw3IEBAIFVJUHJv
Y2Vzcy9Db2NvYS9GdWxsc2NyZWVuQ2xpZW50Lm1tCiBVSVByb2Nlc3MvQ29jb2EvR2xvYmFsRmlu
ZEluUGFnZVN0YXRlLm1tCiBVSVByb2Nlc3MvQ29jb2EvSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbQog
VUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5tbQorVUlQ
cm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbQogVUlQcm9jZXNzL0NvY29hL05h
dmlnYXRpb25TdGF0ZS5tbQogVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EubW0K
IFVJUHJvY2Vzcy9Db2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubW0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggNDNmZjc2M2I5MDQ4Y2M0MGE5
NjdkOTQ1NmJiZTAzYWNiYjk1MDI3Yy4uMDNkMTIzMDBkMTcxNjlmNDdjODFkYzI2MDFhNmE0MDcx
N2Q3MGFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAg
LTEyOSw4ICsxMjksOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgcnVuT3BlblBhbmVs
KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgT3BlblBhbmVsUGFyYW1ldGVycyosIFdlYktpdDo6
V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qo
V2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBTZWN1cml0eU9y
aWdpbiYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JikgeyB9Ci0gICAgdmlydHVhbCBib29sIGRlY2lk
ZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5
JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBTZWN1cml0eU9yaWdp
biYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpIHsgcmV0dXJuIGZh
bHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdp
bihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5
T3JpZ2luJiwgU2VjdXJpdHlPcmlnaW4mLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVj
a1Byb3h5JikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJL
aXQ6OldlYkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIFNlY3VyaXR5T3JpZ2luJiwgV2Vi
S2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JikgeyB9CisgICAgdmlydHVhbCB2
b2lkIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJLaXQ6OldlYlBhZ2VQcm94
eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgU2VjdXJpdHlPcmln
aW4mLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JikgeyB9CiAgICAgdmly
dHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdl
YktpdDo6V2ViUGFnZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBGdW5jdGlvbjx2b2lkKGJvb2wp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQogICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViS2l0OjpXZWJQYWdl
UHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYgcmVxdWVz
dGluZ0RvbWFpbiwgY29uc3QgV1RGOjpTdHJpbmcmIGN1cnJlbnREb21haW4sIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRs
ZXIodHJ1ZSk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5k
ZXggNjNkNTFiMWYxNTI0N2E3YTVjNDRmN2Q3MWVmNzdiZjViNGJhOTFkZC4uMDYyNWEyNGE4N2Zk
ZmE3OGUzMmIxODY3NDQwODZmYzk1ZTQ4MWVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCkBAIC0xODU1LDIyICsxODU1LDI0IEBAIHZvaWQgV0tQYWdlU2V0UGFn
ZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdr
Q2xpZW50CiAgICAgICAgICAgICBtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0KHRvQVBJKCZwYWdlKSwgdG9BUEkoJmZyYW1lKSwgdG9BUEkoJm9yaWdp
biksIHRvQVBJKEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZShzdGQ6OmV4Y2hh
bmdlKGNvbXBsZXRpb25IYW5kbGVyLCBudWxscHRyKSkucHRyKCkpLCBtX2NsaWVudC5iYXNlLmNs
aWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkm
IGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgQVBJ
OjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eSYgcGVybWlzc2lvblJlcXVlc3QpIGZpbmFsCisgICAgICAgIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBw
YWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmln
aW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBm
aW5hbAogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QpIHsKKyAgICAgICAgICAgICAgICBwZXJtaXNzaW9uUmVxdWVzdC5kZW55
KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICBtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCh0b0FQ
SSgmcGFnZSksIHRvQVBJKCZmcmFtZSksIHRvQVBJKCZ1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiks
IHRvQVBJKCZ0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgdG9BUEkoJnBlcm1pc3Npb25SZXF1ZXN0
KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmln
aW4oV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0
eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1
ZXN0KSBmaW5hbAorICAgICAgICB2b2lkIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdp
bihXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5
T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIHJlcXVl
c3QpIGZpbmFsCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICghbV9jbGllbnQuY2hlY2tVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgICAgIGlmICghbV9jbGllbnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3Jp
Z2luKSB7CisgICAgICAgICAgICAgICAgcmVxdWVzdC5kZW55KCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBtX2NsaWVudC5jaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4odG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b0FQ
SSgmdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCB0b0FQSSgmdG9wTGV2ZWxEb2N1bWVudE9yaWdp
biksIHRvQVBJKCZyZXF1ZXN0KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFn
ZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKSBmaW5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggY2Q5YTU0ZWUxNzUyNTI1
YmQ0MDlmYjk5YWNkMmViNTc5MDg5NmFjNS4uZWIzOGRjNzg5YzJhZjg5ZTUzYTRhYjIxMjY2Nzli
NGZjOTE2OGY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0xMDcsNiArMTA3LDggQEAgc3RydWN0IFVJ
RWRnZUluc2V0czsKIAogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBpbWFn
ZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkOihDR1NpemUpc2l6ZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CiAtIChOU0RpY3Rpb25hcnkgKilfZGF0YURldGVj
dGlvbkNvbnRleHRGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb246KF9XS0NhcHR1cmVE
ZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQp
KWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaXNN
ZWRpYUNhcHR1cmVBdXRob3JpemVkOih2b2lkICheKShfV0tDYXB0dXJlRGV2aWNlcyBhdXRob3Jp
emVkRGV2aWNlcykpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1
cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICop
bWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlk
ZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkp
OwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBl
cm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJh
bWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lv
bkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lz
aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsK
IC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVE
aWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEzKSwgaW9zKDExLjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDhlMWQ1M2Q3OTJiYzAyMjhiMGMwNzUzYTZkOTQzZjY1
NjAxODEzNDUuLjIzNWZkZTVjYTUxYjRhOWQ4YjZmNWE1NDE4YTAwYWE2NjkzNmVlYzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNDEs
NiArNDEsNyBAQAogI2ltcG9ydCAiSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oIgogI2ltcG9ydCAiTGVn
YWN5U2Vzc2lvblN0YXRlQ29kaW5nLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJN
ZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCIKICNpbXBvcnQgIk5hdmlnYXRpb25TdGF0ZS5oIgogI2lt
cG9ydCAiT2JqQ09iamVjdEdyYXBoLmgiCiAjaW1wb3J0ICJQYWdlQ2xpZW50LmgiCkBAIC01NTE0
LDYgKzU1MTUsMTYgQEAgLSAoQk9PTClfaXNJbkZ1bGxzY3JlZW4KICNlbmRpZgogfQogCistIChf
V0tNZWRpYUNhcHR1cmVTdGF0ZSlfbWVkaWFDYXB0dXJlU3RhdGUKK3sKKyAgICByZXR1cm4gV2Vi
S2l0Ojp0b1dLTWVkaWFDYXB0dXJlU3RhdGUoX3BhZ2UtPm1lZGlhU3RhdGVGbGFncygpKTsKK30K
KworLSAodm9pZClfc2V0TWVkaWFDYXB0dXJlTXV0ZWQ6KEJPT0wpbXV0ZWQKK3sKKyAgICBfcGFn
ZS0+c2V0TWVkaWFTdHJlYW1DYXB0dXJlTXV0ZWQobXV0ZWQpOworfQorCiAtICh2b2lkKV9tdXRl
TWVkaWFDYXB0dXJlCiB7CiAgICAgX3BhZ2UtPnNldE1lZGlhU3RyZWFtQ2FwdHVyZU11dGVkKHRy
dWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmgKaW5kZXggODU4MjJjZDIxZWFkMDE0Yzc0YzMxOThiNzQ2YWFhMWU5NDIxM2Nl
Yy4uOTI5ZDFiOTEwZDAyZDUzNzkxNzEyMjc4ODRlNzVkZjliYzUxMzZjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBA
IC0zOTYsNiArMzk2LDkgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RF
ZGdlKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRGdWxsc2NyZWVuRGVsZWdh
dGU6KSBpZDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+IF9mdWxsc2NyZWVuRGVsZWdhdGUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBCT09MIF9pc0luRnVsbHNjcmVlbiBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMi4zKSk7CiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLTWVkaWFD
YXB0dXJlU3RhdGUgX21lZGlhQ2FwdHVyZVN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCistICh2b2lkKV9zZXRNZWRpYUNhcHR1cmVN
dXRlZDooQk9PTCltdXRlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX211dGVNZWRpYUNhcHR1cmUgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfc2V0UGFnZU11dGVkOihfV0tN
ZWRpYU11dGVkU3RhdGUpbXV0ZWRTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyks
IGlvcygxMS4wKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCBiMDhjZTFkMGFmYzliOTRmMTAyNjQ1ZDE5YzY2MDY4
OGUyNTJjNDNjLi5jZDc3YTM4N2EzOTFkNjQ1MWUyOWMzNjU4YzNlNDZkZjA5MjBkZGI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQu
Y3BwCkBAIC0xODQsMTggKzE4NCwxNiBAQCBwcml2YXRlOgogICAgICAgICB3ZWJraXRXZWJWaWV3
TWFrZVBlcm1pc3Npb25SZXF1ZXN0KG1fd2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVT
VChnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CiAgICAgfQogCi0gICAgYm9v
bCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkm
LCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5hbAorICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVBy
b3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiBwZXJtaXNzaW9uUmVxdWVzdCkgZmluYWwK
ICAgICB7CiAgICAgICAgIEdSZWZQdHI8V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q+
IHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0Q3JlYXRlKHBlcm1pc3Npb25SZXF1ZXN0LCB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikpOwogICAgICAgICB3ZWJraXRXZWJWaWV3
TWFrZVBlcm1pc3Npb25SZXF1ZXN0KG1fd2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVT
VCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5nZXQoKSkpOwotICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKLSAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihX
ZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIHBlcm1pc3Npb25SZXF1
ZXN0KSBvdmVycmlkZQorICAgIHZvaWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2lu
KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4m
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcGVybWlzc2lvblJl
cXVlc3QpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBhdXRvIGRldmljZUluZm9QZXJtaXNzaW9u
UmVxdWVzdCA9IGFkb3B0R1JlZih3ZWJraXREZXZpY2VJbmZvUGVybWlzc2lvblJlcXVlc3RDcmVh
dGUocGVybWlzc2lvblJlcXVlc3QsIHBhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpLmRldmljZUlkSGFz
aFNhbHRTdG9yYWdlKCkpKTsKICAgICAgICAgd2Via2l0V2ViVmlld01ha2VQZXJtaXNzaW9uUmVx
dWVzdChtX3dlYlZpZXcsIFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1QoZGV2aWNlSW5mb1Blcm1p
c3Npb25SZXF1ZXN0LmdldCgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFn
ZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIGZpbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwMDQwM2ZmZDgzOWIx
ZDY3MzkwYjIwNTI1MDI0MzJhZTFhMTZiMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMuaApAQCAtMCwwICsxLDM5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBXS19BUElfRU5BQkxFRAorCisj
aW1wb3J0ICJXS1dlYlZpZXdQcml2YXRlLmgiCisjaW1wb3J0IDxXZWJDb3JlL01lZGlhUHJvZHVj
ZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK19XS01lZGlhQ2FwdHVyZVN0YXRlIHRvV0tN
ZWRpYUNhcHR1cmVTdGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mp
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWFlZTM4ZWI2NGUyZTI0ODQxNjA4NzY4OGYzZmM2MDBkNmExMTI4YwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGll
cy5tbQpAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIk1lZGlhQ2FwdHVyZVV0aWxpdGllcy5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK19XS01lZGlhQ2FwdHVyZVN0YXRlIHRvV0tNZWRpYUNh
cHR1cmVTdGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUp
Cit7CisgICAgX1dLTWVkaWFDYXB0dXJlU3RhdGUgbWVkaWFDYXB0dXJlU3RhdGUgPSBfV0tNZWRp
YUNhcHR1cmVTdGF0ZU5vbmU7CisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgICAgICBtZWRpYUNhcHR1cmVTdGF0
ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZU1pY3JvcGhvbmU7CisgICAgaWYgKHN0YXRl
ICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQor
ICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNh
bWVyYTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZEF1
ZGlvQ2FwdHVyZURldmljZSkKKyAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFD
YXB0dXJlU3RhdGVNdXRlZE1pY3JvcGhvbmU7CisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgICAgIG1lZGlhQ2Fw
dHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRDYW1lcmE7CisKKyAgICByZXR1
cm4gbWVkaWFDYXB0dXJlU3RhdGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAppbmRleCAzOGRk
N2VjYmNmYjVmMmE2MGZjODZjOThiZThiMGYzMWE4NTRmZjg2Li44ZmQxNmE5ODEyYzA0YWRmMDg1
ZTU0NGFlZTM4MDRjODIyZDVmMTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5oCkBAIC0xMjMsOCArMTIzLDggQEAgcHJpdmF0ZToKICNlbmRpZgogICAgICAg
ICBib29sIG5lZWRzRm9udEF0dHJpYnV0ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3VpRGVs
ZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1dGVzOyB9
CiAgICAgICAgIHZvaWQgZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9u
dEF0dHJpYnV0ZXMmKSBmaW5hbDsKLSAgICAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpT
ZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5JikgZmluYWw7Ci0gICAgICAgIGJvb2wgY2hlY2tVc2VyTWVkaWFQZXJtaXNz
aW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5
T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5JikgZmluYWw7CisgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlP
cmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eSYpIGZpbmFsOworICAgICAgICB2b2lkIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9y
aWdpbihXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYs
IEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIGZp
bmFsOwogICAgICAgICB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgZmluYWw7CiAgICAgICAgIHZvaWQgcHJpbnRG
cmFtZShXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JikgZmluYWw7CiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKQEAgLTE5OCw4ICsxOTgsOCBAQCBwcml2YXRlOgogICAgICAgICBib29sIHdl
YlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUgOiAxOwogICAgICAgICBib29sIHdlYlZp
ZXdEaWRFbnRlckZ1bGxzY3JlZW4gOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRFeGl0RnVs
bHNjcmVlbiA6IDE7Ci0gICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3RVc2VyTWVkaWFBdXRob3Jp
emF0aW9uRm9yRGV2aWNlc1VSTE1haW5GcmFtZVVSTERlY2lzaW9uSGFuZGxlciA6IDE7Ci0gICAg
ICAgIGJvb2wgd2ViVmlld0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTE1haW5GcmFtZVVS
TEZyYW1lSWRlbnRpZmllckRlY2lzaW9uSGFuZGxlciA6IDE7CisgICAgICAgIGJvb2wgd2ViVmll
d1JlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWVEZWNpc2lvbkhhbmRsZXIg
OiAxOworICAgICAgICBib29sIHdlYlZpZXdJc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFt
ZURlY2lzaW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld01lZGlhQ2FwdHVyZVN0
YXRlRGlkQ2hhbmdlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkQ2hhbmdlRm9udEF0dHJp
YnV0ZXMgOiAxOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBjMTY4NTNmYTRkYjFjZTQ5MjQwMmFmY2Vl
ZGE1MTBmYjYwY2M2MmVlLi5mNmIwMmRlYzk1OTUwMTExNzVhNzQzOWUxYWEzZTNkYzJjNTAyNzhm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTMx
LDYgKzMxLDcgQEAKICNpbXBvcnQgIkFQSUZyYW1lSW5mby5oIgogI2ltcG9ydCAiQVBJSGl0VGVz
dFJlc3VsdC5oIgogI2ltcG9ydCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIgorI2lt
cG9ydCAiTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJOYXRpdmVXZWJXaGVlbEV2
ZW50LmgiCiAjaW1wb3J0ICJOYXZpZ2F0aW9uQWN0aW9uRGF0YS5oIgogI2ltcG9ydCAiVXNlck1l
ZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaCIKQEAgLTE1MCw4ICsxNTEsOSBAQCB2b2lkIFVJRGVs
ZWdhdGU6OnNldERlbGVnYXRlKGlkIDxXS1VJRGVsZWdhdGU+IGRlbGVnYXRlKQogICAgIG1fZGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdEaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludCA9IFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZE5vdEhhbmRsZVRh
cEFzQ2xpY2tBdFBvaW50OildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLnByZXNlbnRpbmdWaWV3
Q29udHJvbGxlckZvcldlYlZpZXcgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3RvcihfcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldzopXTsKICNlbmRpZgotICAg
IG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZv
ckRldmljZXNVUkxNYWluRnJhbWVVUkxEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXph
dGlvbkZvckRldmljZXM6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6KV07Ci0gICAg
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTE1h
aW5GcmFtZVVSTEZyYW1lSWRlbnRpZmllckRlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmNoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkZvclVSTDptYWluRnJhbWVVUkw6ZnJhbWVJZGVudGlmaWVyOmRlY2lzaW9uSGFuZGxlcjopXTsK
KyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6
YXRpb25Gb3JGcmFtZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2
aWNlczp1cmw6bWFpbkZyYW1lVVJMOmRlY2lzaW9uSGFuZGxlcjopXSB8fCBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0
aG9yaXphdGlvbjpkZWNpc2lvbkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0lzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1lRGVjaXNpb25IYW5kbGVyID0gW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6Y2hlY2tVc2VyTWVk
aWFQZXJtaXNzaW9uRm9yVVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVjaXNpb25I
YW5kbGVyOildIHx8IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3OmlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZDopXTsKKwogICAgIG1fZGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdNZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOild
OwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRDaGFuZ2VGb250QXR0cmlidXRlcyA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZENoYW5n
ZUZvbnRBdHRyaWJ1dGVzOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLmRhdGFEZXRlY3Rpb25D
b250ZXh0Rm9yV2ViVmlldyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF9kYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldlYlZpZXc6KV07CkBAIC04NTgsMTAgKzg2MCwyNCBA
QCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5Kiwg
V2ViRnJhbWVQcm94eSogd2ViRnJhbWVQcgogfQogI2VuZGlmCiAKK3ZvaWQgVUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6OmRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZvbnRBdHRy
aWJ1dGVzJiBmb250QXR0cmlidXRlcykKK3sKKyAgICBpZiAoIW5lZWRzRm9udEF0dHJpYnV0ZXMo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBwcml2YXRlVUlEZWxlZ2F0ZSA9IChpZCA8
V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CisgICAg
W3ByaXZhdGVVSURlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgZGlkQ2hh
bmdlRm9udEF0dHJpYnV0ZXM6Zm9udEF0dHJpYnV0ZXMuY3JlYXRlRGljdGlvbmFyeSgpLmdldCgp
XTsKK30KKwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi1zdGF0aWMgdm9pZCByZXF1ZXN0VXNl
ck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUs
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QsIGlkIDxXS1VJRGVsZWdh
dGVQcml2YXRlPiBkZWxlZ2F0ZSwgV0tXZWJWaWV3JiB3ZWJWaWV3KQorc3RhdGljIHZvaWQgcmVx
dWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JGcmFtZShjb25zdCBXZWJGcmFtZVByb3h5JiBm
cmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QsIGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiBkZWxl
Z2F0ZSwgV0tXZWJWaWV3JiB3ZWJWaWV3KQogewotICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0g
bWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRSZXF1ZXN0ID0gbWFrZVJlZihyZXF1ZXN0KV0oQk9PTCBh
dXRob3JpemVkKSB7CisgICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hl
Y2tlcjo6Y3JlYXRlKGRlbGVnYXRlLCBAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2Fw
dHVyZUF1dGhvcml6YXRpb246ZGVjaXNpb25IYW5kbGVyOikpOworICAgIGF1dG8gZGVjaXNpb25I
YW5kbGVyID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRSZXF1ZXN0ID0gbWFrZVJlZihyZXF1ZXN0
KSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildKEJPT0wgYXV0aG9yaXplZCkgeworICAgICAg
ICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigp
OworCiAgICAgICAgIGlmICghYXV0aG9yaXplZCkgewogICAgICAgICAgICAgcHJvdGVjdGVkUmVx
dWVzdC0+ZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nl
c3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOwogICAgICAgICAgICAgcmV0dXJuOwpA
QCAtODcxLDEwICs4ODcsNiBAQCBzdGF0aWMgdm9pZCByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXph
dGlvbkZvckRldmljZXMoY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsCiAgICAgICAgIHByb3Rl
Y3RlZFJlcXVlc3QtPmFsbG93KGF1ZGlvRGV2aWNlVUlELCB2aWRlb0RldmljZVVJRCk7CiAgICAg
fSk7CiAKLSAgICBjb25zdCBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUgPSBmcmFtZS5wYWdlKCkt
Pm1haW5GcmFtZSgpOwotICAgIFVSTCByZXF1ZXN0RnJhbWVVUkwoVVJMKCksIGZyYW1lLnVybCgp
KTsKLSAgICBVUkwgbWFpbkZyYW1lVVJMKFVSTCgpLCBtYWluRnJhbWUtPnVybCgpKTsKLQogICAg
IF9XS0NhcHR1cmVEZXZpY2VzIGRldmljZXMgPSAwOwogICAgIGlmIChyZXF1ZXN0LnJlcXVpcmVz
QXVkaW9DYXB0dXJlKCkpCiAgICAgICAgIGRldmljZXMgfD0gX1dLQ2FwdHVyZURldmljZU1pY3Jv
cGhvbmU7CkBAIC04ODUsMjcgKzg5NywyOSBAQCBzdGF0aWMgdm9pZCByZXF1ZXN0VXNlck1lZGlh
QXV0aG9yaXphdGlvbkZvckRldmljZXMoY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsCiAgICAg
ICAgIEFTU0VSVCghKGRldmljZXMgJiBfV0tDYXB0dXJlRGV2aWNlQ2FtZXJhKSk7CiAgICAgfQog
Ci0gICAgYXV0byBwcm90ZWN0ZWRXZWJWaWV3ID0gUmV0YWluUHRyPFdLV2ViVmlldz4oJndlYlZp
ZXcpOwotICAgIFtkZWxlZ2F0ZSBfd2ViVmlldzpwcm90ZWN0ZWRXZWJWaWV3LmdldCgpIHJlcXVl
c3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczpkZXZpY2VzIHVybDpyZXF1ZXN0RnJh
bWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25I
YW5kbGVyLmdldCgpXTsKLX0KLSNlbmRpZgorICAgIGNvbnN0IFdlYkZyYW1lUHJveHkqIG1haW5G
cmFtZSA9IGZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCk7CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlD
bGllbnQ6OmRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZvbnRBdHRyaWJ1
dGVzJiBmb250QXR0cmlidXRlcykKLXsKLSAgICBpZiAoIW5lZWRzRm9udEF0dHJpYnV0ZXMoKSkK
KyAgICAvLyBGSVhNRTogUHJvdmlkZSBhIHNwZWNpZmljIGRlbGVnYXRlIGZvciBkaXNwbGF5IGNh
cHR1cmUuCisgICAgaWYgKCFyZXF1ZXN0LnJlcXVpcmVzRGlzcGxheUNhcHR1cmUoKSAmJiBbZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0TWVkaWFD
YXB0dXJlQXV0aG9yaXphdGlvbjpkZWNpc2lvbkhhbmRsZXI6KV0pIHsKKworICAgICAgICBbZGVs
ZWdhdGUgX3dlYlZpZXc6JndlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb246
ZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKICAgICAgICAg
cmV0dXJuOworICAgIH0KIAotICAgIGF1dG8gcHJpdmF0ZVVJRGVsZWdhdGUgPSAoaWQgPFdLVUlE
ZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOwotICAgIFtwcml2
YXRlVUlEZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGRpZENoYW5nZUZv
bnRBdHRyaWJ1dGVzOmZvbnRBdHRyaWJ1dGVzLmNyZWF0ZURpY3Rpb25hcnkoKS5nZXQoKV07Cisg
ICAgVVJMIHJlcXVlc3RGcmFtZVVSTChVUkwoKSwgZnJhbWUudXJsKCkpOworICAgIFVSTCBtYWlu
RnJhbWVVUkwoVVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOworCisgICAgW2RlbGVnYXRlIF93ZWJW
aWV3OiZ3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczpkZXZp
Y2VzIHVybDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBkZWNpc2lv
bkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKIH0KKyNlbmRpZgogCi1ib29sIFVJRGVs
ZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5
T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3Jp
Z2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KQordm9pZCBVSURl
bGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QoV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0
eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9y
aWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCkKIHsKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQogICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9k
ZWxlZ2F0ZS5nZXQoKTsKLSAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVsZWdhdGUubV9kZWxl
Z2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNl
c1VSTE1haW5GcmFtZVVSTERlY2lzaW9uSGFuZGxlcikgeworICAgIGlmICghZGVsZWdhdGUgfHwg
IW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdE1lZGlhQ2FwdHVy
ZUF1dGhvcml6YXRpb25Gb3JGcmFtZURlY2lzaW9uSGFuZGxlcikgewogICAgICAgICByZXF1ZXN0
LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVu
aWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgYm9vbCByZXF1aXJlc0F1ZGlvQ2FwdHVyZSA9IHJl
cXVlc3QucmVxdWlyZXNBdWRpb0NhcHR1cmUoKTsKQEAgLTkxMywzMyArOTI3LDMzIEBAIGJvb2wg
VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KFdlYlBhZ2VQcm94CiAgICAgYm9vbCByZXF1aXJlc0Rpc3BsYXlDYXB0dXJlID0gcmVx
dWVzdC5yZXF1aXJlc0Rpc3BsYXlDYXB0dXJlKCk7CiAgICAgaWYgKCFyZXF1aXJlc0F1ZGlvQ2Fw
dHVyZSAmJiAhcmVxdWlyZXNWaWRlb0NhcHR1cmUgJiYgIXJlcXVpcmVzRGlzcGxheUNhcHR1cmUp
IHsKICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50cyk7Ci0gICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICByZXR1cm47CiAgICAgfQogCiAjaWYgSEFWRShBVVRIT1JJWkFU
SU9OX1NUQVRVU19GT1JfTUVESUFfVFlQRSkKICAgICBib29sIHVzaW5nTW9ja0NhcHR1cmVEZXZp
Y2VzID0gcGFnZS5wcmVmZXJlbmNlcygpLm1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoKTsKLSAg
ICBhdXRvIHJlcXVlc3RDYW1lcmFBdXRob3JpemF0aW9uID0gbWFrZUJsb2NrUHRyKFt0aGlzLCAm
ZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpLCB3ZWJWaWV3ID0gUmV0
YWluUHRyPFdLV2ViVmlldz4obV91aURlbGVnYXRlLm1fd2ViVmlldyksIHVzaW5nTW9ja0NhcHR1
cmVEZXZpY2VzXSgpIHsKKyAgICBhdXRvIHJlcXVlc3RDYW1lcmFBdXRob3JpemF0aW9uID0gbWFr
ZUJsb2NrUHRyKFt0aGlzLCAmZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVl
c3QpLCB3ZWJWaWV3ID0gUmV0YWluUHRyPFdLV2ViVmlldz4obV91aURlbGVnYXRlLm1fd2ViVmll
dyksIHRvcExldmVsT3JpZ2luID0gbWFrZVJlZih0b3BMZXZlbE9yaWdpbiksIHVzaW5nTW9ja0Nh
cHR1cmVEZXZpY2VzXSgpIG11dGFibGUgewogCiAgICAgICAgIGlmICghcHJvdGVjdGVkUmVxdWVz
dC0+cmVxdWlyZXNWaWRlb0NhcHR1cmUoKSkgewotICAgICAgICAgICAgcmVxdWVzdFVzZXJNZWRp
YUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzKGZyYW1lLCBwcm90ZWN0ZWRSZXF1ZXN0LCAoaWQgPFdL
VUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqd2ViVmll
dy5nZXQoKSk7CisgICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZy
YW1lKGZyYW1lLCB0b3BMZXZlbE9yaWdpbiwgcHJvdGVjdGVkUmVxdWVzdCwgKGlkIDxXS1VJRGVs
ZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwgKndlYlZpZXcuZ2V0
KCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIEFWQXV0aG9yaXph
dGlvblN0YXR1cyBjYW1lcmFBdXRob3JpemF0aW9uU3RhdHVzID0gdXNpbmdNb2NrQ2FwdHVyZURl
dmljZXMgPyBBVkF1dGhvcml6YXRpb25TdGF0dXNBdXRob3JpemVkIDogW2dldEFWQ2FwdHVyZURl
dmljZUNsYXNzKCkgYXV0aG9yaXphdGlvblN0YXR1c0Zvck1lZGlhVHlwZTpnZXRBVk1lZGlhVHlw
ZVZpZGVvKCldOwogICAgICAgICBzd2l0Y2ggKGNhbWVyYUF1dGhvcml6YXRpb25TdGF0dXMpIHsK
ICAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNBdXRob3JpemVkOgotICAgICAgICAg
ICAgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzKGZyYW1lLCBwcm90ZWN0
ZWRSZXF1ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVn
YXRlLmdldCgpLCAqd2ViVmlldy5nZXQoKSk7CisgICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlh
QXV0aG9yaXphdGlvbkZvckZyYW1lKGZyYW1lLCB0b3BMZXZlbE9yaWdpbiwgcHJvdGVjdGVkUmVx
dWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5n
ZXQoKSwgKndlYlZpZXcuZ2V0KCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
QVZBdXRob3JpemF0aW9uU3RhdHVzRGVuaWVkOgogICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlv
blN0YXR1c1Jlc3RyaWN0ZWQ6CiAgICAgICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0LT5kZW55KFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNv
bjo6UGVybWlzc2lvbkRlbmllZCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNhc2Ug
QVZBdXRob3JpemF0aW9uU3RhdHVzTm90RGV0ZXJtaW5lZDoKLSAgICAgICAgICAgIGF1dG8gZGVj
aXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFt0aGlzLCAmZnJhbWUsIHByb3RlY3RlZFJlcXVl
c3QgPSBtYWtlUmVmKHByb3RlY3RlZFJlcXVlc3QuZ2V0KCkpLCB3ZWJWaWV3ID0gUmV0YWluUHRy
PFdLV2ViVmlldz4obV91aURlbGVnYXRlLm1fd2ViVmlldyldKEJPT0wgYXV0aG9yaXplZCkgewor
ICAgICAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3RoaXMsICZm
cmFtZSwgcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocHJvdGVjdGVkUmVxdWVzdC5nZXQoKSks
IHdlYlZpZXcgPSBSZXRhaW5QdHI8V0tXZWJWaWV3PihtX3VpRGVsZWdhdGUubV93ZWJWaWV3KSwg
dG9wTGV2ZWxPcmlnaW4gPSBXVEZNb3ZlKHRvcExldmVsT3JpZ2luKV0oQk9PTCBhdXRob3JpemVk
KSB7CiAgICAgICAgICAgICAgICAgaWYgKCFhdXRob3JpemVkKSB7CiAgICAgICAgICAgICAgICAg
ICAgIHByb3RlY3RlZFJlcXVlc3QtPmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHByb3RlY3Rl
ZFJlcXVlc3QsIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdh
dGUuZ2V0KCksICp3ZWJWaWV3LmdldCgpKTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0VXNlck1l
ZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGZyYW1lLCB0b3BMZXZlbE9yaWdpbiwgcHJvdGVjdGVk
UmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0
ZS5nZXQoKSwgKndlYlZpZXcuZ2V0KCkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAg
IFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIHJlcXVlc3RBY2Nlc3NGb3JNZWRpYVR5cGU6Z2V0
QVZNZWRpYVR5cGVWaWRlbygpIGNvbXBsZXRpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQo
KV07CkBAIC05NTYsNyArOTcwLDcgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRl
UG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3gKICAgICAgICAg
Y2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNEZW5pZWQ6CiAgICAgICAgIGNhc2UgQVZBdXRob3Jp
emF0aW9uU3RhdHVzUmVzdHJpY3RlZDoKICAgICAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBl
cm1pc3Npb25EZW5pZWQpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIGNhc2UgQVZBdXRob3JpemF0aW9uU3RhdHVzTm90RGV0ZXJtaW5lZDoK
ICAgICAgICAgICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0
ZWRSZXF1ZXN0ID0gbWFrZVJlZihyZXF1ZXN0KSwgcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb25d
KEJPT0wgYXV0aG9yaXplZCkgewogICAgICAgICAgICAgICAgIGlmICghYXV0aG9yaXplZCkgewpA
QCAtOTcyLDUzICs5ODYsNjEgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9s
aWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3gKICAgICB9IGVsc2UK
ICAgICAgICAgcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb24oKTsKICNlbHNlCi0gICAgcmVxdWVz
dFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzKGZyYW1lLCByZXF1ZXN0LCAoaWQgPFdL
VUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqbV91aURl
bGVnYXRlLm1fd2ViVmlldyk7CisgICAgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JG
cmFtZShmcmFtZSwgdG9wTGV2ZWxPcmlnaW4sIHJlcXVlc3QsIChpZCA8V0tVSURlbGVnYXRlUHJp
dmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICptX3VpRGVsZWdhdGUubV93ZWJW
aWV3KTsKICNlbmRpZgogI2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBVSURl
bGVnYXRlOjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBh
Z2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4m
IHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFVz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KQordm9pZCBVSURlbGVnYXRlOjpV
SUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYg
cGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRp
YU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBl
cm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KQogewogICAgIGF1dG8gZGVsZWdhdGUgPSBtX3Vp
RGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKLSAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVs
ZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZv
clVSTE1haW5GcmFtZVVSTEZyYW1lSWRlbnRpZmllckRlY2lzaW9uSGFuZGxlcikgeworICAgIGlm
ICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3SXNN
ZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWVEZWNpc2lvbkhhbmRsZXIpIHsKICAgICAgICAg
cmVxdWVzdC5zZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKGZhbHNlKTsKLSAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBXS1dlYlZpZXcgKndlYlZpZXcgPSBt
X3VpRGVsZWdhdGUubV93ZWJWaWV3OwotICAgIGNvbnN0IFdlYkZyYW1lUHJveHkqIG1haW5GcmFt
ZSA9IGZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0gICAgVVJMIHJlcXVlc3RGcmFtZVVSTChV
UkwoKSwgZnJhbWUudXJsKCkpOwotICAgIFVSTCBtYWluRnJhbWVVUkwoVVJMKCksIG1haW5GcmFt
ZS0+dXJsKCkpOworICAgIGNvbnN0IGF1dG8gbWFpbkZyYW1lID0gZnJhbWUucGFnZSgpLT5tYWlu
RnJhbWUoKTsKKworICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihfd2ViVmlldzppc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWQ6KV0pIHsKKyAgICAgICAgYXV0byBj
aGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRlbGVnYXRlLmdl
dCgpLCBAc2VsZWN0b3IoX3dlYlZpZXc6aXNNZWRpYUNhcHR1cmVBdXRob3JpemVkOikpOworICAg
ICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbcHJvdGVjdGVkUmVxdWVz
dCA9IG1ha2VSZWYocmVxdWVzdCksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXShfV0tDYXB0
dXJlRGV2aWNlcyBkZXZpY2VzKSB7CisgICAgICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlv
bkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisKKyAgICAgICAgICAg
IHByb3RlY3RlZFJlcXVlc3QtPnNldFVzZXJNZWRpYUFjY2Vzc0luZm8oISFkZXZpY2VzKTsKKyAg
ICAgICAgfSk7CisKKyAgICAgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUg
X3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBpc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWQ6
ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1
dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0
ZS5nZXQoKSwgQHNlbGVjdG9yKF93ZWJWaWV3OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVS
TDptYWluRnJhbWVVUkw6ZnJhbWVJZGVudGlmaWVyOmRlY2lzaW9uSGFuZGxlcjopKTsKKyAgICBh
dXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbcHJvdGVjdGVkUmVxdWVzdCA9IG1h
a2VSZWYocmVxdWVzdCksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXShOU1N0cmluZyosIEJP
T0wgYXV0aG9yaXplZCkgeworICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJI
YXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNoZWNrZXItPmRp
ZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOwogCi0gICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBt
YWtlQmxvY2tQdHIoW3Byb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpXShOU1N0cmlu
ZyosIEJPT0wgYXV0aG9yaXplZCkgewogICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0LT5zZXRVc2Vy
TWVkaWFBY2Nlc3NJbmZvKGF1dGhvcml6ZWQpOwogICAgIH0pOwogCi0gICAgWyhpZCA8V0tVSURl
bGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6d2ViVmlldyBjaGVja1VzZXJNZWRpYVBl
cm1pc3Npb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJhbWVVUkwg
ZnJhbWVJZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQoKSBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25I
YW5kbGVyLmdldCgpXTsKKyAgICBVUkwgcmVxdWVzdEZyYW1lVVJMKFVSTCgpLCBmcmFtZS51cmwo
KSk7CisgICAgVVJMIG1haW5GcmFtZVVSTChVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSk7CiAKLSAg
ICByZXR1cm4gdHJ1ZTsKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBf
d2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZv
clVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlkZW50
aWZpZXI6ZnJhbWUuZnJhbWVJRCgpIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0
KCldOwogfQogCiB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURp
ZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7
CiAgICAgV0tXZWJWaWV3ICp3ZWJWaWV3ID0gbV91aURlbGVnYXRlLm1fd2ViVmlldzsKKworICAg
IFt3ZWJWaWV3IGRpZENoYW5nZVZhbHVlRm9yS2V5OkAibWVkaWFDYXB0dXJlU3RhdGUiXTsKKwog
ICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKICAgICBp
ZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld01l
ZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBfV0tNZWRp
YUNhcHR1cmVTdGF0ZSBtZWRpYUNhcHR1cmVTdGF0ZSA9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9u
ZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRp
b0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2Fw
dHVyZVN0YXRlQWN0aXZlTWljcm9waG9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIG1lZGlhQ2Fw
dHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJhOwotICAgIGlmIChz
dGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNl
KQotICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVk
TWljcm9waG9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNN
dXRlZFZpZGVvQ2FwdHVyZURldmljZSkKLSAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dL
TWVkaWFDYXB0dXJlU3RhdGVNdXRlZENhbWVyYTsKLQotICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVBy
aXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3OndlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFu
Z2U6bWVkaWFDYXB0dXJlU3RhdGVdOworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRl
bGVnYXRlIF93ZWJWaWV3OndlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6dG9XS01l
ZGlhQ2FwdHVyZVN0YXRlKHN0YXRlKV07CiB9CiAKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6
OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViUGFnZVByb3h5KiwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBjdXJyZW50
UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIEZ1bmN0aW9uPHZvaWQgKHVuc2lnbmVk
IGxvbmcgbG9uZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaAppbmRleCBkOTFm
MDRmZmRhYjhkMTQyNDU0ZDUwNjNmZTE3ZjBlYmZhODMzNGViLi42YTA4OTUwNmNlYTM4OGQxZDRj
M2Q2ZGVmZGE1ZmUwZTBhZWU1N2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgKQEAgLTQ2LDYgKzQ2LDcgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVc2VyTWVkaWFQZXJtaXNzaW9u
Q2hlY2tQcm94eShmcmFtZUlELCBXVEZNb3ZlKGhhbmRsZXIpLCBXVEZNb3ZlKHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSkpOwogICAgIH0K
IAorICAgIHZvaWQgZGVueSgpIHsgc2V0VXNlck1lZGlhQWNjZXNzSW5mbyhmYWxzZSk7IH0KICAg
ICB2b2lkIHNldFVzZXJNZWRpYUFjY2Vzc0luZm8oYm9vbCk7CiAgICAgdm9pZCBpbnZhbGlkYXRl
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCA0ZWY1ZGNjMzY1
YWEzOWFlNjA2ZDBiYmJmMzhlZjQ0OWZlNDkwNWQwLi43MmE0YjAzNGZmNGIxZGJjNTdmNjBjZjU0
ZjA0YWFlNzFkYTVmNmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBA
IC0zNzYsOCArMzc2LDE0IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUoCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIW1fcGFnZS51aUNsaWVudCgpLmRlY2lk
ZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KG1fcGFnZSwgKm1fcGFnZS5wcm9j
ZXNzKCkud2ViRnJhbWUoZnJhbWVJRCksIFdURk1vdmUodXNlck1lZGlhT3JpZ2luKSwgV1RGTW92
ZSh0b3BMZXZlbE9yaWdpbiksIHBlbmRpbmdSZXF1ZXN0LmdldCgpKSkKLSAgICAgICAgICAgIHVz
ZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1c2VyTWVkaWFJRCwgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxl
ZCk7CisgICAgICAgIC8vIElmIHBhZ2UgbmF2aWdhdGVkLCB0aGVyZSBpcyBubyBuZWVkIHRvIGNh
bGwgdGhlIHBhZ2UgY2xpZW50IGZvciBhdXRob3JpemF0aW9uLgorICAgICAgICBpZiAoIVNlY3Vy
aXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG1fcGFnZS5wYWdlTG9hZFN0YXRlKCkuYWN0aXZl
VVJMKCkpLT5pc1NhbWVTY2hlbWVIb3N0UG9ydCh0b3BMZXZlbE9yaWdpbi0+c2VjdXJpdHlPcmln
aW4oKSkpIHsKKyAgICAgICAgICAgIGRlbnlSZXF1ZXN0KHVzZXJNZWRpYUlELCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246Ok5vQ29u
c3RyYWludHMsIGVtcHR5U3RyaW5nKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgLy8gRklYTUU6IFJlbW92ZSB3ZWJGcmFtZSwgdXNlck1lZGlhT3JpZ2luIGFu
ZCB0b3BMZXZlbE9yaWdpbiBmcm9tIHRoaXMgQyBBUEkgY2FsbC4KKyAgICAgICAgbV9wYWdlLnVp
Q2xpZW50KCkuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QobV9wYWdl
LCAqbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKSwgV1RGTW92ZSh1c2VyTWVkaWFP
cmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsT3JpZ2luKSwgcGVuZGluZ1JlcXVlc3QuZ2V0KCkpOwog
ICAgIH07CiAKICAgICBhdXRvIHJlcXVlc3RJRCA9IGdlbmVyYXRlUmVxdWVzdElEKCk7CkBAIC00
MTUsMTUgKzQyMSwxOSBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyh1aW50NjRfdAogICAgICAgICByZXR1cm47
CiAgICAgfQogCisgICAgaWYgKCFTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhtX3Bh
Z2UucGFnZUxvYWRTdGF0ZSgpLmFjdGl2ZVVSTCgpKS0+aXNTYW1lU2NoZW1lSG9zdFBvcnQodG9w
TGV2ZWxEb2N1bWVudE9yaWdpbi5nZXQoKSkpIHsKKyAgICAgICAgaGFuZGxlcihmYWxzZSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBhdXRvIHVzZXJNZWRpYU9yaWdpbiA9IEFQSTo6
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbi5nZXQoKSk7CiAg
ICAgYXV0byB0b3BMZXZlbE9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh0b3BM
ZXZlbERvY3VtZW50T3JpZ2luLmdldCgpKTsKICAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFQ
ZXJtaXNzaW9uQ2hlY2tQcm94eTo6Y3JlYXRlKGZyYW1lSUQsIFdURk1vdmUoaGFuZGxlciksIFdU
Rk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRP
cmlnaW4pKTsKIAogICAgIG1fcGVuZGluZ0RldmljZVJlcXVlc3RzLmFkZChyZXF1ZXN0SUQsIHJl
cXVlc3QuY29weVJlZigpKTsKLSAgICBpZiAoIW1fcGFnZS51aUNsaWVudCgpLmNoZWNrVXNlck1l
ZGlhUGVybWlzc2lvbkZvck9yaWdpbihtX3BhZ2UsICptX3BhZ2UucHJvY2VzcygpLndlYkZyYW1l
KGZyYW1lSUQpLCB1c2VyTWVkaWFPcmlnaW4uZ2V0KCksIHRvcExldmVsT3JpZ2luLmdldCgpLCBy
ZXF1ZXN0LmdldCgpKSkgewotICAgICAgICBtX3BlbmRpbmdEZXZpY2VSZXF1ZXN0cy50YWtlKHJl
cXVlc3RJRCk7Ci0gICAgICAgIGhhbmRsZXIoZmFsc2UpOwotICAgIH0KKworICAgIC8vIEZJWE1F
OiBSZW1vdmUgd2ViRnJhbWUsIHVzZXJNZWRpYU9yaWdpbiBhbmQgdG9wTGV2ZWxPcmlnaW4gZnJv
bSB0aGlzIEMgQVBJIGNhbGwuCisgICAgbV9wYWdlLnVpQ2xpZW50KCkuY2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yT3JpZ2luKG1fcGFnZSwgKm1fcGFnZS5wcm9jZXNzKCkud2ViRnJhbWUoZnJh
bWVJRCksIHVzZXJNZWRpYU9yaWdpbi5nZXQoKSwgdG9wTGV2ZWxPcmlnaW4uZ2V0KCksIHJlcXVl
c3QuZ2V0KCkpOwogfQogCiBib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5Ojp3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlP
cmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKaW5kZXggNTk4
MGRjNzA5YTAwMjg1ZDBhYThlNzM1Y2QzMDgxOTdjOTExOGJkYi4uYWM4MDVlNzg4YmUyMzE3ZTBh
N2FhZWI3MTg5MDljZjQ1YmNhODkwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApAQCAtNDUsNyArNDUs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhbGxvdygpOwogCiAgICAgZW51bSBjbGFzcyBVc2VyTWVk
aWFBY2Nlc3NEZW5pYWxSZWFzb24geyBOb0NvbnN0cmFpbnRzLCBVc2VyTWVkaWFEaXNhYmxlZCwg
Tm9DYXB0dXJlRGV2aWNlcywgSW52YWxpZENvbnN0cmFpbnQsIEhhcmR3YXJlRXJyb3IsIFBlcm1p
c3Npb25EZW5pZWQsIE90aGVyRmFpbHVyZSB9OwotICAgIHZvaWQgZGVueShVc2VyTWVkaWFBY2Nl
c3NEZW5pYWxSZWFzb24pOworICAgIHZvaWQgZGVueShVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFz
b24gPSBVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2FibGVkKTsKIAog
ICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3ZTdlOTI3MzgwZDhkNGJhNjRkMzg5MWY0M2MxYjI3
OWE1YmU0OWU2Li42MmRhNDhiMjY3OGE5YmQ2NTg5ZDk5ODk4ZjhkNGNjNzllMGYzMjE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMw
MDUsNiArMzAwNSw4IEBACiAJCTQxMDQ4MkNCMURERDJGQjUwMEYwMDZEMCAvKiBSVENOZXR3b3Jr
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ05ldHdvcmsuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTA0ODJDQzFEREQyRkI1MDBGMDA2RDAg
LyogUlRDTmV0d29yay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENOZXR3
b3JrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTE0MzYzMjBGNjc3QjEwMDI2
RjkxMiAvKiBJbmplY3RVc2VyU2NyaXB0SW1tZWRpYXRlbHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxMTI4NkVGMjFDOEE5MEMwMDNBODU1MCAvKiBNZWRpYUNhcHR1
cmVVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFDYXB0
dXJlVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMTI4NkYwMjFD
OEE5MEQwMDNBODU1MCAvKiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYUNhcHR1cmVVdGlsaXRpZXMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTJCNTQ3MUY5RkQzQUIwMEU2Nzg3NSAvKiBOZXR3
b3JrUlRDUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TmV0d29ya1JUQ1Jlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEx
MkI1NDcxRjlGRDNBQjAwRTY3OTg2IC8qIE5ldHdvcmtSVENSZXNvbHZlckNvY29hLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtSVENSZXNvbHZlckNvY29h
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMkI1NDgxRjlGRDNBQzAwRTY3
ODc1IC8qIE5ldHdvcmtSVENSZXNvbHZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOZXR3b3JrUlRDUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTUzMDgsNiArNTMxMCw4IEBACiAJCQkJNTFDMEM5NzMxRERENzRGMDAwMzJDQUQzIC8qIEljb25M
b2FkaW5nRGVsZWdhdGUubW0gKi8sCiAJCQkJN0E4MjFGNEIxRTJGNjY0ODAwNjA0NTc3IC8qIExl
Z2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5oICovLAogCQkJCTdBODIxRjREMUUyRjY3
OUUwMDYwNDU3NyAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0gKi8sCisJ
CQkJNDExMjg2RUYyMUM4QTkwQzAwM0E4NTUwIC8qIE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5oICov
LAorCQkJCTQxMTI4NkYwMjFDOEE5MEQwMDNBODU1MCAvKiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMu
bW0gKi8sCiAJCQkJMUFCQzNERjQxODk5RTQzNzAwNEYwNjI2IC8qIE5hdmlnYXRpb25TdGF0ZS5o
ICovLAogCQkJCTFBQkMzREYzMTg5OUU0MzcwMDRGMDYyNiAvKiBOYXZpZ2F0aW9uU3RhdGUubW0g
Ki8sCiAJCQkJNUM2Q0U2RDMxRjU5RUEzNTAwMDdDNkNCIC8qIFBhZ2VDbGllbnRJbXBsQ29jb2Eu
aCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA5YjdlZDIzOWZjZjk0Y2Y4NDJjMmIzOTczYmFhODUwNGIxNDc2NTFjLi4yMTc1ZWQwNTE4MGZk
ZGM4YzVhZTYzZDkxY2U1OGQ1OWQ3MzQ1M2FhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTktMDEtMDggIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgZm9y
IGNvbnRyb2xsaW5nIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTkyNzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRy
b2xsZXIubToKKyAgICAgICAgKC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgX3dlYlZpZXc6
cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFu
ZGxlcjpdKToKKyAgICAgICAgKC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgX3dlYlZpZXc6
aXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWU6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24u
bW06CisgICAgICAgICgtW05hdmlnYXRpb25XaGlsZUdldFVzZXJNZWRpYVByb21wdERpc3BsYXll
ZFVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JG
cmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbToKKyAgICAgICAgKC1bR2V0VXNl
ck1lZGlhUmVwcm9tcHRVSURlbGVnYXRlIF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRo
b3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tOgor
ICAgICAgICAoLVtNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWRVSURlbGVnYXRlIF93ZWJWaWV3OnJl
cXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lvbkhh
bmRsZXI6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2Vy
TWVkaWFEaXNhYmxlZC5tbToKKyAgICAgICAgKC1bVXNlck1lZGlhVUlEZWxlZ2F0ZSBfd2ViVmll
dzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOmRldmljZXM6ZGVjaXNp
b25IYW5kbGVyOl0pOgorICAgICAgICAoLVtVc2VyTWVkaWFVSURlbGVnYXRlIF93ZWJWaWV3Omlz
TWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1lOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFp
bGVkU2FuZGJveC5tbToKKyAgICAgICAgKC1bU2ltdWxhdGVGYWlsZWRTYW5kYm94VUlEZWxlZ2F0
ZSBfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOmRldmlj
ZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtTaW11bGF0ZUZhaWxlZFNhbmRib3hV
SURlbGVnYXRlIF93ZWJWaWV3OmlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1lOmRlY2lz
aW9uSGFuZGxlcjpdKToKKwogMjAxOS0wMS0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgQVBJIHRlc3QgYnJva2VuOiBUZXN0V2ViS2l0QVBJLldlYktpdC5D
dXN0b21EYXRhU3RvcmVQYXRoc1ZlcnN1c0NvbXBsZXRpb25IYW5kbGVycwpkaWZmIC0tZ2l0IGEv
VG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gYi9Ub29s
cy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQppbmRleCAzZTcz
OWQ3YzkxNTUzOGUwMDMyOWNmZjBjMDQ3YWFhNzBmZDRhMWJmLi43ZGRhNjdhYzNkZGJkMWVjMTA4
OWRhMzJjMGM4MTBlYTRjZWFkMzc3IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMv
V0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMv
V0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAtNzkxLDE0ICs3OTEsMTQgQEAgLSAodm9p
ZClmaW5kQmFyVmlld0RpZENoYW5nZUhlaWdodAogewogfQogCi0tICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNl
czooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVS
TDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1
dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjogKF9XS0NhcHR1cmVEZXZp
Y2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRl
Y2lzaW9uSGFuZGxlcgogewogICAgIGRlY2lzaW9uSGFuZGxlcih0cnVlKTsKIH0KIAotLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25G
b3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJh
bWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6
KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxl
cgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBpc01lZGlhQ2FwdHVyZUF1
dGhvcml6ZWQ6KHZvaWQgKF4pKF9XS0NhcHR1cmVEZXZpY2VzIGRldmljZXMpKWRlY2lzaW9uSGFu
ZGxlcgogewotICAgIGRlY2lzaW9uSGFuZGxlcihAIiIsIGZhbHNlKTsKKyAgICBkZWNpc2lvbkhh
bmRsZXIoMCk7CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tCmluZGV4IDQyMWVlYTQyOTJj
YmFiMTRlOTQ2Zjc5OGEzNWRlYjczZjgyYjM1MDguLmNlM2E0MzhlYTc2NjdjNmRlNWE1ZjVlMDA5
M2ExMDk4MjU2NDdhNmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbQpAQCAtNDIsMTIgKzQyLDEyIEBA
IHN0YXRpYyBib29sIG9rVG9Qcm9jZWVkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBzaG91bGRSZWxl
YXNlSW5FbnVtZXJhdGUgPSBmYWxzZTsKIAogQGludGVyZmFjZSBOYXZpZ2F0aW9uV2hpbGVHZXRV
c2VyTWVkaWFQcm9tcHREaXNwbGF5ZWRVSURlbGVnYXRlIDogTlNPYmplY3Q8V0tVSURlbGVnYXRl
PgotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlh
QXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihO
U1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFu
ZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CistICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3Jp
emF0aW9uOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQg
KF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcjsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWlu
RnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdl
cilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqc2Fs
dCwgQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CiBAZW5kCiAKIEBpbXBsZW1lbnRh
dGlvbiBOYXZpZ2F0aW9uV2hpbGVHZXRVc2VyTWVkaWFQcm9tcHREaXNwbGF5ZWRVSURlbGVnYXRl
Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFB
dXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5T
VVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5k
bGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXph
dGlvbjogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkIChe
KShCT09MKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiYWJvdXQ6Ymxh
bmsiXV1dOwogICAgIFt3ZWJWaWV3IHJlbGVhc2VdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQppbmRleCBjNDMy
ZmNhZTVlOGZjNTk3OTEyMzNlNTBiZGJiNzUzMmNiYWM0ZjdlLi5mYmMzYjU5NmRiNjEwOTc5OWFi
NTBhNTcyNTUyNDBjMDdlMGUyMDI2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQpAQCAtNDEsMTIgKzQxLDEy
IEBACiBzdGF0aWMgYm9vbCB3YXNQcm9tcHRlZCA9IGZhbHNlOwogCiBAaW50ZXJmYWNlIEdldFVz
ZXJNZWRpYVJlcHJvbXB0VUlEZWxlZ2F0ZSA6IE5TT2JqZWN0PFdLVUlEZWxlZ2F0ZT4KLS0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6
YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1
cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZv
aWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOworLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjog
KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09M
KSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJM
OihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJ
ZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wg
YXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gR2V0
VXNlck1lZGlhUmVwcm9tcHRVSURlbGVnYXRlCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2Fw
dHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwg
KiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQp
KWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBy
ZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmlj
ZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAg
ICB3YXNQcm9tcHRlZCA9IHRydWU7CiAgICAgZGVjaXNpb25IYW5kbGVyKFlFUyk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0
YWNoZWQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRy
YWNrRGV0YWNoZWQubW0KaW5kZXggMWVjY2QwYTZlZTMzMTY0MjYzMmQ0ZDVjNmRmMGJiY2QwMmFl
MmY0My4uZDJjYmRhODA2YzlhZmFjNzY3NjBhODViMDU0NDgwMzEyN2NjZDU2MyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFj
aGVkLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlhU3RyZWFt
VHJhY2tEZXRhY2hlZC5tbQpAQCAtNDAsMTMgKzQwLDEzIEBACiBzdGF0aWMgYm9vbCBoYXNSZWNp
ZXZlZENvcnJlY3RDYXB0dXJlU3RhdGUgPSBmYWxzZTsKIAogQGludGVyZmFjZSBNZWRpYVN0cmVh
bVRyYWNrRGV0YWNoZWRVSURlbGVnYXRlIDogTlNPYmplY3Q8V0tVSURlbGVnYXRlPgotLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXph
dGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVy
bCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CistICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uOiAo
X1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wp
KWRlY2lzaW9uSGFuZGxlcjsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6
KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlk
ZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqc2FsdCwgQk9PTCBh
dXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0
ZSlzdGF0ZTsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hl
ZFVJRGVsZWdhdGUKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVz
dFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZp
Y2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBk
ZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVy
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1
cmVBdXRob3JpemF0aW9uOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRs
ZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgogewogICAgIGRlY2lzaW9uSGFuZGxl
cihZRVMpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW0KaW5kZXggODgzMzNjM2ZiYjY4MGUxNjVlN2Yy
NjFhNjI2ZTViMWQxMzFiM2JhYi4uM2UzY2E2OGE2NGY2NTRhZWVjNGYzMzFiZGJhMmE0YzY0NTc2
NzZmNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9V
c2VyTWVkaWFEaXNhYmxlZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1tCkBAIC0zOSw3ICszOSw2IEBACiAKICNpZiBXS19B
UElfRU5BQkxFRAogCi1zdGF0aWMgYm9vbCByZWZ1c2VSZXF1ZXN0ID0gZmFsc2U7CiBzdGF0aWMg
Ym9vbCB3YXNQcm9tcHRlZCA9IGZhbHNlOwogCiBzdGF0aWMgYm9vbCByZWNlaXZlZFNjcmlwdE1l
c3NhZ2UgPSBmYWxzZTsKQEAgLTYyLDE1ICs2MSwxMCBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlv
biBVc2VyTWVkaWFVSURlbGVnYXRlCiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihOU1VJbnRlZ2Vy
KWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1l
VVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyCistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRo
b3JpemF0aW9uOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZv
aWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgogewogICAgIHdhc1Byb21wdGVkID0gdHJ1ZTsK
IAotICAgIGlmIChyZWZ1c2VSZXF1ZXN0KSB7Ci0gICAgICAgIGRlY2lzaW9uSGFuZGxlcihOTyk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBCT09MIG5lZWRzTWljcm9waG9uZUF1dGhv
cml6ZWQgPSBkZXZpY2VzICYgX1dLQ2FwdHVyZURldmljZU1pY3JvcGhvbmU7CiAgICAgQk9PTCBu
ZWVkc0NhbWVyYUF1dGhvcml6ZWQgPSBkZXZpY2VzICYgX1dLQ2FwdHVyZURldmljZUNhbWVyYTsK
ICAgICBpZiAoIW5lZWRzTWljcm9waG9uZUF1dGhvcml6ZWQgJiYgIW5lZWRzQ2FtZXJhQXV0aG9y
aXplZCkgewpAQCAtODEsMTQgKzc1LDkgQEAgLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KE4KICAgICBk
ZWNpc2lvbkhhbmRsZXIoWUVTKTsKIH0KIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5G
cmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2Vy
KWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICosIEJP
T0wpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBpc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWQ6KHZvaWQgKF4pKF9XS0NhcHR1cmVEZXZpY2VzIGRl
dmljZXMpKWRlY2lzaW9uSGFuZGxlcgogewotICAgIGlmIChyZWZ1c2VSZXF1ZXN0KSB7Ci0gICAg
ICAgIGRlY2lzaW9uSGFuZGxlcihuaWwsIE5PKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIGRlY2lzaW9uSGFuZGxlcihAIjB4OTg3NjU0MzIxIiwgTk8pOworICAgIGRlY2lzaW9uSGFu
ZGxlcigwKTsKIH0KIEBlbmQKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2Fu
ZGJveC5tbQppbmRleCBjNzNjOTg5OTRlNDE3MzM0OTAyNTUyYTg3OGRlZjVkMTcyMjViZGY0Li45
ZDU5MGY2YTUxOGZhODBkMjRhOTBiMTczY2E0NDVkMDg5MzJlOTAwIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVk
U2FuZGJveC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Vz
ZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbQpAQCAtMzksNyArMzksNiBAQAogCiAjaWYg
V0tfQVBJX0VOQUJMRUQKIAotc3RhdGljIGJvb2wgcmVmdXNlUmVxdWVzdCA9IGZhbHNlOwogc3Rh
dGljIGJvb2wgd2FzUHJvbXB0ZWQgPSBmYWxzZTsKIAogc3RhdGljIGJvb2wgcmVjZWl2ZWRTY3Jp
cHRNZXNzYWdlID0gZmFsc2U7CkBAIC02MiwxNSArNjEsMTAgQEAgQGVuZAogCiBAaW1wbGVtZW50
YXRpb24gU2ltdWxhdGVGYWlsZWRTYW5kYm94VUlEZWxlZ2F0ZQogCi0tICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2
aWNlczooTlNVSW50ZWdlcilkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihO
U1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lz
aW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0
TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVj
aXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICB3YXNQ
cm9tcHRlZCA9IHRydWU7CiAKLSAgICBpZiAocmVmdXNlUmVxdWVzdCkgewotICAgICAgICBkZWNp
c2lvbkhhbmRsZXIoTk8pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgQk9PTCBuZWVk
c01pY3JvcGhvbmVBdXRob3JpemVkID0gZGV2aWNlcyAmIF9XS0NhcHR1cmVEZXZpY2VNaWNyb3Bo
b25lOwogICAgIEJPT0wgbmVlZHNDYW1lcmFBdXRob3JpemVkID0gZGV2aWNlcyAmIF9XS0NhcHR1
cmVEZXZpY2VDYW1lcmE7CiAgICAgaWYgKCFuZWVkc01pY3JvcGhvbmVBdXRob3JpemVkICYmICFu
ZWVkc0NhbWVyYUF1dGhvcml6ZWQpIHsKQEAgLTgxLDE0ICs3NSw5IEBAIC0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JE
ZXZpY2VzOihOCiAgICAgZGVjaXNpb25IYW5kbGVyKFlFUyk7CiB9CiAKLS0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihO
U1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRp
ZmllcjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkIChe
KShOU1N0cmluZyAqLCBCT09MKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgaXNNZWRpYUNhcHR1cmVBdXRob3JpemVkOih2b2lkICheKShfV0tD
YXB0dXJlRGV2aWNlcyBkZXZpY2VzKSlkZWNpc2lvbkhhbmRsZXIKIHsKLSAgICBpZiAocmVmdXNl
UmVxdWVzdCkgewotICAgICAgICBkZWNpc2lvbkhhbmRsZXIobmlsLCBOTyk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBkZWNpc2lvbkhhbmRsZXIoQCIweDk4NzY1NDMyMSIsIE5PKTsK
KyAgICBkZWNpc2lvbkhhbmRsZXIoMCk7CiB9CiBAZW5kCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358647</attachid>
            <date>2019-01-08 16:06:21 -0800</date>
            <delta_ts>2019-01-16 13:16:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192793-20190108160619.patch</filename>
            <type>text/plain</type>
            <size>55205</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYwNDU4ZjM2MWM5OGE4NDZk
ZTg4YzBiYjM0YmM0YWVmMzljMDQ2ODguLjFiMjhmMTY3MjIyM2EwNmM3ZjU3YTEyYmZjNzJiMjRi
YWEwMzgxYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTktMDEtMDggIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgZm9yIGNv
bnRyb2xsaW5nIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyNzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU29tZSB3ZWFrbmVzc2VzIG9mIHRoZSBjdXJyZW50IGdldFVzZXJNZWRp
YS9lbnVtZXJhdGVEZXZpY2VzIFNQSSB3ZXJlIGZvdW5kLgorICAgICAgICBJbiBwYXJ0aWN1bGFy
OgorICAgICAgICAtIFRoZSBoYXNoIHNhbHQgc2hvdWxkIGJlIGhhbmRsZWQgYnkgV2ViS2l0IG5v
dCBieSBhcHBzIHVzaW5nIFdlYktpdC4KKyAgICAgICAgLSBObyBuZWVkIHRvIGV4cG9zZSB0aGUg
ZnJhbWUgVVJMLCBvbmx5IHRoZSB0b3AgbGV2ZWwgb3JpZ2luIGlzIG5lZWRlZC4KKyAgICAgICAg
LSBUaGUgbmFtZXMgb2YgdGhlIGNhbGxiYWNrIGFyZSBjaGFuZ2VkIHRvIGltcHJvdmUgdGhlIGlu
dGVudCBvZiB0aGVzZSBjYWxsYmFja3MuCisgICAgICAgIEFkZHJlc3NlZCB0aGVzZSBieSBjcmVh
dGluZyBhIG5ldyBTUEkgd2hpY2ggd2lsbCByZXBsYWNlIHRoZSBjdXJyZW50IG9uZS4KKyAgICAg
ICAgVGhlIGN1cnJlbnQgU1BJIHdpbGwgYmUgcmVtb3ZlZCBsYXRlciBvbi4KKworICAgICAgICBE
aWQgc29tZSByZWZhY3RvcmluZyBieSBtYWtpbmcgdGhlIGNhbGxiYWNrcyBub3QgcmV0dXJuIGZh
bHNlLgorICAgICAgICBJbnN0ZWFkLCBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgYmVoYXZpb3IgaW5z
aWRlIHRoZSByZXF1ZXN0IG9iamVjdHMgYXMgZGVueSBtZXRob2RzLgorICAgICAgICBTb21lIGZ1
cnRoZXIgcmVmYWN0b3Jpbmcgd2lsbCBiZSBkb25lIGFzIGEgZm9sbG93LXVwIHRvIGJldHRlciBh
bGlnbiB0aGUgQyBBUEkgd2l0aCB0aGUgQ29jb2EgQVBJLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6
Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmll
dyBfbWVkaWFDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRNZWRpYUNh
cHR1cmVNdXRlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3Bw
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMuaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbTog
QWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxl
Z2F0ZTo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpyZXF1ZXN0VXNlck1lZGlhQXV0
aG9yaXphdGlvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAg
KFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZv
ck9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjptZWRpYUNh
cHR1cmVTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5OjpkZW55KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyk6CisgICAgICAgICogVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDoKKwogMjAxOS0wMS0wNSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgc2VydmljZSB3b3JrZXIgZmV0
Y2ggaGFuZGxlciByZXN1bHRzIGluIGJhZCByZWZlcnJlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cmlu
ZGV4IGE1ODU1YmE3ZTk5OTc3MGE1MjdlMDE3MDg3ZjA0ZTk2MzdkZjI0NmIuLjJkN2Y2OWMwMGNm
YWQ5OWMyZTJiNzc1NjBlYjVkN2M0ZTIyYWQwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAg
LTMyMCw2ICszMjAsNyBAQCBVSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5tbQogVUlQ
cm9jZXNzL0NvY29hL0dsb2JhbEZpbmRJblBhZ2VTdGF0ZS5tbQogVUlQcm9jZXNzL0NvY29hL0lj
b25Mb2FkaW5nRGVsZWdhdGUubW0KIFVJUHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90b2Nv
bE1hbmFnZXJDbGllbnQubW0KK1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMu
bW0KIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KIFVJUHJvY2Vzcy9Db2NvYS9Q
YWdlQ2xpZW50SW1wbENvY29hLm1tCiBVSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFu
YWdlclByb3h5Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
VUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmlu
ZGV4IDQzZmY3NjNiOTA0OGNjNDBhOTY3ZDk0NTZiYmUwM2FjYmI5NTAyN2MuLjAzZDEyMzAwZDE3
MTY5ZjQ3YzgxZGMyNjAxYTZhNDA3MTdkNzBhYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCkBAIC0xMjksOCArMTI5LDggQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCBib29sIHJ1bk9wZW5QYW5lbChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2Vi
RnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIE9wZW5QYW5l
bFBhcmFtZXRlcnMqLCBXZWJLaXQ6OldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkqKSB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJG
cmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYpIHsgfQot
ICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5
T3JpZ2luJiwgU2VjdXJpdHlPcmlnaW4mLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkmKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBjaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6Oldl
YkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIFNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0OjpV
c2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYktp
dDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4m
LCBTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmln
aW4oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBTZWN1cml0
eU9yaWdpbiYsIFNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hl
Y2tQcm94eSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFNlY3VyaXR5T3JpZ2lu
JiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9u
SGFuZGxlcihmYWxzZSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3ND
b25maXJtKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgY29u
c3QgV1RGOjpTdHJpbmcmIHJlcXVlc3RpbmdEb21haW4sIGNvbnN0IFdURjo6U3RyaW5nJiBjdXJy
ZW50RG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDYzZDUxYjFmMTUyNDdhN2E1YzQ0ZjdkNzFlZjc3YmY1
YjRiYTkxZGQuLjA2MjVhMjRhODdmZGZhNzhlMzJiMTg2NzQ0MDg2ZmM5NWU0ODFlZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMTg1NSwyMiArMTg1NSwy
NCBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3Qg
V0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogICAgICAgICAgICAgbV9jbGllbnQuZGVjaWRl
UG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCh0b0FQSSgmcGFnZSksIHRvQVBJ
KCZmcmFtZSksIHRvQVBJKCZvcmlnaW4pLCB0b0FQSShHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0OjpjcmVhdGUoc3RkOjpleGNoYW5nZShjb21wbGV0aW9uSGFuZGxlciwgbnVsbHB0cikpLnB0
cigpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIGJv
b2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5
JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0
KSBmaW5hbAorICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2Vj
dXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2lu
JiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
JiBwZXJtaXNzaW9uUmVxdWVzdCkgZmluYWwKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFt
X2NsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRlY2lk
ZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KSB7CisgICAgICAgICAgICAgICAg
cGVybWlzc2lvblJlcXVlc3QuZGVueSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QodG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b0FQSSgmdXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW4pLCB0b0FQSSgmdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIHRv
QVBJKCZwZXJtaXNzaW9uUmVxdWVzdCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Ci0gICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wgY2hlY2tVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94
eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBB
UEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJt
aXNzaW9uQ2hlY2tQcm94eSYgcmVxdWVzdCkgZmluYWwKKyAgICAgICAgdm9pZCBjaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5
JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQ
STo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KSBmaW5hbAogICAgICAgICB7Ci0gICAgICAgICAgICBp
ZiAoIW1fY2xpZW50LmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbikKLSAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmNoZWNrVXNl
ck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbikgeworICAgICAgICAgICAgICAgIHJlcXVlc3QuZGVu
eSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgbV9jbGllbnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKHRvQVBJKCZwYWdl
KSwgdG9BUEkoJmZyYW1lKSwgdG9BUEkoJnVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgdG9BUEko
JnRvcExldmVsRG9jdW1lbnRPcmlnaW4pLCB0b0FQSSgmcmVxdWVzdCksIG1fY2xpZW50LmJhc2Uu
Y2xpZW50SW5mbyk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAg
ICAKICAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdChXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgRnVu
Y3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5o
CmluZGV4IGNkOWE1NGVlMTc1MjUyNWJkNDA5ZmI5OWFjZDJlYjU3OTA4OTZhYzUuLjg1ODE2MzQ2
YzFhMGI5OWMzMWZmYzk0ZjYwZTdlODZhZGIwYTM5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAtMTA3
LDYgKzEwNyw4IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgaW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdlZDooQ0dTaXpl
KXNpemUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwogLSAoTlNE
aWN0aW9uYXJ5ICopX2RhdGFEZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRo
b3JpemF0aW9uOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHF1ZXJ5RXhwb3NhYmxlTWVkaWFDYXB0dXJlRGV2aWNlSW5mb3Jt
YXRpb246KHZvaWQgKF4pKF9XS0NhcHR1cmVEZXZpY2VzIGRldmljZXMpKWRlY2lzaW9uSGFuZGxl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1
dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNV
UkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRs
ZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVy
bCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNV
SW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmlu
ZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTIuMyksIGlvcygxMC4zKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1cmVT
dGF0ZSlzdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA4
ZTFkNTNkNzkyYmMwMjI4YjBjMDc1M2E2ZDk0M2Y2NTYwMTgxMzQ1Li4yMzVmZGU1Y2E1MWI0YTlk
OGI2ZjVhNTQxOGEwMGFhNjY5MzZlZWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgIkljb25M
b2FkaW5nRGVsZWdhdGUuaCIKICNpbXBvcnQgIkxlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oIgog
I2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmgiCiAj
aW1wb3J0ICJOYXZpZ2F0aW9uU3RhdGUuaCIKICNpbXBvcnQgIk9iakNPYmplY3RHcmFwaC5oIgog
I2ltcG9ydCAiUGFnZUNsaWVudC5oIgpAQCAtNTUxNCw2ICs1NTE1LDE2IEBAIC0gKEJPT0wpX2lz
SW5GdWxsc2NyZWVuCiAjZW5kaWYKIH0KIAorLSAoX1dLTWVkaWFDYXB0dXJlU3RhdGUpX21lZGlh
Q2FwdHVyZVN0YXRlCit7CisgICAgcmV0dXJuIFdlYktpdDo6dG9XS01lZGlhQ2FwdHVyZVN0YXRl
KF9wYWdlLT5tZWRpYVN0YXRlRmxhZ3MoKSk7Cit9CisKKy0gKHZvaWQpX3NldE1lZGlhQ2FwdHVy
ZU11dGVkOihCT09MKW11dGVkCit7CisgICAgX3BhZ2UtPnNldE1lZGlhU3RyZWFtQ2FwdHVyZU11
dGVkKG11dGVkKTsKK30KKwogLSAodm9pZClfbXV0ZU1lZGlhQ2FwdHVyZQogewogICAgIF9wYWdl
LT5zZXRNZWRpYVN0cmVhbUNhcHR1cmVNdXRlZCh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDg1ODIyY2Qy
MWVhZDAxNGM3NGMzMTk4Yjc0NmFhYTFlOTQyMTNjZWMuLjkyOWQxYjkxMGQwMmQ1Mzc5MTcxMjI3
ODg0ZTc1ZGY5YmM1MTM2YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMzk2LDYgKzM5Niw5IEBAIHR5cGVkZWYg
TlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0RWRnZSkgewogQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0RnVsbHNjcmVlbkRlbGVnYXRlOikgaWQ8X1dLRnVsbHNjcmVlbkRlbGVn
YXRlPiBfZnVsbHNjcmVlbkRlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwg
aW9zKDExLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaXNJbkZ1
bGxzY3JlZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMykpOwogCitAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS01lZGlhQ2FwdHVyZVN0YXRlIF9tZWRpYUNhcHR1cmVT
dGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKKworLSAodm9pZClfc2V0TWVkaWFDYXB0dXJlTXV0ZWQ6KEJPT0wpbXV0ZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9t
dXRlTWVkaWFDYXB0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjAp
KTsKIC0gKHZvaWQpX3NldFBhZ2VNdXRlZDooX1dLTWVkaWFNdXRlZFN0YXRlKW11dGVkU3RhdGUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKaW5kZXgg
YjA4Y2UxZDBhZmM5Yjk0ZjEwMjY0NWQxOWM2NjA2ODhlMjUyYzQzYy4uY2Q3N2EzODdhMzkxZDY0
NTFlMjljMzY1OGMzZTQ2ZGYwOTIwZGRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcApAQCAtMTg0LDE4ICsxODQsMTYgQEAg
cHJpdmF0ZToKICAgICAgICAgd2Via2l0V2ViVmlld01ha2VQZXJtaXNzaW9uUmVxdWVzdChtX3dl
YlZpZXcsIFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1QoZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdC5nZXQoKSkpOwogICAgIH0KIAotICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2Vj
dXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2lu
JiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
JiBwZXJtaXNzaW9uUmVxdWVzdCkgZmluYWwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6
OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgQVBJOjpTZWN1cml0eU9y
aWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eSYgcGVybWlzc2lvblJlcXVlc3QpIGZpbmFsCiAgICAgewogICAgICAgICBHUmVmUHRyPFdl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0PiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dCA9IGFkb3B0R1JlZih3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENyZWF0ZShwZXJt
aXNzaW9uUmVxdWVzdCwgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4pKTsKICAgICAgICAgd2Via2l0V2ViVmlld01ha2VQZXJtaXNzaW9uUmVxdWVzdChtX3dl
YlZpZXcsIFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1QodXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuZ2V0KCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgYm9vbCBjaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFt
ZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQ
STo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5JiBwZXJtaXNzaW9uUmVxdWVzdCkgb3ZlcnJpZGUKKyAgICB2b2lkIGNo
ZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZy
YW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwg
QVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBvdmVycmlkZQogICAgIHsKICAg
ICAgICAgYXV0byBkZXZpY2VJbmZvUGVybWlzc2lvblJlcXVlc3QgPSBhZG9wdEdSZWYod2Via2l0
RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0Q3JlYXRlKHBlcm1pc3Npb25SZXF1ZXN0LCBwYWdl
LndlYnNpdGVEYXRhU3RvcmUoKS5kZXZpY2VJZEhhc2hTYWx0U3RvcmFnZSgpKSk7CiAgICAgICAg
IHdlYmtpdFdlYlZpZXdNYWtlUGVybWlzc2lvblJlcXVlc3QobV93ZWJWaWV3LCBXRUJLSVRfUEVS
TUlTU0lPTl9SRVFVRVNUKGRldmljZUluZm9QZXJtaXNzaW9uUmVxdWVzdC5nZXQoKSkpOwotICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmln
aW4mLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0
aWVzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRp
ZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40MDA0MDNmZmQ4MzliMWQ2NzM5MGIyMDUyNTAyNDMyYWUxYTE2YjIz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFD
YXB0dXJlVXRpbGl0aWVzLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCAiV0tXZWJWaWV3UHJpdmF0ZS5o
IgorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitfV0tNZWRpYUNhcHR1cmVTdGF0ZSB0b1dLTWVkaWFDYXB0dXJlU3RhdGUoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVk
aWFDYXB0dXJlVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVk
aWFDYXB0dXJlVXRpbGl0aWVzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhZWUzOGViNjRlMmUyNDg0MTYwODc2
ODhmM2ZjNjAwZDZhMTEyOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0KQEAgLTAsMCArMSw1MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYUNhcHR1cmVVdGls
aXRpZXMuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKK25hbWVzcGFjZSBXZWJLaXQgeworCitf
V0tNZWRpYUNhcHR1cmVTdGF0ZSB0b1dLTWVkaWFDYXB0dXJlU3RhdGUoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQoreworICAgIF9XS01lZGlhQ2FwdHVyZVN0
YXRlIG1lZGlhQ2FwdHVyZVN0YXRlID0gX1dLTWVkaWFDYXB0dXJlU3RhdGVOb25lOworICAgIGlm
IChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURl
dmljZSkKKyAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVB
Y3RpdmVNaWNyb3Bob25lOworICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKKyAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUg
fD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1lcmE7CisgICAgaWYgKHN0YXRlICYgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgICAg
IG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRNaWNyb3Bob25l
OworICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkVmlkZW9D
YXB0dXJlRGV2aWNlKQorICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1
cmVTdGF0ZU11dGVkQ2FtZXJhOworCisgICAgcmV0dXJuIG1lZGlhQ2FwdHVyZVN0YXRlOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggMzhkZDdlY2JjZmI1ZjJhNjBmYzg2Yzk4YmU4YjBm
MzFhODU0ZmY4Ni4uOGZkMTZhOTgxMmMwNGFkZjA4NWU1NDRhZWUzODA0YzgyMmQ1ZjE2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaApAQCAtMTIzLDggKzEy
Myw4IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICAgICAgYm9vbCBuZWVkc0ZvbnRBdHRyaWJ1dGVz
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndl
YlZpZXdEaWRDaGFuZ2VGb250QXR0cmlidXRlczsgfQogICAgICAgICB2b2lkIGRpZENoYW5nZUZv
bnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZvbnRBdHRyaWJ1dGVzJikgZmluYWw7Ci0gICAg
ICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFn
ZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3Vy
aXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpIGZpbmFsOwotICAg
ICAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkm
LCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmln
aW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIGZpbmFsOworICAgICAgICB2b2lk
IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYs
IFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdp
biYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSBmaW5hbDsKKyAgICAgICAgdm9p
ZCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiwgV2ViRnJh
bWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNl
ck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBtZWRpYUNh
cHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MpIGZpbmFsOwogICAgICAgICB2b2lkIHByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJh
bWVQcm94eSYpIGZpbmFsOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xOTgsOCArMTk4
LDggQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3RnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuIDogMTsK
ICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW4gOiAxOwotICAgICAgICBib29s
IHdlYlZpZXdSZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXNVUkxNYWluRnJh
bWVVUkxEZWNpc2lvbkhhbmRsZXIgOiAxOwotICAgICAgICBib29sIHdlYlZpZXdDaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVVUkxGcmFtZUlkZW50aWZpZXJEZWNpc2lvbkhh
bmRsZXIgOiAxOworICAgICAgICBib29sIHdlYlZpZXdSZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9y
aXphdGlvbkZvckZyYW1lRGVjaXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3
SXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWVEZWNpc2lvbkhhbmRsZXIgOiAxOwogICAg
ICAgICBib29sIHdlYlZpZXdNZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSA6IDE7CiAgICAgICAg
IGJvb2wgd2ViVmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1dGVzIDogMTsKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0K
aW5kZXggYzE2ODUzZmE0ZGIxY2U0OTI0MDJhZmNlZWRhNTEwZmI2MGNjNjJlZS4uNzI0ZjhjMzVl
NzQ2MDUzY2JkOGIyMDAyYTQ5OTIwZTk5YTU4YzM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJBUElG
cmFtZUluZm8uaCIKICNpbXBvcnQgIkFQSUhpdFRlc3RSZXN1bHQuaCIKICNpbXBvcnQgIkNvbXBs
ZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCIKKyNpbXBvcnQgIk1lZGlhQ2FwdHVyZVV0aWxpdGll
cy5oIgogI2ltcG9ydCAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgogI2ltcG9ydCAiTmF2aWdhdGlv
bkFjdGlvbkRhdGEuaCIKICNpbXBvcnQgIlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5Lmgi
CkBAIC0xNTAsOCArMTUxLDkgQEAgdm9pZCBVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tV
SURlbGVnYXRlPiBkZWxlZ2F0ZSkKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkTm90
SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcihfd2ViVmlldzpkaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludDopXTsKICAgICBt
X2RlbGVnYXRlTWV0aG9kcy5wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3ID0gW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3ByZXNlbnRpbmdWaWV3Q29udHJv
bGxlckZvcldlYlZpZXc6KV07CiAjZW5kaWYKLSAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzVVJMTWFpbkZyYW1lVVJMRGVj
aXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXc6cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOnVybDptYWluRnJh
bWVVUkw6ZGVjaXNpb25IYW5kbGVyOildOwotICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdD
aGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVVUkxGcmFtZUlkZW50aWZpZXJE
ZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihf
d2ViVmlldzpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6bWFpbkZyYW1lVVJMOmZyYW1l
SWRlbnRpZmllcjpkZWNpc2lvbkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld1JlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWVEZWNpc2lvbkhhbmRs
ZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1
ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6dXJsOm1haW5GcmFtZVVSTDpkZWNp
c2lvbkhhbmRsZXI6KV0gfHwgW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
X3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb246ZGVjaXNpb25IYW5kbGVy
OildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdJc01lZGlhQ2FwdHVyZUF1dGhvcml6
ZWRGb3JGcmFtZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKF93ZWJWaWV3OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDptYWluRnJh
bWVVUkw6ZnJhbWVJZGVudGlmaWVyOmRlY2lzaW9uSGFuZGxlcjopXSB8fCBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpxdWVyeUV4cG9zYWJsZU1lZGlhQ2Fw
dHVyZURldmljZUluZm9ybWF0aW9uOildOworCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d01lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX3dlYlZpZXc6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KV07CiAgICAg
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1dGVzID0gW2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkQ2hhbmdlRm9udEF0
dHJpYnV0ZXM6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuZGF0YURldGVjdGlvbkNvbnRleHRG
b3JXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX2RhdGFE
ZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmlldzopXTsKQEAgLTg1OCwxMCArODYwLDI0IEBAIGJvb2wg
VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFt
ZVByb3h5KiB3ZWJGcmFtZVByCiB9CiAjZW5kaWYKIAordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVu
dDo6ZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMm
IGZvbnRBdHRyaWJ1dGVzKQoreworICAgIGlmICghbmVlZHNGb250QXR0cmlidXRlcygpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBhdXRvIHByaXZhdGVVSURlbGVnYXRlID0gKGlkIDxXS1VJRGVs
ZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBbcHJpdmF0
ZVVJRGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBkaWRDaGFuZ2VGb250
QXR0cmlidXRlczpmb250QXR0cmlidXRlcy5jcmVhdGVEaWN0aW9uYXJ5KCkuZ2V0KCldOworfQor
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLXN0YXRpYyB2b2lkIHJlcXVlc3RVc2VyTWVkaWFB
dXRob3JpemF0aW9uRm9yRGV2aWNlcyhjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCwgaWQgPFdLVUlEZWxlZ2F0ZVByaXZh
dGU+IGRlbGVnYXRlLCBXS1dlYlZpZXcmIHdlYlZpZXcpCitzdGF0aWMgdm9pZCByZXF1ZXN0VXNl
ck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLCBB
UEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eSYgcmVxdWVzdCwgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IGRlbGVnYXRlLCBX
S1dlYlZpZXcmIHdlYlZpZXcpCiB7Ci0gICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxv
Y2tQdHIoW3Byb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpXShCT09MIGF1dGhvcml6
ZWQpIHsKKyAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpj
cmVhdGUoZGVsZWdhdGUsIEBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0
aG9yaXphdGlvbjpkZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIg
PSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpLCBjaGVj
a2VyID0gV1RGTW92ZShjaGVja2VyKV0oQk9PTCBhdXRob3JpemVkKSB7CisgICAgICAgIGlmIChj
aGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisKICAg
ICAgICAgaWYgKCFhdXRob3JpemVkKSB7CiAgICAgICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0LT5k
ZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0Rlbmlh
bFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04NzEs
MTAgKzg4Nyw2IEBAIHN0YXRpYyB2b2lkIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9y
RGV2aWNlcyhjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwKICAgICAgICAgcHJvdGVjdGVkUmVx
dWVzdC0+YWxsb3coYXVkaW9EZXZpY2VVSUQsIHZpZGVvRGV2aWNlVUlEKTsKICAgICB9KTsKIAot
ICAgIGNvbnN0IFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+bWFpbkZy
YW1lKCk7Ci0gICAgVVJMIHJlcXVlc3RGcmFtZVVSTChVUkwoKSwgZnJhbWUudXJsKCkpOwotICAg
IFVSTCBtYWluRnJhbWVVUkwoVVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOwotCiAgICAgX1dLQ2Fw
dHVyZURldmljZXMgZGV2aWNlcyA9IDA7CiAgICAgaWYgKHJlcXVlc3QucmVxdWlyZXNBdWRpb0Nh
cHR1cmUoKSkKICAgICAgICAgZGV2aWNlcyB8PSBfV0tDYXB0dXJlRGV2aWNlTWljcm9waG9uZTsK
QEAgLTg4NSwyNyArODk3LDI5IEBAIHN0YXRpYyB2b2lkIHJlcXVlc3RVc2VyTWVkaWFBdXRob3Jp
emF0aW9uRm9yRGV2aWNlcyhjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwKICAgICAgICAgQVNT
RVJUKCEoZGV2aWNlcyAmIF9XS0NhcHR1cmVEZXZpY2VDYW1lcmEpKTsKICAgICB9CiAKLSAgICBh
dXRvIHByb3RlY3RlZFdlYlZpZXcgPSBSZXRhaW5QdHI8V0tXZWJWaWV3Pigmd2ViVmlldyk7Ci0g
ICAgW2RlbGVnYXRlIF93ZWJWaWV3OnByb3RlY3RlZFdlYlZpZXcuZ2V0KCkgcmVxdWVzdFVzZXJN
ZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOmRldmljZXMgdXJsOnJlcXVlc3RGcmFtZVVSTCBt
YWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIu
Z2V0KCldOwotfQotI2VuZGlmCisgICAgY29uc3QgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lID0g
ZnJhbWUucGFnZSgpLT5tYWluRnJhbWUoKTsKIAotdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6
ZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMmIGZv
bnRBdHRyaWJ1dGVzKQotewotICAgIGlmICghbmVlZHNGb250QXR0cmlidXRlcygpKQorICAgIC8v
IEZJWE1FOiBQcm92aWRlIGEgc3BlY2lmaWMgZGVsZWdhdGUgZm9yIGRpc3BsYXkgY2FwdHVyZS4K
KyAgICBpZiAoIXJlcXVlc3QucmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSgpICYmIFtkZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVB
dXRob3JpemF0aW9uOmRlY2lzaW9uSGFuZGxlcjopXSkgeworCisgICAgICAgIFtkZWxlZ2F0ZSBf
d2ViVmlldzomd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjpkZXZpY2Vz
IGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwogICAgICAgICByZXR1cm47
CisgICAgfQogCi0gICAgYXV0byBwcml2YXRlVUlEZWxlZ2F0ZSA9IChpZCA8V0tVSURlbGVnYXRl
UHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7Ci0gICAgW3ByaXZhdGVVSURl
bGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgZGlkQ2hhbmdlRm9udEF0dHJp
YnV0ZXM6Zm9udEF0dHJpYnV0ZXMuY3JlYXRlRGljdGlvbmFyeSgpLmdldCgpXTsKKyAgICBVUkwg
cmVxdWVzdEZyYW1lVVJMKFVSTCgpLCBmcmFtZS51cmwoKSk7CisgICAgVVJMIG1haW5GcmFtZVVS
TChVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSk7CisKKyAgICBbZGVsZWdhdGUgX3dlYlZpZXc6Jndl
YlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOmRldmljZXMgdXJs
OnJlcXVlc3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxl
cjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwogfQorI2VuZGlmCiAKLWJvb2wgVUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBh
Z2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4m
IHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QpCit2b2lkIFVJRGVsZWdhdGU6
OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQ
YWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2lu
JiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KQogewogI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCiAgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRl
LmdldCgpOwotICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzVVJMTWFp
bkZyYW1lVVJMRGVjaXNpb25IYW5kbGVyKSB7CisgICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURl
bGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9y
aXphdGlvbkZvckZyYW1lRGVjaXNpb25IYW5kbGVyKSB7CiAgICAgICAgIHJlcXVlc3QuZGVueShV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFz
b246OlVzZXJNZWRpYURpc2FibGVkKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBib29sIHJlcXVpcmVzQXVkaW9DYXB0dXJlID0gcmVxdWVzdC5y
ZXF1aXJlc0F1ZGlvQ2FwdHVyZSgpOwpAQCAtOTEzLDMzICs5MjcsMzMgQEAgYm9vbCBVSURlbGVn
YXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qo
V2ViUGFnZVByb3gKICAgICBib29sIHJlcXVpcmVzRGlzcGxheUNhcHR1cmUgPSByZXF1ZXN0LnJl
cXVpcmVzRGlzcGxheUNhcHR1cmUoKTsKICAgICBpZiAoIXJlcXVpcmVzQXVkaW9DYXB0dXJlICYm
ICFyZXF1aXJlc1ZpZGVvQ2FwdHVyZSAmJiAhcmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSkgewogICAg
ICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1l
ZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpOb0NvbnN0cmFpbnRzKTsKLSAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICNpZiBIQVZFKEFVVEhPUklaQVRJT05fU1RB
VFVTX0ZPUl9NRURJQV9UWVBFKQogICAgIGJvb2wgdXNpbmdNb2NrQ2FwdHVyZURldmljZXMgPSBw
YWdlLnByZWZlcmVuY2VzKCkubW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCgpOwotICAgIGF1dG8g
cmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb24gPSBtYWtlQmxvY2tQdHIoW3RoaXMsICZmcmFtZSwg
cHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCksIHdlYlZpZXcgPSBSZXRhaW5QdHI8
V0tXZWJWaWV3PihtX3VpRGVsZWdhdGUubV93ZWJWaWV3KSwgdXNpbmdNb2NrQ2FwdHVyZURldmlj
ZXNdKCkgeworICAgIGF1dG8gcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb24gPSBtYWtlQmxvY2tQ
dHIoW3RoaXMsICZmcmFtZSwgcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCksIHdl
YlZpZXcgPSBSZXRhaW5QdHI8V0tXZWJWaWV3PihtX3VpRGVsZWdhdGUubV93ZWJWaWV3KSwgdG9w
TGV2ZWxPcmlnaW4gPSBtYWtlUmVmKHRvcExldmVsT3JpZ2luKSwgdXNpbmdNb2NrQ2FwdHVyZURl
dmljZXNdKCkgbXV0YWJsZSB7CiAKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRSZXF1ZXN0LT5yZXF1
aXJlc1ZpZGVvQ2FwdHVyZSgpKSB7Ci0gICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9y
aXphdGlvbkZvckRldmljZXMoZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QsIChpZCA8V0tVSURlbGVn
YXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3ZWJWaWV3LmdldCgp
KTsKKyAgICAgICAgICAgIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWUoZnJh
bWUsIHRvcExldmVsT3JpZ2luLCBwcm90ZWN0ZWRSZXF1ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVBy
aXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqd2ViVmlldy5nZXQoKSk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgQVZBdXRob3JpemF0aW9uU3Rh
dHVzIGNhbWVyYUF1dGhvcml6YXRpb25TdGF0dXMgPSB1c2luZ01vY2tDYXB0dXJlRGV2aWNlcyA/
IEFWQXV0aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQgOiBbZ2V0QVZDYXB0dXJlRGV2aWNlQ2xh
c3MoKSBhdXRob3JpemF0aW9uU3RhdHVzRm9yTWVkaWFUeXBlOmdldEFWTWVkaWFUeXBlVmlkZW8o
KV07CiAgICAgICAgIHN3aXRjaCAoY2FtZXJhQXV0aG9yaXphdGlvblN0YXR1cykgewogICAgICAg
ICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQ6Ci0gICAgICAgICAgICByZXF1
ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHByb3RlY3RlZFJlcXVl
c3QsIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0
KCksICp3ZWJWaWV3LmdldCgpKTsKKyAgICAgICAgICAgIHJlcXVlc3RVc2VyTWVkaWFBdXRob3Jp
emF0aW9uRm9yRnJhbWUoZnJhbWUsIHRvcExldmVsT3JpZ2luLCBwcm90ZWN0ZWRSZXF1ZXN0LCAo
aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAq
d2ViVmlldy5nZXQoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBVkF1dGhv
cml6YXRpb25TdGF0dXNEZW5pZWQ6CiAgICAgICAgIGNhc2UgQVZBdXRob3JpemF0aW9uU3RhdHVz
UmVzdHJpY3RlZDoKICAgICAgICAgICAgIHByb3RlY3RlZFJlcXVlc3QtPmRlbnkoVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJt
aXNzaW9uRGVuaWVkKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY2FzZSBBVkF1dGhv
cml6YXRpb25TdGF0dXNOb3REZXRlcm1pbmVkOgotICAgICAgICAgICAgYXV0byBkZWNpc2lvbkhh
bmRsZXIgPSBtYWtlQmxvY2tQdHIoW3RoaXMsICZmcmFtZSwgcHJvdGVjdGVkUmVxdWVzdCA9IG1h
a2VSZWYocHJvdGVjdGVkUmVxdWVzdC5nZXQoKSksIHdlYlZpZXcgPSBSZXRhaW5QdHI8V0tXZWJW
aWV3PihtX3VpRGVsZWdhdGUubV93ZWJWaWV3KV0oQk9PTCBhdXRob3JpemVkKSB7CisgICAgICAg
ICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbdGhpcywgJmZyYW1lLCBw
cm90ZWN0ZWRSZXF1ZXN0ID0gbWFrZVJlZihwcm90ZWN0ZWRSZXF1ZXN0LmdldCgpKSwgd2ViVmll
dyA9IFJldGFpblB0cjxXS1dlYlZpZXc+KG1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcpLCB0b3BMZXZl
bE9yaWdpbiA9IFdURk1vdmUodG9wTGV2ZWxPcmlnaW4pXShCT09MIGF1dGhvcml6ZWQpIHsKICAg
ICAgICAgICAgICAgICBpZiAoIWF1dGhvcml6ZWQpIHsKICAgICAgICAgICAgICAgICAgICAgcHJv
dGVjdGVkUmVxdWVzdC0+ZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2Vy
TWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOwogICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJlcXVl
c3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlcyhmcmFtZSwgcHJvdGVjdGVkUmVxdWVz
dCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQo
KSwgKndlYlZpZXcuZ2V0KCkpOworICAgICAgICAgICAgICAgIHJlcXVlc3RVc2VyTWVkaWFBdXRo
b3JpemF0aW9uRm9yRnJhbWUoZnJhbWUsIHRvcExldmVsT3JpZ2luLCBwcm90ZWN0ZWRSZXF1ZXN0
LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgp
LCAqd2ViVmlldy5nZXQoKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgW2dldEFW
Q2FwdHVyZURldmljZUNsYXNzKCkgcmVxdWVzdEFjY2Vzc0Zvck1lZGlhVHlwZTpnZXRBVk1lZGlh
VHlwZVZpZGVvKCkgY29tcGxldGlvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKQEAg
LTk1Niw3ICs5NzAsNyBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveAogICAgICAgICBjYXNlIEFW
QXV0aG9yaXphdGlvblN0YXR1c0RlbmllZDoKICAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25T
dGF0dXNSZXN0cmljdGVkOgogICAgICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lv
bkRlbmllZCk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNOb3REZXRlcm1pbmVkOgogICAgICAg
ICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFJlcXVl
c3QgPSBtYWtlUmVmKHJlcXVlc3QpLCByZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbl0oQk9PTCBh
dXRob3JpemVkKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFhdXRob3JpemVkKSB7CkBAIC05NzIs
NTMgKzk4Niw2MSBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveAogICAgIH0gZWxzZQogICAgICAg
ICByZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbigpOwogI2Vsc2UKLSAgICByZXF1ZXN0VXNlck1l
ZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHJlcXVlc3QsIChpZCA8V0tVSURlbGVn
YXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICptX3VpRGVsZWdhdGUu
bV93ZWJWaWV3KTsKKyAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGZy
YW1lLCB0b3BMZXZlbE9yaWdpbiwgcmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilt
X3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwgKm1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcpOwog
I2VuZGlmCiAjZW5kaWYKLQotICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFVJRGVsZWdhdGU6
OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5
JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1l
ZGlhT3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHkmIHJlcXVlc3QpCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50
OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLCBX
ZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2lu
LCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHkmIHJlcXVlc3QpCiB7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0
ZS5tX2RlbGVnYXRlLmdldCgpOwotICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5t
X2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMTWFp
bkZyYW1lVVJMRnJhbWVJZGVudGlmaWVyRGVjaXNpb25IYW5kbGVyKSB7CisgICAgaWYgKCFkZWxl
Z2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdJc01lZGlhQ2Fw
dHVyZUF1dGhvcml6ZWRGb3JGcmFtZURlY2lzaW9uSGFuZGxlcikgewogICAgICAgICByZXF1ZXN0
LnNldFVzZXJNZWRpYUFjY2Vzc0luZm8oZmFsc2UpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdLV2ViVmlldyAqd2ViVmlldyA9IG1fdWlEZWxl
Z2F0ZS5tX3dlYlZpZXc7Ci0gICAgY29uc3QgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lID0gZnJh
bWUucGFnZSgpLT5tYWluRnJhbWUoKTsKLSAgICBVUkwgcmVxdWVzdEZyYW1lVVJMKFVSTCgpLCBm
cmFtZS51cmwoKSk7Ci0gICAgVVJMIG1haW5GcmFtZVVSTChVUkwoKSwgbWFpbkZyYW1lLT51cmwo
KSk7CisgICAgY29uc3QgYXV0byBtYWluRnJhbWUgPSBmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgp
OworCisgICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3OnF1ZXJ5RXhwb3NhYmxlTWVkaWFDYXB0dXJlRGV2aWNlSW5mb3JtYXRpb246KV0pIHsKKyAg
ICAgICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRl
KGRlbGVnYXRlLmdldCgpLCBAc2VsZWN0b3IoX3dlYlZpZXc6cXVlcnlFeHBvc2FibGVNZWRpYUNh
cHR1cmVEZXZpY2VJbmZvcm1hdGlvbjopKTsKKyAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIg
PSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpLCBjaGVj
a2VyID0gV1RGTW92ZShjaGVja2VyKV0oX1dLQ2FwdHVyZURldmljZXMgZGV2aWNlcykgeworICAg
ICAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21w
bGV0aW9uSGFuZGxlcigpOworCisgICAgICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0LT5zZXRVc2Vy
TWVkaWFBY2Nlc3NJbmZvKCEhZGV2aWNlcyk7CisgICAgICAgIH0pOworCisgICAgICAgIFsoaWQg
PFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dl
YlZpZXcgcXVlcnlFeHBvc2FibGVNZWRpYUNhcHR1cmVEZXZpY2VJbmZvcm1hdGlvbjpkZWNpc2lv
bkhhbmRsZXIuZ2V0KCldOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBjaGVj
a2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRlbGVnYXRlLmdldCgp
LCBAc2VsZWN0b3IoX3dlYlZpZXc6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1haW5G
cmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVjaXNpb25IYW5kbGVyOikpOworICAgIGF1dG8gZGVj
aXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRSZXF1ZXN0ID0gbWFrZVJlZihy
ZXF1ZXN0KSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildKE5TU3RyaW5nKiwgQk9PTCBhdXRo
b3JpemVkKSB7CisgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5D
YWxsZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENv
bXBsZXRpb25IYW5kbGVyKCk7CiAKLSAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9j
a1B0cihbcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCldKE5TU3RyaW5nKiwgQk9P
TCBhdXRob3JpemVkKSB7CiAgICAgICAgIHByb3RlY3RlZFJlcXVlc3QtPnNldFVzZXJNZWRpYUFj
Y2Vzc0luZm8oYXV0aG9yaXplZCk7CiAgICAgfSk7CiAKLSAgICBbKGlkIDxXS1VJRGVsZWdhdGVQ
cml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzp3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkZvclVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlk
ZW50aWZpZXI6ZnJhbWUuZnJhbWVJRCgpIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIu
Z2V0KCldOworICAgIFVSTCByZXF1ZXN0RnJhbWVVUkwoVVJMKCksIGZyYW1lLnVybCgpKTsKKyAg
ICBVUkwgbWFpbkZyYW1lVVJMKFVSTCgpLCBtYWluRnJhbWUtPnVybCgpKTsKIAotICAgIHJldHVy
biB0cnVlOworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3
Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOnJl
cXVlc3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjpm
cmFtZS5mcmFtZUlEKCkgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CiB9
CiAKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdl
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBX
S1dlYlZpZXcgKndlYlZpZXcgPSBtX3VpRGVsZWdhdGUubV93ZWJWaWV3OworCisgICAgW3dlYlZp
ZXcgZGlkQ2hhbmdlVmFsdWVGb3JLZXk6QCJtZWRpYUNhcHR1cmVTdGF0ZSJdOworCiAgICAgYXV0
byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOwogICAgIGlmICghZGVs
ZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3TWVkaWFDYXB0
dXJlU3RhdGVEaWRDaGFuZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIF9XS01lZGlhQ2FwdHVy
ZVN0YXRlIG1lZGlhQ2FwdHVyZVN0YXRlID0gX1dLTWVkaWFDYXB0dXJlU3RhdGVOb25lOwotICAg
IGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVy
ZURldmljZSkKLSAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3Rh
dGVBY3RpdmVNaWNyb3Bob25lOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKLSAgICAgICAgbWVkaWFDYXB0dXJlU3Rh
dGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1lcmE7Ci0gICAgaWYgKHN0YXRlICYg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCi0gICAg
ICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRNaWNyb3Bo
b25lOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkVmlk
ZW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNh
cHR1cmVTdGF0ZU11dGVkQ2FtZXJhOwotCi0gICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4p
ZGVsZWdhdGUgX3dlYlZpZXc6d2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTptZWRp
YUNhcHR1cmVTdGF0ZV07CisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUg
X3dlYlZpZXc6d2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTp0b1dLTWVkaWFDYXB0
dXJlU3RhdGUoc3RhdGUpXTsKIH0KIAogdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cmVhY2hl
ZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwg
dWludDY0X3QgdG90YWxCeXRlc05lZWRlZCwgRnVuY3Rpb248dm9pZCAodW5zaWduZWQgbG9uZyBs
b25nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oCmluZGV4IGQ5MWYwNGZmZGFi
OGQxNDI0NTRkNTA2M2ZlMTdmMGViZmE4MzM0ZWIuLjZhMDg5NTA2Y2VhMzg4ZDFkNGMzZDZkZWZk
YTVmZTBlMGFlZTU3YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5KGZyYW1lSUQsIFdURk1vdmUoaGFuZGxlciksIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pKSk7CiAgICAgfQogCisgICAg
dm9pZCBkZW55KCkgeyBzZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKGZhbHNlKTsgfQogICAgIHZvaWQg
c2V0VXNlck1lZGlhQWNjZXNzSW5mbyhib29sKTsKICAgICB2b2lkIGludmFsaWRhdGUoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDRlZjVkY2MzNjVhYTM5YWU2
MDZkMGJiYmYzOGVmNDQ5ZmU0OTA1ZDAuLjcyYTRiMDM0ZmY0YjFkYmM1N2Y2MGNmNTRmMDRhYWU3
MWRhNWY2ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTM3Niw4
ICszNzYsMTQgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSgKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCi0gICAgICAgIGlmICghbV9wYWdlLnVpQ2xpZW50KCkuZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QobV9wYWdlLCAqbV9wYWdlLnByb2Nlc3MoKS53
ZWJGcmFtZShmcmFtZUlEKSwgV1RGTW92ZSh1c2VyTWVkaWFPcmlnaW4pLCBXVEZNb3ZlKHRvcExl
dmVsT3JpZ2luKSwgcGVuZGluZ1JlcXVlc3QuZ2V0KCkpKQotICAgICAgICAgICAgdXNlck1lZGlh
QWNjZXNzV2FzRGVuaWVkKHVzZXJNZWRpYUlELCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2FibGVkKTsKKyAg
ICAgICAgLy8gSWYgcGFnZSBuYXZpZ2F0ZWQsIHRoZXJlIGlzIG5vIG5lZWQgdG8gY2FsbCB0aGUg
cGFnZSBjbGllbnQgZm9yIGF1dGhvcml6YXRpb24uCisgICAgICAgIGlmICghU2VjdXJpdHlPcmln
aW46OmNyZWF0ZUZyb21TdHJpbmcobV9wYWdlLnBhZ2VMb2FkU3RhdGUoKS5hY3RpdmVVUkwoKSkt
PmlzU2FtZVNjaGVtZUhvc3RQb3J0KHRvcExldmVsT3JpZ2luLT5zZWN1cml0eU9yaWdpbigpKSkg
eworICAgICAgICAgICAgZGVueVJlcXVlc3QodXNlck1lZGlhSUQsIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50
cywgZW1wdHlTdHJpbmcoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICAvLyBGSVhNRTogUmVtb3ZlIHdlYkZyYW1lLCB1c2VyTWVkaWFPcmlnaW4gYW5kIHRvcExl
dmVsT3JpZ2luIGZyb20gdGhpcyBDIEFQSSBjYWxsLgorICAgICAgICBtX3BhZ2UudWlDbGllbnQo
KS5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChtX3BhZ2UsICptX3Bh
Z2UucHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQpLCBXVEZNb3ZlKHVzZXJNZWRpYU9yaWdpbiks
IFdURk1vdmUodG9wTGV2ZWxPcmlnaW4pLCBwZW5kaW5nUmVxdWVzdC5nZXQoKSk7CiAgICAgfTsK
IAogICAgIGF1dG8gcmVxdWVzdElEID0gZ2VuZXJhdGVSZXF1ZXN0SUQoKTsKQEAgLTQxNSwxNSAr
NDIxLDE5IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Omdl
dFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKHVpbnQ2NF90CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKKyAgICBpZiAoIVNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG1fcGFnZS5wYWdl
TG9hZFN0YXRlKCkuYWN0aXZlVVJMKCkpLT5pc1NhbWVTY2hlbWVIb3N0UG9ydCh0b3BMZXZlbERv
Y3VtZW50T3JpZ2luLmdldCgpKSkgeworICAgICAgICBoYW5kbGVyKGZhbHNlKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKwogICAgIGF1dG8gdXNlck1lZGlhT3JpZ2luID0gQVBJOjpTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmdldCgpKTsKICAgICBhdXRv
IHRvcExldmVsT3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHRvcExldmVsRG9j
dW1lbnRPcmlnaW4uZ2V0KCkpOwogICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVBlcm1pc3Np
b25DaGVja1Byb3h5OjpjcmVhdGUoZnJhbWVJRCwgV1RGTW92ZShoYW5kbGVyKSwgV1RGTW92ZSh1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbikp
OwogCiAgICAgbV9wZW5kaW5nRGV2aWNlUmVxdWVzdHMuYWRkKHJlcXVlc3RJRCwgcmVxdWVzdC5j
b3B5UmVmKCkpOwotICAgIGlmICghbV9wYWdlLnVpQ2xpZW50KCkuY2hlY2tVc2VyTWVkaWFQZXJt
aXNzaW9uRm9yT3JpZ2luKG1fcGFnZSwgKm1fcGFnZS5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJ
RCksIHVzZXJNZWRpYU9yaWdpbi5nZXQoKSwgdG9wTGV2ZWxPcmlnaW4uZ2V0KCksIHJlcXVlc3Qu
Z2V0KCkpKSB7Ci0gICAgICAgIG1fcGVuZGluZ0RldmljZVJlcXVlc3RzLnRha2UocmVxdWVzdElE
KTsKLSAgICAgICAgaGFuZGxlcihmYWxzZSk7Ci0gICAgfQorCisgICAgLy8gRklYTUU6IFJlbW92
ZSB3ZWJGcmFtZSwgdXNlck1lZGlhT3JpZ2luIGFuZCB0b3BMZXZlbE9yaWdpbiBmcm9tIHRoaXMg
QyBBUEkgY2FsbC4KKyAgICBtX3BhZ2UudWlDbGllbnQoKS5jaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25Gb3JPcmlnaW4obV9wYWdlLCAqbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKSwg
dXNlck1lZGlhT3JpZ2luLmdldCgpLCB0b3BMZXZlbE9yaWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQo
KSk7CiB9CiAKIGJvb2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondh
c0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3ModWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJp
dHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAppbmRleCA1OTgwZGM3MDlh
MDAyODVkMGFhOGU3MzVjZDMwODE5N2M5MTE4YmRiLi5hYzgwNWU3ODhiZTIzMTdlMGE3YWFlYjcx
ODkwOWNmNDViY2E4OTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCkBAIC00NSw3ICs0NSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGFsbG93KCk7CiAKICAgICBlbnVtIGNsYXNzIFVzZXJNZWRpYUFjY2Vz
c0RlbmlhbFJlYXNvbiB7IE5vQ29uc3RyYWludHMsIFVzZXJNZWRpYURpc2FibGVkLCBOb0NhcHR1
cmVEZXZpY2VzLCBJbnZhbGlkQ29uc3RyYWludCwgSGFyZHdhcmVFcnJvciwgUGVybWlzc2lvbkRl
bmllZCwgT3RoZXJGYWlsdXJlIH07Ci0gICAgdm9pZCBkZW55KFVzZXJNZWRpYUFjY2Vzc0Rlbmlh
bFJlYXNvbik7CisgICAgdm9pZCBkZW55KFVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiA9IFVz
ZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6VXNlck1lZGlhRGlzYWJsZWQpOwogCiAgICAgdm9p
ZCBpbnZhbGlkYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDdlN2U5MjczODBkOGQ0YmE2NGQzODkxZjQzYzFiMjc5YTViZTQ5
ZTYuLjYyZGE0OGIyNjc4YTliZDY1ODlkOTk4OThmOGQ0Y2M3OWUwZjMyMTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzAwNSw2ICsz
MDA1LDggQEAKIAkJNDEwNDgyQ0IxREREMkZCNTAwRjAwNkQwIC8qIFJUQ05ldHdvcmsuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRDTmV0d29yay5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDQ4MkNDMURERDJGQjUwMEYwMDZEMCAvKiBSVENO
ZXR3b3JrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ05ldHdvcmsuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMTQzNjMyMEY2NzdCMTAwMjZGOTEyIC8q
IEluamVjdFVzZXJTY3JpcHRJbW1lZGlhdGVseS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbmplY3RVc2VyU2NyaXB0SW1tZWRpYXRlbHkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDExMjg2RUYyMUM4QTkwQzAwM0E4NTUwIC8qIE1lZGlhQ2FwdHVyZVV0aWxp
dGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUNhcHR1cmVVdGls
aXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDExMjg2RjAyMUM4QTkwRDAw
M0E4NTUwIC8qIE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDExMkI1NDcxRjlGRDNBQjAwRTY3ODc1IC8qIE5ldHdvcmtSVENS
ZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3Jr
UlRDUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEyQjU0NzFG
OUZEM0FCMDBFNjc5ODYgLyogTmV0d29ya1JUQ1Jlc29sdmVyQ29jb2EuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1JUQ1Jlc29sdmVyQ29jb2EuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEyQjU0ODFGOUZEM0FDMDBFNjc4NzUgLyog
TmV0d29ya1JUQ1Jlc29sdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5l
dHdvcmtSVENSZXNvbHZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTMwOCw2
ICs1MzEwLDggQEAKIAkJCQk1MUMwQzk3MzFEREQ3NEYwMDAzMkNBRDMgLyogSWNvbkxvYWRpbmdE
ZWxlZ2F0ZS5tbSAqLywKIAkJCQk3QTgyMUY0QjFFMkY2NjQ4MDA2MDQ1NzcgLyogTGVnYWN5Q3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50LmggKi8sCiAJCQkJN0E4MjFGNEQxRTJGNjc5RTAwNjA0
NTc3IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5tbSAqLywKKwkJCQk0MTEy
ODZFRjIxQzhBOTBDMDAzQTg1NTAgLyogTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmggKi8sCisJCQkJ
NDExMjg2RjAyMUM4QTkwRDAwM0E4NTUwIC8qIE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbSAqLywK
IAkJCQkxQUJDM0RGNDE4OTlFNDM3MDA0RjA2MjYgLyogTmF2aWdhdGlvblN0YXRlLmggKi8sCiAJ
CQkJMUFCQzNERjMxODk5RTQzNzAwNEYwNjI2IC8qIE5hdmlnYXRpb25TdGF0ZS5tbSAqLywKIAkJ
CQk1QzZDRTZEMzFGNTlFQTM1MDAwN0M2Q0IgLyogUGFnZUNsaWVudEltcGxDb2NvYS5oICovLApk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDliN2Vk
MjM5ZmNmOTRjZjg0MmMyYjM5NzNiYWE4NTA0YjE0NzY1MWMuLjIxNzVlZDA1MTgwZmRkYzhjNWFl
NjNkOTFjZTU4ZDU5ZDczNDUzYWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOS0wMS0wOCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbmV3IFNQSSBmb3IgY29udHJv
bGxpbmcgZ2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTI3OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE1pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5t
OgorICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciBfd2ViVmlldzpyZXF1ZXN0
VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lOmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOl0p
OgorICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciBfd2ViVmlldzppc01lZGlh
Q2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbToKKyAg
ICAgICAgKC1bTmF2aWdhdGlvbldoaWxlR2V0VXNlck1lZGlhUHJvbXB0RGlzcGxheWVkVUlEZWxl
Z2F0ZSBfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOmRl
dmljZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0Lm1tOgorICAgICAgICAoLVtHZXRVc2VyTWVkaWFS
ZXByb21wdFVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRp
b25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW06CisgICAgICAg
ICgtW01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVzdE1l
ZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjpd
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURp
c2FibGVkLm1tOgorICAgICAgICAoLVtVc2VyTWVkaWFVSURlbGVnYXRlIF93ZWJWaWV3OnJlcXVl
c3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lvbkhhbmRs
ZXI6XSk6CisgICAgICAgICgtW1VzZXJNZWRpYVVJRGVsZWdhdGUgX3dlYlZpZXc6aXNNZWRpYUNh
cHR1cmVBdXRob3JpemVkRm9yRnJhbWU6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5k
Ym94Lm1tOgorICAgICAgICAoLVtTaW11bGF0ZUZhaWxlZFNhbmRib3hVSURlbGVnYXRlIF93ZWJW
aWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNp
c2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1NpbXVsYXRlRmFpbGVkU2FuZGJveFVJRGVsZWdh
dGUgX3dlYlZpZXc6aXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWU6ZGVjaXNpb25IYW5k
bGVyOl0pOgorCiAyMDE5LTAxLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBBUEkgdGVzdCBicm9rZW46IFRlc3RXZWJLaXRBUEkuV2ViS2l0LkN1c3RvbURh
dGFTdG9yZVBhdGhzVmVyc3VzQ29tcGxldGlvbkhhbmRsZXJzCmRpZmYgLS1naXQgYS9Ub29scy9N
aW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubSBiL1Rvb2xzL01pbmlC
cm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tCmluZGV4IDNlNzM5ZDdjOTE1
NTM4ZTAwMzI5Y2ZmMGMwNDdhYWE3MGZkNGExYmYuLjk1ZTk4ODhlZWMyN2VkOTQ3NTU1M2MxMTMw
NTVjNmY0MjVhMWQ5ZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93
c2VyV2luZG93Q29udHJvbGxlci5tCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93
c2VyV2luZG93Q29udHJvbGxlci5tCkBAIC03OTEsMTQgKzc5MSwxNCBAQCAtICh2b2lkKWZpbmRC
YXJWaWV3RGlkQ2hhbmdlSGVpZ2h0CiB7CiB9CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tD
YXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VS
TCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXpl
ZCkpZGVjaXNpb25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2
aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25I
YW5kbGVyCiB7CiAgICAgZGVjaXNpb25IYW5kbGVyKHRydWUpOwogfQogCi0tICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDoo
TlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50
aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAo
XikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHF1ZXJ5RXhwb3NhYmxlTWVkaWFDYXB0
dXJlRGV2aWNlSW5mb3JtYXRpb246KHZvaWQgKF4pKF9XS0NhcHR1cmVEZXZpY2VzIGRldmljZXMp
KWRlY2lzaW9uSGFuZGxlcgogewotICAgIGRlY2lzaW9uSGFuZGxlcihAIiIsIGZhbHNlKTsKKyAg
ICBkZWNpc2lvbkhhbmRsZXIoMCk7CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tCmluZGV4
IDQyMWVlYTQyOTJjYmFiMTRlOTQ2Zjc5OGEzNWRlYjczZjgyYjM1MDguLmNlM2E0MzhlYTc2Njdj
NmRlNWE1ZjVlMDA5M2ExMDk4MjU2NDdhNmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbQpAQCAtNDIs
MTIgKzQyLDEyIEBAIHN0YXRpYyBib29sIG9rVG9Qcm9jZWVkID0gZmFsc2U7CiBzdGF0aWMgYm9v
bCBzaG91bGRSZWxlYXNlSW5FbnVtZXJhdGUgPSBmYWxzZTsKIAogQGludGVyZmFjZSBOYXZpZ2F0
aW9uV2hpbGVHZXRVc2VyTWVkaWFQcm9tcHREaXNwbGF5ZWRVSURlbGVnYXRlIDogTlNPYmplY3Q8
V0tVSURlbGVnYXRlPgotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1
ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRl
dmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJM
IGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRs
ZXI7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNh
cHR1cmVBdXRob3JpemF0aW9uOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhh
bmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcjsKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VS
TCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmll
cjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShO
U1N0cmluZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CiBAZW5kCiAK
IEBpbXBsZW1lbnRhdGlvbiBOYXZpZ2F0aW9uV2hpbGVHZXRVc2VyTWVkaWFQcm9tcHREaXNwbGF5
ZWRVSURlbGVnYXRlCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVl
c3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2
aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwg
ZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxl
cgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0
dXJlQXV0aG9yaXphdGlvbjogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5k
bGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAiYWJvdXQ6YmxhbmsiXV1dOwogICAgIFt3ZWJWaWV3IHJlbGVhc2VdOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5t
bQppbmRleCBjNDMyZmNhZTVlOGZjNTk3OTEyMzNlNTBiZGJiNzUzMmNiYWM0ZjdlLi5mYmMzYjU5
NmRiNjEwOTc5OWFiNTBhNTcyNTUyNDBjMDdlMGUyMDI2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQpAQCAt
NDEsMTIgKzQxLDEyIEBACiBzdGF0aWMgYm9vbCB3YXNQcm9tcHRlZCA9IGZhbHNlOwogCiBAaW50
ZXJmYWNlIEdldFVzZXJNZWRpYVJlcHJvbXB0VUlEZWxlZ2F0ZSA6IE5TT2JqZWN0PFdLVUlEZWxl
Z2F0ZT4KLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJN
ZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVy
bDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lv
bkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOworLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0
aG9yaXphdGlvbjogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2
b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwg
bWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUlu
dGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcg
KnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOwogQGVuZAogCiBAaW1wbGVt
ZW50YXRpb24gR2V0VXNlck1lZGlhUmVwcm9tcHRVSURlbGVnYXRlCi0tICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2
aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFt
ZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09M
IGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjogKF9XS0NhcHR1cmVE
ZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhh
bmRsZXIKIHsKICAgICB3YXNQcm9tcHRlZCA9IHRydWU7CiAgICAgZGVjaXNpb25IYW5kbGVyKFlF
Uyk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0
cmVhbVRyYWNrRGV0YWNoZWQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9N
ZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KaW5kZXggMWVjY2QwYTZlZTMzMTY0MjYzMmQ0ZDVj
NmRmMGJiY2QwMmFlMmY0My4uZDJjYmRhODA2YzlhZmFjNzY3NjBhODViMDU0NDgwMzEyN2NjZDU2
MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJl
YW1UcmFja0RldGFjaGVkLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQpAQCAtNDAsMTMgKzQwLDEzIEBACiBzdGF0aWMg
Ym9vbCBoYXNSZWNpZXZlZENvcnJlY3RDYXB0dXJlU3RhdGUgPSBmYWxzZTsKIAogQGludGVyZmFj
ZSBNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWRVSURlbGVnYXRlIDogTlNPYmplY3Q8V0tVSURlbGVn
YXRlPgotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1l
ZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJs
OihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRo
b3JpemF0aW9uOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZv
aWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcjsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBt
YWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50
ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAq
c2FsdCwgQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRp
YUNhcHR1cmVTdGF0ZSlzdGF0ZTsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIE1lZGlhU3RyZWFt
VHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJl
RGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1h
aW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVj
aXNpb25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVl
c3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBk
ZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgogewogICAgIGRl
Y2lzaW9uSGFuZGxlcihZRVMpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW0KaW5kZXggODgzMzNjM2Zi
YjY4MGUxNjVlN2YyNjFhNjI2ZTViMWQxMzFiM2JhYi4uNGU5N2ZkOGMwYjkwZTk1NTQ1YzdlOWVk
NjJiYzZjNWIyNGQ4ZjM3ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1tCkBAIC0zOSw3ICszOSw2IEBA
CiAKICNpZiBXS19BUElfRU5BQkxFRAogCi1zdGF0aWMgYm9vbCByZWZ1c2VSZXF1ZXN0ID0gZmFs
c2U7CiBzdGF0aWMgYm9vbCB3YXNQcm9tcHRlZCA9IGZhbHNlOwogCiBzdGF0aWMgYm9vbCByZWNl
aXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKQEAgLTYyLDE1ICs2MSwxMCBAQCBAZW5kCiAKIEBp
bXBsZW1lbnRhdGlvbiBVc2VyTWVkaWFVSURlbGVnYXRlCiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2Vz
OihOU1VJbnRlZ2VyKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJM
ICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25I
YW5kbGVyCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRp
YUNhcHR1cmVBdXRob3JpemF0aW9uOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lv
bkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgogewogICAgIHdhc1Byb21w
dGVkID0gdHJ1ZTsKIAotICAgIGlmIChyZWZ1c2VSZXF1ZXN0KSB7Ci0gICAgICAgIGRlY2lzaW9u
SGFuZGxlcihOTyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBCT09MIG5lZWRzTWlj
cm9waG9uZUF1dGhvcml6ZWQgPSBkZXZpY2VzICYgX1dLQ2FwdHVyZURldmljZU1pY3JvcGhvbmU7
CiAgICAgQk9PTCBuZWVkc0NhbWVyYUF1dGhvcml6ZWQgPSBkZXZpY2VzICYgX1dLQ2FwdHVyZURl
dmljZUNhbWVyYTsKICAgICBpZiAoIW5lZWRzTWljcm9waG9uZUF1dGhvcml6ZWQgJiYgIW5lZWRz
Q2FtZXJhQXV0aG9yaXplZCkgewpAQCAtODEsMTQgKzc1LDkgQEAgLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmlj
ZXM6KE4KICAgICBkZWNpc2lvbkhhbmRsZXIoWUVTKTsKIH0KIAotLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJM
ICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVy
OihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
U3RyaW5nICosIEJPT0wpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBxdWVyeUV4cG9zYWJsZU1lZGlhQ2FwdHVyZURldmljZUluZm9ybWF0aW9u
Oih2b2lkICheKShfV0tDYXB0dXJlRGV2aWNlcyBkZXZpY2VzKSlkZWNpc2lvbkhhbmRsZXIKIHsK
LSAgICBpZiAocmVmdXNlUmVxdWVzdCkgewotICAgICAgICBkZWNpc2lvbkhhbmRsZXIobmlsLCBO
Tyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkZWNpc2lvbkhhbmRsZXIoQCIweDk4
NzY1NDMyMSIsIE5PKTsKKyAgICBkZWNpc2lvbkhhbmRsZXIoMCk7CiB9CiBAZW5kCiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhU2lt
dWxhdGVGYWlsZWRTYW5kYm94Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0KaW5kZXggYzczYzk4OTk0ZTQx
NzMzNDkwMjU1MmE4NzhkZWY1ZDE3MjI1YmRmNC4uZWFjZDMxYTk1ZWFlZWI2M2NjNzY2NjM3ZGRl
OGMwZmQ2ZjUyYmI2YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRi
b3gubW0KQEAgLTM5LDcgKzM5LDYgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLXN0YXRpYyBi
b29sIHJlZnVzZVJlcXVlc3QgPSBmYWxzZTsKIHN0YXRpYyBib29sIHdhc1Byb21wdGVkID0gZmFs
c2U7CiAKIHN0YXRpYyBib29sIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwpAQCAtNjIs
MTUgKzYxLDEwIEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFNpbXVsYXRlRmFpbGVkU2FuZGJv
eFVJRGVsZWdhdGUKIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1
ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KE5TVUludGVnZXIpZGV2aWNlcyB1
cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb246
IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9P
TCkpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgd2FzUHJvbXB0ZWQgPSB0cnVlOwogCi0gICAgaWYg
KHJlZnVzZVJlcXVlc3QpIHsKLSAgICAgICAgZGVjaXNpb25IYW5kbGVyKE5PKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQogICAgIEJPT0wgbmVlZHNNaWNyb3Bob25lQXV0aG9yaXplZCA9IGRl
dmljZXMgJiBfV0tDYXB0dXJlRGV2aWNlTWljcm9waG9uZTsKICAgICBCT09MIG5lZWRzQ2FtZXJh
QXV0aG9yaXplZCA9IGRldmljZXMgJiBfV0tDYXB0dXJlRGV2aWNlQ2FtZXJhOwogICAgIGlmICgh
bmVlZHNNaWNyb3Bob25lQXV0aG9yaXplZCAmJiAhbmVlZHNDYW1lcmFBdXRob3JpemVkKSB7CkBA
IC04MSwxNCArNzUsOSBAQCAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJl
cXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooTgogICAgIGRlY2lzaW9uSGFu
ZGxlcihZRVMpOwogfQogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNo
ZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihO
U1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVu
dGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKiwgQk9PTCkpZGVjaXNp
b25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHF1ZXJ5RXhw
b3NhYmxlTWVkaWFDYXB0dXJlRGV2aWNlSW5mb3JtYXRpb246KHZvaWQgKF4pKF9XS0NhcHR1cmVE
ZXZpY2VzIGRldmljZXMpKWRlY2lzaW9uSGFuZGxlcgogewotICAgIGlmIChyZWZ1c2VSZXF1ZXN0
KSB7Ci0gICAgICAgIGRlY2lzaW9uSGFuZGxlcihuaWwsIE5PKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIGRlY2lzaW9uSGFuZGxlcihAIjB4OTg3NjU0MzIxIiwgTk8pOworICAgIGRl
Y2lzaW9uSGFuZGxlcigwKTsKIH0KIEBlbmQKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359296</attachid>
            <date>2019-01-16 13:16:03 -0800</date>
            <delta_ts>2019-01-16 14:54:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192793-20190116131602.patch</filename>
            <type>text/plain</type>
            <size>57305</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5OTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY4MTA5YzI0Mzc1MzQ4ZjFi
NmI5NmM1YjU0MmMxYjExNmQ5YzI3YzMuLmM2NmY5ZGMzNDI3ODE0NmYxYzRjZmNmYmZmM2RiYzFi
NWE2MGIzMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTktMDEtMTYgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgZm9yIGNv
bnRyb2xsaW5nIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyNzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU29tZSB3ZWFrbmVzc2VzIG9mIHRoZSBjdXJyZW50IGdldFVzZXJNZWRp
YS9lbnVtZXJhdGVEZXZpY2VzIFNQSSB3ZXJlIGZvdW5kLgorICAgICAgICBJbiBwYXJ0aWN1bGFy
OgorICAgICAgICAtIFRoZSBoYXNoIHNhbHQgc2hvdWxkIGJlIGhhbmRsZWQgYnkgV2ViS2l0IG5v
dCBieSBhcHBzIHVzaW5nIFdlYktpdC4KKyAgICAgICAgLSBObyBuZWVkIHRvIGV4cG9zZSB0aGUg
ZnJhbWUgVVJMLCBvbmx5IHRoZSB0b3AgbGV2ZWwgb3JpZ2luIGlzIG5lZWRlZC4KKyAgICAgICAg
LSBUaGUgbmFtZXMgb2YgdGhlIGNhbGxiYWNrIGFyZSBjaGFuZ2VkIHRvIGltcHJvdmUgdGhlIGlu
dGVudCBvZiB0aGVzZSBjYWxsYmFja3MuCisgICAgICAgIEFkZHJlc3NlZCB0aGVzZSBieSBjcmVh
dGluZyBhIG5ldyBTUEkgd2hpY2ggd2lsbCByZXBsYWNlIHRoZSBjdXJyZW50IG9uZS4KKyAgICAg
ICAgVGhlIGN1cnJlbnQgU1BJIHdpbGwgYmUgcmVtb3ZlZCBsYXRlciBvbi4KKworICAgICAgICBE
aWQgc29tZSByZWZhY3RvcmluZyBieSBtYWtpbmcgdGhlIGNhbGxiYWNrcyBub3QgcmV0dXJuIGZh
bHNlLgorICAgICAgICBJbnN0ZWFkLCBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgYmVoYXZpb3IgaW5z
aWRlIHRoZSByZXF1ZXN0IG9iamVjdHMgYXMgZGVueSBtZXRob2RzLgorICAgICAgICBTb21lIGZ1
cnRoZXIgcmVmYWN0b3Jpbmcgd2lsbCBiZSBkb25lIGFzIGEgZm9sbG93LXVwIHRvIGJldHRlciBh
bGlnbiB0aGUgQyBBUEkgd2l0aCB0aGUgQ29jb2EgQVBJLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6
Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmll
dyBfbWVkaWFDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRNZWRpYUNh
cHR1cmVNdXRlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3Bw
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMuaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbTog
QWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxl
Z2F0ZTo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpyZXF1ZXN0VXNlck1lZGlhQXV0
aG9yaXphdGlvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAg
KFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZv
ck9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjptZWRpYUNh
cHR1cmVTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5OjpkZW55KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyk6CisgICAgICAgICogVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDoKKwogMjAxOS0wMS0xNiAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgbmV3IFNQSSB0byBy
ZXF1ZXN0IGZvciBjYWNoZSBzdG9yYWdlIHF1b3RhIGluY3JlYXNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQKaW5kZXggMzA4ZjY2Y2JlNmQyMzI0NmVkZGFmZGEzMWQyYWE0NTg1ODJjOTRlMi4uZDJmYTIz
NTA0MjU2OGYyMTQyMjhlNjY2ZGIwMzI3OTU4MjY5MjNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dApAQCAtMzIxLDYgKzMyMSw3IEBAIFVJUHJvY2Vzcy9Db2NvYS9GdWxsc2NyZWVuQ2xpZW50Lm1t
CiBVSVByb2Nlc3MvQ29jb2EvR2xvYmFsRmluZEluUGFnZVN0YXRlLm1tCiBVSVByb2Nlc3MvQ29j
b2EvSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbQogVUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVBy
b3RvY29sTWFuYWdlckNsaWVudC5tbQorVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxp
dGllcy5tbQogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQogVUlQcm9jZXNzL0Nv
Y29hL1BhZ2VDbGllbnRJbXBsQ29jb2EubW0KIFVJUHJvY2Vzcy9Db2NvYS9QbGF5YmFja1Nlc3Np
b25NYW5hZ2VyUHJveHkubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
LmgKaW5kZXggNDNmZjc2M2I5MDQ4Y2M0MGE5NjdkOTQ1NmJiZTAzYWNiYjk1MDI3Yy4uMDNkMTIz
MDBkMTcxNjlmNDdjODFkYzI2MDFhNmE0MDcxN2Q3MGFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTEyOSw4ICsxMjksOCBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIGJvb2wgcnVuT3BlblBhbmVsKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0
OjpXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgT3Bl
blBhbmVsUGFyYW1ldGVycyosIFdlYktpdDo6V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94
eSopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvckdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6
OldlYkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+Jikg
eyB9Ci0gICAgdmlydHVhbCBib29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2Vj
dXJpdHlPcmlnaW4mLCBTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eSYpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktp
dDo6V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgU2VjdXJpdHlPcmlnaW4mLCBXZWJL
aXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JikgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qo
V2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBTZWN1cml0eU9y
aWdpbiYsIFNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZv
ck9yaWdpbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFNl
Y3VyaXR5T3JpZ2luJiwgU2VjdXJpdHlPcmlnaW4mLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Np
b25DaGVja1Byb3h5JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgU2VjdXJpdHlP
cmlnaW4mLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBs
ZXRpb25IYW5kbGVyKGZhbHNlKTsgfQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3RvcmFnZUFj
Y2Vzc0NvbmZpcm0oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkq
LCBjb25zdCBXVEY6OlN0cmluZyYgcmVxdWVzdGluZ0RvbWFpbiwgY29uc3QgV1RGOjpTdHJpbmcm
IGN1cnJlbnREb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggZDRlZThjYzBiNWZkOWE4NTM1NjJkYmUwMGQ1
NzMxMzc3ODhjMWZhOC4uYjYwYTgwMTJkNmQ2YTAxNzE3ZmMyMjQ4ODMzZjkwMDkzZDQ1ZWFjNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xODU1LDIyICsx
ODU1LDI0IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBj
b25zdCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAgICAgICAgICAgICBtX2NsaWVudC5k
ZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KHRvQVBJKCZwYWdlKSwg
dG9BUEkoJmZyYW1lKSwgdG9BUEkoJm9yaWdpbiksIHRvQVBJKEdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3Q6OmNyZWF0ZShzdGQ6OmV4Y2hhbmdlKGNvbXBsZXRpb25IYW5kbGVyLCBudWxscHRy
KSkucHRyKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAg
ICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdl
UHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcGVybWlzc2lvblJl
cXVlc3QpIGZpbmFsCisgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJ
OjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlP
cmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5hbAogICAgICAgICB7Ci0gICAgICAgICAgICBp
ZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KQot
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQu
ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpIHsKKyAgICAgICAgICAg
ICAgICBwZXJtaXNzaW9uUmVxdWVzdC5kZW55KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdCh0b0FQSSgmcGFnZSksIHRvQVBJKCZmcmFtZSksIHRvQVBJ
KCZ1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIHRvQVBJKCZ0b3BMZXZlbERvY3VtZW50T3JpZ2lu
KSwgdG9BUEkoJnBlcm1pc3Npb25SZXF1ZXN0KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsK
LSAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBjaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFt
ZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRp
YVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KSBmaW5hbAorICAgICAgICB2b2lkIGNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1l
UHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHkmIHJlcXVlc3QpIGZpbmFsCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIGlmICghbV9jbGllbnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKQotICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuY2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKSB7CisgICAgICAgICAgICAgICAgcmVxdWVz
dC5kZW55KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICBtX2NsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4odG9BUEko
JnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b0FQSSgmdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCB0
b0FQSSgmdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIHRvQVBJKCZyZXF1ZXN0KSwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAg
ICAgICAgIAogICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2lu
LCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2
YXRlLmgKaW5kZXggY2Q5YTU0ZWUxNzUyNTI1YmQ0MDlmYjk5YWNkMmViNTc5MDg5NmFjNS4uNTU2
ODA4MzBlNzlkMGQ0YjE5OTkzMzY4NjRiYTY3ZmIwNDRiNjdmZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBA
IC0xMDcsNiArMTA3LDggQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIAogLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBpbWFnZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkOihD
R1NpemUpc2l6ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CiAt
IChOU0RpY3Rpb25hcnkgKilfZGF0YURldGVjdGlvbkNvbnRleHRGb3JXZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsK
Ky0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVy
ZUF1dGhvcml6YXRpb246KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVy
Oih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaW5jbHVkZVNlbnNpdGl2ZU1lZGlhRGV2aWNlRGV0YWls
czoodm9pZCAoXikoQk9PTCBpbmNsdWRlU2Vuc2l0aXZlRGV0YWlscykpZGVjaXNpb25IYW5kbGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0
aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VS
TCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxl
cjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJs
IG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJ
bnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5n
ICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0
YXRlKXN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDA3
NGNkZGZkMjc4NGU4NjkxMjhkMDIwYmVkNTkyMTNhMWNiZGRlNjguLmE2NWViZWQyZmE2MWU3YjNj
ODZhMWZjMTQxYmIyNzAzMzYxNThkMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCAiSWNvbkxv
YWRpbmdEZWxlZ2F0ZS5oIgogI2ltcG9ydCAiTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmgiCiAj
aW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCIKICNp
bXBvcnQgIk5hdmlnYXRpb25TdGF0ZS5oIgogI2ltcG9ydCAiT2JqQ09iamVjdEdyYXBoLmgiCiAj
aW1wb3J0ICJQYWdlQ2xpZW50LmgiCkBAIC01NTUwLDYgKzU1NTEsMTYgQEAgLSAoQk9PTClfaXNJ
bkZ1bGxzY3JlZW4KICNlbmRpZgogfQogCistIChfV0tNZWRpYUNhcHR1cmVTdGF0ZSlfbWVkaWFD
YXB0dXJlU3RhdGUKK3sKKyAgICByZXR1cm4gV2ViS2l0Ojp0b1dLTWVkaWFDYXB0dXJlU3RhdGUo
X3BhZ2UtPm1lZGlhU3RhdGVGbGFncygpKTsKK30KKworLSAodm9pZClfc2V0TWVkaWFDYXB0dXJl
TXV0ZWQ6KEJPT0wpbXV0ZWQKK3sKKyAgICBfcGFnZS0+c2V0TWVkaWFTdHJlYW1DYXB0dXJlTXV0
ZWQobXV0ZWQpOworfQorCiAtICh2b2lkKV9tdXRlTWVkaWFDYXB0dXJlCiB7CiAgICAgX3BhZ2Ut
PnNldE1lZGlhU3RyZWFtQ2FwdHVyZU11dGVkKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggMjZjMGMzNDYw
MDJmNThkNDY0OWNkYWQyYzkyZDQ4ZDM3N2JlY2YyMi4uMTJiMDFlODVkMTkzNjAxZGYxYTJiYTNl
ODQxMWU0ODE1Y2Y3ZTQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC00MDQsNiArNDA0LDkgQEAgdHlwZWRlZiBO
U19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRGdWxsc2NyZWVuRGVsZWdhdGU6KSBpZDxfV0tGdWxsc2NyZWVuRGVsZWdh
dGU+IF9mdWxsc2NyZWVuRGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBp
b3MoMTEuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9pc0luRnVs
bHNjcmVlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSk7CiAKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgX1dLTWVkaWFDYXB0dXJlU3RhdGUgX21lZGlhQ2FwdHVyZVN0
YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworCistICh2b2lkKV9zZXRNZWRpYUNhcHR1cmVNdXRlZDooQk9PTCltdXRlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX211
dGVNZWRpYUNhcHR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkp
OwogLSAodm9pZClfc2V0UGFnZU11dGVkOihfV0tNZWRpYU11dGVkU3RhdGUpbXV0ZWRTdGF0ZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCBk
NGE4ZDFlOTljN2FkNWYwMzI3YmI4NzRmYzBlYWMzMGMxYTRlZGYyLi4yZTUyYTNlNWE2OTQ4MTIw
YWM5ODgwYTQ3NmFlNzQ0YWRlMDhjNmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCkBAIC0xODQsMTggKzE4NCwxNiBAQCBw
cml2YXRlOgogICAgICAgICB3ZWJraXRXZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0KG1fd2Vi
VmlldywgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVChnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0LmdldCgpKSk7CiAgICAgfQogCi0gICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1
cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4m
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkm
IHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5hbAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5JiBwZXJtaXNzaW9uUmVxdWVzdCkgZmluYWwKICAgICB7CiAgICAgICAgIEdSZWZQdHI8V2Vi
S2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q+IHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
ID0gYWRvcHRHUmVmKHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRlKHBlcm1p
c3Npb25SZXF1ZXN0LCB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbikpOwogICAgICAgICB3ZWJraXRXZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0KG1fd2Vi
VmlldywgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dC5nZXQoKSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBib29sIGNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1l
UHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgQVBJ
OjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1lZGlhUGVybWlz
c2lvbkNoZWNrUHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBvdmVycmlkZQorICAgIHZvaWQgY2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJh
bWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBB
UEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJt
aXNzaW9uQ2hlY2tQcm94eSYgcGVybWlzc2lvblJlcXVlc3QpIG92ZXJyaWRlCiAgICAgewogICAg
ICAgICBhdXRvIGRldmljZUluZm9QZXJtaXNzaW9uUmVxdWVzdCA9IGFkb3B0R1JlZih3ZWJraXRE
ZXZpY2VJbmZvUGVybWlzc2lvblJlcXVlc3RDcmVhdGUocGVybWlzc2lvblJlcXVlc3QsICZwYWdl
LndlYnNpdGVEYXRhU3RvcmUoKS5kZXZpY2VJZEhhc2hTYWx0U3RvcmFnZSgpKSk7CiAgICAgICAg
IHdlYmtpdFdlYlZpZXdNYWtlUGVybWlzc2lvblJlcXVlc3QobV93ZWJWaWV3LCBXRUJLSVRfUEVS
TUlTU0lPTl9SRVFVRVNUKGRldmljZUluZm9QZXJtaXNzaW9uUmVxdWVzdC5nZXQoKSkpOwotICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmln
aW4mLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0
aWVzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRp
ZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40MDA0MDNmZmQ4MzliMWQ2NzM5MGIyMDUyNTAyNDMyYWUxYTE2YjIz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFD
YXB0dXJlVXRpbGl0aWVzLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCAiV0tXZWJWaWV3UHJpdmF0ZS5o
IgorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitfV0tNZWRpYUNhcHR1cmVTdGF0ZSB0b1dLTWVkaWFDYXB0dXJlU3RhdGUoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVk
aWFDYXB0dXJlVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVk
aWFDYXB0dXJlVXRpbGl0aWVzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhZWUzOGViNjRlMmUyNDg0MTYwODc2
ODhmM2ZjNjAwZDZhMTEyOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0KQEAgLTAsMCArMSw1MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYUNhcHR1cmVVdGls
aXRpZXMuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKK25hbWVzcGFjZSBXZWJLaXQgeworCitf
V0tNZWRpYUNhcHR1cmVTdGF0ZSB0b1dLTWVkaWFDYXB0dXJlU3RhdGUoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQoreworICAgIF9XS01lZGlhQ2FwdHVyZVN0
YXRlIG1lZGlhQ2FwdHVyZVN0YXRlID0gX1dLTWVkaWFDYXB0dXJlU3RhdGVOb25lOworICAgIGlm
IChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURl
dmljZSkKKyAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVB
Y3RpdmVNaWNyb3Bob25lOworICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKKyAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUg
fD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1lcmE7CisgICAgaWYgKHN0YXRlICYgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgICAg
IG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRNaWNyb3Bob25l
OworICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkVmlkZW9D
YXB0dXJlRGV2aWNlKQorICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1
cmVTdGF0ZU11dGVkQ2FtZXJhOworCisgICAgcmV0dXJuIG1lZGlhQ2FwdHVyZVN0YXRlOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggMzhkZDdlY2JjZmI1ZjJhNjBmYzg2Yzk4YmU4YjBm
MzFhODU0ZmY4Ni4uOGZkMTZhOTgxMmMwNGFkZjA4NWU1NDRhZWUzODA0YzgyMmQ1ZjE2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaApAQCAtMTIzLDggKzEy
Myw4IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICAgICAgYm9vbCBuZWVkc0ZvbnRBdHRyaWJ1dGVz
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndl
YlZpZXdEaWRDaGFuZ2VGb250QXR0cmlidXRlczsgfQogICAgICAgICB2b2lkIGRpZENoYW5nZUZv
bnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZvbnRBdHRyaWJ1dGVzJikgZmluYWw7Ci0gICAg
ICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFn
ZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3Vy
aXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpIGZpbmFsOwotICAg
ICAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkm
LCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmln
aW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIGZpbmFsOworICAgICAgICB2b2lk
IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYs
IFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdp
biYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSBmaW5hbDsKKyAgICAgICAgdm9p
ZCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiwgV2ViRnJh
bWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNl
ck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBtZWRpYUNh
cHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MpIGZpbmFsOwogICAgICAgICB2b2lkIHByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJh
bWVQcm94eSYpIGZpbmFsOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xOTgsOCArMTk4
LDggQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3RnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuIDogMTsK
ICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW4gOiAxOwotICAgICAgICBib29s
IHdlYlZpZXdSZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXNVUkxNYWluRnJh
bWVVUkxEZWNpc2lvbkhhbmRsZXIgOiAxOwotICAgICAgICBib29sIHdlYlZpZXdDaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVVUkxGcmFtZUlkZW50aWZpZXJEZWNpc2lvbkhh
bmRsZXIgOiAxOworICAgICAgICBib29sIHdlYlZpZXdSZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9y
aXphdGlvbkZvckZyYW1lRGVjaXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3
SXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWVEZWNpc2lvbkhhbmRsZXIgOiAxOwogICAg
ICAgICBib29sIHdlYlZpZXdNZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSA6IDE7CiAgICAgICAg
IGJvb2wgd2ViVmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1dGVzIDogMTsKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0K
aW5kZXggYzE2ODUzZmE0ZGIxY2U0OTI0MDJhZmNlZWRhNTEwZmI2MGNjNjJlZS4uYzM1ZWI1YTkw
NTU2NjhmZjljZDNmMWQ0MTM4YWE2ZWNlYzNlZTlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJBUElG
cmFtZUluZm8uaCIKICNpbXBvcnQgIkFQSUhpdFRlc3RSZXN1bHQuaCIKICNpbXBvcnQgIkNvbXBs
ZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCIKKyNpbXBvcnQgIk1lZGlhQ2FwdHVyZVV0aWxpdGll
cy5oIgogI2ltcG9ydCAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgogI2ltcG9ydCAiTmF2aWdhdGlv
bkFjdGlvbkRhdGEuaCIKICNpbXBvcnQgIlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5Lmgi
CkBAIC0xNTAsOCArMTUxLDkgQEAgdm9pZCBVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tV
SURlbGVnYXRlPiBkZWxlZ2F0ZSkKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkTm90
SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcihfd2ViVmlldzpkaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludDopXTsKICAgICBt
X2RlbGVnYXRlTWV0aG9kcy5wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3ID0gW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3ByZXNlbnRpbmdWaWV3Q29udHJv
bGxlckZvcldlYlZpZXc6KV07CiAjZW5kaWYKLSAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzVVJMTWFpbkZyYW1lVVJMRGVj
aXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXc6cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOnVybDptYWluRnJh
bWVVUkw6ZGVjaXNpb25IYW5kbGVyOildOwotICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdD
aGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVVUkxGcmFtZUlkZW50aWZpZXJE
ZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihf
d2ViVmlldzpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6bWFpbkZyYW1lVVJMOmZyYW1l
SWRlbnRpZmllcjpkZWNpc2lvbkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld1JlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWVEZWNpc2lvbkhhbmRs
ZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1
ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6dXJsOm1haW5GcmFtZVVSTDpkZWNp
c2lvbkhhbmRsZXI6KV0gfHwgW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
X3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb246ZGVjaXNpb25IYW5kbGVy
OildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdJc01lZGlhQ2FwdHVyZUF1dGhvcml6
ZWRGb3JGcmFtZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKF93ZWJWaWV3OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDptYWluRnJh
bWVVUkw6ZnJhbWVJZGVudGlmaWVyOmRlY2lzaW9uSGFuZGxlcjopXSB8fCBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzppbmNsdWRlU2Vuc2l0aXZlTWVkaWFE
ZXZpY2VEZXRhaWxzOildOworCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld01lZGlhQ2Fw
dHVyZVN0YXRlRGlkQ2hhbmdlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXc6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KV07CiAgICAgbV9kZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1dGVzID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXM6
KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuZGF0YURldGVjdGlvbkNvbnRleHRGb3JXZWJWaWV3
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX2RhdGFEZXRlY3Rpb25D
b250ZXh0Rm9yV2ViVmlldzopXTsKQEAgLTg1OCwxMCArODYwLDI0IEBAIGJvb2wgVUlEZWxlZ2F0
ZTo6VUlDbGllbnQ6OnJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiB3
ZWJGcmFtZVByCiB9CiAjZW5kaWYKIAordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkQ2hh
bmdlRm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMmIGZvbnRBdHRy
aWJ1dGVzKQoreworICAgIGlmICghbmVlZHNGb250QXR0cmlidXRlcygpKQorICAgICAgICByZXR1
cm47CisKKyAgICBhdXRvIHByaXZhdGVVSURlbGVnYXRlID0gKGlkIDxXS1VJRGVsZWdhdGVQcml2
YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBbcHJpdmF0ZVVJRGVsZWdh
dGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBkaWRDaGFuZ2VGb250QXR0cmlidXRl
czpmb250QXR0cmlidXRlcy5jcmVhdGVEaWN0aW9uYXJ5KCkuZ2V0KCldOworfQorCiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKLXN0YXRpYyB2b2lkIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0
aW9uRm9yRGV2aWNlcyhjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCwgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IGRlbGVn
YXRlLCBXS1dlYlZpZXcmIHdlYlZpZXcpCitzdGF0aWMgdm9pZCByZXF1ZXN0VXNlck1lZGlhQXV0
aG9yaXphdGlvbkZvckZyYW1lKGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3Vy
aXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eSYgcmVxdWVzdCwgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IGRlbGVnYXRlLCBXS1dlYlZpZXcm
IHdlYlZpZXcpCiB7Ci0gICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3By
b3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpXShCT09MIGF1dGhvcml6ZWQpIHsKKyAg
ICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVs
ZWdhdGUsIEBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlv
bjpkZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxv
Y2tQdHIoW3Byb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpLCBjaGVja2VyID0gV1RG
TW92ZShjaGVja2VyKV0oQk9PTCBhdXRob3JpemVkKSB7CisgICAgICAgIGlmIChjaGVja2VyLT5j
b21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisKICAgICAgICAgaWYg
KCFhdXRob3JpemVkKSB7CiAgICAgICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0LT5kZW55KFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6
UGVybWlzc2lvbkRlbmllZCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04NzEsMTAgKzg4Nyw2
IEBAIHN0YXRpYyB2b2lkIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlcyhj
b25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwKICAgICAgICAgcHJvdGVjdGVkUmVxdWVzdC0+YWxs
b3coYXVkaW9EZXZpY2VVSUQsIHZpZGVvRGV2aWNlVUlEKTsKICAgICB9KTsKIAotICAgIGNvbnN0
IFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0g
ICAgVVJMIHJlcXVlc3RGcmFtZVVSTChVUkwoKSwgZnJhbWUudXJsKCkpOwotICAgIFVSTCBtYWlu
RnJhbWVVUkwoVVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOwotCiAgICAgX1dLQ2FwdHVyZURldmlj
ZXMgZGV2aWNlcyA9IDA7CiAgICAgaWYgKHJlcXVlc3QucmVxdWlyZXNBdWRpb0NhcHR1cmUoKSkK
ICAgICAgICAgZGV2aWNlcyB8PSBfV0tDYXB0dXJlRGV2aWNlTWljcm9waG9uZTsKQEAgLTg4NSwy
NyArODk3LDI5IEBAIHN0YXRpYyB2b2lkIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9y
RGV2aWNlcyhjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwKICAgICAgICAgQVNTRVJUKCEoZGV2
aWNlcyAmIF9XS0NhcHR1cmVEZXZpY2VDYW1lcmEpKTsKICAgICB9CiAKLSAgICBhdXRvIHByb3Rl
Y3RlZFdlYlZpZXcgPSBSZXRhaW5QdHI8V0tXZWJWaWV3Pigmd2ViVmlldyk7Ci0gICAgW2RlbGVn
YXRlIF93ZWJWaWV3OnByb3RlY3RlZFdlYlZpZXcuZ2V0KCkgcmVxdWVzdFVzZXJNZWRpYUF1dGhv
cml6YXRpb25Gb3JEZXZpY2VzOmRldmljZXMgdXJsOnJlcXVlc3RGcmFtZVVSTCBtYWluRnJhbWVV
Ukw6bWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwot
fQotI2VuZGlmCisgICAgY29uc3QgYXV0byogbWFpbkZyYW1lID0gZnJhbWUucGFnZSgpLT5tYWlu
RnJhbWUoKTsKIAotdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkQ2hhbmdlRm9udEF0dHJp
YnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMmIGZvbnRBdHRyaWJ1dGVzKQotewot
ICAgIGlmICghbmVlZHNGb250QXR0cmlidXRlcygpKQorICAgIC8vIEZJWE1FOiBQcm92aWRlIGEg
c3BlY2lmaWMgZGVsZWdhdGUgZm9yIGRpc3BsYXkgY2FwdHVyZS4KKyAgICBpZiAoIXJlcXVlc3Qu
cmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSgpICYmIFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uOmRlY2lz
aW9uSGFuZGxlcjopXSkgeworCisgICAgICAgIFtkZWxlZ2F0ZSBfd2ViVmlldzomd2ViVmlldyBy
ZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjpkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjpk
ZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwogICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgYXV0
byBwcml2YXRlVUlEZWxlZ2F0ZSA9IChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVn
YXRlLm1fZGVsZWdhdGUuZ2V0KCk7Ci0gICAgW3ByaXZhdGVVSURlbGVnYXRlIF93ZWJWaWV3Om1f
dWlEZWxlZ2F0ZS5tX3dlYlZpZXcgZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXM6Zm9udEF0dHJpYnV0
ZXMuY3JlYXRlRGljdGlvbmFyeSgpLmdldCgpXTsKKyAgICBVUkwgcmVxdWVzdEZyYW1lVVJMIHsg
VVJMKCksIGZyYW1lLnVybCgpIH07CisgICAgVVJMIG1haW5GcmFtZVVSTCB7IFVSTCgpLCBtYWlu
RnJhbWUtPnVybCgpIH07CisKKyAgICBbZGVsZWdhdGUgX3dlYlZpZXc6JndlYlZpZXcgcmVxdWVz
dFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOmRldmljZXMgdXJsOnJlcXVlc3RGcmFt
ZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhh
bmRsZXIuZ2V0KCldOwogfQorI2VuZGlmCiAKLWJvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFn
ZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9y
aWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QpCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpk
ZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBh
Z2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFP
cmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOwotICAg
IGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzVVJMTWFpbkZyYW1lVVJMRGVj
aXNpb25IYW5kbGVyKSB7CisgICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZy
YW1lRGVjaXNpb25IYW5kbGVyKSB7CiAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRp
YURpc2FibGVkKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICBib29sIHJlcXVpcmVzQXVkaW9DYXB0dXJlID0gcmVxdWVzdC5yZXF1aXJlc0F1ZGlv
Q2FwdHVyZSgpOwpAQCAtOTEzLDMzICs5MjcsMzMgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVu
dDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3gK
ICAgICBib29sIHJlcXVpcmVzRGlzcGxheUNhcHR1cmUgPSByZXF1ZXN0LnJlcXVpcmVzRGlzcGxh
eUNhcHR1cmUoKTsKICAgICBpZiAoIXJlcXVpcmVzQXVkaW9DYXB0dXJlICYmICFyZXF1aXJlc1Zp
ZGVvQ2FwdHVyZSAmJiAhcmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSkgewogICAgICAgICByZXF1ZXN0
LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVu
aWFsUmVhc29uOjpOb0NvbnN0cmFpbnRzKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IHJldHVybjsKICAgICB9CiAKICNpZiBIQVZFKEFVVEhPUklaQVRJT05fU1RBVFVTX0ZPUl9NRURJ
QV9UWVBFKQogICAgIGJvb2wgdXNpbmdNb2NrQ2FwdHVyZURldmljZXMgPSBwYWdlLnByZWZlcmVu
Y2VzKCkubW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCgpOwotICAgIGF1dG8gcmVxdWVzdENhbWVy
YUF1dGhvcml6YXRpb24gPSBtYWtlQmxvY2tQdHIoW3RoaXMsICZmcmFtZSwgcHJvdGVjdGVkUmVx
dWVzdCA9IG1ha2VSZWYocmVxdWVzdCksIHdlYlZpZXcgPSBSZXRhaW5QdHI8V0tXZWJWaWV3Piht
X3VpRGVsZWdhdGUubV93ZWJWaWV3KSwgdXNpbmdNb2NrQ2FwdHVyZURldmljZXNdKCkgeworICAg
IGF1dG8gcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb24gPSBtYWtlQmxvY2tQdHIoW3RoaXMsICZm
cmFtZSwgcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCksIHdlYlZpZXcgPSBSZXRh
aW5QdHI8V0tXZWJWaWV3PihtX3VpRGVsZWdhdGUubV93ZWJWaWV3KSwgdG9wTGV2ZWxPcmlnaW4g
PSBtYWtlUmVmKHRvcExldmVsT3JpZ2luKSwgdXNpbmdNb2NrQ2FwdHVyZURldmljZXNdKCkgbXV0
YWJsZSB7CiAKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRSZXF1ZXN0LT5yZXF1aXJlc1ZpZGVvQ2Fw
dHVyZSgpKSB7Ci0gICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRl
dmljZXMoZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QsIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4p
bV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3ZWJWaWV3LmdldCgpKTsKKyAgICAgICAg
ICAgIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWUoZnJhbWUsIHRvcExldmVs
T3JpZ2luLCBwcm90ZWN0ZWRSZXF1ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlE
ZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqd2ViVmlldy5nZXQoKSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgQVZBdXRob3JpemF0aW9uU3RhdHVzIGNhbWVyYUF1
dGhvcml6YXRpb25TdGF0dXMgPSB1c2luZ01vY2tDYXB0dXJlRGV2aWNlcyA/IEFWQXV0aG9yaXph
dGlvblN0YXR1c0F1dGhvcml6ZWQgOiBbZ2V0QVZDYXB0dXJlRGV2aWNlQ2xhc3MoKSBhdXRob3Jp
emF0aW9uU3RhdHVzRm9yTWVkaWFUeXBlOmdldEFWTWVkaWFUeXBlVmlkZW8oKV07CiAgICAgICAg
IHN3aXRjaCAoY2FtZXJhQXV0aG9yaXphdGlvblN0YXR1cykgewogICAgICAgICBjYXNlIEFWQXV0
aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQ6Ci0gICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlh
QXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QsIChpZCA8V0tV
SURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3ZWJWaWV3
LmdldCgpKTsKKyAgICAgICAgICAgIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJh
bWUoZnJhbWUsIHRvcExldmVsT3JpZ2luLCBwcm90ZWN0ZWRSZXF1ZXN0LCAoaWQgPFdLVUlEZWxl
Z2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqd2ViVmlldy5nZXQo
KSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0
dXNEZW5pZWQ6CiAgICAgICAgIGNhc2UgQVZBdXRob3JpemF0aW9uU3RhdHVzUmVzdHJpY3RlZDoK
ICAgICAgICAgICAgIHByb3RlY3RlZFJlcXVlc3QtPmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVk
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0
dXNOb3REZXRlcm1pbmVkOgotICAgICAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoW3RoaXMsICZmcmFtZSwgcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocHJvdGVj
dGVkUmVxdWVzdC5nZXQoKSksIHdlYlZpZXcgPSBSZXRhaW5QdHI8V0tXZWJWaWV3PihtX3VpRGVs
ZWdhdGUubV93ZWJWaWV3KV0oQk9PTCBhdXRob3JpemVkKSB7CisgICAgICAgICAgICBhdXRvIGRl
Y2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbdGhpcywgJmZyYW1lLCBwcm90ZWN0ZWRSZXF1
ZXN0ID0gbWFrZVJlZihwcm90ZWN0ZWRSZXF1ZXN0LmdldCgpKSwgd2ViVmlldyA9IFJldGFpblB0
cjxXS1dlYlZpZXc+KG1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcpLCB0b3BMZXZlbE9yaWdpbiA9IFdU
Rk1vdmUodG9wTGV2ZWxPcmlnaW4pXShCT09MIGF1dGhvcml6ZWQpIHsKICAgICAgICAgICAgICAg
ICBpZiAoIWF1dGhvcml6ZWQpIHsKICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkUmVxdWVz
dC0+ZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NE
ZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOwogICAgICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJlcXVlc3RVc2VyTWVkaWFB
dXRob3JpemF0aW9uRm9yRGV2aWNlcyhmcmFtZSwgcHJvdGVjdGVkUmVxdWVzdCwgKGlkIDxXS1VJ
RGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwgKndlYlZpZXcu
Z2V0KCkpOworICAgICAgICAgICAgICAgIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9y
RnJhbWUoZnJhbWUsIHRvcExldmVsT3JpZ2luLCBwcm90ZWN0ZWRSZXF1ZXN0LCAoaWQgPFdLVUlE
ZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqd2ViVmlldy5n
ZXQoKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgW2dldEFWQ2FwdHVyZURldmlj
ZUNsYXNzKCkgcmVxdWVzdEFjY2Vzc0Zvck1lZGlhVHlwZTpnZXRBVk1lZGlhVHlwZVZpZGVvKCkg
Y29tcGxldGlvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKQEAgLTk1Niw3ICs5NzAs
NyBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveAogICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlv
blN0YXR1c0RlbmllZDoKICAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNSZXN0cmlj
dGVkOgogICAgICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCk7Ci0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY2Fz
ZSBBVkF1dGhvcml6YXRpb25TdGF0dXNOb3REZXRlcm1pbmVkOgogICAgICAgICAgICAgYXV0byBk
ZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVm
KHJlcXVlc3QpLCByZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbl0oQk9PTCBhdXRob3JpemVkKSB7
CiAgICAgICAgICAgICAgICAgaWYgKCFhdXRob3JpemVkKSB7CkBAIC05NzIsNTMgKzk4Niw2MSBA
QCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveAogICAgIH0gZWxzZQogICAgICAgICByZXF1ZXN0Q2Ft
ZXJhQXV0aG9yaXphdGlvbigpOwogI2Vsc2UKLSAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXph
dGlvbkZvckRldmljZXMoZnJhbWUsIHJlcXVlc3QsIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4p
bV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICptX3VpRGVsZWdhdGUubV93ZWJWaWV3KTsK
KyAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGZyYW1lLCB0b3BMZXZl
bE9yaWdpbiwgcmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUu
bV9kZWxlZ2F0ZS5nZXQoKSwgKm1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcpOwogI2VuZGlmCiAjZW5k
aWYKLQotICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpj
aGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJG
cmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBB
UEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvbkNo
ZWNrUHJveHkmIHJlcXVlc3QpCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5
JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBBUEk6OlNlY3Vy
aXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkm
IHJlcXVlc3QpCiB7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRl
LmdldCgpOwotICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3Q2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMTWFpbkZyYW1lVVJMRnJh
bWVJZGVudGlmaWVyRGVjaXNpb25IYW5kbGVyKSB7CisgICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91
aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdJc01lZGlhQ2FwdHVyZUF1dGhvcml6
ZWRGb3JGcmFtZURlY2lzaW9uSGFuZGxlcikgewogICAgICAgICByZXF1ZXN0LnNldFVzZXJNZWRp
YUFjY2Vzc0luZm8oZmFsc2UpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIFdLV2ViVmlldyAqd2ViVmlldyA9IG1fdWlEZWxlZ2F0ZS5tX3dlYlZp
ZXc7Ci0gICAgY29uc3QgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lID0gZnJhbWUucGFnZSgpLT5t
YWluRnJhbWUoKTsKLSAgICBVUkwgcmVxdWVzdEZyYW1lVVJMKFVSTCgpLCBmcmFtZS51cmwoKSk7
Ci0gICAgVVJMIG1haW5GcmFtZVVSTChVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSk7CisgICAgY29u
c3QgYXV0byogbWFpbkZyYW1lID0gZnJhbWUucGFnZSgpLT5tYWluRnJhbWUoKTsKKworICAgIGlm
IChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzppbmNsdWRl
U2Vuc2l0aXZlTWVkaWFEZXZpY2VEZXRhaWxzOildKSB7CisgICAgICAgIGF1dG8gY2hlY2tlciA9
IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZS5nZXQoKSwgQHNl
bGVjdG9yKF93ZWJWaWV3OmluY2x1ZGVTZW5zaXRpdmVNZWRpYURldmljZURldGFpbHM6KSk7Cisg
ICAgICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRSZXF1
ZXN0ID0gbWFrZVJlZihyZXF1ZXN0KSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildKEJPT0wg
aW5jbHVkZVNlbnNpdGl2ZURldGFpbHMpIHsKKyAgICAgICAgICAgIGlmIChjaGVja2VyLT5jb21w
bGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKKworICAgICAg
ICAgICAgcHJvdGVjdGVkUmVxdWVzdC0+c2V0VXNlck1lZGlhQWNjZXNzSW5mbyhpbmNsdWRlU2Vu
c2l0aXZlRGV0YWlscyk7CisgICAgICAgIH0pOworCisgICAgICAgIFsoaWQgPFdLVUlEZWxlZ2F0
ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgaW5jbHVk
ZVNlbnNpdGl2ZU1lZGlhRGV2aWNlRGV0YWlsczpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRs
ZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRlbGVnYXRlLmdldCgpLCBAc2VsZWN0b3IoX3dlYlZpZXc6
Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50aWZp
ZXI6ZGVjaXNpb25IYW5kbGVyOikpOworICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJs
b2NrUHRyKFtwcm90ZWN0ZWRSZXF1ZXN0ID0gbWFrZVJlZihyZXF1ZXN0KSwgY2hlY2tlciA9IFdU
Rk1vdmUoY2hlY2tlcildKE5TU3RyaW5nKiwgQk9PTCBhdXRob3JpemVkKSB7CisgICAgICAgIGlm
IChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CiAK
LSAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbcHJvdGVjdGVkUmVxdWVz
dCA9IG1ha2VSZWYocmVxdWVzdCldKE5TU3RyaW5nKiwgQk9PTCBhdXRob3JpemVkKSB7CiAgICAg
ICAgIHByb3RlY3RlZFJlcXVlc3QtPnNldFVzZXJNZWRpYUFjY2Vzc0luZm8oYXV0aG9yaXplZCk7
CiAgICAgfSk7CiAKLSAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2Vi
Vmlldzp3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0RnJhbWVV
UkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUuZnJhbWVJ
RCgpIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOworICAgIFVSTCByZXF1
ZXN0RnJhbWVVUkwgeyBVUkwoKSwgZnJhbWUudXJsKCkgfTsKKyAgICBVUkwgbWFpbkZyYW1lVVJM
IHsgVVJMKCksIG1haW5GcmFtZS0+dXJsKCkgfTsKIAotICAgIHJldHVybiB0cnVlOworICAgIFso
aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5t
X3dlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVlc3RGcmFtZVVSTCBt
YWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjpmcmFtZS5mcmFtZUlEKCkg
ZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CiB9CiAKIHZvaWQgVUlEZWxl
Z2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBXS1dlYlZpZXcgKndlYlZp
ZXcgPSBtX3VpRGVsZWdhdGUubV93ZWJWaWV3OworCisgICAgW3dlYlZpZXcgZGlkQ2hhbmdlVmFs
dWVGb3JLZXk6QCJtZWRpYUNhcHR1cmVTdGF0ZSJdOworCiAgICAgYXV0byBkZWxlZ2F0ZSA9IG1f
dWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOwogICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlE
ZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3TWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFu
Z2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlIG1lZGlhQ2Fw
dHVyZVN0YXRlID0gX1dLTWVkaWFDYXB0dXJlU3RhdGVOb25lOwotICAgIGlmIChzdGF0ZSAmIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkKLSAgICAg
ICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVNaWNyb3Bo
b25lOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZVZp
ZGVvQ2FwdHVyZURldmljZSkKLSAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFD
YXB0dXJlU3RhdGVBY3RpdmVDYW1lcmE7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIG1lZGlhQ2FwdHVy
ZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRNaWNyb3Bob25lOwotICAgIGlmIChz
dGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNl
KQotICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVk
Q2FtZXJhOwotCi0gICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZp
ZXc6d2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTptZWRpYUNhcHR1cmVTdGF0ZV07
CisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6d2ViVmll
dyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTp0b1dLTWVkaWFDYXB0dXJlU3RhdGUoc3RhdGUp
XTsKIH0KIAogdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YShXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biYgc2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxC
eXRlc05lZWRlZCwgRnVuY3Rpb248dm9pZCAodW5zaWduZWQgbG9uZyBsb25nKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25DaGVja1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oCmluZGV4IGQ5MWYwNGZmZGFiOGQxNDI0NTRkNTA2M2Zl
MTdmMGViZmE4MzM0ZWIuLjZhMDg5NTA2Y2VhMzg4ZDFkNGMzZDZkZWZkYTVmZTBlMGFlZTU3YzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvbkNoZWNrUHJveHkuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5KGZyYW1lSUQsIFdU
Rk1vdmUoaGFuZGxlciksIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3Zl
KHRvcExldmVsRG9jdW1lbnRPcmlnaW4pKSk7CiAgICAgfQogCisgICAgdm9pZCBkZW55KCkgeyBz
ZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKGZhbHNlKTsgfQogICAgIHZvaWQgc2V0VXNlck1lZGlhQWNj
ZXNzSW5mbyhib29sKTsKICAgICB2b2lkIGludmFsaWRhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDdmMTdiMmQzZDU3YjhmOGU1YzU2YTM2NjZmZjJiN2Ji
OWVkNmU4NTYuLjc4Y2QwYzY5MTA2ODE4MWJhYTlhZDZkMGJlM2YwYjEwZmM0NGI2ODIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTM3OCw4ICszNzgsMTYgQEAgdm9p
ZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRp
YVBlcm1pc3Npb25Gb3JGcmFtZSgKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0g
ICAgICAgIGlmICghbV9wYWdlLnVpQ2xpZW50KCkuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QobV9wYWdlLCAqbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlE
KSwgV1RGTW92ZSh1c2VyTWVkaWFPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsT3JpZ2luKSwgcGVu
ZGluZ1JlcXVlc3QuZ2V0KCkpKQotICAgICAgICAgICAgdXNlck1lZGlhQWNjZXNzV2FzRGVuaWVk
KHVzZXJNZWRpYUlELCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFB
Y2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2FibGVkKTsKKyAgICAgICAgLy8gSWYgcGFn
ZSBuYXZpZ2F0ZWQsIHRoZXJlIGlzIG5vIG5lZWQgdG8gY2FsbCB0aGUgcGFnZSBjbGllbnQgZm9y
IGF1dGhvcml6YXRpb24uCisgICAgICAgIGF1dG8qIHdlYkZyYW1lID0gbV9wYWdlLnByb2Nlc3Mo
KS53ZWJGcmFtZShmcmFtZUlEKTsKKworICAgICAgICBpZiAoIXdlYkZyYW1lIHx8ICFTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhtX3BhZ2UucGFnZUxvYWRTdGF0ZSgpLmFjdGl2ZVVS
TCgpKS0+aXNTYW1lU2NoZW1lSG9zdFBvcnQodG9wTGV2ZWxPcmlnaW4tPnNlY3VyaXR5T3JpZ2lu
KCkpKSB7CisgICAgICAgICAgICBkZW55UmVxdWVzdCh1c2VyTWVkaWFJRCwgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpOb0NvbnN0
cmFpbnRzLCBlbXB0eVN0cmluZygpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgd2ViRnJhbWUsIHVzZXJNZWRpYU9yaWdpbiBhbmQg
dG9wTGV2ZWxPcmlnaW4gZnJvbSB0aGlzIHVpQ2xpZW50IEFQSSBjYWxsLgorICAgICAgICBtX3Bh
Z2UudWlDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCht
X3BhZ2UsICp3ZWJGcmFtZSwgV1RGTW92ZSh1c2VyTWVkaWFPcmlnaW4pLCBXVEZNb3ZlKHRvcExl
dmVsT3JpZ2luKSwgcGVuZGluZ1JlcXVlc3QuZ2V0KCkpOwogICAgIH07CiAKICAgICBhdXRvIHJl
cXVlc3RJRCA9IGdlbmVyYXRlUmVxdWVzdElEKCk7CkBAIC00MTIsMTUgKzQyMCwxOSBAQCB2b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlh
UGVybWlzc2lvbkZvckZyYW1lKAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiB2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRVc2VyTWVkaWFQZXJtaXNzaW9u
SW5mbyh1aW50NjRfdCByZXF1ZXN0SUQsIHVpbnQ2NF90IGZyYW1lSUQsIFVzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5OjpDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIsIFJlZjxTZWN1cml0
eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYm
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCiB7CisgICAgYXV0byogd2ViRnJhbWUgPSBtX3BhZ2Uu
cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQpOworICAgIGlmICghd2ViRnJhbWUgfHwgIVNlY3Vy
aXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG1fcGFnZS5wYWdlTG9hZFN0YXRlKCkuYWN0aXZl
VVJMKCkpLT5pc1NhbWVTY2hlbWVIb3N0UG9ydCh0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdldCgp
KSkgeworICAgICAgICBoYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwog
ICAgIGF1dG8gdXNlck1lZGlhT3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHVz
ZXJNZWRpYURvY3VtZW50T3JpZ2luLmdldCgpKTsKICAgICBhdXRvIHRvcExldmVsT3JpZ2luID0g
QVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4uZ2V0KCkp
OwogICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpjcmVh
dGUoZnJhbWVJRCwgV1RGTW92ZShoYW5kbGVyKSwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbiksIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbikpOwogCiAgICAgbV9wZW5kaW5n
RGV2aWNlUmVxdWVzdHMuYWRkKHJlcXVlc3RJRCwgcmVxdWVzdC5jb3B5UmVmKCkpOwotICAgIGlm
ICghbV9wYWdlLnVpQ2xpZW50KCkuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKG1f
cGFnZSwgKm1fcGFnZS5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRCksIHVzZXJNZWRpYU9yaWdp
bi5nZXQoKSwgdG9wTGV2ZWxPcmlnaW4uZ2V0KCksIHJlcXVlc3QuZ2V0KCkpKSB7Ci0gICAgICAg
IG1fcGVuZGluZ0RldmljZVJlcXVlc3RzLnRha2UocmVxdWVzdElEKTsKLSAgICAgICAgaGFuZGxl
cihmYWxzZSk7Ci0gICAgfQorICAgIC8vIEZJWE1FOiBSZW1vdmUgd2ViRnJhbWUsIHVzZXJNZWRp
YU9yaWdpbiBhbmQgdG9wTGV2ZWxPcmlnaW4gZnJvbSB0aGlzIHVpQ2xpZW50IEFQSSBjYWxsLgor
ICAgIG1fcGFnZS51aUNsaWVudCgpLmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbiht
X3BhZ2UsICp3ZWJGcmFtZSwgdXNlck1lZGlhT3JpZ2luLmdldCgpLCB0b3BMZXZlbE9yaWdpbi5n
ZXQoKSwgcmVxdWVzdC5nZXQoKSk7CiB9CiAKIGJvb2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3ModWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25z
dCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
aAppbmRleCA1OTgwZGM3MDlhMDAyODVkMGFhOGU3MzVjZDMwODE5N2M5MTE4YmRiLi5hYzgwNWU3
ODhiZTIzMTdlMGE3YWFlYjcxODkwOWNmNDViY2E4OTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCkBA
IC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFsbG93KCk7CiAKICAgICBlbnVtIGNs
YXNzIFVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiB7IE5vQ29uc3RyYWludHMsIFVzZXJNZWRp
YURpc2FibGVkLCBOb0NhcHR1cmVEZXZpY2VzLCBJbnZhbGlkQ29uc3RyYWludCwgSGFyZHdhcmVF
cnJvciwgUGVybWlzc2lvbkRlbmllZCwgT3RoZXJGYWlsdXJlIH07Ci0gICAgdm9pZCBkZW55KFVz
ZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbik7CisgICAgdm9pZCBkZW55KFVzZXJNZWRpYUFjY2Vz
c0RlbmlhbFJlYXNvbiA9IFVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6VXNlck1lZGlhRGlz
YWJsZWQpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGUzMzc0ZTcwOTQyYWE1NzY4MmU3
OTc3YTVhZTI1MmI1NWUyNWIxMzguLmEwOGNjZmRjNWY1ODk3ZGVlMTVmM2JjODdmYmMxZDM5Y2U0
Y2Y2NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMjk3Nyw2ICsyOTc3LDggQEAKIAkJNDEwNDgyQ0IxREREMkZCNTAwRjAwNkQwIC8q
IFJUQ05ldHdvcmsuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRD
TmV0d29yay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDQ4MkNDMURERDJG
QjUwMEYwMDZEMCAvKiBSVENOZXR3b3JrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJUQ05ldHdvcmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMTQzNjMy
MEY2NzdCMTAwMjZGOTEyIC8qIEluamVjdFVzZXJTY3JpcHRJbW1lZGlhdGVseS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RVc2VyU2NyaXB0SW1tZWRpYXRlbHkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDExMjg2RUYyMUM4QTkwQzAwM0E4NTUwIC8q
IE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDExMjg2RjAyMUM4QTkwRDAwM0E4NTUwIC8qIE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhQ2FwdHVyZVV0aWxpdGll
cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMkI1NDcxRjlGRDNBQjAwRTY3
ODc1IC8qIE5ldHdvcmtSVENSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBOZXR3b3JrUlRDUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTEyQjU0NzFGOUZEM0FCMDBFNjc5ODYgLyogTmV0d29ya1JUQ1Jlc29sdmVyQ29j
b2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1JUQ1Jl
c29sdmVyQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEyQjU0ODFG
OUZEM0FDMDBFNjc4NzUgLyogTmV0d29ya1JUQ1Jlc29sdmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtSVENSZXNvbHZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNDgzNiwxMyArNDgzOCwxMyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMUE0
ODMyQzAxQTk2NUEzMzAwOEI0REZFIC8qIENvY29hICovLAogCQkJCTQxMThEQzFDMjFFNkQzNUIw
MERFMDRDNyAvKiBEYXRhU3RvcmVRdW90YU1hbmFnZXIuaCAqLywKLQkJCQk0MTE4REMxQjIxRTZE
MTFBMDBERTA0QzcgLyogV2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdlci5oICovLAogCQkJCTFB
NDgzMkQ4MUE5RDFGRDIwMDhCNERGRSAvKiBXZWJzaXRlRGF0YVJlY29yZC5jcHAgKi8sCiAJCQkJ
MUE0ODMyQ0YxQTlCRDgyMTAwOEI0REZFIC8qIFdlYnNpdGVEYXRhUmVjb3JkLmggKi8sCiAJCQkJ
MUE1M0MyQTQxQTMyNTY5RjAwNEU4QzcwIC8qIFdlYnNpdGVEYXRhU3RvcmUuY3BwICovLAogCQkJ
CTFBNTNDMkE1MUEzMjU2OUYwMDRFOEM3MCAvKiBXZWJzaXRlRGF0YVN0b3JlLmggKi8sCiAJCQkJ
NUM0NkMwQUMyMUI3MTk4QjAwQkM1OTkxIC8qIFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
LmNwcCAqLywKIAkJCQk1QzQ2QzBBRDIxQjcxOThDMDBCQzU5OTEgLyogV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uaCAqLywKKwkJCQk0MTE4REMxQjIxRTZEMTFBMDBERTA0QzcgLyogV2Vi
c2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJzaXRl
RGF0YTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC01MjgyLDYgKzUyODQsOCBAQAog
CQkJCTUxQzBDOTczMURERDc0RjAwMDMyQ0FEMyAvKiBJY29uTG9hZGluZ0RlbGVnYXRlLm1tICov
LAogCQkJCTdBODIxRjRCMUUyRjY2NDgwMDYwNDU3NyAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1h
bmFnZXJDbGllbnQuaCAqLywKIAkJCQk3QTgyMUY0RDFFMkY2NzlFMDA2MDQ1NzcgLyogTGVnYWN5
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tICovLAorCQkJCTQxMTI4NkVGMjFDOEE5MEMw
MDNBODU1MCAvKiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCAqLywKKwkJCQk0MTEyODZGMDIxQzhB
OTBEMDAzQTg1NTAgLyogTWVkaWFDYXB0dXJlVXRpbGl0aWVzLm1tICovLAogCQkJCTFBQkMzREY0
MTg5OUU0MzcwMDRGMDYyNiAvKiBOYXZpZ2F0aW9uU3RhdGUuaCAqLywKIAkJCQkxQUJDM0RGMzE4
OTlFNDM3MDA0RjA2MjYgLyogTmF2aWdhdGlvblN0YXRlLm1tICovLAogCQkJCTVDNkNFNkQzMUY1
OUVBMzUwMDA3QzZDQiAvKiBQYWdlQ2xpZW50SW1wbENvY29hLmggKi8sCkBAIC05ODIyLDYgKzk4
MjYsNyBAQAogCQkJCTFEQjAxOTQzMjExQ0YwMDIwMDlGQjNFOCAvKiBXS1NoYXJlU2hlZXQuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxM0U0NjJEMUFEODM3NTYwMDE2MjM0QSAvKiBXS1NoYXJpbmdT
ZXJ2aWNlUGlja2VyRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjU0OUI0MUUzMTc0
QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNDExOERDMUYyMUU3QkY1RDAwREUwNEM3IC8qIFdLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYwNjEyNEZGMDI3MDA2OEYyMEEgLyogV0tT
dHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjFBMTI0RkYwMzcwMDY4RjIwQSAvKiBX
S1N0cmluZ0NGLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzkwOTk4MDEyNTZBOTgyMDAwODM3NTYg
LyogV0tTdHJpbmdQcml2YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTk4OTQsNyArOTg5OSw2IEBA
CiAJCQkJMUY3NTA2QjUxODU5MTY1NDAwRUMwRkY3IC8qIFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlw
dFdvcmxkSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNDgzMkNDMUE5QkM0NjUwMDhC
NERGRSAvKiBXS1dlYnNpdGVEYXRhUmVjb3JkLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTQ4MzJD
RTFBOUJDNDg0MDA4QjRERkUgLyogV0tXZWJzaXRlRGF0YVJlY29yZEludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk0MTE4REMxRjIxRTdCRjVEMDBERTA0QzcgLyogV0tTdG9yYWdlUXVvdGFE
ZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTY1NEQxMUIxNEY3MTQwMEJG
MUQzRSAvKiBXS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NzVBOEQyQzgxODdDQ0ZBQjAwQzM5QzlFIC8qIFdLV2Vic2l0ZURhdGFTdG9yZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNzVBOEQyRDYxODdEMUMwRTAwQzM5QzlFIC8qIFdLV2Vic2l0ZURhdGFTdG9y
ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5YjMyNTYyODMxMzA4ZmI5NWUzZTlhYjMyODI2ZGE5YWU5
MmFlNzc2Li5hOGJjNmNiY2EyOGI4ZTQwZjg0OGZhZWQ5ZmU2MzVlMTExZmVkNGI0IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTktMDEtMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBhIG5ldyBTUEkgZm9yIGNvbnRyb2xsaW5nIGdldFVzZXJNZWRpYQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyNzkzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9tYWMv
V0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubToKKyAgICAgICAgKC1bV0syQnJvd3NlcldpbmRv
d0NvbnRyb2xsZXIgX3dlYlZpZXc6cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JGcmFt
ZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0syQnJvd3NlcldpbmRv
d0NvbnRyb2xsZXIgX3dlYlZpZXc6aXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWU6ZGVj
aXNpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dl
dFVzZXJNZWRpYU5hdmlnYXRpb24ubW06CisgICAgICAgICgtW05hdmlnYXRpb25XaGlsZUdldFVz
ZXJNZWRpYVByb21wdERpc3BsYXllZFVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2Fw
dHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5t
bToKKyAgICAgICAgKC1bR2V0VXNlck1lZGlhUmVwcm9tcHRVSURlbGVnYXRlIF93ZWJWaWV3OnJl
cXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lvbkhh
bmRsZXI6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJl
YW1UcmFja0RldGFjaGVkLm1tOgorICAgICAgICAoLVtNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWRV
SURlbGVnYXRlIF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJh
bWU6ZGV2aWNlczpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbToKKyAgICAgICAgKC1bVXNlck1l
ZGlhVUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZv
ckZyYW1lOmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtVc2VyTWVkaWFV
SURlbGVnYXRlIF93ZWJWaWV3OmlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1lOmRlY2lz
aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbToKKyAgICAgICAgKC1bU2ltdWxhdGVG
YWlsZWRTYW5kYm94VUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9y
aXphdGlvbkZvckZyYW1lOmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtT
aW11bGF0ZUZhaWxlZFNhbmRib3hVSURlbGVnYXRlIF93ZWJWaWV3OmlzTWVkaWFDYXB0dXJlQXV0
aG9yaXplZEZvckZyYW1lOmRlY2lzaW9uSGFuZGxlcjpdKToKKwogMjAxOS0wMS0xNiAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgbmV3IFNQSSB0byBy
ZXF1ZXN0IGZvciBjYWNoZSBzdG9yYWdlIHF1b3RhIGluY3JlYXNlCmRpZmYgLS1naXQgYS9Ub29s
cy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubSBiL1Rvb2xzL01p
bmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tCmluZGV4IDNkM2I3ZjNm
ZGJlMzM3MWMyNTk1OGU1ZWE3MTgyMDI3YjYwNjk1YWMuLmU5ZDQxNTJlZjY0YzQ3OGI1NmFhOTgz
ZmRhYTE3NmY4M2NkZjlmNDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJC
cm93c2VyV2luZG93Q29udHJvbGxlci5tCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJC
cm93c2VyV2luZG93Q29udHJvbGxlci5tCkBAIC03OTEsMTQgKzc5MSwxNCBAQCAtICh2b2lkKWZp
bmRCYXJWaWV3RGlkQ2hhbmdlSGVpZ2h0CiB7CiB9CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihf
V0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihO
U1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9y
aXplZCkpZGVjaXNpb25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uOiAoX1dLQ2FwdHVyZURldmljZXMp
ZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNp
b25IYW5kbGVyCiB7CiAgICAgZGVjaXNpb25IYW5kbGVyKHRydWUpOwogfQogCi0tICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVS
TDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlk
ZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCist
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGluY2x1ZGVTZW5zaXRpdmVNZWRp
YURldmljZURldGFpbHM6KHZvaWQgKF4pKEJPT0wgaW5jbHVkZVNlbnNpdGl2ZURldGFpbHMpKWRl
Y2lzaW9uSGFuZGxlcgogewotICAgIGRlY2lzaW9uSGFuZGxlcihAIiIsIGZhbHNlKTsKKyAgICBk
ZWNpc2lvbkhhbmRsZXIoZmFsc2UpOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbQppbmRl
eCA0MjFlZWE0MjkyY2JhYjE0ZTk0NmY3OThhMzVkZWI3M2Y4MmIzNTA4Li5jZTNhNDM4ZWE3NjY3
YzZkZTVhNWY1ZTAwOTNhMTA5ODI1NjQ3YTZiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0KQEAgLTQy
LDEyICs0MiwxMiBAQCBzdGF0aWMgYm9vbCBva1RvUHJvY2VlZCA9IGZhbHNlOwogc3RhdGljIGJv
b2wgc2hvdWxkUmVsZWFzZUluRW51bWVyYXRlID0gZmFsc2U7CiAKIEBpbnRlcmZhY2UgTmF2aWdh
dGlvbldoaWxlR2V0VXNlck1lZGlhUHJvbXB0RGlzcGxheWVkVUlEZWxlZ2F0ZSA6IE5TT2JqZWN0
PFdLVUlEZWxlZ2F0ZT4KLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVx
dWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylk
ZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVS
TCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5k
bGVyOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFD
YXB0dXJlQXV0aG9yaXphdGlvbjogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25I
YW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNV
UkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZp
ZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXiko
TlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOwogQGVuZAog
CiBAaW1wbGVtZW50YXRpb24gTmF2aWdhdGlvbldoaWxlR2V0VXNlck1lZGlhUHJvbXB0RGlzcGxh
eWVkVUlEZWxlZ2F0ZQotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1
ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRl
dmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJM
IGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRs
ZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2Fw
dHVyZUF1dGhvcml6YXRpb246IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFu
ZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAImFib3V0OmJsYW5rIl1dXTsKICAgICBbd2ViVmlldyByZWxlYXNlXTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0Lm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQu
bW0KaW5kZXggYzQzMmZjYWU1ZThmYzU5NzkxMjMzZTUwYmRiYjc1MzJjYmFjNGY3ZS4uZmJjM2I1
OTZkYjYxMDk3OTlhYjUwYTU3MjU1MjQwYzA3ZTBlMjAyNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0KQEAg
LTQxLDEyICs0MSwxMiBAQAogc3RhdGljIGJvb2wgd2FzUHJvbXB0ZWQgPSBmYWxzZTsKIAogQGlu
dGVyZmFjZSBHZXRVc2VyTWVkaWFSZXByb21wdFVJRGVsZWdhdGUgOiBOU09iamVjdDxXS1VJRGVs
ZWdhdGU+Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2Vy
TWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1
cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsKKy0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1
dGhvcml6YXRpb246IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoo
dm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJs
IG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJ
bnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5n
ICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsKIEBlbmQKIAogQGltcGxl
bWVudGF0aW9uIEdldFVzZXJNZWRpYVJlcHJvbXB0VUlEZWxlZ2F0ZQotLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRl
dmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJh
bWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9P
TCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb246IChfV0tDYXB0dXJl
RGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25I
YW5kbGVyCiB7CiAgICAgd2FzUHJvbXB0ZWQgPSB0cnVlOwogICAgIGRlY2lzaW9uSGFuZGxlcihZ
RVMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFT
dHJlYW1UcmFja0RldGFjaGVkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
TWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCmluZGV4IDFlY2NkMGE2ZWUzMzE2NDI2MzJkNGQ1
YzZkZjBiYmNkMDJhZTJmNDMuLmQyY2JkYTgwNmM5YWZhYzc2NzYwYTg1YjA1NDQ4MDMxMjdjY2Q1
NjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlhU3Ry
ZWFtVHJhY2tEZXRhY2hlZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KQEAgLTQwLDEzICs0MCwxMyBAQAogc3RhdGlj
IGJvb2wgaGFzUmVjaWV2ZWRDb3JyZWN0Q2FwdHVyZVN0YXRlID0gZmFsc2U7CiAKIEBpbnRlcmZh
Y2UgTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0ZSA6IE5TT2JqZWN0PFdLVUlEZWxl
Z2F0ZT4KLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJN
ZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVy
bDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lv
bkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOworLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0
aG9yaXphdGlvbjogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2
b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwg
bWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUlu
dGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcg
KnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOwogLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVk
aWFDYXB0dXJlU3RhdGUpc3RhdGU7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBNZWRpYVN0cmVh
bVRyYWNrRGV0YWNoZWRVSURlbGVnYXRlCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVy
ZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKilt
YWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRl
Y2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1
ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMg
ZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICBk
ZWNpc2lvbkhhbmRsZXIoWUVTKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1tCmluZGV4IDg4MzMzYzNm
YmI2ODBlMTY1ZTdmMjYxYTYyNmU1YjFkMTMxYjNiYWIuLjY1ZDI4ZjI4ODY4ODQ4ZjU1ZjNjMDA3
MjFkMTkwOWUwMDA1NDA5NjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbQpAQCAtMzksNyArMzksNiBA
QAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAotc3RhdGljIGJvb2wgcmVmdXNlUmVxdWVzdCA9IGZh
bHNlOwogc3RhdGljIGJvb2wgd2FzUHJvbXB0ZWQgPSBmYWxzZTsKIAogc3RhdGljIGJvb2wgcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CkBAIC02MiwxNSArNjEsMTAgQEAgQGVuZAogCiBA
aW1wbGVtZW50YXRpb24gVXNlck1lZGlhVUlEZWxlZ2F0ZQogCi0tICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNl
czooTlNVSW50ZWdlcilkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VS
TCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9u
SGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVk
aWFDYXB0dXJlQXV0aG9yaXphdGlvbjogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICB3YXNQcm9t
cHRlZCA9IHRydWU7CiAKLSAgICBpZiAocmVmdXNlUmVxdWVzdCkgewotICAgICAgICBkZWNpc2lv
bkhhbmRsZXIoTk8pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgQk9PTCBuZWVkc01p
Y3JvcGhvbmVBdXRob3JpemVkID0gZGV2aWNlcyAmIF9XS0NhcHR1cmVEZXZpY2VNaWNyb3Bob25l
OwogICAgIEJPT0wgbmVlZHNDYW1lcmFBdXRob3JpemVkID0gZGV2aWNlcyAmIF9XS0NhcHR1cmVE
ZXZpY2VDYW1lcmE7CiAgICAgaWYgKCFuZWVkc01pY3JvcGhvbmVBdXRob3JpemVkICYmICFuZWVk
c0NhbWVyYUF1dGhvcml6ZWQpIHsKQEAgLTgxLDE0ICs3NSw5IEBAIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZp
Y2VzOihOCiAgICAgZGVjaXNpb25IYW5kbGVyKFlFUyk7CiB9CiAKLS0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VS
TCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmll
cjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShO
U1N0cmluZyAqLCBCT09MKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgaW5jbHVkZVNlbnNpdGl2ZU1lZGlhRGV2aWNlRGV0YWlsczoodm9pZCAo
XikoQk9PTCBpbmNsdWRlU2Vuc2l0aXZlRGV0YWlscykpZGVjaXNpb25IYW5kbGVyCiB7Ci0gICAg
aWYgKHJlZnVzZVJlcXVlc3QpIHsKLSAgICAgICAgZGVjaXNpb25IYW5kbGVyKG5pbCwgTk8pOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZGVjaXNpb25IYW5kbGVyKEAiMHg5ODc2NTQz
MjEiLCBOTyk7CisgICAgZGVjaXNpb25IYW5kbGVyKE5PKTsKIH0KIEBlbmQKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0
ZUZhaWxlZFNhbmRib3gubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbQppbmRleCBjNzNjOTg5OTRlNDE3MzM0
OTAyNTUyYTg3OGRlZjVkMTcyMjViZGY0Li4yN2RjZTgzZTQxMTAwMTRhOWVmZmJmMDhiOTAxZmI5
MGQyNjZiNDQ0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5t
bQpAQCAtMzksNyArMzksNiBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAotc3RhdGljIGJvb2wg
cmVmdXNlUmVxdWVzdCA9IGZhbHNlOwogc3RhdGljIGJvb2wgd2FzUHJvbXB0ZWQgPSBmYWxzZTsK
IAogc3RhdGljIGJvb2wgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CkBAIC02MiwxNSAr
NjEsMTAgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gU2ltdWxhdGVGYWlsZWRTYW5kYm94VUlE
ZWxlZ2F0ZQogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RV
c2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooTlNVSW50ZWdlcilkZXZpY2VzIHVybDoo
TlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhh
bmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjogKF9X
S0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlk
ZWNpc2lvbkhhbmRsZXIKIHsKICAgICB3YXNQcm9tcHRlZCA9IHRydWU7CiAKLSAgICBpZiAocmVm
dXNlUmVxdWVzdCkgewotICAgICAgICBkZWNpc2lvbkhhbmRsZXIoTk8pOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCiAgICAgQk9PTCBuZWVkc01pY3JvcGhvbmVBdXRob3JpemVkID0gZGV2aWNl
cyAmIF9XS0NhcHR1cmVEZXZpY2VNaWNyb3Bob25lOwogICAgIEJPT0wgbmVlZHNDYW1lcmFBdXRo
b3JpemVkID0gZGV2aWNlcyAmIF9XS0NhcHR1cmVEZXZpY2VDYW1lcmE7CiAgICAgaWYgKCFuZWVk
c01pY3JvcGhvbmVBdXRob3JpemVkICYmICFuZWVkc0NhbWVyYUF1dGhvcml6ZWQpIHsKQEAgLTgx
LDE0ICs3NSw5IEBAIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVz
dFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihOCiAgICAgZGVjaXNpb25IYW5kbGVy
KFlFUyk7CiB9CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJM
ICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZp
ZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqLCBCT09MKSlkZWNpc2lvbkhh
bmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaW5jbHVkZVNlbnNp
dGl2ZU1lZGlhRGV2aWNlRGV0YWlsczoodm9pZCAoXikoQk9PTCBpbmNsdWRlU2Vuc2l0aXZlRGV0
YWlscykpZGVjaXNpb25IYW5kbGVyCiB7Ci0gICAgaWYgKHJlZnVzZVJlcXVlc3QpIHsKLSAgICAg
ICAgZGVjaXNpb25IYW5kbGVyKG5pbCwgTk8pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgZGVjaXNpb25IYW5kbGVyKEAiMHg5ODc2NTQzMjEiLCBOTyk7CisgICAgZGVjaXNpb25IYW5k
bGVyKE5PKTsKIH0KIEBlbmQKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359314</attachid>
            <date>2019-01-16 14:54:38 -0800</date>
            <delta_ts>2019-01-16 16:06:43 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-192793-20190116145437.patch</filename>
            <type>text/plain</type>
            <size>56457</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRiYTUxZWU3YWY5MTAwM2Y1
MDY1NzI2MWM5MDA3YjdhY2ExMDRjMDAuLmVmOWE0ODdiMGRlZjZiNzgzZTQ5MmNkMmJjN2UzYmJk
MThiNTIxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTktMDEtMTYgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgZm9yIGNv
bnRyb2xsaW5nIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyNzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU29tZSB3ZWFrbmVzc2VzIG9mIHRoZSBjdXJyZW50IGdldFVzZXJNZWRp
YS9lbnVtZXJhdGVEZXZpY2VzIFNQSSB3ZXJlIGZvdW5kLgorICAgICAgICBJbiBwYXJ0aWN1bGFy
OgorICAgICAgICAtIFRoZSBoYXNoIHNhbHQgc2hvdWxkIGJlIGhhbmRsZWQgYnkgV2ViS2l0IG5v
dCBieSBhcHBzIHVzaW5nIFdlYktpdC4KKyAgICAgICAgLSBObyBuZWVkIHRvIGV4cG9zZSB0aGUg
ZnJhbWUgVVJMLCBvbmx5IHRoZSB0b3AgbGV2ZWwgb3JpZ2luIGlzIG5lZWRlZC4KKyAgICAgICAg
LSBUaGUgbmFtZXMgb2YgdGhlIGNhbGxiYWNrIGFyZSBjaGFuZ2VkIHRvIGltcHJvdmUgdGhlIGlu
dGVudCBvZiB0aGVzZSBjYWxsYmFja3MuCisgICAgICAgIEFkZHJlc3NlZCB0aGVzZSBieSBjcmVh
dGluZyBhIG5ldyBTUEkgd2hpY2ggd2lsbCByZXBsYWNlIHRoZSBjdXJyZW50IG9uZS4KKyAgICAg
ICAgVGhlIGN1cnJlbnQgU1BJIHdpbGwgYmUgcmVtb3ZlZCBsYXRlciBvbi4KKworICAgICAgICBE
aWQgc29tZSByZWZhY3RvcmluZyBieSBtYWtpbmcgdGhlIGNhbGxiYWNrcyBub3QgcmV0dXJuIGZh
bHNlLgorICAgICAgICBJbnN0ZWFkLCBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgYmVoYXZpb3IgaW5z
aWRlIHRoZSByZXF1ZXN0IG9iamVjdHMgYXMgZGVueSBtZXRob2RzLgorICAgICAgICBTb21lIGZ1
cnRoZXIgcmVmYWN0b3Jpbmcgd2lsbCBiZSBkb25lIGFzIGEgZm9sbG93LXVwIHRvIGJldHRlciBh
bGlnbiB0aGUgQyBBUEkgd2l0aCB0aGUgQ29jb2EgQVBJLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6
Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmll
dyBfbWVkaWFDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRNZWRpYUNh
cHR1cmVNdXRlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3Bw
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMuaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbTog
QWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxl
Z2F0ZTo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpyZXF1ZXN0VXNlck1lZGlhQXV0
aG9yaXphdGlvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAg
KFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZv
ck9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjptZWRpYUNh
cHR1cmVTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5OjpkZW55KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyk6CisgICAgICAgICogVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDoKKwogMjAxOS0wMS0xNiAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24oUFNPTikgVmll
dyBiZWNvbWVzIGJsYW5rIGFmdGVyIGNsaWNrIGEgY3Jvc3Mtc2l0ZSBkb3dubG9hZCBsaW5rCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMzA4ZjY2Y2JlNmQyMzI0NmVkZGFmZGEzMWQyYWE0NTg1
ODJjOTRlMi4uZDJmYTIzNTA0MjU2OGYyMTQyMjhlNjY2ZGIwMzI3OTU4MjY5MjNjNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dApAQCAtMzIxLDYgKzMyMSw3IEBAIFVJUHJvY2Vzcy9Db2NvYS9GdWxs
c2NyZWVuQ2xpZW50Lm1tCiBVSVByb2Nlc3MvQ29jb2EvR2xvYmFsRmluZEluUGFnZVN0YXRlLm1t
CiBVSVByb2Nlc3MvQ29jb2EvSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbQogVUlQcm9jZXNzL0NvY29h
L0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5tbQorVUlQcm9jZXNzL0NvY29hL01l
ZGlhQ2FwdHVyZVV0aWxpdGllcy5tbQogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5t
bQogVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EubW0KIFVJUHJvY2Vzcy9Db2Nv
YS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggMDg5NDhlNzc0ZjkxNzA2Y2YxYTIwMTM4YWY5MGZkZmZi
OGU0NmNlOC4uODFlYzA2OWUxN2JmMzU2NWM1MDBkOGM2NjQxYjI4MThkODZjZGZlZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTEyOSw4ICsxMjksOCBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgcnVuT3BlblBhbmVsKFdlYktpdDo6V2ViUGFn
ZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiwgT3BlblBhbmVsUGFyYW1ldGVycyosIFdlYktpdDo6V2ViT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXJQcm94eSopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGRl
Y2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdl
UHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIEZ1bmN0aW9u
PHZvaWQoYm9vbCk+JikgeyB9Ci0gICAgdmlydHVhbCBib29sIGRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJG
cmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmly
dHVhbCBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJLaXQ6OldlYlBh
Z2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgU2VjdXJp
dHlPcmlnaW4mLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JikgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJv
eHkmLCBTZWN1cml0eU9yaWdpbiYsIFNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KSB7IHJlcXVlc3QuZGVueSgpOyB9CisgICAg
dmlydHVhbCB2b2lkIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgU2Vj
dXJpdHlPcmlnaW4mLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1
ZXN0KSB7IHJlcXVlc3QuZGVueSgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZv
ck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgU2Vj
dXJpdHlPcmlnaW4mLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3Rv
cmFnZUFjY2Vzc0NvbmZpcm0oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1l
UHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYgcmVxdWVzdGluZ0RvbWFpbiwgY29uc3QgV1RGOjpT
dHJpbmcmIGN1cnJlbnREb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7IH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggNmI0MGI5ZjM3MDZkNGYzNzg1M2Iz
OWRkMjU0NjBhNzY0ZjBiYmM4NS4uYjVmYzJmYWNmNjBjOWQ2NWMzMTcyOTZlMDJjNmUzZTU3ODUz
ZDNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xODU2
LDIyICsxODU2LDI0IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdl
UmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAgICAgICAgICAgICBtX2Ns
aWVudC5kZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KHRvQVBJKCZw
YWdlKSwgdG9BUEkoJmZyYW1lKSwgdG9BUEkoJm9yaWdpbiksIHRvQVBJKEdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3Q6OmNyZWF0ZShzdGQ6OmV4Y2hhbmdlKGNvbXBsZXRpb25IYW5kbGVyLCBu
dWxscHRyKSkucHRyKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAK
LSAgICAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChX
ZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcGVybWlz
c2lvblJlcXVlc3QpIGZpbmFsCisgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFt
ZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2Vj
dXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5hbAogICAgICAgICB7Ci0gICAgICAg
ICAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0KQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghbV9j
bGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpIHsKKyAgICAg
ICAgICAgICAgICBwZXJtaXNzaW9uUmVxdWVzdC5kZW55KCk7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBtX2NsaWVudC5kZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCh0b0FQSSgmcGFnZSksIHRvQVBJKCZmcmFtZSks
IHRvQVBJKCZ1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIHRvQVBJKCZ0b3BMZXZlbERvY3VtZW50
T3JpZ2luKSwgdG9BUEkoJnBlcm1pc3Npb25SZXF1ZXN0KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJ
bmZvKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKLSAgICAgICAgYm9v
bCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLCBX
ZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KSBmaW5hbAorICAgICAgICB2b2lk
IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmIHBhZ2UsIFdl
YkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVXNl
ck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIHJlcXVlc3QpIGZpbmFsCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIGlmICghbV9jbGllbnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2lu
KQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghbV9jbGll
bnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKSB7CisgICAgICAgICAgICAgICAg
cmVxdWVzdC5kZW55KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQog
CiAgICAgICAgICAgICBtX2NsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4o
dG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b0FQSSgmdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4pLCB0b0FQSSgmdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIHRvQVBJKCZyZXF1ZXN0KSwgbV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CiAgICAgICAgIAogICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYg
b3JpZ2luLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0
ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdh
dGVQcml2YXRlLmgKaW5kZXggY2Q5YTU0ZWUxNzUyNTI1YmQ0MDlmYjk5YWNkMmViNTc5MDg5NmFj
NS4uNTU2ODA4MzBlNzlkMGQ0YjE5OTkzMzY4NjRiYTY3ZmIwNDRiNjdmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0
ZS5oCkBAIC0xMDcsNiArMTA3LDggQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIAogLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBpbWFnZU9yTWVkaWFEb2N1bWVudFNpemVDaGFu
Z2VkOihDR1NpemUpc2l6ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4w
KSk7CiAtIChOU0RpY3Rpb25hcnkgKilfZGF0YURldGVjdGlvbkNvbnRleHRGb3JXZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEw
LjApKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlh
Q2FwdHVyZUF1dGhvcml6YXRpb246KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25I
YW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaW5jbHVkZVNlbnNpdGl2ZU1lZGlhRGV2aWNl
RGV0YWlsczoodm9pZCAoXikoQk9PTCBpbmNsdWRlU2Vuc2l0aXZlRGV0YWlscykpZGVjaXNpb25I
YW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1l
ZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJs
OihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJM
ICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVy
OihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
U3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2Fw
dHVyZVN0YXRlKXN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjAp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmlu
ZGV4IDRkZmFkNjRlMDE1NDM1OTI4MGU2MTY4YjFmMWVkNWViZTZkN2Q5YmIuLjRhNDQxYjBjZGQ4
YTZkN2QxNWQ4ZjFhMWYzYWUwNWZjOGI2MWNiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCAi
SWNvbkxvYWRpbmdEZWxlZ2F0ZS5oIgogI2ltcG9ydCAiTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5n
LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJNZWRpYUNhcHR1cmVVdGlsaXRpZXMu
aCIKICNpbXBvcnQgIk5hdmlnYXRpb25TdGF0ZS5oIgogI2ltcG9ydCAiT2JqQ09iamVjdEdyYXBo
LmgiCiAjaW1wb3J0ICJQYWdlQ2xpZW50LmgiCkBAIC01NTU2LDYgKzU1NTcsMTYgQEAgLSAoQk9P
TClfaXNJbkZ1bGxzY3JlZW4KICNlbmRpZgogfQogCistIChfV0tNZWRpYUNhcHR1cmVTdGF0ZSlf
bWVkaWFDYXB0dXJlU3RhdGUKK3sKKyAgICByZXR1cm4gV2ViS2l0Ojp0b1dLTWVkaWFDYXB0dXJl
U3RhdGUoX3BhZ2UtPm1lZGlhU3RhdGVGbGFncygpKTsKK30KKworLSAodm9pZClfc2V0TWVkaWFD
YXB0dXJlTXV0ZWQ6KEJPT0wpbXV0ZWQKK3sKKyAgICBfcGFnZS0+c2V0TWVkaWFTdHJlYW1DYXB0
dXJlTXV0ZWQobXV0ZWQpOworfQorCiAtICh2b2lkKV9tdXRlTWVkaWFDYXB0dXJlCiB7CiAgICAg
X3BhZ2UtPnNldE1lZGlhU3RyZWFtQ2FwdHVyZU11dGVkKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggMjZj
MGMzNDYwMDJmNThkNDY0OWNkYWQyYzkyZDQ4ZDM3N2JlY2YyMi4uMTJiMDFlODVkMTkzNjAxZGYx
YTJiYTNlODQxMWU0ODE1Y2Y3ZTQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC00MDQsNiArNDA0LDkgQEAgdHlw
ZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRGdWxsc2NyZWVuRGVsZWdhdGU6KSBpZDxfV0tGdWxsc2NyZWVu
RGVsZWdhdGU+IF9mdWxsc2NyZWVuRGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTMpLCBpb3MoMTEuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9p
c0luRnVsbHNjcmVlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSk7CiAKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLTWVkaWFDYXB0dXJlU3RhdGUgX21lZGlhQ2Fw
dHVyZVN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworCistICh2b2lkKV9zZXRNZWRpYUNhcHR1cmVNdXRlZDooQk9PTCltdXRlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZv
aWQpX211dGVNZWRpYUNhcHR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3Mo
MTEuMCkpOwogLSAodm9pZClfc2V0UGFnZU11dGVkOihfV0tNZWRpYU11dGVkU3RhdGUpbXV0ZWRT
dGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcApp
bmRleCBkNGE4ZDFlOTljN2FkNWYwMzI3YmI4NzRmYzBlYWMzMGMxYTRlZGYyLi4yZTUyYTNlNWE2
OTQ4MTIwYWM5ODgwYTQ3NmFlNzQ0YWRlMDhjNmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCkBAIC0xODQsMTggKzE4NCwx
NiBAQCBwcml2YXRlOgogICAgICAgICB3ZWJraXRXZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0
KG1fd2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVChnZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0LmdldCgpKSk7CiAgICAgfQogCi0gICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJ
OjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlP
cmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5hbAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYs
IEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3Vy
aXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5JiBwZXJtaXNzaW9uUmVxdWVzdCkgZmluYWwKICAgICB7CiAgICAgICAgIEdSZWZQ
dHI8V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q+IHVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRl
KHBlcm1pc3Npb25SZXF1ZXN0LCB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbikpOwogICAgICAgICB3ZWJraXRXZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0
KG1fd2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVCh1c2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC5nZXQoKSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBib29s
IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmIHBhZ2UsIFdl
YkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBvdmVycmlkZQorICAgIHZv
aWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwg
V2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVk
aWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcGVybWlzc2lvblJlcXVlc3QpIG92ZXJyaWRlCiAgICAg
ewogICAgICAgICBhdXRvIGRldmljZUluZm9QZXJtaXNzaW9uUmVxdWVzdCA9IGFkb3B0R1JlZih3
ZWJraXREZXZpY2VJbmZvUGVybWlzc2lvblJlcXVlc3RDcmVhdGUocGVybWlzc2lvblJlcXVlc3Qs
ICZwYWdlLndlYnNpdGVEYXRhU3RvcmUoKS5kZXZpY2VJZEhhc2hTYWx0U3RvcmFnZSgpKSk7CiAg
ICAgICAgIHdlYmtpdFdlYlZpZXdNYWtlUGVybWlzc2lvblJlcXVlc3QobV93ZWJWaWV3LCBXRUJL
SVRfUEVSTUlTU0lPTl9SRVFVRVNUKGRldmljZUluZm9QZXJtaXNzaW9uUmVxdWVzdC5nZXQoKSkp
OwotICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICB2b2lkIGRlY2lkZVBvbGljeUZv
ck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJp
dHlPcmlnaW4mLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5h
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFDYXB0dXJl
VXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVV
dGlsaXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDA0MDNmZmQ4MzliMWQ2NzM5MGIyMDUyNTAyNDMyYWUx
YTE2YjIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
TWVkaWFDYXB0dXJlVXRpbGl0aWVzLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCAiV0tXZWJWaWV3UHJp
dmF0ZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitfV0tNZWRpYUNhcHR1cmVTdGF0ZSB0b1dLTWVkaWFDYXB0dXJlU3RhdGUoV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhZWUzOGViNjRlMmUyNDg0
MTYwODc2ODhmM2ZjNjAwZDZhMTEyOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0KQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYUNhcHR1
cmVVdGlsaXRpZXMuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitfV0tNZWRpYUNhcHR1cmVTdGF0ZSB0b1dLTWVkaWFDYXB0dXJlU3RhdGUoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQoreworICAgIF9XS01lZGlhQ2Fw
dHVyZVN0YXRlIG1lZGlhQ2FwdHVyZVN0YXRlID0gX1dLTWVkaWFDYXB0dXJlU3RhdGVOb25lOwor
ICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZUF1ZGlvQ2Fw
dHVyZURldmljZSkKKyAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJl
U3RhdGVBY3RpdmVNaWNyb3Bob25lOworICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKKyAgICAgICAgbWVkaWFDYXB0dXJl
U3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1lcmE7CisgICAgaWYgKHN0YXRl
ICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCisg
ICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRNaWNy
b3Bob25lOworICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVk
VmlkZW9DYXB0dXJlRGV2aWNlKQorICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRp
YUNhcHR1cmVTdGF0ZU11dGVkQ2FtZXJhOworCisgICAgcmV0dXJuIG1lZGlhQ2FwdHVyZVN0YXRl
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggNmQ2ODA2OWFjYjY0NDAwOTFlMDhmMWFh
OWVhYmExMjAwY2Y1MTY4YS4uNTk5MGNjZjVlYjE1MTdiMzM1YTZhMDRkYjE4OTdiMTg3NDY5MWQx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaApAQCAtMTIz
LDggKzEyMyw4IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICAgICAgYm9vbCBuZWVkc0ZvbnRBdHRy
aWJ1dGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRo
b2RzLndlYlZpZXdEaWRDaGFuZ2VGb250QXR0cmlidXRlczsgfQogICAgICAgICB2b2lkIGRpZENo
YW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZvbnRBdHRyaWJ1dGVzJikgZmluYWw7
Ci0gICAgICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qo
V2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6
OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpIGZpbmFs
OwotICAgICAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdl
UHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJp
dHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIGZpbmFsOworICAgICAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQ
cm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0
eU9yaWdpbiYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSBmaW5hbDsKKyAgICAg
ICAgdm9pZCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5Jiwg
V2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2lu
JiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBt
ZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MpIGZpbmFsOwogICAgICAgICB2b2lkIHByaW50RnJhbWUoV2ViUGFnZVByb3h5Jiwg
V2ViRnJhbWVQcm94eSYpIGZpbmFsOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xOTgs
OCArMTk4LDggQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3RnVsbHNjcmVlbk1heVJl
dHVyblRvSW5saW5lIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVu
IDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW4gOiAxOwotICAgICAg
ICBib29sIHdlYlZpZXdSZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXNVUkxN
YWluRnJhbWVVUkxEZWNpc2lvbkhhbmRsZXIgOiAxOwotICAgICAgICBib29sIHdlYlZpZXdDaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVVUkxGcmFtZUlkZW50aWZpZXJEZWNp
c2lvbkhhbmRsZXIgOiAxOworICAgICAgICBib29sIHdlYlZpZXdSZXF1ZXN0TWVkaWFDYXB0dXJl
QXV0aG9yaXphdGlvbkZvckZyYW1lRGVjaXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3
ZWJWaWV3SXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWVEZWNpc2lvbkhhbmRsZXIgOiAx
OwogICAgICAgICBib29sIHdlYlZpZXdNZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSA6IDE7CiAg
ICAgICAgIGJvb2wgd2ViVmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1dGVzIDogMTsKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW0KaW5kZXggZGFlY2FiNGVjODUxOTJhY2RjZjViZDJiYmYwMDBjNGNmMDgzYjUwOC4uM2Ez
NWE1ZjBlMGJiNThlYTRjYmEyMDM3OTNhYTU3NThhODUyYzAwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0
ICJBUElGcmFtZUluZm8uaCIKICNpbXBvcnQgIkFQSUhpdFRlc3RSZXN1bHQuaCIKICNpbXBvcnQg
IkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCIKKyNpbXBvcnQgIk1lZGlhQ2FwdHVyZVV0
aWxpdGllcy5oIgogI2ltcG9ydCAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgogI2ltcG9ydCAiTmF2
aWdhdGlvbkFjdGlvbkRhdGEuaCIKICNpbXBvcnQgIlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5LmgiCkBAIC0xNTAsOCArMTUxLDkgQEAgdm9pZCBVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZShp
ZCA8V0tVSURlbGVnYXRlPiBkZWxlZ2F0ZSkKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
RGlkTm90SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludDopXTsK
ICAgICBtX2RlbGVnYXRlTWV0aG9kcy5wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3ByZXNlbnRpbmdWaWV3
Q29udHJvbGxlckZvcldlYlZpZXc6KV07CiAjZW5kaWYKLSAgICBtX2RlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzVVJMTWFpbkZyYW1l
VVJMRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXc6cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOnVybDpt
YWluRnJhbWVVUkw6ZGVjaXNpb25IYW5kbGVyOildOwotICAgIG1fZGVsZWdhdGVNZXRob2RzLndl
YlZpZXdDaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVVUkxGcmFtZUlkZW50
aWZpZXJEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3Rvcihfd2ViVmlldzpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6bWFpbkZyYW1lVVJM
OmZyYW1lSWRlbnRpZmllcjpkZWNpc2lvbkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld1JlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWVEZWNpc2lv
bkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmll
dzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6dXJsOm1haW5GcmFtZVVS
TDpkZWNpc2lvbkhhbmRsZXI6KV0gfHwgW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb246ZGVjaXNpb25I
YW5kbGVyOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdJc01lZGlhQ2FwdHVyZUF1
dGhvcml6ZWRGb3JGcmFtZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDpt
YWluRnJhbWVVUkw6ZnJhbWVJZGVudGlmaWVyOmRlY2lzaW9uSGFuZGxlcjopXSB8fCBbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzppbmNsdWRlU2Vuc2l0aXZl
TWVkaWFEZXZpY2VEZXRhaWxzOildOworCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld01l
ZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KV07CiAgICAgbV9k
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1dGVzID0gW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkQ2hhbmdlRm9udEF0dHJp
YnV0ZXM6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuZGF0YURldGVjdGlvbkNvbnRleHRGb3JX
ZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX2RhdGFEZXRl
Y3Rpb25Db250ZXh0Rm9yV2ViVmlldzopXTsKQEAgLTg1OSwxMCArODYxLDI0IEBAIGJvb2wgVUlE
ZWxlZ2F0ZTo6VUlDbGllbnQ6OnJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVBy
b3h5KiB3ZWJGcmFtZVByCiB9CiAjZW5kaWYKIAordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6
ZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMmIGZv
bnRBdHRyaWJ1dGVzKQoreworICAgIGlmICghbmVlZHNGb250QXR0cmlidXRlcygpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBhdXRvIHByaXZhdGVVSURlbGVnYXRlID0gKGlkIDxXS1VJRGVsZWdh
dGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBbcHJpdmF0ZVVJ
RGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBkaWRDaGFuZ2VGb250QXR0
cmlidXRlczpmb250QXR0cmlidXRlcy5jcmVhdGVEaWN0aW9uYXJ5KCkuZ2V0KCldOworfQorCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLXN0YXRpYyB2b2lkIHJlcXVlc3RVc2VyTWVkaWFBdXRo
b3JpemF0aW9uRm9yRGV2aWNlcyhjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCwgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+
IGRlbGVnYXRlLCBXS1dlYlZpZXcmIHdlYlZpZXcpCitzdGF0aWMgdm9pZCByZXF1ZXN0VXNlck1l
ZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6
OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eSYgcmVxdWVzdCwgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IGRlbGVnYXRlLCBXS1dl
YlZpZXcmIHdlYlZpZXcpCiB7Ci0gICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQ
dHIoW3Byb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpXShCT09MIGF1dGhvcml6ZWQp
IHsKKyAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVh
dGUoZGVsZWdhdGUsIEBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9y
aXphdGlvbjpkZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBt
YWtlQmxvY2tQdHIoW3Byb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpLCBjaGVja2Vy
ID0gV1RGTW92ZShjaGVja2VyKV0oQk9PTCBhdXRob3JpemVkKSB7CisgICAgICAgIGlmIChjaGVj
a2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisKICAgICAg
ICAgaWYgKCFhdXRob3JpemVkKSB7CiAgICAgICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0LT5kZW55
KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJl
YXNvbjo6UGVybWlzc2lvbkRlbmllZCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04NzIsMTAg
Kzg4OCw2IEBAIHN0YXRpYyB2b2lkIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2
aWNlcyhjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwKICAgICAgICAgcHJvdGVjdGVkUmVxdWVz
dC0+YWxsb3coYXVkaW9EZXZpY2VVSUQsIHZpZGVvRGV2aWNlVUlEKTsKICAgICB9KTsKIAotICAg
IGNvbnN0IFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1l
KCk7Ci0gICAgVVJMIHJlcXVlc3RGcmFtZVVSTChVUkwoKSwgZnJhbWUudXJsKCkpOwotICAgIFVS
TCBtYWluRnJhbWVVUkwoVVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOwotCiAgICAgX1dLQ2FwdHVy
ZURldmljZXMgZGV2aWNlcyA9IDA7CiAgICAgaWYgKHJlcXVlc3QucmVxdWlyZXNBdWRpb0NhcHR1
cmUoKSkKICAgICAgICAgZGV2aWNlcyB8PSBfV0tDYXB0dXJlRGV2aWNlTWljcm9waG9uZTsKQEAg
LTg4NiwyNyArODk4LDI5IEBAIHN0YXRpYyB2b2lkIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0
aW9uRm9yRGV2aWNlcyhjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwKICAgICAgICAgQVNTRVJU
KCEoZGV2aWNlcyAmIF9XS0NhcHR1cmVEZXZpY2VDYW1lcmEpKTsKICAgICB9CiAKLSAgICBhdXRv
IHByb3RlY3RlZFdlYlZpZXcgPSBSZXRhaW5QdHI8V0tXZWJWaWV3Pigmd2ViVmlldyk7Ci0gICAg
W2RlbGVnYXRlIF93ZWJWaWV3OnByb3RlY3RlZFdlYlZpZXcuZ2V0KCkgcmVxdWVzdFVzZXJNZWRp
YUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOmRldmljZXMgdXJsOnJlcXVlc3RGcmFtZVVSTCBtYWlu
RnJhbWVVUkw6bWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0
KCldOwotfQotI2VuZGlmCisgICAgY29uc3QgYXV0byogbWFpbkZyYW1lID0gZnJhbWUucGFnZSgp
LT5tYWluRnJhbWUoKTsKIAotdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkQ2hhbmdlRm9u
dEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMmIGZvbnRBdHRyaWJ1dGVz
KQotewotICAgIGlmICghbmVlZHNGb250QXR0cmlidXRlcygpKQorICAgIC8vIEZJWE1FOiBQcm92
aWRlIGEgc3BlY2lmaWMgZGVsZWdhdGUgZm9yIGRpc3BsYXkgY2FwdHVyZS4KKyAgICBpZiAoIXJl
cXVlc3QucmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSgpICYmIFtkZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9u
OmRlY2lzaW9uSGFuZGxlcjopXSkgeworCisgICAgICAgIFtkZWxlZ2F0ZSBfd2ViVmlldzomd2Vi
VmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjpkZXZpY2VzIGRlY2lzaW9uSGFu
ZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwogICAgICAgICByZXR1cm47CisgICAgfQogCi0g
ICAgYXV0byBwcml2YXRlVUlEZWxlZ2F0ZSA9IChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91
aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7Ci0gICAgW3ByaXZhdGVVSURlbGVnYXRlIF93ZWJW
aWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXM6Zm9udEF0
dHJpYnV0ZXMuY3JlYXRlRGljdGlvbmFyeSgpLmdldCgpXTsKKyAgICBVUkwgcmVxdWVzdEZyYW1l
VVJMIHsgVVJMKCksIGZyYW1lLnVybCgpIH07CisgICAgVVJMIG1haW5GcmFtZVVSTCB7IFVSTCgp
LCBtYWluRnJhbWUtPnVybCgpIH07CisKKyAgICBbZGVsZWdhdGUgX3dlYlZpZXc6JndlYlZpZXcg
cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOmRldmljZXMgdXJsOnJlcXVl
c3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjpkZWNp
c2lvbkhhbmRsZXIuZ2V0KCldOwogfQorI2VuZGlmCiAKLWJvb2wgVUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94
eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJN
ZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QpCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xp
ZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJv
eHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2Vy
TWVkaWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KQogewogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgp
OwotICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzVVJMTWFpbkZyYW1l
VVJMRGVjaXNpb25IYW5kbGVyKSB7CisgICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRl
Lm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlv
bkZvckZyYW1lRGVjaXNpb25IYW5kbGVyKSB7CiAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVz
ZXJNZWRpYURpc2FibGVkKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBib29sIHJlcXVpcmVzQXVkaW9DYXB0dXJlID0gcmVxdWVzdC5yZXF1aXJl
c0F1ZGlvQ2FwdHVyZSgpOwpAQCAtOTE0LDMzICs5MjgsMzMgQEAgYm9vbCBVSURlbGVnYXRlOjpV
SUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFn
ZVByb3gKICAgICBib29sIHJlcXVpcmVzRGlzcGxheUNhcHR1cmUgPSByZXF1ZXN0LnJlcXVpcmVz
RGlzcGxheUNhcHR1cmUoKTsKICAgICBpZiAoIXJlcXVpcmVzQXVkaW9DYXB0dXJlICYmICFyZXF1
aXJlc1ZpZGVvQ2FwdHVyZSAmJiAhcmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSkgewogICAgICAgICBy
ZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNj
ZXNzRGVuaWFsUmVhc29uOjpOb0NvbnN0cmFpbnRzKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIHJldHVybjsKICAgICB9CiAKICNpZiBIQVZFKEFVVEhPUklaQVRJT05fU1RBVFVTX0ZP
Ul9NRURJQV9UWVBFKQogICAgIGJvb2wgdXNpbmdNb2NrQ2FwdHVyZURldmljZXMgPSBwYWdlLnBy
ZWZlcmVuY2VzKCkubW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCgpOwotICAgIGF1dG8gcmVxdWVz
dENhbWVyYUF1dGhvcml6YXRpb24gPSBtYWtlQmxvY2tQdHIoW3RoaXMsICZmcmFtZSwgcHJvdGVj
dGVkUmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCksIHdlYlZpZXcgPSBSZXRhaW5QdHI8V0tXZWJW
aWV3PihtX3VpRGVsZWdhdGUubV93ZWJWaWV3KSwgdXNpbmdNb2NrQ2FwdHVyZURldmljZXNdKCkg
eworICAgIGF1dG8gcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb24gPSBtYWtlQmxvY2tQdHIoW3Ro
aXMsICZmcmFtZSwgcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCksIHdlYlZpZXcg
PSBSZXRhaW5QdHI8V0tXZWJWaWV3PihtX3VpRGVsZWdhdGUubV93ZWJWaWV3KSwgdG9wTGV2ZWxP
cmlnaW4gPSBtYWtlUmVmKHRvcExldmVsT3JpZ2luKSwgdXNpbmdNb2NrQ2FwdHVyZURldmljZXNd
KCkgbXV0YWJsZSB7CiAKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRSZXF1ZXN0LT5yZXF1aXJlc1Zp
ZGVvQ2FwdHVyZSgpKSB7Ci0gICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlv
bkZvckRldmljZXMoZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QsIChpZCA8V0tVSURlbGVnYXRlUHJp
dmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3ZWJWaWV3LmdldCgpKTsKKyAg
ICAgICAgICAgIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWUoZnJhbWUsIHRv
cExldmVsT3JpZ2luLCBwcm90ZWN0ZWRSZXF1ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+
KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqd2ViVmlldy5nZXQoKSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgQVZBdXRob3JpemF0aW9uU3RhdHVzIGNh
bWVyYUF1dGhvcml6YXRpb25TdGF0dXMgPSB1c2luZ01vY2tDYXB0dXJlRGV2aWNlcyA/IEFWQXV0
aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQgOiBbZ2V0QVZDYXB0dXJlRGV2aWNlQ2xhc3MoKSBh
dXRob3JpemF0aW9uU3RhdHVzRm9yTWVkaWFUeXBlOmdldEFWTWVkaWFUeXBlVmlkZW8oKV07CiAg
ICAgICAgIHN3aXRjaCAoY2FtZXJhQXV0aG9yaXphdGlvblN0YXR1cykgewogICAgICAgICBjYXNl
IEFWQXV0aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQ6Ci0gICAgICAgICAgICByZXF1ZXN0VXNl
ck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QsIChp
ZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3
ZWJWaWV3LmdldCgpKTsKKyAgICAgICAgICAgIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9u
Rm9yRnJhbWUoZnJhbWUsIHRvcExldmVsT3JpZ2luLCBwcm90ZWN0ZWRSZXF1ZXN0LCAoaWQgPFdL
VUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqd2ViVmll
dy5nZXQoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRp
b25TdGF0dXNEZW5pZWQ6CiAgICAgICAgIGNhc2UgQVZBdXRob3JpemF0aW9uU3RhdHVzUmVzdHJp
Y3RlZDoKICAgICAgICAgICAgIHByb3RlY3RlZFJlcXVlc3QtPmRlbnkoVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9u
RGVuaWVkKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRp
b25TdGF0dXNOb3REZXRlcm1pbmVkOgotICAgICAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIg
PSBtYWtlQmxvY2tQdHIoW3RoaXMsICZmcmFtZSwgcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYo
cHJvdGVjdGVkUmVxdWVzdC5nZXQoKSksIHdlYlZpZXcgPSBSZXRhaW5QdHI8V0tXZWJWaWV3Piht
X3VpRGVsZWdhdGUubV93ZWJWaWV3KV0oQk9PTCBhdXRob3JpemVkKSB7CisgICAgICAgICAgICBh
dXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbdGhpcywgJmZyYW1lLCBwcm90ZWN0
ZWRSZXF1ZXN0ID0gbWFrZVJlZihwcm90ZWN0ZWRSZXF1ZXN0LmdldCgpKSwgd2ViVmlldyA9IFJl
dGFpblB0cjxXS1dlYlZpZXc+KG1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcpLCB0b3BMZXZlbE9yaWdp
biA9IFdURk1vdmUodG9wTGV2ZWxPcmlnaW4pXShCT09MIGF1dGhvcml6ZWQpIHsKICAgICAgICAg
ICAgICAgICBpZiAoIWF1dGhvcml6ZWQpIHsKICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVk
UmVxdWVzdC0+ZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFB
Y2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOwogICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJlcXVlc3RVc2Vy
TWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlcyhmcmFtZSwgcHJvdGVjdGVkUmVxdWVzdCwgKGlk
IDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwgKndl
YlZpZXcuZ2V0KCkpOworICAgICAgICAgICAgICAgIHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0
aW9uRm9yRnJhbWUoZnJhbWUsIHRvcExldmVsT3JpZ2luLCBwcm90ZWN0ZWRSZXF1ZXN0LCAoaWQg
PFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqd2Vi
Vmlldy5nZXQoKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgW2dldEFWQ2FwdHVy
ZURldmljZUNsYXNzKCkgcmVxdWVzdEFjY2Vzc0Zvck1lZGlhVHlwZTpnZXRBVk1lZGlhVHlwZVZp
ZGVvKCkgY29tcGxldGlvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKQEAgLTk1Nyw3
ICs5NzEsNyBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveAogICAgICAgICBjYXNlIEFWQXV0aG9y
aXphdGlvblN0YXR1c0RlbmllZDoKICAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNS
ZXN0cmljdGVkOgogICAgICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmll
ZCk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNOb3REZXRlcm1pbmVkOgogICAgICAgICAgICAg
YXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFJlcXVlc3QgPSBt
YWtlUmVmKHJlcXVlc3QpLCByZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbl0oQk9PTCBhdXRob3Jp
emVkKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFhdXRob3JpemVkKSB7CkBAIC05NzMsNTMgKzk4
Nyw2MSBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveAogICAgIH0gZWxzZQogICAgICAgICByZXF1
ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbigpOwogI2Vsc2UKLSAgICByZXF1ZXN0VXNlck1lZGlhQXV0
aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHJlcXVlc3QsIChpZCA8V0tVSURlbGVnYXRlUHJp
dmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICptX3VpRGVsZWdhdGUubV93ZWJW
aWV3KTsKKyAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGZyYW1lLCB0
b3BMZXZlbE9yaWdpbiwgcmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVs
ZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwgKm1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcpOwogI2VuZGlm
CiAjZW5kaWYKLQotICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFVJRGVsZWdhdGU6OlVJQ2xp
ZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdl
LCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3Jp
Z2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlz
c2lvbkNoZWNrUHJveHkmIHJlcXVlc3QpCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFt
ZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBBUEk6
OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkmIHJlcXVlc3QpCiB7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2Rl
bGVnYXRlLmdldCgpOwotICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3Q2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMTWFpbkZyYW1l
VVJMRnJhbWVJZGVudGlmaWVyRGVjaXNpb25IYW5kbGVyKSB7CisgICAgaWYgKCFkZWxlZ2F0ZSB8
fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdJc01lZGlhQ2FwdHVyZUF1
dGhvcml6ZWRGb3JGcmFtZURlY2lzaW9uSGFuZGxlcikgewogICAgICAgICByZXF1ZXN0LnNldFVz
ZXJNZWRpYUFjY2Vzc0luZm8oZmFsc2UpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIFdLV2ViVmlldyAqd2ViVmlldyA9IG1fdWlEZWxlZ2F0ZS5t
X3dlYlZpZXc7Ci0gICAgY29uc3QgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lID0gZnJhbWUucGFn
ZSgpLT5tYWluRnJhbWUoKTsKLSAgICBVUkwgcmVxdWVzdEZyYW1lVVJMKFVSTCgpLCBmcmFtZS51
cmwoKSk7Ci0gICAgVVJMIG1haW5GcmFtZVVSTChVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSk7Cisg
ICAgY29uc3QgYXV0byogbWFpbkZyYW1lID0gZnJhbWUucGFnZSgpLT5tYWluRnJhbWUoKTsKKwor
ICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpp
bmNsdWRlU2Vuc2l0aXZlTWVkaWFEZXZpY2VEZXRhaWxzOildKSB7CisgICAgICAgIGF1dG8gY2hl
Y2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZS5nZXQo
KSwgQHNlbGVjdG9yKF93ZWJWaWV3OmluY2x1ZGVTZW5zaXRpdmVNZWRpYURldmljZURldGFpbHM6
KSk7CisgICAgICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0
ZWRSZXF1ZXN0ID0gbWFrZVJlZihyZXF1ZXN0KSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcild
KEJPT0wgaW5jbHVkZVNlbnNpdGl2ZURldGFpbHMpIHsKKyAgICAgICAgICAgIGlmIChjaGVja2Vy
LT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKKwor
ICAgICAgICAgICAgcHJvdGVjdGVkUmVxdWVzdC0+c2V0VXNlck1lZGlhQWNjZXNzSW5mbyhpbmNs
dWRlU2Vuc2l0aXZlRGV0YWlscyk7CisgICAgICAgIH0pOworCisgICAgICAgIFsoaWQgPFdLVUlE
ZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcg
aW5jbHVkZVNlbnNpdGl2ZU1lZGlhRGV2aWNlRGV0YWlsczpkZWNpc2lvbkhhbmRsZXIuZ2V0KCld
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlv
bkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRlbGVnYXRlLmdldCgpLCBAc2VsZWN0b3IoX3dl
YlZpZXc6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1haW5GcmFtZVVSTDpmcmFtZUlk
ZW50aWZpZXI6ZGVjaXNpb25IYW5kbGVyOikpOworICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0g
bWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRSZXF1ZXN0ID0gbWFrZVJlZihyZXF1ZXN0KSwgY2hlY2tl
ciA9IFdURk1vdmUoY2hlY2tlcildKE5TU3RyaW5nKiwgQk9PTCBhdXRob3JpemVkKSB7CisgICAg
ICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVy
KCk7CiAKLSAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbcHJvdGVjdGVk
UmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCldKE5TU3RyaW5nKiwgQk9PTCBhdXRob3JpemVkKSB7
CiAgICAgICAgIHByb3RlY3RlZFJlcXVlc3QtPnNldFVzZXJNZWRpYUFjY2Vzc0luZm8oYXV0aG9y
aXplZCk7CiAgICAgfSk7CiAKLSAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0
ZSBfd2ViVmlldzp3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0
RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUu
ZnJhbWVJRCgpIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOworICAgIFVS
TCByZXF1ZXN0RnJhbWVVUkwgeyBVUkwoKSwgZnJhbWUudXJsKCkgfTsKKyAgICBVUkwgbWFpbkZy
YW1lVVJMIHsgVVJMKCksIG1haW5GcmFtZS0+dXJsKCkgfTsKIAotICAgIHJldHVybiB0cnVlOwor
ICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxl
Z2F0ZS5tX3dlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVlc3RGcmFt
ZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjpmcmFtZS5mcmFt
ZUlEKCkgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CiB9CiAKIHZvaWQg
VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBXS1dlYlZpZXcg
KndlYlZpZXcgPSBtX3VpRGVsZWdhdGUubV93ZWJWaWV3OworCisgICAgW3dlYlZpZXcgZGlkQ2hh
bmdlVmFsdWVGb3JLZXk6QCJtZWRpYUNhcHR1cmVTdGF0ZSJdOworCiAgICAgYXV0byBkZWxlZ2F0
ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOwogICAgIGlmICghZGVsZWdhdGUgfHwg
IW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3TWVkaWFDYXB0dXJlU3RhdGVE
aWRDaGFuZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlIG1l
ZGlhQ2FwdHVyZVN0YXRlID0gX1dLTWVkaWFDYXB0dXJlU3RhdGVOb25lOwotICAgIGlmIChzdGF0
ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkK
LSAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVN
aWNyb3Bob25lOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0Fj
dGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKLSAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dL
TWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1lcmE7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIG1lZGlh
Q2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRNaWNyb3Bob25lOwotICAg
IGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkVmlkZW9DYXB0dXJl
RGV2aWNlKQotICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0
ZU11dGVkQ2FtZXJhOwotCi0gICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUg
X3dlYlZpZXc6d2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTptZWRpYUNhcHR1cmVT
dGF0ZV07CisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6
d2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTp0b1dLTWVkaWFDYXB0dXJlU3RhdGUo
c3RhdGUpXTsKIH0KIAogdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3Qg
dG90YWxCeXRlc05lZWRlZCwgRnVuY3Rpb248dm9pZCAodW5zaWduZWQgbG9uZyBsb25nKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oCmluZGV4IGQ5MWYwNGZmZGFiOGQxNDI0NTRk
NTA2M2ZlMTdmMGViZmE4MzM0ZWIuLjZhMDg5NTA2Y2VhMzg4ZDFkNGMzZDZkZWZkYTVmZTBlMGFl
ZTU3YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHkuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5KGZyYW1l
SUQsIFdURk1vdmUoaGFuZGxlciksIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBX
VEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pKSk7CiAgICAgfQogCisgICAgdm9pZCBkZW55
KCkgeyBzZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKGZhbHNlKTsgfQogICAgIHZvaWQgc2V0VXNlck1l
ZGlhQWNjZXNzSW5mbyhib29sKTsKICAgICB2b2lkIGludmFsaWRhdGUoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDdmMTdiMmQzZDU3YjhmOGU1YzU2YTM2NjZm
ZjJiN2JiOWVkNmU4NTYuLjc4Y2QwYzY5MTA2ODE4MWJhYTlhZDZkMGJlM2YwYjEwZmM0NGI2ODIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTM3OCw4ICszNzgsMTYg
QEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSgKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogCi0gICAgICAgIGlmICghbV9wYWdlLnVpQ2xpZW50KCkuZGVjaWRlUG9saWN5Rm9yVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QobV9wYWdlLCAqbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShm
cmFtZUlEKSwgV1RGTW92ZSh1c2VyTWVkaWFPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsT3JpZ2lu
KSwgcGVuZGluZ1JlcXVlc3QuZ2V0KCkpKQotICAgICAgICAgICAgdXNlck1lZGlhQWNjZXNzV2Fz
RGVuaWVkKHVzZXJNZWRpYUlELCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2Vy
TWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2FibGVkKTsKKyAgICAgICAgLy8g
SWYgcGFnZSBuYXZpZ2F0ZWQsIHRoZXJlIGlzIG5vIG5lZWQgdG8gY2FsbCB0aGUgcGFnZSBjbGll
bnQgZm9yIGF1dGhvcml6YXRpb24uCisgICAgICAgIGF1dG8qIHdlYkZyYW1lID0gbV9wYWdlLnBy
b2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKTsKKworICAgICAgICBpZiAoIXdlYkZyYW1lIHx8ICFT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhtX3BhZ2UucGFnZUxvYWRTdGF0ZSgpLmFj
dGl2ZVVSTCgpKS0+aXNTYW1lU2NoZW1lSG9zdFBvcnQodG9wTGV2ZWxPcmlnaW4tPnNlY3VyaXR5
T3JpZ2luKCkpKSB7CisgICAgICAgICAgICBkZW55UmVxdWVzdCh1c2VyTWVkaWFJRCwgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpO
b0NvbnN0cmFpbnRzLCBlbXB0eVN0cmluZygpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgd2ViRnJhbWUsIHVzZXJNZWRpYU9yaWdp
biBhbmQgdG9wTGV2ZWxPcmlnaW4gZnJvbSB0aGlzIHVpQ2xpZW50IEFQSSBjYWxsLgorICAgICAg
ICBtX3BhZ2UudWlDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdChtX3BhZ2UsICp3ZWJGcmFtZSwgV1RGTW92ZSh1c2VyTWVkaWFPcmlnaW4pLCBXVEZNb3Zl
KHRvcExldmVsT3JpZ2luKSwgcGVuZGluZ1JlcXVlc3QuZ2V0KCkpOwogICAgIH07CiAKICAgICBh
dXRvIHJlcXVlc3RJRCA9IGdlbmVyYXRlUmVxdWVzdElEKCk7CkBAIC00MTIsMTUgKzQyMCwxOSBA
QCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNl
ck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiB2b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRVc2VyTWVkaWFQZXJt
aXNzaW9uSW5mbyh1aW50NjRfdCByZXF1ZXN0SUQsIHVpbnQ2NF90IGZyYW1lSUQsIFVzZXJNZWRp
YVBlcm1pc3Npb25DaGVja1Byb3h5OjpDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIsIFJlZjxT
ZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3Jp
Z2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCiB7CisgICAgYXV0byogd2ViRnJhbWUgPSBt
X3BhZ2UucHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQpOworICAgIGlmICghd2ViRnJhbWUgfHwg
IVNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG1fcGFnZS5wYWdlTG9hZFN0YXRlKCku
YWN0aXZlVVJMKCkpLT5pc1NhbWVTY2hlbWVIb3N0UG9ydCh0b3BMZXZlbERvY3VtZW50T3JpZ2lu
LmdldCgpKSkgeworICAgICAgICBoYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKwogICAgIGF1dG8gdXNlck1lZGlhT3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmdldCgpKTsKICAgICBhdXRvIHRvcExldmVsT3Jp
Z2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4u
Z2V0KCkpOwogICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
OjpjcmVhdGUoZnJhbWVJRCwgV1RGTW92ZShoYW5kbGVyKSwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbikpOwogCiAgICAgbV9w
ZW5kaW5nRGV2aWNlUmVxdWVzdHMuYWRkKHJlcXVlc3RJRCwgcmVxdWVzdC5jb3B5UmVmKCkpOwot
ICAgIGlmICghbV9wYWdlLnVpQ2xpZW50KCkuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3Jp
Z2luKG1fcGFnZSwgKm1fcGFnZS5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRCksIHVzZXJNZWRp
YU9yaWdpbi5nZXQoKSwgdG9wTGV2ZWxPcmlnaW4uZ2V0KCksIHJlcXVlc3QuZ2V0KCkpKSB7Ci0g
ICAgICAgIG1fcGVuZGluZ0RldmljZVJlcXVlc3RzLnRha2UocmVxdWVzdElEKTsKLSAgICAgICAg
aGFuZGxlcihmYWxzZSk7Ci0gICAgfQorICAgIC8vIEZJWE1FOiBSZW1vdmUgd2ViRnJhbWUsIHVz
ZXJNZWRpYU9yaWdpbiBhbmQgdG9wTGV2ZWxPcmlnaW4gZnJvbSB0aGlzIHVpQ2xpZW50IEFQSSBj
YWxsLgorICAgIG1fcGFnZS51aUNsaWVudCgpLmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9y
aWdpbihtX3BhZ2UsICp3ZWJGcmFtZSwgdXNlck1lZGlhT3JpZ2luLmdldCgpLCB0b3BMZXZlbE9y
aWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSk7CiB9CiAKIGJvb2wgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3ModWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaAppbmRleCA1OTgwZGM3MDlhMDAyODVkMGFhOGU3MzVjZDMwODE5N2M5MTE4YmRiLi5h
YzgwNWU3ODhiZTIzMTdlMGE3YWFlYjcxODkwOWNmNDViY2E4OTA4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFsbG93KCk7CiAKICAgICBl
bnVtIGNsYXNzIFVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiB7IE5vQ29uc3RyYWludHMsIFVz
ZXJNZWRpYURpc2FibGVkLCBOb0NhcHR1cmVEZXZpY2VzLCBJbnZhbGlkQ29uc3RyYWludCwgSGFy
ZHdhcmVFcnJvciwgUGVybWlzc2lvbkRlbmllZCwgT3RoZXJGYWlsdXJlIH07Ci0gICAgdm9pZCBk
ZW55KFVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbik7CisgICAgdm9pZCBkZW55KFVzZXJNZWRp
YUFjY2Vzc0RlbmlhbFJlYXNvbiA9IFVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6VXNlck1l
ZGlhRGlzYWJsZWQpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNmMDU3MWQ1NmRkNDEy
YzJkNTIwNmUzMmNmNGJhNjQ4MzkzYTI3M2QuLjk3MTQxZTgzN2M1MmJjZGUwZDU0MjkzNzEzMTlm
OThiODcxYzUzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMjk3Nyw2ICsyOTc3LDggQEAKIAkJNDEwNDgyQ0IxREREMkZCNTAwRjAw
NkQwIC8qIFJUQ05ldHdvcmsuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUlRDTmV0d29yay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDQ4MkND
MURERDJGQjUwMEYwMDZEMCAvKiBSVENOZXR3b3JrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJUQ05ldHdvcmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEx
MTQzNjMyMEY2NzdCMTAwMjZGOTEyIC8qIEluamVjdFVzZXJTY3JpcHRJbW1lZGlhdGVseS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RVc2VyU2NyaXB0SW1tZWRpYXRl
bHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDExMjg2RUYyMUM4QTkwQzAwM0E4
NTUwIC8qIE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDExMjg2RjAyMUM4QTkwRDAwM0E4NTUwIC8qIE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhQ2FwdHVyZVV0
aWxpdGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMkI1NDcxRjlGRDNB
QjAwRTY3ODc1IC8qIE5ldHdvcmtSVENSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUlRDUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTEyQjU0NzFGOUZEM0FCMDBFNjc5ODYgLyogTmV0d29ya1JUQ1Jlc29s
dmVyQ29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29y
a1JUQ1Jlc29sdmVyQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEy
QjU0ODFGOUZEM0FDMDBFNjc4NzUgLyogTmV0d29ya1JUQ1Jlc29sdmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtSVENSZXNvbHZlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNDg0Miw2ICs0ODQ0LDcgQEAKIAkJCQkxQTUzQzJBNTFBMzI1NjlG
MDA0RThDNzAgLyogV2Vic2l0ZURhdGFTdG9yZS5oICovLAogCQkJCTVDNDZDMEFDMjFCNzE5OEIw
MEJDNTk5MSAvKiBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAgKi8sCiAJCQkJNUM0
NkMwQUQyMUI3MTk4QzAwQkM1OTkxIC8qIFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgg
Ki8sCisJCQkJNDExOERDMUIyMUU2RDExQTAwREUwNEM3IC8qIFdlYnNpdGVEYXRhU3RvcmVRdW90
YU1hbmFnZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gV2Vic2l0ZURhdGE7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtNTI4MSw2ICs1Mjg0LDggQEAKIAkJCQk1MUMwQzk3MzFEREQ3
NEYwMDAzMkNBRDMgLyogSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbSAqLywKIAkJCQk3QTgyMUY0QjFF
MkY2NjQ4MDA2MDQ1NzcgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50LmggKi8s
CiAJCQkJN0E4MjFGNEQxRTJGNjc5RTAwNjA0NTc3IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFu
YWdlckNsaWVudC5tbSAqLywKKwkJCQk0MTEyODZFRjIxQzhBOTBDMDAzQTg1NTAgLyogTWVkaWFD
YXB0dXJlVXRpbGl0aWVzLmggKi8sCisJCQkJNDExMjg2RjAyMUM4QTkwRDAwM0E4NTUwIC8qIE1l
ZGlhQ2FwdHVyZVV0aWxpdGllcy5tbSAqLywKIAkJCQkxQUJDM0RGNDE4OTlFNDM3MDA0RjA2MjYg
LyogTmF2aWdhdGlvblN0YXRlLmggKi8sCiAJCQkJMUFCQzNERjMxODk5RTQzNzAwNEYwNjI2IC8q
IE5hdmlnYXRpb25TdGF0ZS5tbSAqLywKIAkJCQk1QzZDRTZEMzFGNTlFQTM1MDAwN0M2Q0IgLyog
UGFnZUNsaWVudEltcGxDb2NvYS5oICovLApAQCAtOTgyNSw2ICs5ODMwLDcgQEAKIAkJCQkxREIw
MTk0MzIxMUNGMDAyMDA5RkIzRTggLyogV0tTaGFyZVNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MTNFNDYyRDFBRDgzNzU2MDAxNjIzNEEgLyogV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVn
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y1NDlCNDFFMzE3NEI3MDAwRTcyMzkgLyogV0tT
bmFwc2hvdENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMThEQzFGMjFFN0JG
NUQwMERFMDRDNyAvKiBXS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM0MDc2MDYxMjRGRjAyNzAwNjhGMjBBIC8qIFdLU3RyaW5nLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzQwNzYxQTEyNEZGMDM3MDA2OEYyMEEgLyogV0tTdHJpbmdDRi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM5MDk5ODAxMjU2QTk4MjAwMDgzNzU2IC8qIFdLU3RyaW5nUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggODIzYjA4Y2U0ZTRmNzMxZTM3MmVmZWRkZmE5ODQwZjQwZDBhMDYwMy4u
ODc1YTk0NjRlMWZmODkwMDgxNDM5NGFjYmM0NTRjMWFjMjg0Yzc5NCAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5
LTAxLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
YSBuZXcgU1BJIGZvciBjb250cm9sbGluZyBnZXRVc2VyTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mjc5MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dz
ZXJXaW5kb3dDb250cm9sbGVyLm06CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9s
bGVyIF93ZWJWaWV3OnJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNl
czpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9s
bGVyIF93ZWJWaWV3OmlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1lOmRlY2lzaW9uSGFu
ZGxlcjpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVk
aWFOYXZpZ2F0aW9uLm1tOgorICAgICAgICAoLVtOYXZpZ2F0aW9uV2hpbGVHZXRVc2VyTWVkaWFQ
cm9tcHREaXNwbGF5ZWRVSURlbGVnYXRlIF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRo
b3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW06CisgICAg
ICAgICgtW0dldFVzZXJNZWRpYVJlcHJvbXB0VUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0TWVk
aWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOl0p
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlhU3RyZWFtVHJhY2tE
ZXRhY2hlZC5tbToKKyAgICAgICAgKC1bTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0
ZSBfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOmRldmlj
ZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW06CisgICAgICAgICgtW1VzZXJNZWRpYVVJRGVs
ZWdhdGUgX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25Gb3JGcmFtZTpk
ZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bVXNlck1lZGlhVUlEZWxlZ2F0
ZSBfd2ViVmlldzppc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFtZTpkZWNpc2lvbkhhbmRs
ZXI6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVk
aWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW06CisgICAgICAgICgtW1NpbXVsYXRlRmFpbGVkU2Fu
ZGJveFVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25G
b3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bU2ltdWxhdGVG
YWlsZWRTYW5kYm94VUlEZWxlZ2F0ZSBfd2ViVmlldzppc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRG
b3JGcmFtZTpkZWNpc2lvbkhhbmRsZXI6XSk6CisKIDIwMTktMDEtMTYgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKFBTT04pIFZpZXcgYmVjb21l
cyBibGFuayBhZnRlciBjbGljayBhIGNyb3NzLXNpdGUgZG93bmxvYWQgbGluawpkaWZmIC0tZ2l0
IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gYi9U
b29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQppbmRleCAz
ZDNiN2YzZmRiZTMzNzFjMjU5NThlNWVhNzE4MjAyN2I2MDY5NWFjLi5lOWQ0MTUyZWY2NGM0Nzhi
NTZhYTk4M2ZkYWExNzZmODNjZGY5ZjQ1IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9t
YWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9t
YWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAtNzkxLDE0ICs3OTEsMTQgQEAgLSAo
dm9pZClmaW5kQmFyVmlld0RpZENoYW5nZUhlaWdodAogewogfQogCi0tICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2
aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFt
ZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09M
IGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjogKF9XS0NhcHR1cmVE
ZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQp
KWRlY2lzaW9uSGFuZGxlcgogewogICAgIGRlY2lzaW9uSGFuZGxlcih0cnVlKTsKIH0KIAotLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwg
ZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRs
ZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFu
ZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBpbmNsdWRlU2Vuc2l0
aXZlTWVkaWFEZXZpY2VEZXRhaWxzOih2b2lkICheKShCT09MIGluY2x1ZGVTZW5zaXRpdmVEZXRh
aWxzKSlkZWNpc2lvbkhhbmRsZXIKIHsKLSAgICBkZWNpc2lvbkhhbmRsZXIoQCIiLCBmYWxzZSk7
CisgICAgZGVjaXNpb25IYW5kbGVyKGZhbHNlKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24u
bW0KaW5kZXggNDIxZWVhNDI5MmNiYWIxNGU5NDZmNzk4YTM1ZGViNzNmODJiMzUwOC4uY2UzYTQz
OGVhNzY2N2M2ZGU1YTVmNWUwMDkzYTEwOTgyNTY0N2E2YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1t
CkBAIC00MiwxMiArNDIsMTIgQEAgc3RhdGljIGJvb2wgb2tUb1Byb2NlZWQgPSBmYWxzZTsKIHN0
YXRpYyBib29sIHNob3VsZFJlbGVhc2VJbkVudW1lcmF0ZSA9IGZhbHNlOwogCiBAaW50ZXJmYWNl
IE5hdmlnYXRpb25XaGlsZUdldFVzZXJNZWRpYVByb21wdERpc3BsYXllZFVJRGVsZWdhdGUgOiBO
U09iamVjdDxXS1VJRGVsZWdhdGU+Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURl
dmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWlu
RnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lz
aW9uSGFuZGxlcjsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVz
dE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb246IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRl
Y2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyOwogLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JV
Ukw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJ
ZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZv
aWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsK
IEBlbmQKIAogQGltcGxlbWVudGF0aW9uIE5hdmlnYXRpb25XaGlsZUdldFVzZXJNZWRpYVByb21w
dERpc3BsYXllZFVJRGVsZWdhdGUKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2
aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5G
cmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNp
b25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RN
ZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNp
c2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgogewogICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJhYm91dDpibGFuayJdXV07CiAgICAgW3dlYlZpZXcgcmVsZWFzZV07CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXBy
b21wdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJl
cHJvbXB0Lm1tCmluZGV4IGM0MzJmY2FlNWU4ZmM1OTc5MTIzM2U1MGJkYmI3NTMyY2JhYzRmN2Uu
LmZiYzNiNTk2ZGI2MTA5Nzk5YWI1MGE1NzI1NTI0MGMwN2UwZTIwMjYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0Lm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0
Lm1tCkBAIC00MSwxMiArNDEsMTIgQEAKIHN0YXRpYyBib29sIHdhc1Byb21wdGVkID0gZmFsc2U7
CiAKIEBpbnRlcmZhY2UgR2V0VXNlck1lZGlhUmVwcm9tcHRVSURlbGVnYXRlIDogTlNPYmplY3Q8
V0tVSURlbGVnYXRlPgotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1
ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRl
dmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJM
IGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRs
ZXI7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNh
cHR1cmVBdXRob3JpemF0aW9uOiAoX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhh
bmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcjsKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VS
TCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmll
cjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShO
U1N0cmluZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CiBAZW5kCiAK
IEBpbXBsZW1lbnRhdGlvbiBHZXRVc2VyTWVkaWFSZXByb21wdFVJRGVsZWdhdGUKLS0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRp
b25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwg
bWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQg
KF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uOiAoX1dL
Q2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRl
Y2lzaW9uSGFuZGxlcgogewogICAgIHdhc1Byb21wdGVkID0gdHJ1ZTsKICAgICBkZWNpc2lvbkhh
bmRsZXIoWUVTKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQppbmRleCAxZWNjZDBhNmVlMzMxNjQy
NjMyZDRkNWM2ZGYwYmJjZDAyYWUyZjQzLi5kMmNiZGE4MDZjOWFmYWM3Njc2MGE4NWIwNTQ0ODAz
MTI3Y2NkNTYzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9N
ZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCkBAIC00MCwxMyArNDAsMTMgQEAK
IHN0YXRpYyBib29sIGhhc1JlY2lldmVkQ29ycmVjdENhcHR1cmVTdGF0ZSA9IGZhbHNlOwogCiBA
aW50ZXJmYWNlIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUgOiBOU09iamVjdDxX
S1VJRGVsZWdhdGU+Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVl
c3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2
aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwg
ZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxl
cjsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2Fw
dHVyZUF1dGhvcml6YXRpb246IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFu
ZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyOwogLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJM
ICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVy
OihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
U3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsKIC0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6
KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gTWVk
aWFTdHJlYW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0ZQotLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9X
S0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5T
VVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3Jp
emVkKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb246IChfV0tDYXB0dXJlRGV2aWNlcylk
ZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyCiB7
CiAgICAgZGVjaXNpb25IYW5kbGVyKFlFUyk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbQppbmRleCA4
ODMzM2MzZmJiNjgwZTE2NWU3ZjI2MWE2MjZlNWIxZDEzMWIzYmFiLi42NWQyOGYyODg2ODg0OGY1
NWYzYzAwNzIxZDE5MDllMDAwNTQwOTY1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW0KQEAgLTM5LDcg
KzM5LDYgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLXN0YXRpYyBib29sIHJlZnVzZVJlcXVl
c3QgPSBmYWxzZTsKIHN0YXRpYyBib29sIHdhc1Byb21wdGVkID0gZmFsc2U7CiAKIHN0YXRpYyBi
b29sIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwpAQCAtNjIsMTUgKzYxLDEwIEBAIEBl
bmQKIAogQGltcGxlbWVudGF0aW9uIFVzZXJNZWRpYVVJRGVsZWdhdGUKIAotLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZv
ckRldmljZXM6KE5TVUludGVnZXIpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVS
TDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlk
ZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVx
dWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb246IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2Vz
IGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAg
d2FzUHJvbXB0ZWQgPSB0cnVlOwogCi0gICAgaWYgKHJlZnVzZVJlcXVlc3QpIHsKLSAgICAgICAg
ZGVjaXNpb25IYW5kbGVyKE5PKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIEJPT0wg
bmVlZHNNaWNyb3Bob25lQXV0aG9yaXplZCA9IGRldmljZXMgJiBfV0tDYXB0dXJlRGV2aWNlTWlj
cm9waG9uZTsKICAgICBCT09MIG5lZWRzQ2FtZXJhQXV0aG9yaXplZCA9IGRldmljZXMgJiBfV0tD
YXB0dXJlRGV2aWNlQ2FtZXJhOwogICAgIGlmICghbmVlZHNNaWNyb3Bob25lQXV0aG9yaXplZCAm
JiAhbmVlZHNDYW1lcmFBdXRob3JpemVkKSB7CkBAIC04MSwxNCArNzUsOSBAQCAtICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9u
Rm9yRGV2aWNlczooTgogICAgIGRlY2lzaW9uSGFuZGxlcihZRVMpOwogfQogCi0tICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVS
TDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlk
ZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikoTlNTdHJpbmcgKiwgQk9PTCkpZGVjaXNpb25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGluY2x1ZGVTZW5zaXRpdmVNZWRpYURldmljZURldGFpbHM6
KHZvaWQgKF4pKEJPT0wgaW5jbHVkZVNlbnNpdGl2ZURldGFpbHMpKWRlY2lzaW9uSGFuZGxlcgog
ewotICAgIGlmIChyZWZ1c2VSZXF1ZXN0KSB7Ci0gICAgICAgIGRlY2lzaW9uSGFuZGxlcihuaWws
IE5PKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGRlY2lzaW9uSGFuZGxlcihAIjB4
OTg3NjU0MzIxIiwgTk8pOworICAgIGRlY2lzaW9uSGFuZGxlcihOTyk7CiB9CiBAZW5kCiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlh
U2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0KaW5kZXggYzczYzk4OTk0
ZTQxNzMzNDkwMjU1MmE4NzhkZWY1ZDE3MjI1YmRmNC4uMjdkY2U4M2U0MTEwMDE0YTllZmZiZjA4
YjkwMWZiOTBkMjY2YjQ0NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNh
bmRib3gubW0KQEAgLTM5LDcgKzM5LDYgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLXN0YXRp
YyBib29sIHJlZnVzZVJlcXVlc3QgPSBmYWxzZTsKIHN0YXRpYyBib29sIHdhc1Byb21wdGVkID0g
ZmFsc2U7CiAKIHN0YXRpYyBib29sIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwpAQCAt
NjIsMTUgKzYxLDEwIEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFNpbXVsYXRlRmFpbGVkU2Fu
ZGJveFVJRGVsZWdhdGUKIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBy
ZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KE5TVUludGVnZXIpZGV2aWNl
cyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVj
aXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRp
b246IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXiko
Qk9PTCkpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgd2FzUHJvbXB0ZWQgPSB0cnVlOwogCi0gICAg
aWYgKHJlZnVzZVJlcXVlc3QpIHsKLSAgICAgICAgZGVjaXNpb25IYW5kbGVyKE5PKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQogICAgIEJPT0wgbmVlZHNNaWNyb3Bob25lQXV0aG9yaXplZCA9
IGRldmljZXMgJiBfV0tDYXB0dXJlRGV2aWNlTWljcm9waG9uZTsKICAgICBCT09MIG5lZWRzQ2Ft
ZXJhQXV0aG9yaXplZCA9IGRldmljZXMgJiBfV0tDYXB0dXJlRGV2aWNlQ2FtZXJhOwogICAgIGlm
ICghbmVlZHNNaWNyb3Bob25lQXV0aG9yaXplZCAmJiAhbmVlZHNDYW1lcmFBdXRob3JpemVkKSB7
CkBAIC04MSwxNCArNzUsOSBAQCAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooTgogICAgIGRlY2lzaW9u
SGFuZGxlcihZRVMpOwogfQogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJM
OihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJ
ZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKiwgQk9PTCkpZGVj
aXNpb25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGluY2x1
ZGVTZW5zaXRpdmVNZWRpYURldmljZURldGFpbHM6KHZvaWQgKF4pKEJPT0wgaW5jbHVkZVNlbnNp
dGl2ZURldGFpbHMpKWRlY2lzaW9uSGFuZGxlcgogewotICAgIGlmIChyZWZ1c2VSZXF1ZXN0KSB7
Ci0gICAgICAgIGRlY2lzaW9uSGFuZGxlcihuaWwsIE5PKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIGRlY2lzaW9uSGFuZGxlcihAIjB4OTg3NjU0MzIxIiwgTk8pOworICAgIGRlY2lz
aW9uSGFuZGxlcihOTyk7CiB9CiBAZW5kCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359331</attachid>
            <date>2019-01-16 16:06:45 -0800</date>
            <delta_ts>2019-01-16 17:18:11 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-192793-20190116160644.patch</filename>
            <type>text/plain</type>
            <size>56453</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRiYTUxZWU3YWY5MTAwM2Y1
MDY1NzI2MWM5MDA3YjdhY2ExMDRjMDAuLjc3MTAwYTEzMDBkN2E5ZjU5OWE3NjQwYTEwMzllZTJi
ODI4ZDlkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTktMDEtMTYgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgZm9yIGNv
bnRyb2xsaW5nIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyNzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29u
LgorCisgICAgICAgIFNvbWUgd2Vha25lc3NlcyBvZiB0aGUgY3VycmVudCBnZXRVc2VyTWVkaWEv
ZW51bWVyYXRlRGV2aWNlcyBTUEkgd2VyZSBmb3VuZC4KKyAgICAgICAgSW4gcGFydGljdWxhcjoK
KyAgICAgICAgLSBUaGUgaGFzaCBzYWx0IHNob3VsZCBiZSBoYW5kbGVkIGJ5IFdlYktpdCBub3Qg
YnkgYXBwcyB1c2luZyBXZWJLaXQuCisgICAgICAgIC0gTm8gbmVlZCB0byBleHBvc2UgdGhlIGZy
YW1lIFVSTCwgb25seSB0aGUgdG9wIGxldmVsIG9yaWdpbiBpcyBuZWVkZWQuCisgICAgICAgIC0g
VGhlIG5hbWVzIG9mIHRoZSBjYWxsYmFjayBhcmUgY2hhbmdlZCB0byBpbXByb3ZlIHRoZSBpbnRl
bnQgb2YgdGhlc2UgY2FsbGJhY2tzLgorICAgICAgICBBZGRyZXNzZWQgdGhlc2UgYnkgY3JlYXRp
bmcgYSBuZXcgU1BJIHdoaWNoIHdpbGwgcmVwbGFjZSB0aGUgY3VycmVudCBvbmUuCisgICAgICAg
IFRoZSBjdXJyZW50IFNQSSB3aWxsIGJlIHJlbW92ZWQgbGF0ZXIgb24uCisKKyAgICAgICAgRGlk
IHNvbWUgcmVmYWN0b3JpbmcgYnkgbWFraW5nIHRoZSBjYWxsYmFja3Mgbm90IHJldHVybiBmYWxz
ZS4KKyAgICAgICAgSW5zdGVhZCwgaW1wbGVtZW50IHRoZSBkZWZhdWx0IGJlaGF2aW9yIGluc2lk
ZSB0aGUgcmVxdWVzdCBvYmplY3RzIGFzIGRlbnkgbWV0aG9kcy4KKyAgICAgICAgU29tZSBmdXJ0
aGVyIHJlZmFjdG9yaW5nIHdpbGwgYmUgZG9uZSBhcyBhIGZvbGxvdy11cCB0byBiZXR0ZXIgYWxp
Z24gdGhlIEMgQVBJIHdpdGggdGhlIENvY29hIEFQSS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJVUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OmNo
ZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcg
X21lZGlhQ2FwdHVyZVN0YXRlXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0TWVkaWFDYXB0
dXJlTXV0ZWQ6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmg6IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMubW06IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdh
dGU6OnNldERlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6cmVxdWVzdFVzZXJNZWRpYUF1dGhv
cml6YXRpb25Gb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50
OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChX
ZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JP
cmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6bWVkaWFDYXB0
dXJlU3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hl
Y2tQcm94eTo6ZGVueSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6Z2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6CisKIDIwMTktMDEtMTYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKFBTT04pIFZpZXcg
YmVjb21lcyBibGFuayBhZnRlciBjbGljayBhIGNyb3NzLXNpdGUgZG93bmxvYWQgbGluawpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CmluZGV4IDMwOGY2NmNiZTZkMjMyNDZlZGRhZmRhMzFkMmFhNDU4NTgy
Yzk0ZTIuLmQyZmEyMzUwNDI1NjhmMjE0MjI4ZTY2NmRiMDMyNzk1ODI2OTIzYzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQKQEAgLTMyMSw2ICszMjEsNyBAQCBVSVByb2Nlc3MvQ29jb2EvRnVsbHNj
cmVlbkNsaWVudC5tbQogVUlQcm9jZXNzL0NvY29hL0dsb2JhbEZpbmRJblBhZ2VTdGF0ZS5tbQog
VUlQcm9jZXNzL0NvY29hL0ljb25Mb2FkaW5nRGVsZWdhdGUubW0KIFVJUHJvY2Vzcy9Db2NvYS9M
ZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0KK1VJUHJvY2Vzcy9Db2NvYS9NZWRp
YUNhcHR1cmVVdGlsaXRpZXMubW0KIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0K
IFVJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tCiBVSVByb2Nlc3MvQ29jb2Ev
UGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElVSUNsaWVudC5oCmluZGV4IDA4OTQ4ZTc3NGY5MTcwNmNmMWEyMDEzOGFmOTBmZGZmYjhl
NDZjZTguLjgxZWMwNjllMTdiZjM1NjVjNTAwZDhjNjY0MWIyODE4ZDg2Y2RmZWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0xMjksOCArMTI5LDggQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHJ1bk9wZW5QYW5lbChXZWJLaXQ6OldlYlBhZ2VQ
cm94eSosIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYsIE9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJLaXQ6OldlYk9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyUHJveHkqKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVBy
b3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBGdW5jdGlvbjx2
b2lkKGJvb2wpPiYpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJh
bWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgU2VjdXJpdHlPcmlnaW4mLCBXZWJLaXQ6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1
YWwgYm9vbCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViS2l0OjpXZWJQYWdl
UHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIFNlY3VyaXR5
T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5
JiwgU2VjdXJpdHlPcmlnaW4mLCBTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCkgeyByZXF1ZXN0LmRlbnkoKTsgfQorICAgIHZp
cnR1YWwgdm9pZCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViS2l0OjpXZWJQ
YWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIFNlY3Vy
aXR5T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcmVxdWVz
dCkgeyByZXF1ZXN0LmRlbnkoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFNlY3Vy
aXR5T3JpZ2luJiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBj
b21wbGV0aW9uSGFuZGxlcihmYWxzZSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NDb25maXJtKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVBy
b3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmIHJlcXVlc3RpbmdEb21haW4sIGNvbnN0IFdURjo6U3Ry
aW5nJiBjdXJyZW50RG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDZiNDBiOWYzNzA2ZDRmMzc4NTNiMzlk
ZDI1NDYwYTc2NGYwYmJjODUuLmI1ZmMyZmFjZjYwYzlkNjVjMzE3Mjk2ZTAyYzZlM2U1Nzg1M2Qz
YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMTg1Niwy
MiArMTg1NiwyNCBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJl
ZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogICAgICAgICAgICAgbV9jbGll
bnQuZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCh0b0FQSSgmcGFn
ZSksIHRvQVBJKCZmcmFtZSksIHRvQVBJKCZvcmlnaW4pLCB0b0FQSShHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0OjpjcmVhdGUoc3RkOjpleGNoYW5nZShjb21wbGV0aW9uSGFuZGxlciwgbnVs
bHB0cikpLnB0cigpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCi0g
ICAgICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2Vi
UGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdp
biYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVs
RG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHBlcm1pc3Np
b25SZXF1ZXN0KSBmaW5hbAorICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUs
IEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3Vy
aXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5JiBwZXJtaXNzaW9uUmVxdWVzdCkgZmluYWwKICAgICAgICAgewotICAgICAgICAg
ICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dCkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIW1fY2xp
ZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KSB7CisgICAgICAg
ICAgICAgICAgcGVybWlzc2lvblJlcXVlc3QuZGVueSgpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QodG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0
b0FQSSgmdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCB0b0FQSSgmdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbiksIHRvQVBJKCZwZXJtaXNzaW9uUmVxdWVzdCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5m
byk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wg
Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2Vi
RnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2Vy
TWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcmVxdWVzdCkgZmluYWwKKyAgICAgICAgdm9pZCBj
aGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJG
cmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJN
ZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KSBmaW5hbAogICAgICAgICB7Ci0gICAg
ICAgICAgICBpZiAoIW1fY2xpZW50LmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbikK
LSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50
LmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbikgeworICAgICAgICAgICAgICAgIHJl
cXVlc3QuZGVueSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgbV9jbGllbnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKHRv
QVBJKCZwYWdlKSwgdG9BUEkoJmZyYW1lKSwgdG9BUEkoJnVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
KSwgdG9BUEkoJnRvcExldmVsRG9jdW1lbnRPcmlnaW4pLCB0b0FQSSgmcmVxdWVzdCksIG1fY2xp
ZW50LmJhc2UuY2xpZW50SW5mbyk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
fQogICAgICAgICAKICAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9y
aWdpbiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRl
UHJpdmF0ZS5oCmluZGV4IGNkOWE1NGVlMTc1MjUyNWJkNDA5ZmI5OWFjZDJlYjU3OTA4OTZhYzUu
LjU1NjgwODMwZTc5ZDBkNGIxOTk5MzM2ODY0YmE2N2ZiMDQ0YjY3ZmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUu
aApAQCAtMTA3LDYgKzEwNyw4IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAKIC0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdl
ZDooQ0dTaXplKXNpemUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkp
OwogLSAoTlNEaWN0aW9uYXJ5ICopX2RhdGFEZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4w
KSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNh
cHR1cmVBdXRob3JpemF0aW9uOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFu
ZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGluY2x1ZGVTZW5zaXRpdmVNZWRpYURldmljZURl
dGFpbHM6KHZvaWQgKF4pKEJPT0wgaW5jbHVkZVNlbnNpdGl2ZURldGFpbHMpKWRlY2lzaW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRp
YUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDoo
TlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhh
bmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAq
KXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjoo
TlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0
cmluZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTIuMyksIGlvcygxMC4zKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1
cmVTdGF0ZSlzdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRl
eCA0ZGZhZDY0ZTAxNTQzNTkyODBlNjE2OGIxZjFlZDVlYmU2ZDdkOWJiLi40YTQ0MWIwY2RkOGE2
ZDdkMTVkOGYxYTFmM2FlMDVmYzhiNjFjYjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgIklj
b25Mb2FkaW5nRGVsZWdhdGUuaCIKICNpbXBvcnQgIkxlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5o
IgogI2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmgi
CiAjaW1wb3J0ICJOYXZpZ2F0aW9uU3RhdGUuaCIKICNpbXBvcnQgIk9iakNPYmplY3RHcmFwaC5o
IgogI2ltcG9ydCAiUGFnZUNsaWVudC5oIgpAQCAtNTU1Niw2ICs1NTU3LDE2IEBAIC0gKEJPT0wp
X2lzSW5GdWxsc2NyZWVuCiAjZW5kaWYKIH0KIAorLSAoX1dLTWVkaWFDYXB0dXJlU3RhdGUpX21l
ZGlhQ2FwdHVyZVN0YXRlCit7CisgICAgcmV0dXJuIFdlYktpdDo6dG9XS01lZGlhQ2FwdHVyZVN0
YXRlKF9wYWdlLT5tZWRpYVN0YXRlRmxhZ3MoKSk7Cit9CisKKy0gKHZvaWQpX3NldE1lZGlhQ2Fw
dHVyZU11dGVkOihCT09MKW11dGVkCit7CisgICAgX3BhZ2UtPnNldE1lZGlhU3RyZWFtQ2FwdHVy
ZU11dGVkKG11dGVkKTsKK30KKwogLSAodm9pZClfbXV0ZU1lZGlhQ2FwdHVyZQogewogICAgIF9w
YWdlLT5zZXRNZWRpYVN0cmVhbUNhcHR1cmVNdXRlZCh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDI2YzBj
MzQ2MDAyZjU4ZDQ2NDljZGFkMmM5MmQ0OGQzNzdiZWNmMjIuLjEyYjAxZTg1ZDE5MzYwMWRmMWEy
YmEzZTg0MTFlNDgxNWNmN2U0NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtNDA0LDYgKzQwNCw5IEBAIHR5cGVk
ZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0RWRnZSkgewogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0RnVsbHNjcmVlbkRlbGVnYXRlOikgaWQ8X1dLRnVsbHNjcmVlbkRl
bGVnYXRlPiBfZnVsbHNjcmVlbkRlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEz
KSwgaW9zKDExLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaXNJ
bkZ1bGxzY3JlZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMykpOwogCitAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS01lZGlhQ2FwdHVyZVN0YXRlIF9tZWRpYUNhcHR1
cmVTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKworLSAodm9pZClfc2V0TWVkaWFDYXB0dXJlTXV0ZWQ6KEJPT0wpbXV0ZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lk
KV9tdXRlTWVkaWFDYXB0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDEx
LjApKTsKIC0gKHZvaWQpX3NldFBhZ2VNdXRlZDooX1dLTWVkaWFNdXRlZFN0YXRlKW11dGVkU3Rh
dGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKaW5k
ZXggZDRhOGQxZTk5YzdhZDVmMDMyN2JiODc0ZmMwZWFjMzBjMWE0ZWRmMi4uMmU1MmEzZTVhNjk0
ODEyMGFjOTg4MGE0NzZhZTc0NGFkZTA4YzZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcApAQCAtMTg0LDE4ICsxODQsMTYg
QEAgcHJpdmF0ZToKICAgICAgICAgd2Via2l0V2ViVmlld01ha2VQZXJtaXNzaW9uUmVxdWVzdCht
X3dlYlZpZXcsIFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1QoZ2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5nZXQoKSkpOwogICAgIH0KIAotICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5JiBwZXJtaXNzaW9uUmVxdWVzdCkgZmluYWwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBB
UEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgQVBJOjpTZWN1cml0
eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eSYgcGVybWlzc2lvblJlcXVlc3QpIGZpbmFsCiAgICAgewogICAgICAgICBHUmVmUHRy
PFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0PiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdCA9IGFkb3B0R1JlZih3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENyZWF0ZShw
ZXJtaXNzaW9uUmVxdWVzdCwgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIHRvcExldmVsRG9jdW1l
bnRPcmlnaW4pKTsKICAgICAgICAgd2Via2l0V2ViVmlld01ha2VQZXJtaXNzaW9uUmVxdWVzdCht
X3dlYlZpZXcsIFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1QodXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuZ2V0KCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgYm9vbCBj
aGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJG
cmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4s
IEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBl
cm1pc3Npb25DaGVja1Byb3h5JiBwZXJtaXNzaW9uUmVxdWVzdCkgb3ZlcnJpZGUKKyAgICB2b2lk
IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmIHBhZ2UsIFdl
YkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBvdmVycmlkZQogICAgIHsK
ICAgICAgICAgYXV0byBkZXZpY2VJbmZvUGVybWlzc2lvblJlcXVlc3QgPSBhZG9wdEdSZWYod2Vi
a2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0Q3JlYXRlKHBlcm1pc3Npb25SZXF1ZXN0LCAm
cGFnZS53ZWJzaXRlRGF0YVN0b3JlKCkuZGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UoKSkpOwogICAg
ICAgICB3ZWJraXRXZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0KG1fd2ViVmlldywgV0VCS0lU
X1BFUk1JU1NJT05fUkVRVUVTVChkZXZpY2VJbmZvUGVybWlzc2lvblJlcXVlc3QuZ2V0KCkpKTsK
LSAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5
T3JpZ2luJiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0
aWxpdGllcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFDYXB0dXJlVXRp
bGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDAwNDAzZmZkODM5YjFkNjczOTBiMjA1MjUwMjQzMmFlMWEx
NmIyMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01l
ZGlhQ2FwdHVyZVV0aWxpdGllcy5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgIldLV2ViVmlld1ByaXZh
dGUuaCIKKyNpbXBvcnQgPFdlYkNvcmUvTWVkaWFQcm9kdWNlci5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworX1dLTWVkaWFDYXB0dXJlU3RhdGUgdG9XS01lZGlhQ2FwdHVyZVN0YXRlKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L01lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L01lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YWVlMzhlYjY0ZTJlMjQ4NDE2
MDg3Njg4ZjNmYzYwMGQ2YTExMjhjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLm1tCkBAIC0wLDAgKzEsNTAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFDYXB0dXJl
VXRpbGl0aWVzLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworX1dLTWVkaWFDYXB0dXJlU3RhdGUgdG9XS01lZGlhQ2FwdHVyZVN0YXRlKFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3sKKyAgICBfV0tNZWRpYUNhcHR1
cmVTdGF0ZSBtZWRpYUNhcHR1cmVTdGF0ZSA9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZTsKKyAg
ICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1
cmVEZXZpY2UpCisgICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0
YXRlQWN0aXZlTWljcm9waG9uZTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgICAgIG1lZGlhQ2FwdHVyZVN0
YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJhOworICAgIGlmIChzdGF0ZSAm
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQorICAg
ICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkTWljcm9w
aG9uZTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZFZp
ZGVvQ2FwdHVyZURldmljZSkKKyAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFD
YXB0dXJlU3RhdGVNdXRlZENhbWVyYTsKKworICAgIHJldHVybiBtZWRpYUNhcHR1cmVTdGF0ZTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCmluZGV4IDZkNjgwNjlhY2I2NDQwMDkxZTA4ZjFhYTll
YWJhMTIwMGNmNTE2OGEuLjU5OTBjY2Y1ZWIxNTE3YjMzNWE2YTA0ZGIxODk3YjE4NzQ2OTFkMWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAgLTEyMyw4
ICsxMjMsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgICAgIGJvb2wgbmVlZHNGb250QXR0cmli
dXRlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3RGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXM7IH0KICAgICAgICAgdm9pZCBkaWRDaGFu
Z2VGb250QXR0cmlidXRlcyhjb25zdCBXZWJDb3JlOjpGb250QXR0cmlidXRlcyYpIGZpbmFsOwot
ICAgICAgICBib29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdl
YlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpT
ZWN1cml0eU9yaWdpbiYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSBmaW5hbDsK
LSAgICAgICAgYm9vbCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVBy
b3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5
T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmKSBmaW5hbDsKKyAgICAgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJv
eHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlP
cmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JikgZmluYWw7CisgICAgICAg
IHZvaWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYsIFdl
YkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYs
IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JikgZmluYWw7CiAgICAgICAgIHZvaWQgbWVk
aWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzKSBmaW5hbDsKICAgICAgICAgdm9pZCBwcmludEZyYW1lKFdlYlBhZ2VQcm94eSYsIFdl
YkZyYW1lUHJveHkmKSBmaW5hbDsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTk4LDgg
KzE5OCw4IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1
cm5Ub0lubGluZSA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZEVudGVyRnVsbHNjcmVlbiA6
IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuIDogMTsKLSAgICAgICAg
Ym9vbCB3ZWJWaWV3UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzVVJMTWFp
bkZyYW1lVVJMRGVjaXNpb25IYW5kbGVyIDogMTsKLSAgICAgICAgYm9vbCB3ZWJWaWV3Q2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMTWFpbkZyYW1lVVJMRnJhbWVJZGVudGlmaWVyRGVjaXNp
b25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3UmVxdWVzdE1lZGlhQ2FwdHVyZUF1
dGhvcml6YXRpb25Gb3JGcmFtZURlY2lzaW9uSGFuZGxlciA6IDE7CisgICAgICAgIGJvb2wgd2Vi
Vmlld0lzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1lRGVjaXNpb25IYW5kbGVyIDogMTsK
ICAgICAgICAgYm9vbCB3ZWJWaWV3TWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UgOiAxOwogICAg
ICAgICBib29sIHdlYlZpZXdEaWRDaGFuZ2VGb250QXR0cmlidXRlcyA6IDE7CiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
Lm1tCmluZGV4IGRhZWNhYjRlYzg1MTkyYWNkY2Y1YmQyYmJmMDAwYzRjZjA4M2I1MDguLjNhMzVh
NWYwZTBiYjU4ZWE0Y2JhMjAzNzkzYWE1NzU4YTg1MmMwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAi
QVBJRnJhbWVJbmZvLmgiCiAjaW1wb3J0ICJBUElIaXRUZXN0UmVzdWx0LmgiCiAjaW1wb3J0ICJD
b21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLmgiCisjaW1wb3J0ICJNZWRpYUNhcHR1cmVVdGls
aXRpZXMuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKICNpbXBvcnQgIk5hdmln
YXRpb25BY3Rpb25EYXRhLmgiCiAjaW1wb3J0ICJVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94
eS5oIgpAQCAtMTUwLDggKzE1MSw5IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQg
PFdLVUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Rp
ZE5vdEhhbmRsZVRhcEFzQ2xpY2tBdFBvaW50ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkTm90SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQ6KV07CiAg
ICAgbV9kZWxlZ2F0ZU1ldGhvZHMucHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldyA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9wcmVzZW50aW5nVmlld0Nv
bnRyb2xsZXJGb3JXZWJWaWV3OildOwogI2VuZGlmCi0gICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld1JlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlc1VSTE1haW5GcmFtZVVS
TERlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3OnJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczp1cmw6bWFp
bkZyYW1lVVJMOmRlY2lzaW9uSGFuZGxlcjopXTsKLSAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3Q2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMTWFpbkZyYW1lVVJMRnJhbWVJZGVudGlm
aWVyRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXc6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1haW5GcmFtZVVSTDpm
cmFtZUlkZW50aWZpZXI6ZGVjaXNpb25IYW5kbGVyOildOworICAgIG1fZGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdSZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lRGVjaXNpb25I
YW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6
cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOnVybDptYWluRnJhbWVVUkw6
ZGVjaXNpb25IYW5kbGVyOildIHx8IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uOmRlY2lzaW9uSGFu
ZGxlcjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3SXNNZWRpYUNhcHR1cmVBdXRo
b3JpemVkRm9yRnJhbWVEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcihfd2ViVmlldzpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6bWFp
bkZyYW1lVVJMOmZyYW1lSWRlbnRpZmllcjpkZWNpc2lvbkhhbmRsZXI6KV0gfHwgW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6aW5jbHVkZVNlbnNpdGl2ZU1l
ZGlhRGV2aWNlRGV0YWlsczopXTsKKwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdNZWRp
YUNhcHR1cmVTdGF0ZURpZENoYW5nZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOildOwogICAgIG1fZGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdEaWRDaGFuZ2VGb250QXR0cmlidXRlcyA9IFtkZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZENoYW5nZUZvbnRBdHRyaWJ1
dGVzOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLmRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yV2Vi
VmlldyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9kYXRhRGV0ZWN0
aW9uQ29udGV4dEZvcldlYlZpZXc6KV07CkBAIC04NTksMTAgKzg2MSwyNCBAQCBib29sIFVJRGVs
ZWdhdGU6OlVJQ2xpZW50OjpydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94
eSogd2ViRnJhbWVQcgogfQogI2VuZGlmCiAKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRp
ZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZvbnRBdHRyaWJ1dGVzJiBmb250
QXR0cmlidXRlcykKK3sKKyAgICBpZiAoIW5lZWRzRm9udEF0dHJpYnV0ZXMoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYXV0byBwcml2YXRlVUlEZWxlZ2F0ZSA9IChpZCA8V0tVSURlbGVnYXRl
UHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgW3ByaXZhdGVVSURl
bGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgZGlkQ2hhbmdlRm9udEF0dHJp
YnV0ZXM6Zm9udEF0dHJpYnV0ZXMuY3JlYXRlRGljdGlvbmFyeSgpLmdldCgpXTsKK30KKwogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCi1zdGF0aWMgdm9pZCByZXF1ZXN0VXNlck1lZGlhQXV0aG9y
aXphdGlvbkZvckRldmljZXMoY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QsIGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiBk
ZWxlZ2F0ZSwgV0tXZWJWaWV3JiB3ZWJWaWV3KQorc3RhdGljIHZvaWQgcmVxdWVzdFVzZXJNZWRp
YUF1dGhvcml6YXRpb25Gb3JGcmFtZShjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpT
ZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkmIHJlcXVlc3QsIGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiBkZWxlZ2F0ZSwgV0tXZWJW
aWV3JiB3ZWJWaWV3KQogewotICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRy
KFtwcm90ZWN0ZWRSZXF1ZXN0ID0gbWFrZVJlZihyZXF1ZXN0KV0oQk9PTCBhdXRob3JpemVkKSB7
CisgICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRl
KGRlbGVnYXRlLCBAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6
YXRpb246ZGVjaXNpb25IYW5kbGVyOikpOworICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFr
ZUJsb2NrUHRyKFtwcm90ZWN0ZWRSZXF1ZXN0ID0gbWFrZVJlZihyZXF1ZXN0KSwgY2hlY2tlciA9
IFdURk1vdmUoY2hlY2tlcildKEJPT0wgYXV0aG9yaXplZCkgeworICAgICAgICBpZiAoY2hlY2tl
ci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOworCiAgICAgICAg
IGlmICghYXV0aG9yaXplZCkgewogICAgICAgICAgICAgcHJvdGVjdGVkUmVxdWVzdC0+ZGVueShV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFz
b246OlBlcm1pc3Npb25EZW5pZWQpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODcyLDEwICs4
ODgsNiBAQCBzdGF0aWMgdm9pZCByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmlj
ZXMoY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsCiAgICAgICAgIHByb3RlY3RlZFJlcXVlc3Qt
PmFsbG93KGF1ZGlvRGV2aWNlVUlELCB2aWRlb0RldmljZVVJRCk7CiAgICAgfSk7CiAKLSAgICBj
b25zdCBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUgPSBmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgp
OwotICAgIFVSTCByZXF1ZXN0RnJhbWVVUkwoVVJMKCksIGZyYW1lLnVybCgpKTsKLSAgICBVUkwg
bWFpbkZyYW1lVVJMKFVSTCgpLCBtYWluRnJhbWUtPnVybCgpKTsKLQogICAgIF9XS0NhcHR1cmVE
ZXZpY2VzIGRldmljZXMgPSAwOwogICAgIGlmIChyZXF1ZXN0LnJlcXVpcmVzQXVkaW9DYXB0dXJl
KCkpCiAgICAgICAgIGRldmljZXMgfD0gX1dLQ2FwdHVyZURldmljZU1pY3JvcGhvbmU7CkBAIC04
ODYsMjcgKzg5OCwyOSBAQCBzdGF0aWMgdm9pZCByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlv
bkZvckRldmljZXMoY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsCiAgICAgICAgIEFTU0VSVCgh
KGRldmljZXMgJiBfV0tDYXB0dXJlRGV2aWNlQ2FtZXJhKSk7CiAgICAgfQogCi0gICAgYXV0byBw
cm90ZWN0ZWRXZWJWaWV3ID0gUmV0YWluUHRyPFdLV2ViVmlldz4oJndlYlZpZXcpOwotICAgIFtk
ZWxlZ2F0ZSBfd2ViVmlldzpwcm90ZWN0ZWRXZWJWaWV3LmdldCgpIHJlcXVlc3RVc2VyTWVkaWFB
dXRob3JpemF0aW9uRm9yRGV2aWNlczpkZXZpY2VzIHVybDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZy
YW1lVVJMOm1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgp
XTsKLX0KLSNlbmRpZgorICAgIGNvbnN0IGF1dG8qIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+
bWFpbkZyYW1lKCk7CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRpZENoYW5nZUZvbnRB
dHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZvbnRBdHRyaWJ1dGVzJiBmb250QXR0cmlidXRlcykK
LXsKLSAgICBpZiAoIW5lZWRzRm9udEF0dHJpYnV0ZXMoKSkKKyAgICAvLyBGSVhNRTogUHJvdmlk
ZSBhIHNwZWNpZmljIGRlbGVnYXRlIGZvciBkaXNwbGF5IGNhcHR1cmUuCisgICAgaWYgKCFyZXF1
ZXN0LnJlcXVpcmVzRGlzcGxheUNhcHR1cmUoKSAmJiBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjpk
ZWNpc2lvbkhhbmRsZXI6KV0pIHsKKworICAgICAgICBbZGVsZWdhdGUgX3dlYlZpZXc6JndlYlZp
ZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb246ZGV2aWNlcyBkZWNpc2lvbkhhbmRs
ZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAg
IGF1dG8gcHJpdmF0ZVVJRGVsZWdhdGUgPSAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlE
ZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOwotICAgIFtwcml2YXRlVUlEZWxlZ2F0ZSBfd2ViVmll
dzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzOmZvbnRBdHRy
aWJ1dGVzLmNyZWF0ZURpY3Rpb25hcnkoKS5nZXQoKV07CisgICAgVVJMIHJlcXVlc3RGcmFtZVVS
TCB7IFVSTCgpLCBmcmFtZS51cmwoKSB9OworICAgIFVSTCBtYWluRnJhbWVVUkwgeyBVUkwoKSwg
bWFpbkZyYW1lLT51cmwoKSB9OworCisgICAgW2RlbGVnYXRlIF93ZWJWaWV3OiZ3ZWJWaWV3IHJl
cXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczpkZXZpY2VzIHVybDpyZXF1ZXN0
RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNp
b25IYW5kbGVyLmdldCgpXTsKIH0KKyNlbmRpZgogCi1ib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50
OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkm
IHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVk
aWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KQordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVu
dDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5
JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1l
ZGlhT3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsK
LSAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld1JlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlc1VSTE1haW5GcmFtZVVS
TERlY2lzaW9uSGFuZGxlcikgeworICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5t
X2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb25G
b3JGcmFtZURlY2lzaW9uSGFuZGxlcikgewogICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpVc2Vy
TWVkaWFEaXNhYmxlZCk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm47CiAg
ICAgfQogCiAgICAgYm9vbCByZXF1aXJlc0F1ZGlvQ2FwdHVyZSA9IHJlcXVlc3QucmVxdWlyZXNB
dWRpb0NhcHR1cmUoKTsKQEAgLTkxNCwzMyArOTI4LDMzIEBAIGJvb2wgVUlEZWxlZ2F0ZTo6VUlD
bGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQ
cm94CiAgICAgYm9vbCByZXF1aXJlc0Rpc3BsYXlDYXB0dXJlID0gcmVxdWVzdC5yZXF1aXJlc0Rp
c3BsYXlDYXB0dXJlKCk7CiAgICAgaWYgKCFyZXF1aXJlc0F1ZGlvQ2FwdHVyZSAmJiAhcmVxdWly
ZXNWaWRlb0NhcHR1cmUgJiYgIXJlcXVpcmVzRGlzcGxheUNhcHR1cmUpIHsKICAgICAgICAgcmVx
dWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vz
c0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50cyk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAjaWYgSEFWRShBVVRIT1JJWkFUSU9OX1NUQVRVU19GT1Jf
TUVESUFfVFlQRSkKICAgICBib29sIHVzaW5nTW9ja0NhcHR1cmVEZXZpY2VzID0gcGFnZS5wcmVm
ZXJlbmNlcygpLm1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoKTsKLSAgICBhdXRvIHJlcXVlc3RD
YW1lcmFBdXRob3JpemF0aW9uID0gbWFrZUJsb2NrUHRyKFt0aGlzLCAmZnJhbWUsIHByb3RlY3Rl
ZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpLCB3ZWJWaWV3ID0gUmV0YWluUHRyPFdLV2ViVmll
dz4obV91aURlbGVnYXRlLm1fd2ViVmlldyksIHVzaW5nTW9ja0NhcHR1cmVEZXZpY2VzXSgpIHsK
KyAgICBhdXRvIHJlcXVlc3RDYW1lcmFBdXRob3JpemF0aW9uID0gbWFrZUJsb2NrUHRyKFt0aGlz
LCAmZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpLCB3ZWJWaWV3ID0g
UmV0YWluUHRyPFdLV2ViVmlldz4obV91aURlbGVnYXRlLm1fd2ViVmlldyksIHRvcExldmVsT3Jp
Z2luID0gbWFrZVJlZih0b3BMZXZlbE9yaWdpbiksIHVzaW5nTW9ja0NhcHR1cmVEZXZpY2VzXSgp
IG11dGFibGUgewogCiAgICAgICAgIGlmICghcHJvdGVjdGVkUmVxdWVzdC0+cmVxdWlyZXNWaWRl
b0NhcHR1cmUoKSkgewotICAgICAgICAgICAgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25G
b3JEZXZpY2VzKGZyYW1lLCBwcm90ZWN0ZWRSZXF1ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZh
dGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqd2ViVmlldy5nZXQoKSk7CisgICAg
ICAgICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGZyYW1lLCB0b3BM
ZXZlbE9yaWdpbiwgcHJvdGVjdGVkUmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilt
X3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwgKndlYlZpZXcuZ2V0KCkpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIEFWQXV0aG9yaXphdGlvblN0YXR1cyBjYW1l
cmFBdXRob3JpemF0aW9uU3RhdHVzID0gdXNpbmdNb2NrQ2FwdHVyZURldmljZXMgPyBBVkF1dGhv
cml6YXRpb25TdGF0dXNBdXRob3JpemVkIDogW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgYXV0
aG9yaXphdGlvblN0YXR1c0Zvck1lZGlhVHlwZTpnZXRBVk1lZGlhVHlwZVZpZGVvKCldOwogICAg
ICAgICBzd2l0Y2ggKGNhbWVyYUF1dGhvcml6YXRpb25TdGF0dXMpIHsKICAgICAgICAgY2FzZSBB
VkF1dGhvcml6YXRpb25TdGF0dXNBdXRob3JpemVkOgotICAgICAgICAgICAgcmVxdWVzdFVzZXJN
ZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzKGZyYW1lLCBwcm90ZWN0ZWRSZXF1ZXN0LCAoaWQg
PFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqd2Vi
Vmlldy5nZXQoKSk7CisgICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZv
ckZyYW1lKGZyYW1lLCB0b3BMZXZlbE9yaWdpbiwgcHJvdGVjdGVkUmVxdWVzdCwgKGlkIDxXS1VJ
RGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwgKndlYlZpZXcu
Z2V0KCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVZBdXRob3JpemF0aW9u
U3RhdHVzRGVuaWVkOgogICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c1Jlc3RyaWN0
ZWQ6CiAgICAgICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0LT5kZW55KFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRl
bmllZCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNhc2UgQVZBdXRob3JpemF0aW9u
U3RhdHVzTm90RGV0ZXJtaW5lZDoKLSAgICAgICAgICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0g
bWFrZUJsb2NrUHRyKFt0aGlzLCAmZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QgPSBtYWtlUmVmKHBy
b3RlY3RlZFJlcXVlc3QuZ2V0KCkpLCB3ZWJWaWV3ID0gUmV0YWluUHRyPFdLV2ViVmlldz4obV91
aURlbGVnYXRlLm1fd2ViVmlldyldKEJPT0wgYXV0aG9yaXplZCkgeworICAgICAgICAgICAgYXV0
byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3RoaXMsICZmcmFtZSwgcHJvdGVjdGVk
UmVxdWVzdCA9IG1ha2VSZWYocHJvdGVjdGVkUmVxdWVzdC5nZXQoKSksIHdlYlZpZXcgPSBSZXRh
aW5QdHI8V0tXZWJWaWV3PihtX3VpRGVsZWdhdGUubV93ZWJWaWV3KSwgdG9wTGV2ZWxPcmlnaW4g
PSBXVEZNb3ZlKHRvcExldmVsT3JpZ2luKV0oQk9PTCBhdXRob3JpemVkKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKCFhdXRob3JpemVkKSB7CiAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZFJl
cXVlc3QtPmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNj
ZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXF1ZXN0VXNlck1l
ZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHByb3RlY3RlZFJlcXVlc3QsIChpZCA8
V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3ZWJW
aWV3LmdldCgpKTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlv
bkZvckZyYW1lKGZyYW1lLCB0b3BMZXZlbE9yaWdpbiwgcHJvdGVjdGVkUmVxdWVzdCwgKGlkIDxX
S1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKSwgKndlYlZp
ZXcuZ2V0KCkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIFtnZXRBVkNhcHR1cmVE
ZXZpY2VDbGFzcygpIHJlcXVlc3RBY2Nlc3NGb3JNZWRpYVR5cGU6Z2V0QVZNZWRpYVR5cGVWaWRl
bygpIGNvbXBsZXRpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CkBAIC05NTcsNyAr
OTcxLDcgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3gKICAgICAgICAgY2FzZSBBVkF1dGhvcml6
YXRpb25TdGF0dXNEZW5pZWQ6CiAgICAgICAgIGNhc2UgQVZBdXRob3JpemF0aW9uU3RhdHVzUmVz
dHJpY3RlZDoKICAgICAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQp
OwotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IGNhc2UgQVZBdXRob3JpemF0aW9uU3RhdHVzTm90RGV0ZXJtaW5lZDoKICAgICAgICAgICAgIGF1
dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRSZXF1ZXN0ID0gbWFr
ZVJlZihyZXF1ZXN0KSwgcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb25dKEJPT0wgYXV0aG9yaXpl
ZCkgewogICAgICAgICAgICAgICAgIGlmICghYXV0aG9yaXplZCkgewpAQCAtOTczLDUzICs5ODcs
NjEgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3gKICAgICB9IGVsc2UKICAgICAgICAgcmVxdWVz
dENhbWVyYUF1dGhvcml6YXRpb24oKTsKICNlbHNlCi0gICAgcmVxdWVzdFVzZXJNZWRpYUF1dGhv
cml6YXRpb25Gb3JEZXZpY2VzKGZyYW1lLCByZXF1ZXN0LCAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZh
dGU+KW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpLCAqbV91aURlbGVnYXRlLm1fd2ViVmll
dyk7CisgICAgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JGcmFtZShmcmFtZSwgdG9w
TGV2ZWxPcmlnaW4sIHJlcXVlc3QsIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVn
YXRlLm1fZGVsZWdhdGUuZ2V0KCksICptX3VpRGVsZWdhdGUubV93ZWJWaWV3KTsKICNlbmRpZgog
I2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVu
dDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwg
V2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdp
biwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Np
b25DaGVja1Byb3h5JiByZXF1ZXN0KQordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQ
cm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpT
ZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5JiByZXF1ZXN0KQogewogICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxl
Z2F0ZS5nZXQoKTsKLSAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTE1haW5GcmFtZVVS
TEZyYW1lSWRlbnRpZmllckRlY2lzaW9uSGFuZGxlcikgeworICAgIGlmICghZGVsZWdhdGUgfHwg
IW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3SXNNZWRpYUNhcHR1cmVBdXRo
b3JpemVkRm9yRnJhbWVEZWNpc2lvbkhhbmRsZXIpIHsKICAgICAgICAgcmVxdWVzdC5zZXRVc2Vy
TWVkaWFBY2Nlc3NJbmZvKGZhbHNlKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBXS1dlYlZpZXcgKndlYlZpZXcgPSBtX3VpRGVsZWdhdGUubV93
ZWJWaWV3OwotICAgIGNvbnN0IFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2Uo
KS0+bWFpbkZyYW1lKCk7Ci0gICAgVVJMIHJlcXVlc3RGcmFtZVVSTChVUkwoKSwgZnJhbWUudXJs
KCkpOwotICAgIFVSTCBtYWluRnJhbWVVUkwoVVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOworICAg
IGNvbnN0IGF1dG8qIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCk7CisKKyAg
ICBpZiAoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6aW5j
bHVkZVNlbnNpdGl2ZU1lZGlhRGV2aWNlRGV0YWlsczopXSkgeworICAgICAgICBhdXRvIGNoZWNr
ZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCks
IEBzZWxlY3Rvcihfd2ViVmlldzppbmNsdWRlU2Vuc2l0aXZlTWVkaWFEZXZpY2VEZXRhaWxzOikp
OworICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbcHJvdGVjdGVk
UmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXShC
T09MIGluY2x1ZGVTZW5zaXRpdmVEZXRhaWxzKSB7CisgICAgICAgICAgICBpZiAoY2hlY2tlci0+
Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisKKyAg
ICAgICAgICAgIHByb3RlY3RlZFJlcXVlc3QtPnNldFVzZXJNZWRpYUFjY2Vzc0luZm8oaW5jbHVk
ZVNlbnNpdGl2ZURldGFpbHMpOworICAgICAgICB9KTsKKworICAgICAgICBbKGlkIDxXS1VJRGVs
ZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGlu
Y2x1ZGVTZW5zaXRpdmVNZWRpYURldmljZURldGFpbHM6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25I
YW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKF93ZWJW
aWV3OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDptYWluRnJhbWVVUkw6ZnJhbWVJZGVu
dGlmaWVyOmRlY2lzaW9uSGFuZGxlcjopKTsKKyAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1h
a2VCbG9ja1B0cihbcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCksIGNoZWNrZXIg
PSBXVEZNb3ZlKGNoZWNrZXIpXShOU1N0cmluZyosIEJPT0wgYXV0aG9yaXplZCkgeworICAgICAg
ICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigp
OwogCi0gICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFJl
cXVlc3QgPSBtYWtlUmVmKHJlcXVlc3QpXShOU1N0cmluZyosIEJPT0wgYXV0aG9yaXplZCkgewog
ICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0LT5zZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKGF1dGhvcml6
ZWQpOwogICAgIH0pOwogCi0gICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUg
X3dlYlZpZXc6d2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVzdEZy
YW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOmZyYW1lLmZy
YW1lSUQoKSBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKKyAgICBVUkwg
cmVxdWVzdEZyYW1lVVJMIHsgVVJMKCksIGZyYW1lLnVybCgpIH07CisgICAgVVJMIG1haW5GcmFt
ZVVSTCB7IFVSTCgpLCBtYWluRnJhbWUtPnVybCgpIH07CiAKLSAgICByZXR1cm4gdHJ1ZTsKKyAg
ICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdh
dGUubV93ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0RnJhbWVV
UkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUuZnJhbWVJ
RCgpIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwogfQogCiB2b2lkIFVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgV0tXZWJWaWV3ICp3
ZWJWaWV3ID0gbV91aURlbGVnYXRlLm1fd2ViVmlldzsKKworICAgIFt3ZWJWaWV3IGRpZENoYW5n
ZVZhbHVlRm9yS2V5OkAibWVkaWFDYXB0dXJlU3RhdGUiXTsKKwogICAgIGF1dG8gZGVsZWdhdGUg
PSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKICAgICBpZiAoIWRlbGVnYXRlIHx8ICFt
X3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld01lZGlhQ2FwdHVyZVN0YXRlRGlk
Q2hhbmdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZSBtZWRp
YUNhcHR1cmVTdGF0ZSA9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZTsKLSAgICBpZiAoc3RhdGUg
JiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCi0g
ICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWlj
cm9waG9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3Rp
dmVWaWRlb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01l
ZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJhOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBtZWRpYUNh
cHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkTWljcm9waG9uZTsKLSAgICBp
ZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURl
dmljZSkKLSAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVN
dXRlZENhbWVyYTsKLQotICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93
ZWJWaWV3OndlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6bWVkaWFDYXB0dXJlU3Rh
dGVdOworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Ondl
YlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6dG9XS01lZGlhQ2FwdHVyZVN0YXRlKHN0
YXRlKV07CiB9CiAKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlv
bkNhY2hlT3JpZ2luUXVvdGEoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4mIHNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRv
dGFsQnl0ZXNOZWVkZWQsIEZ1bmN0aW9uPHZvaWQgKHVuc2lnbmVkIGxvbmcgbG9uZyk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaAppbmRleCBkOTFmMDRmZmRhYjhkMTQyNDU0ZDUw
NjNmZTE3ZjBlYmZhODMzNGViLi42YTA4OTUwNmNlYTM4OGQxZDRjM2Q2ZGVmZGE1ZmUwZTBhZWU1
N2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25DaGVja1Byb3h5LmgKQEAgLTQ2LDYgKzQ2LDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eShmcmFtZUlE
LCBXVEZNb3ZlKGhhbmRsZXIpLCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RG
TW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSkpOwogICAgIH0KIAorICAgIHZvaWQgZGVueSgp
IHsgc2V0VXNlck1lZGlhQWNjZXNzSW5mbyhmYWxzZSk7IH0KICAgICB2b2lkIHNldFVzZXJNZWRp
YUFjY2Vzc0luZm8oYm9vbCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCA3ZjE3YjJkM2Q1N2I4ZjhlNWM1NmEzNjY2ZmYy
YjdiYjllZDZlODU2Li43OGNkMGM2OTEwNjgxODFiYWE5YWQ2ZDBiZTNmMGIxMGZjNDRiNjgyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0zNzgsOCArMzc4LDE2IEBA
IHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUoCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
IAotICAgICAgICBpZiAoIW1fcGFnZS51aUNsaWVudCgpLmRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0KG1fcGFnZSwgKm1fcGFnZS5wcm9jZXNzKCkud2ViRnJhbWUoZnJh
bWVJRCksIFdURk1vdmUodXNlck1lZGlhT3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbE9yaWdpbiks
IHBlbmRpbmdSZXF1ZXN0LmdldCgpKSkKLSAgICAgICAgICAgIHVzZXJNZWRpYUFjY2Vzc1dhc0Rl
bmllZCh1c2VyTWVkaWFJRCwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1l
ZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7CisgICAgICAgIC8vIElm
IHBhZ2UgbmF2aWdhdGVkLCB0aGVyZSBpcyBubyBuZWVkIHRvIGNhbGwgdGhlIHBhZ2UgY2xpZW50
IGZvciBhdXRob3JpemF0aW9uLgorICAgICAgICBhdXRvKiB3ZWJGcmFtZSA9IG1fcGFnZS5wcm9j
ZXNzKCkud2ViRnJhbWUoZnJhbWVJRCk7CisKKyAgICAgICAgaWYgKCF3ZWJGcmFtZSB8fCAhU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcobV9wYWdlLnBhZ2VMb2FkU3RhdGUoKS5hY3Rp
dmVVUkwoKSktPmlzU2FtZVNjaGVtZUhvc3RQb3J0KHRvcExldmVsT3JpZ2luLT5zZWN1cml0eU9y
aWdpbigpKSkgeworICAgICAgICAgICAgZGVueVJlcXVlc3QodXNlck1lZGlhSUQsIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9D
b25zdHJhaW50cywgZW1wdHlTdHJpbmcoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIHdlYkZyYW1lLCB1c2VyTWVkaWFPcmlnaW4g
YW5kIHRvcExldmVsT3JpZ2luIGZyb20gdGhpcyB1aUNsaWVudCBBUEkgY2FsbC4KKyAgICAgICAg
bV9wYWdlLnVpQ2xpZW50KCkuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QobV9wYWdlLCAqd2ViRnJhbWUsIFdURk1vdmUodXNlck1lZGlhT3JpZ2luKSwgV1RGTW92ZSh0
b3BMZXZlbE9yaWdpbiksIHBlbmRpbmdSZXF1ZXN0LmdldCgpKTsKICAgICB9OwogCiAgICAgYXV0
byByZXF1ZXN0SUQgPSBnZW5lcmF0ZVJlcXVlc3RJRCgpOwpAQCAtNDEyLDE1ICs0MjAsMTkgQEAg
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSgKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogdm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Z2V0VXNlck1lZGlhUGVybWlz
c2lvbkluZm8odWludDY0X3QgcmVxdWVzdElELCB1aW50NjRfdCBmcmFtZUlELCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uQ2hlY2tQcm94eTo6Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyLCBSZWY8U2Vj
dXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdp
bj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQogeworICAgIGF1dG8qIHdlYkZyYW1lID0gbV9w
YWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBpZiAoIXdlYkZyYW1lIHx8ICFT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhtX3BhZ2UucGFnZUxvYWRTdGF0ZSgpLmFj
dGl2ZVVSTCgpKS0+aXNTYW1lU2NoZW1lSG9zdFBvcnQodG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5n
ZXQoKSkpIHsKKyAgICAgICAgaGFuZGxlcihmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKICAgICBhdXRvIHVzZXJNZWRpYU9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0
ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbi5nZXQoKSk7CiAgICAgYXV0byB0b3BMZXZlbE9yaWdp
biA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdl
dCgpKTsKICAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6
Y3JlYXRlKGZyYW1lSUQsIFdURk1vdmUoaGFuZGxlciksIFdURk1vdmUodXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pKTsKIAogICAgIG1fcGVu
ZGluZ0RldmljZVJlcXVlc3RzLmFkZChyZXF1ZXN0SUQsIHJlcXVlc3QuY29weVJlZigpKTsKLSAg
ICBpZiAoIW1fcGFnZS51aUNsaWVudCgpLmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdp
bihtX3BhZ2UsICptX3BhZ2UucHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQpLCB1c2VyTWVkaWFP
cmlnaW4uZ2V0KCksIHRvcExldmVsT3JpZ2luLmdldCgpLCByZXF1ZXN0LmdldCgpKSkgewotICAg
ICAgICBtX3BlbmRpbmdEZXZpY2VSZXF1ZXN0cy50YWtlKHJlcXVlc3RJRCk7Ci0gICAgICAgIGhh
bmRsZXIoZmFsc2UpOwotICAgIH0KKyAgICAvLyBGSVhNRTogUmVtb3ZlIHdlYkZyYW1lLCB1c2Vy
TWVkaWFPcmlnaW4gYW5kIHRvcExldmVsT3JpZ2luIGZyb20gdGhpcyB1aUNsaWVudCBBUEkgY2Fs
bC4KKyAgICBtX3BhZ2UudWlDbGllbnQoKS5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmln
aW4obV9wYWdlLCAqd2ViRnJhbWUsIHVzZXJNZWRpYU9yaWdpbi5nZXQoKSwgdG9wTGV2ZWxPcmln
aW4uZ2V0KCksIHJlcXVlc3QuZ2V0KCkpOwogfQogCiBib29sIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwg
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmgKaW5kZXggNTk4MGRjNzA5YTAwMjg1ZDBhYThlNzM1Y2QzMDgxOTdjOTExOGJkYi4uYWM4
MDVlNzg4YmUyMzE3ZTBhN2FhZWI3MTg5MDljZjQ1YmNhODkwOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
aApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhbGxvdygpOwogCiAgICAgZW51
bSBjbGFzcyBVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24geyBOb0NvbnN0cmFpbnRzLCBVc2Vy
TWVkaWFEaXNhYmxlZCwgTm9DYXB0dXJlRGV2aWNlcywgSW52YWxpZENvbnN0cmFpbnQsIEhhcmR3
YXJlRXJyb3IsIFBlcm1pc3Npb25EZW5pZWQsIE90aGVyRmFpbHVyZSB9OwotICAgIHZvaWQgZGVu
eShVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24pOworICAgIHZvaWQgZGVueShVc2VyTWVkaWFB
Y2Nlc3NEZW5pYWxSZWFzb24gPSBVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRp
YURpc2FibGVkKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzZjA1NzFkNTZkZDQxMmMy
ZDUyMDZlMzJjZjRiYTY0ODM5M2EyNzNkLi45NzE0MWU4MzdjNTJiY2RlMGQ1NDI5MzcxMzE5Zjk4
Yjg3MWM1M2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTI5NzcsNiArMjk3Nyw4IEBACiAJCTQxMDQ4MkNCMURERDJGQjUwMEYwMDZE
MCAvKiBSVENOZXR3b3JrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJUQ05ldHdvcmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTA0ODJDQzFE
REQyRkI1MDBGMDA2RDAgLyogUlRDTmV0d29yay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSVENOZXR3b3JrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTE0
MzYzMjBGNjc3QjEwMDI2RjkxMiAvKiBJbmplY3RVc2VyU2NyaXB0SW1tZWRpYXRlbHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMTI4NkVGMjFDOEE5MEMwMDNBODU1
MCAvKiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxMTI4NkYwMjFDOEE5MEQwMDNBODU1MCAvKiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYUNhcHR1cmVVdGls
aXRpZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTJCNTQ3MUY5RkQzQUIw
MEU2Nzg3NSAvKiBOZXR3b3JrUlRDUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTmV0d29ya1JUQ1Jlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDExMkI1NDcxRjlGRDNBQjAwRTY3OTg2IC8qIE5ldHdvcmtSVENSZXNvbHZl
ckNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtS
VENSZXNvbHZlckNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMkI1
NDgxRjlGRDNBQzAwRTY3ODc1IC8qIE5ldHdvcmtSVENSZXNvbHZlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrUlRDUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTQ4NDIsNiArNDg0NCw3IEBACiAJCQkJMUE1M0MyQTUxQTMyNTY5RjAw
NEU4QzcwIC8qIFdlYnNpdGVEYXRhU3RvcmUuaCAqLywKIAkJCQk1QzQ2QzBBQzIxQjcxOThCMDBC
QzU5OTEgLyogV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwICovLAogCQkJCTVDNDZD
MEFEMjFCNzE5OEMwMEJDNTk5MSAvKiBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oICov
LAorCQkJCTQxMThEQzFCMjFFNkQxMUEwMERFMDRDNyAvKiBXZWJzaXRlRGF0YVN0b3JlUXVvdGFN
YW5hZ2VyLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYnNpdGVEYXRhOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTUyODEsNiArNTI4NCw4IEBACiAJCQkJNTFDMEM5NzMxRERENzRG
MDAwMzJDQUQzIC8qIEljb25Mb2FkaW5nRGVsZWdhdGUubW0gKi8sCiAJCQkJN0E4MjFGNEIxRTJG
NjY0ODAwNjA0NTc3IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5oICovLAog
CQkJCTdBODIxRjREMUUyRjY3OUUwMDYwNDU3NyAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFn
ZXJDbGllbnQubW0gKi8sCisJCQkJNDExMjg2RUYyMUM4QTkwQzAwM0E4NTUwIC8qIE1lZGlhQ2Fw
dHVyZVV0aWxpdGllcy5oICovLAorCQkJCTQxMTI4NkYwMjFDOEE5MEQwMDNBODU1MCAvKiBNZWRp
YUNhcHR1cmVVdGlsaXRpZXMubW0gKi8sCiAJCQkJMUFCQzNERjQxODk5RTQzNzAwNEYwNjI2IC8q
IE5hdmlnYXRpb25TdGF0ZS5oICovLAogCQkJCTFBQkMzREYzMTg5OUU0MzcwMDRGMDYyNiAvKiBO
YXZpZ2F0aW9uU3RhdGUubW0gKi8sCiAJCQkJNUM2Q0U2RDMxRjU5RUEzNTAwMDdDNkNCIC8qIFBh
Z2VDbGllbnRJbXBsQ29jb2EuaCAqLywKQEAgLTk4MjUsNiArOTgzMCw3IEBACiAJCQkJMURCMDE5
NDMyMTFDRjAwMjAwOUZCM0U4IC8qIFdLU2hhcmVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTEzRTQ2MkQxQUQ4Mzc1NjAwMTYyMzRBIC8qIFdLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGNTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25h
cHNob3RDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTE4REMxRjIxRTdCRjVE
MDBERTA0QzcgLyogV0tTdG9yYWdlUXVvdGFEZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDNDA3NjA2MTI0RkYwMjcwMDY4RjIwQSAvKiBXS1N0cmluZy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM0MDc2MUExMjRGRjAzNzAwNjhGMjBBIC8qIFdLU3RyaW5nQ0YuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDOTA5OTgwMTI1NkE5ODIwMDA4Mzc1NiAvKiBXS1N0cmluZ1ByaXZhdGUu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDgyM2IwOGNlNGU0ZjczMWUzNzJlZmVkZGZhOTg0MGY0MGQwYTA2MDMuLmM5
NGFmOGI4YjJjNjRiOGU0YTYwNDFiMTA2ZjEwNjczMjI0ODI0MGQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOS0w
MS0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEg
bmV3IFNQSSBmb3IgY29udHJvbGxpbmcgZ2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI3OTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9tYWMvV0syQnJvd3Nlcldp
bmRvd0NvbnRyb2xsZXIubToKKyAgICAgICAgKC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIg
X3dlYlZpZXc6cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRl
Y2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIg
X3dlYlZpZXc6aXNNZWRpYUNhcHR1cmVBdXRob3JpemVkRm9yRnJhbWU6ZGVjaXNpb25IYW5kbGVy
Ol0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5h
dmlnYXRpb24ubW06CisgICAgICAgICgtW05hdmlnYXRpb25XaGlsZUdldFVzZXJNZWRpYVByb21w
dERpc3BsYXllZFVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6
YXRpb25Gb3JGcmFtZTpkZXZpY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbToKKyAgICAgICAg
KC1bR2V0VXNlck1lZGlhUmVwcm9tcHRVSURlbGVnYXRlIF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNh
cHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpkZWNpc2lvbkhhbmRsZXI6XSk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFj
aGVkLm1tOgorICAgICAgICAoLVtNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWRVSURlbGVnYXRlIF93
ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uRm9yRnJhbWU6ZGV2aWNlczpk
ZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbToKKyAgICAgICAgKC1bVXNlck1lZGlhVUlEZWxlZ2F0
ZSBfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZyYW1lOmRldmlj
ZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtVc2VyTWVkaWFVSURlbGVnYXRlIF93
ZWJWaWV3OmlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1lOmRlY2lzaW9uSGFuZGxlcjpd
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNp
bXVsYXRlRmFpbGVkU2FuZGJveC5tbToKKyAgICAgICAgKC1bU2ltdWxhdGVGYWlsZWRTYW5kYm94
VUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbkZvckZy
YW1lOmRldmljZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtTaW11bGF0ZUZhaWxl
ZFNhbmRib3hVSURlbGVnYXRlIF93ZWJWaWV3OmlzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZy
YW1lOmRlY2lzaW9uSGFuZGxlcjpdKToKKwogMjAxOS0wMS0xNiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24oUFNPTikgVmlldyBiZWNvbWVzIGJs
YW5rIGFmdGVyIGNsaWNrIGEgY3Jvc3Mtc2l0ZSBkb3dubG9hZCBsaW5rCmRpZmYgLS1naXQgYS9U
b29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubSBiL1Rvb2xz
L01pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tCmluZGV4IDNkM2I3
ZjNmZGJlMzM3MWMyNTk1OGU1ZWE3MTgyMDI3YjYwNjk1YWMuLmU5ZDQxNTJlZjY0YzQ3OGI1NmFh
OTgzZmRhYTE3NmY4M2NkZjlmNDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9X
SzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9X
SzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tCkBAIC03OTEsMTQgKzc5MSwxNCBAQCAtICh2b2lk
KWZpbmRCYXJWaWV3RGlkQ2hhbmdlSGVpZ2h0CiB7CiB9CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2Vz
OihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJM
OihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0
aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uOiAoX1dLQ2FwdHVyZURldmlj
ZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVj
aXNpb25IYW5kbGVyCiB7CiAgICAgZGVjaXNpb25IYW5kbGVyKHRydWUpOwogfQogCi0tICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZv
clVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFt
ZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoo
dm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVy
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGluY2x1ZGVTZW5zaXRpdmVN
ZWRpYURldmljZURldGFpbHM6KHZvaWQgKF4pKEJPT0wgaW5jbHVkZVNlbnNpdGl2ZURldGFpbHMp
KWRlY2lzaW9uSGFuZGxlcgogewotICAgIGRlY2lzaW9uSGFuZGxlcihAIiIsIGZhbHNlKTsKKyAg
ICBkZWNpc2lvbkhhbmRsZXIoZmFsc2UpOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbQpp
bmRleCA0MjFlZWE0MjkyY2JhYjE0ZTk0NmY3OThhMzVkZWI3M2Y4MmIzNTA4Li5jZTNhNDM4ZWE3
NjY3YzZkZTVhNWY1ZTAwOTNhMTA5ODI1NjQ3YTZiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0KQEAg
LTQyLDEyICs0MiwxMiBAQCBzdGF0aWMgYm9vbCBva1RvUHJvY2VlZCA9IGZhbHNlOwogc3RhdGlj
IGJvb2wgc2hvdWxkUmVsZWFzZUluRW51bWVyYXRlID0gZmFsc2U7CiAKIEBpbnRlcmZhY2UgTmF2
aWdhdGlvbldoaWxlR2V0VXNlck1lZGlhUHJvbXB0RGlzcGxheWVkVUlEZWxlZ2F0ZSA6IE5TT2Jq
ZWN0PFdLVUlEZWxlZ2F0ZT4KLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNl
cylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFt
ZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25I
YW5kbGVyOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVk
aWFDYXB0dXJlQXV0aG9yaXphdGlvbjogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDoo
TlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50
aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAo
XikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOwogQGVu
ZAogCiBAaW1wbGVtZW50YXRpb24gTmF2aWdhdGlvbldoaWxlR2V0VXNlck1lZGlhUHJvbXB0RGlz
cGxheWVkVUlEZWxlZ2F0ZQotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBy
ZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2Vz
KWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1l
VVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhh
bmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlh
Q2FwdHVyZUF1dGhvcml6YXRpb246IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAImFib3V0OmJsYW5rIl1dXTsKICAgICBbd2ViVmlldyByZWxlYXNlXTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9t
cHQubW0KaW5kZXggYzQzMmZjYWU1ZThmYzU5NzkxMjMzZTUwYmRiYjc1MzJjYmFjNGY3ZS4uZmJj
M2I1OTZkYjYxMDk3OTlhYjUwYTU3MjU1MjQwYzA3ZTBlMjAyNiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0K
QEAgLTQxLDEyICs0MSwxMiBAQAogc3RhdGljIGJvb2wgd2FzUHJvbXB0ZWQgPSBmYWxzZTsKIAog
QGludGVyZmFjZSBHZXRVc2VyTWVkaWFSZXByb21wdFVJRGVsZWdhdGUgOiBOU09iamVjdDxXS1VJ
RGVsZWdhdGU+Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RV
c2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNl
cyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVj
aXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsK
Ky0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVy
ZUF1dGhvcml6YXRpb246IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxl
cjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyOwogLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICop
dXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihO
U1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3Ry
aW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsKIEBlbmQKIAogQGlt
cGxlbWVudGF0aW9uIEdldFVzZXJNZWRpYVJlcHJvbXB0VUlEZWxlZ2F0ZQotLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZv
ckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWlu
RnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXiko
Qk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb246IChfV0tDYXB0
dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNp
b25IYW5kbGVyCiB7CiAgICAgd2FzUHJvbXB0ZWQgPSB0cnVlOwogICAgIGRlY2lzaW9uSGFuZGxl
cihZRVMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVk
aWFTdHJlYW1UcmFja0RldGFjaGVkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCmluZGV4IDFlY2NkMGE2ZWUzMzE2NDI2MzJk
NGQ1YzZkZjBiYmNkMDJhZTJmNDMuLmQyY2JkYTgwNmM5YWZhYzc2NzYwYTg1YjA1NDQ4MDMxMjdj
Y2Q1NjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlh
U3RyZWFtVHJhY2tEZXRhY2hlZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KQEAgLTQwLDEzICs0MCwxMyBAQAogc3Rh
dGljIGJvb2wgaGFzUmVjaWV2ZWRDb3JyZWN0Q2FwdHVyZVN0YXRlID0gZmFsc2U7CiAKIEBpbnRl
cmZhY2UgTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0ZSA6IE5TT2JqZWN0PFdLVUlE
ZWxlZ2F0ZT4KLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVz
ZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2Vz
IHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNp
c2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOwor
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJl
QXV0aG9yaXphdGlvbjogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVy
Oih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1
cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5T
VUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJp
bmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOwogLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dL
TWVkaWFDYXB0dXJlU3RhdGUpc3RhdGU7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBNZWRpYVN0
cmVhbVRyYWNrRGV0YWNoZWRVSURlbGVnYXRlCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2Fw
dHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwg
KiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQp
KWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBy
ZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmlj
ZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAg
ICBkZWNpc2lvbkhhbmRsZXIoWUVTKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1tCmluZGV4IDg4MzMz
YzNmYmI2ODBlMTY1ZTdmMjYxYTYyNmU1YjFkMTMxYjNiYWIuLjY1ZDI4ZjI4ODY4ODQ4ZjU1ZjNj
MDA3MjFkMTkwOWUwMDA1NDA5NjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbQpAQCAtMzksNyArMzks
NiBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAotc3RhdGljIGJvb2wgcmVmdXNlUmVxdWVzdCA9
IGZhbHNlOwogc3RhdGljIGJvb2wgd2FzUHJvbXB0ZWQgPSBmYWxzZTsKIAogc3RhdGljIGJvb2wg
cmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CkBAIC02MiwxNSArNjEsMTAgQEAgQGVuZAog
CiBAaW1wbGVtZW50YXRpb24gVXNlck1lZGlhVUlEZWxlZ2F0ZQogCi0tICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2
aWNlczooTlNVSW50ZWdlcilkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihO
U1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lz
aW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0
TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVj
aXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICB3YXNQ
cm9tcHRlZCA9IHRydWU7CiAKLSAgICBpZiAocmVmdXNlUmVxdWVzdCkgewotICAgICAgICBkZWNp
c2lvbkhhbmRsZXIoTk8pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgQk9PTCBuZWVk
c01pY3JvcGhvbmVBdXRob3JpemVkID0gZGV2aWNlcyAmIF9XS0NhcHR1cmVEZXZpY2VNaWNyb3Bo
b25lOwogICAgIEJPT0wgbmVlZHNDYW1lcmFBdXRob3JpemVkID0gZGV2aWNlcyAmIF9XS0NhcHR1
cmVEZXZpY2VDYW1lcmE7CiAgICAgaWYgKCFuZWVkc01pY3JvcGhvbmVBdXRob3JpemVkICYmICFu
ZWVkc0NhbWVyYUF1dGhvcml6ZWQpIHsKQEAgLTgxLDE0ICs3NSw5IEBAIC0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JE
ZXZpY2VzOihOCiAgICAgZGVjaXNpb25IYW5kbGVyKFlFUyk7CiB9CiAKLS0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihO
U1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRp
ZmllcjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkIChe
KShOU1N0cmluZyAqLCBCT09MKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgaW5jbHVkZVNlbnNpdGl2ZU1lZGlhRGV2aWNlRGV0YWlsczoodm9p
ZCAoXikoQk9PTCBpbmNsdWRlU2Vuc2l0aXZlRGV0YWlscykpZGVjaXNpb25IYW5kbGVyCiB7Ci0g
ICAgaWYgKHJlZnVzZVJlcXVlc3QpIHsKLSAgICAgICAgZGVjaXNpb25IYW5kbGVyKG5pbCwgTk8p
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZGVjaXNpb25IYW5kbGVyKEAiMHg5ODc2
NTQzMjEiLCBOTyk7CisgICAgZGVjaXNpb25IYW5kbGVyKE5PKTsKIH0KIEBlbmQKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11
bGF0ZUZhaWxlZFNhbmRib3gubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbQppbmRleCBjNzNjOTg5OTRlNDE3
MzM0OTAyNTUyYTg3OGRlZjVkMTcyMjViZGY0Li4yN2RjZTgzZTQxMTAwMTRhOWVmZmJmMDhiOTAx
ZmI5MGQyNjZiNDQ0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJv
eC5tbQpAQCAtMzksNyArMzksNiBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAotc3RhdGljIGJv
b2wgcmVmdXNlUmVxdWVzdCA9IGZhbHNlOwogc3RhdGljIGJvb2wgd2FzUHJvbXB0ZWQgPSBmYWxz
ZTsKIAogc3RhdGljIGJvb2wgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CkBAIC02Miwx
NSArNjEsMTAgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gU2ltdWxhdGVGYWlsZWRTYW5kYm94
VUlEZWxlZ2F0ZQogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVl
c3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooTlNVSW50ZWdlcilkZXZpY2VzIHVy
bDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lv
bkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjog
KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09M
KSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICB3YXNQcm9tcHRlZCA9IHRydWU7CiAKLSAgICBpZiAo
cmVmdXNlUmVxdWVzdCkgewotICAgICAgICBkZWNpc2lvbkhhbmRsZXIoTk8pOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCiAgICAgQk9PTCBuZWVkc01pY3JvcGhvbmVBdXRob3JpemVkID0gZGV2
aWNlcyAmIF9XS0NhcHR1cmVEZXZpY2VNaWNyb3Bob25lOwogICAgIEJPT0wgbmVlZHNDYW1lcmFB
dXRob3JpemVkID0gZGV2aWNlcyAmIF9XS0NhcHR1cmVEZXZpY2VDYW1lcmE7CiAgICAgaWYgKCFu
ZWVkc01pY3JvcGhvbmVBdXRob3JpemVkICYmICFuZWVkc0NhbWVyYUF1dGhvcml6ZWQpIHsKQEAg
LTgxLDE0ICs3NSw5IEBAIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVx
dWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihOCiAgICAgZGVjaXNpb25IYW5k
bGVyKFlFUyk7CiB9CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5T
VVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlkZW50
aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqLCBCT09MKSlkZWNpc2lv
bkhhbmRsZXIKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaW5jbHVkZVNl
bnNpdGl2ZU1lZGlhRGV2aWNlRGV0YWlsczoodm9pZCAoXikoQk9PTCBpbmNsdWRlU2Vuc2l0aXZl
RGV0YWlscykpZGVjaXNpb25IYW5kbGVyCiB7Ci0gICAgaWYgKHJlZnVzZVJlcXVlc3QpIHsKLSAg
ICAgICAgZGVjaXNpb25IYW5kbGVyKG5pbCwgTk8pOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgZGVjaXNpb25IYW5kbGVyKEAiMHg5ODc2NTQzMjEiLCBOTyk7CisgICAgZGVjaXNpb25I
YW5kbGVyKE5PKTsKIH0KIEBlbmQKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>