<?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>64595</bug_id>
          
          <creation_ts>2011-07-15 06:08:08 -0700</creation_ts>
          <short_desc>[Qt] Make DeviceMotion and DeviceOrientation work with WebKit2</short_desc>
          <delta_ts>2012-05-02 07:18:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (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>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Rohde Christiansen">kenneth</reporter>
          <assigned_to name="Lars Knudsen">larsgk</assigned_to>
          <cc>ahf</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>eric</cc>
    
    <cc>hausmann</cc>
    
    <cc>larsgk</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>luiz</cc>
    
    <cc>menard</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yael</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>437684</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-07-15 06:08:08 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437700</commentid>
    <comment_count>1</comment_count>
      <attachid>100967</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-07-15 06:39:47 -0700</bug_when>
    <thetext>Created attachment 100967
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437702</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-15 06:42:40 -0700</bug_when>
    <thetext>Attachment 100967 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit2/WebProcess/WebPage/WebPage.cpp:97:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/WebProcess/WebPage/WebPage.cpp:98:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/WebProcess/WebPage/WebPage.cpp:160:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit/qt/WebCoreSupport/DeviceOrientationClientQt.h:27:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 4 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437706</commentid>
    <comment_count>3</comment_count>
      <attachid>100967</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-07-15 06:46:21 -0700</bug_when>
    <thetext>Comment on attachment 100967
Patch

something went wrong with my tools :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437707</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-07-15 06:49:09 -0700</bug_when>
    <thetext>This needs to be enabled when compiling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437708</commentid>
    <comment_count>5</comment_count>
      <attachid>100969</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-07-15 06:49:43 -0700</bug_when>
    <thetext>Created attachment 100969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437711</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-15 06:53:04 -0700</bug_when>
    <thetext>Attachment 100969 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit2/WebProcess/WebPage/WebPage.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437713</commentid>
    <comment_count>7</comment_count>
      <attachid>100969</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-15 06:56:11 -0700</bug_when>
    <thetext>Comment on attachment 100969
Patch

Attachment 100969 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9096243</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437717</commentid>
    <comment_count>8</comment_count>
      <attachid>100972</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-07-15 07:02:07 -0700</bug_when>
    <thetext>Created attachment 100972
Patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437720</commentid>
    <comment_count>9</comment_count>
      <attachid>100972</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-07-15 07:16:22 -0700</bug_when>
    <thetext>Comment on attachment 100972
Patch 3

Attachment 100972 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9093247</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437727</commentid>
    <comment_count>10</comment_count>
      <attachid>100975</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-07-15 07:50:09 -0700</bug_when>
    <thetext>Created attachment 100975
Patch 4

Another try...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437735</commentid>
    <comment_count>11</comment_count>
      <attachid>100975</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-07-15 07:59:08 -0700</bug_when>
    <thetext>Comment on attachment 100975
Patch 4

Attachment 100975 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9095245</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437784</commentid>
    <comment_count>12</comment_count>
      <attachid>100990</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-07-15 09:15:47 -0700</bug_when>
    <thetext>Created attachment 100990
Patch

Trying to include PassOwnPtr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437788</commentid>
    <comment_count>13</comment_count>
      <attachid>100990</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-07-15 09:24:11 -0700</bug_when>
    <thetext>Comment on attachment 100990
Patch

Attachment 100990 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9093288</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437802</commentid>
    <comment_count>14</comment_count>
      <attachid>100996</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-07-15 09:50:01 -0700</bug_when>
    <thetext>Created attachment 100996
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437810</commentid>
    <comment_count>15</comment_count>
      <attachid>100996</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-07-15 09:58:17 -0700</bug_when>
    <thetext>Comment on attachment 100996
Patch

Attachment 100996 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9094333</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437811</commentid>
    <comment_count>16</comment_count>
      <attachid>100999</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-07-15 10:01:12 -0700</bug_when>
    <thetext>Created attachment 100999
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437813</commentid>
    <comment_count>17</comment_count>
      <attachid>100999</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-07-15 10:11:11 -0700</bug_when>
    <thetext>Comment on attachment 100999
Patch

Attachment 100999 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9095285</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437823</commentid>
    <comment_count>18</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-07-15 10:26:36 -0700</bug_when>
    <thetext>I&apos;m guess this is because of a non-clean build... it must be using the old file.

Ossy can you verify this somehow?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438408</commentid>
    <comment_count>19</comment_count>
      <attachid>100999</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-07-18 05:17:31 -0700</bug_when>
    <thetext>Comment on attachment 100999
Patch

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

Quick review.

I don&apos;t understand why you make this a Qt specific subclass of DeviceMotionClient and DeviceOrientationClient while all they do is forward call to a provider.
It looks like instead DeviceMotionClient should not be abstract, and DeviceMotionProvider should be a typedef per platform. Same for orientation.

I am not familiar with this code, is there a reason for all those indirections?

&gt; Source/WebCore/platform/qt/DeviceMotionProviderQt.cpp:2
&gt; + * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)

2011 :)

&gt; Source/WebCore/platform/qt/DeviceMotionProviderQt.h:2
&gt; + * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)

2011

&gt; Source/WebKit/qt/WebCoreSupport/DeviceOrientationClientQt.cpp:24
&gt; +#if ENABLE(DEVICE_ORIENTATION)

You should not put this check, the file is simply not compiled if DEVICE_ORIENTATION is not set.

&gt; Source/WebKit/qt/WebCoreSupport/DeviceOrientationClientQt.h:23
&gt; +#if ENABLE(DEVICE_ORIENTATION)

The file is not added if ENABLE_DEVICE_ORIENTATION is not defined. I think is it more explicit to have the check on the include side than on the header side.

&gt; Source/WebKit/qt/WebCoreSupport/DeviceOrientationClientQt.h:30
&gt; +#include &lt;wtf/PassOwnPtr.h&gt;

I am unsure why you need PassOwnPtr in this header, looks like it should be only needed in the implementation for intializing the OwnPtr(?).

&gt; Source/WebKit/qt/WebCoreSupport/DeviceOrientationClientQt.h:36
&gt; +    DeviceOrientationClientQt() { }

Maybe just remove the constructor and let the compiler declare the empty constructor for you? :)

&gt; Source/WebKit/qt/WebCoreSupport/DeviceOrientationClientQt.h:37
&gt;      virtual ~DeviceOrientationClientQt();

Look like this one is not needed anymore after this patch.

&gt; Source/WebKit/qt/WebCoreSupport/DeviceOrientationClientQt.h:47
&gt; +    virtual void deviceOrientationControllerDestroyed();
&gt; +
&gt;      virtual void startUpdating();
&gt;      virtual void stopUpdating();
&gt; +
&gt;      virtual DeviceOrientation* lastOrientation() const;
&gt; -    virtual void deviceOrientationControllerDestroyed();
&gt;  
&gt; -public Q_SLOTS:
&gt; -    void changeDeviceOrientation(DeviceOrientation*);
&gt; +    virtual void setController(DeviceOrientationController*);

I would put them in the same order as DeviceOrientationClient but it does not matter much...

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:127
&gt; +#include &quot;DeviceMotionClientQt.h&quot;
&gt; +#include &quot;DeviceOrientationClientQt.h&quot;

If you follow my comment about checking the feature in the hader, you need #if ENABLE(DEVICE_ORIENTATION) here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441604</commentid>
    <comment_count>20</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-07-25 04:52:26 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; I&apos;m guess this is because of a non-clean build... it must be using the old file.
&gt; 
&gt; Ossy can you verify this somehow?

No, it isn&apos;t a non-clean build problem.

Now there are two header files:
 - WebCore/platform/qt/DeviceOrientationProviderQt.h
 - WebKit/qt/WebCoreSupport/DeviceOrientationClientQt.h

And I guess that the cpp file includes the wrong one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441605</commentid>
    <comment_count>21</comment_count>
      <attachid>100999</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-07-25 04:52:52 -0700</bug_when>
    <thetext>Comment on attachment 100999
Patch

r- now, because it doesn&apos;t build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443255</commentid>
    <comment_count>22</comment_count>
      <attachid>102211</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2011-07-27 18:22:38 -0700</bug_when>
    <thetext>Created attachment 102211
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443430</commentid>
    <comment_count>23</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2011-07-28 05:18:55 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 100999 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=100999&amp;action=review
&gt; 
&gt; Quick review.
&gt; 
&gt; I don&apos;t understand why you make this a Qt specific subclass of DeviceMotionClient and DeviceOrientationClient while all they do is forward call to a provider.
&gt; It looks like instead DeviceMotionClient should not be abstract, and DeviceMotionProvider should be a typedef per platform. Same for orientation.
&gt; 
&gt; I am not familiar with this code, is there a reason for all those indirections?

I think that what we could do to avoid all those indirections is to have no provider.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444782</commentid>
    <comment_count>24</comment_count>
      <attachid>102211</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-08-01 11:21:37 -0700</bug_when>
    <thetext>Comment on attachment 102211
patch

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

&gt; Source/WebCore/platform/qt/DeviceOrientationProviderQt.cpp:2
&gt; + * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)

2011

&gt; Source/WebCore/platform/qt/DeviceOrientationProviderQt.h:2
&gt; + * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)

Still 2011</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447914</commentid>
    <comment_count>25</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-08-08 01:46:11 -0700</bug_when>
    <thetext>&gt; &gt; I am not familiar with this code, is there a reason for all those indirections?
&gt; 
&gt; I think that what we could do to avoid all those indirections is to have no provider.

There were possible a reason for this at some point, but not anymore. I wouldn&apos;t mind that being another patch though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447927</commentid>
    <comment_count>26</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-08-08 03:01:30 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; &gt; &gt; I am not familiar with this code, is there a reason for all those indirections?
&gt; &gt; 
&gt; &gt; I think that what we could do to avoid all those indirections is to have no provider.
&gt; 
&gt; There were possible a reason for this at some point, but not anymore. I wouldn&apos;t mind that being another patch though.

One of the reasons that there is a provider is that one is used by both DeviceMotion and DeviceOrientation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569044</commentid>
    <comment_count>27</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-01 16:29:38 -0800</bug_when>
    <thetext>This looks abandoned.  Should this be r-&apos;d?  Closed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569466</commentid>
    <comment_count>28</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-03-02 02:28:27 -0800</bug_when>
    <thetext>No, this will be done at some point. I can probably review the patch on monday.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607548</commentid>
    <comment_count>29</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-04-23 01:46:28 -0700</bug_when>
    <thetext>The patch is pretty old, maybe it needs to be rebased first?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609925</commentid>
    <comment_count>30</comment_count>
    <who name="Lars Knudsen">larsgk</who>
    <bug_when>2012-04-25 11:16:18 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; The patch is pretty old, maybe it needs to be rebased first?

I&apos;ll take a shot at it now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613349</commentid>
    <comment_count>31</comment_count>
      <attachid>139614</attachid>
    <who name="Lars Knudsen">larsgk</who>
    <bug_when>2012-05-01 05:43:12 -0700</bug_when>
    <thetext>Created attachment 139614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613350</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-01 05:45:40 -0700</bug_when>
    <thetext>Attachment 139614 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u...&quot; exit_code: 1
Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613352</commentid>
    <comment_count>33</comment_count>
      <attachid>139616</attachid>
    <who name="Lars Knudsen">larsgk</who>
    <bug_when>2012-05-01 05:47:45 -0700</bug_when>
    <thetext>Created attachment 139616
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613359</commentid>
    <comment_count>34</comment_count>
      <attachid>139616</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-05-01 06:00:47 -0700</bug_when>
    <thetext>Comment on attachment 139616
Patch

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

&gt; Source/WebCore/platform/qt/DeviceMotionClientQt.cpp:2
&gt; + * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)

If you change any of these files, please update copyright date

&gt; Source/WebCore/platform/qt/DeviceMotionProviderQt.cpp:76
&gt; +            false, 0 /* The interval is treated internally by Qt mobility */);

Nothing is called Qt Mobility in Qt5. QtSensors I believe</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613366</commentid>
    <comment_count>35</comment_count>
      <attachid>139616</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-01 06:22:48 -0700</bug_when>
    <thetext>Comment on attachment 139616
Patch

Attachment 139616 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12586608</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613367</commentid>
    <comment_count>36</comment_count>
      <attachid>139616</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-01 06:26:25 -0700</bug_when>
    <thetext>Comment on attachment 139616
Patch

Attachment 139616 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12584619</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613372</commentid>
    <comment_count>37</comment_count>
      <attachid>139622</attachid>
    <who name="Lars Knudsen">larsgk</who>
    <bug_when>2012-05-01 07:06:36 -0700</bug_when>
    <thetext>Created attachment 139622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613373</commentid>
    <comment_count>38</comment_count>
      <attachid>139622</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-01 07:15:29 -0700</bug_when>
    <thetext>Comment on attachment 139622
Patch

Attachment 139622 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12587557</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613384</commentid>
    <comment_count>39</comment_count>
      <attachid>139626</attachid>
    <who name="Lars Knudsen">larsgk</who>
    <bug_when>2012-05-01 07:44:35 -0700</bug_when>
    <thetext>Created attachment 139626
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613401</commentid>
    <comment_count>40</comment_count>
      <attachid>139626</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-01 08:04:42 -0700</bug_when>
    <thetext>Comment on attachment 139626
Patch

Attachment 139626 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12589559</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613734</commentid>
    <comment_count>41</comment_count>
      <attachid>139696</attachid>
    <who name="Lars Knudsen">larsgk</who>
    <bug_when>2012-05-01 15:56:33 -0700</bug_when>
    <thetext>Created attachment 139696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614078</commentid>
    <comment_count>42</comment_count>
      <attachid>139696</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-05-02 01:15:16 -0700</bug_when>
    <thetext>Comment on attachment 139696
Patch

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

&gt; Source/WebCore/Target.pri:3439
&gt; +    haveQt(5) {
&gt; +        QT += sensors
&gt; +    } else {
&gt; +        CONFIG *= mobility
&gt; +        MOBILITY *= sensors
&gt; +    }

I don&apos;t think this block is needed given that it&apos;s also in WebCore.pri.

&gt; Source/WebKit2/Target.pri:794
&gt; +contains(DEFINES, ENABLE_DEVICE_ORIENTATION=1) {
&gt; +    haveQt(5): QT += sensors
&gt; +}

Why is this needed? WebCore.pri has it and this Target.pri has WEBKIT += webcore, which should pull in WebCore.pri through Tools/qmake/mkspecs/modules/webcore.prf</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614092</commentid>
    <comment_count>43</comment_count>
      <attachid>139767</attachid>
    <who name="Lars Knudsen">larsgk</who>
    <bug_when>2012-05-02 01:42:53 -0700</bug_when>
    <thetext>Created attachment 139767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614093</commentid>
    <comment_count>44</comment_count>
    <who name="Lars Knudsen">larsgk</who>
    <bug_when>2012-05-02 01:43:46 -0700</bug_when>
    <thetext>(In reply to comment #42)
&gt; (From update of attachment 139696 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=139696&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Target.pri:3439
&gt; &gt; +    haveQt(5) {
&gt; &gt; +        QT += sensors
&gt; &gt; +    } else {
&gt; &gt; +        CONFIG *= mobility
&gt; &gt; +        MOBILITY *= sensors
&gt; &gt; +    }
&gt; 
&gt; I don&apos;t think this block is needed given that it&apos;s also in WebCore.pri.
&gt; 
&gt; &gt; Source/WebKit2/Target.pri:794
&gt; &gt; +contains(DEFINES, ENABLE_DEVICE_ORIENTATION=1) {
&gt; &gt; +    haveQt(5): QT += sensors
&gt; &gt; +}
&gt; 
&gt; Why is this needed? WebCore.pri has it and this Target.pri has WEBKIT += webcore, which should pull in WebCore.pri through Tools/qmake/mkspecs/modules/webcore.prf

True, done - thanks! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614104</commentid>
    <comment_count>45</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-05-02 02:00:18 -0700</bug_when>
    <thetext>[10:38] &lt;simon_&gt; laknudse, kenneth: the pattern in if (!m_provider &amp;&amp; controller) looks a bit dangerous to me :)
[10:38] &lt;simon_&gt; if !m_provider and !controller, then setController crashes
[10:39] * simon_ would remove the controller part of the if()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614162</commentid>
    <comment_count>46</comment_count>
      <attachid>139785</attachid>
    <who name="Lars Knudsen">larsgk</who>
    <bug_when>2012-05-02 04:00:45 -0700</bug_when>
    <thetext>Created attachment 139785
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614182</commentid>
    <comment_count>47</comment_count>
      <attachid>139785</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-02 04:50:50 -0700</bug_when>
    <thetext>Comment on attachment 139785
Patch

Clearing flags on attachment: 139785

Committed r115812: &lt;http://trac.webkit.org/changeset/115812&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614183</commentid>
    <comment_count>48</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-02 04:50:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614255</commentid>
    <comment_count>49</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-05-02 06:51:41 -0700</bug_when>
    <thetext>Reopen, because it broke the builds with Qt Mobility:
(Qt Windows, Qt MIPS, Qt SH4 bots)

In file included from ../../../Source/WebCore/platform/qt/DeviceMotionClientQt.h:27:0,
                 from ../../../Source/WebKit/qt/Api/qwebpage.cpp:48:
../../../Source/WebCore/platform/qt/DeviceMotionProviderQt.h:25:32: fatal error: QAccelerometerFilter: No such file or directory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614266</commentid>
    <comment_count>50</comment_count>
      <attachid>139807</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-05-02 07:06:44 -0700</bug_when>
    <thetext>Created attachment 139807
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614271</commentid>
    <comment_count>51</comment_count>
      <attachid>139807</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-05-02 07:18:05 -0700</bug_when>
    <thetext>Comment on attachment 139807
Patch

Clearing flags on attachment: 139807

Committed r115828: &lt;http://trac.webkit.org/changeset/115828&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614273</commentid>
    <comment_count>52</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-05-02 07:18:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100967</attachid>
            <date>2011-07-15 06:39:47 -0700</date>
            <delta_ts>2011-07-15 06:49:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Qt-Make-DeviceMotion-and-DeviceOrientation-work-with.patch</filename>
            <type>text/plain</type>
            <size>34969</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSAzMjllMTc1NTAxZDU2ZGU3YTZjZTRmMWU0MDI4NzdiNTg1Njk1ZmQ4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aEB3
ZWJraXQub3JnPgpEYXRlOiBGcmksIDE1IEp1bCAyMDExIDE1OjAzOjUzICswMjAwClN1YmplY3Q6
IFtQQVRDSF0gW1F0XSBNYWtlIERldmljZU1vdGlvbiBhbmQgRGV2aWNlT3JpZW50YXRpb24gd29y
ayB3aXRoIFdlYktpdDIKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NDU5NQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpTb3VyY2UvV2ViQ29yZToKClRoZSBw
cm92aWRlciBpcyBzaGFyZWQgYmV0d2VlbiBXZWJLaXQxIGFuZCBXZWJLaXQyIGFzIGEgcGFydCBv
ZiBXZWJDb3JlCmFuZCBtb2RpZmllZCB0byBub3QgcmVseSBvbiBRT2JqZWN0ICsgc2lnbmFscy4K
ClRoZSBjbGllbnQgaXMgaW1wbGVtZW50ZWQgaW4gV2ViS2l0MSBsYXllciBhbmQgY29tcGlsZWQg
aW50byBXZWJDb3JlLApzbyB0aGF0IGlzIGNhbiBiZSB1c2VkIGJ5IGJvdGggV2ViS2l0MSBhbmQg
V2ViS2l0MiB1bnRpbCB3ZSB0dXJuCldlYkNvcmUgaW50byBpdHMgb3duIGxpYnJhcnkuCgoqIHBs
YXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcC4KKFdl
YkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OkRldmljZU1vdGlvblByb3ZpZGVyUXQpOgoo
V2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6fkRldmljZU1vdGlvblByb3ZpZGVyUXQp
OgooV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcik6CihXZWJD
b3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdGFydCk6CihXZWJDb3JlOjpEZXZpY2VNb3Rp
b25Qcm92aWRlclF0OjpzdG9wKToKKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OmZp
bHRlcik6CiogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0
LmguCihXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpjdXJyZW50RGV2aWNlTW90aW9u
KToKKiBwbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwOiBBZGRlZC4K
KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6RGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0KToKKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6fkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdCk6CihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQ6OnNldENvbnRyb2xsZXIpOgooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
clF0OjpzdGFydCk6CihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0b3Ap
OgooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpmaWx0ZXIpOgoqIHBsYXRm
b3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaC4KKFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6aXNBY3RpdmUpOgooV2ViQ29yZTo6
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpsYXN0T3JpZW50YXRpb24pOgooV2ViQ29yZTo6
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpoYXNBbHBoYSk6CgpTb3VyY2UvV2ViS2l0L3F0
OgoKVGhlIHByb3ZpZGVyIGlzIHNoYXJlZCBiZXR3ZWVuIFdlYktpdDEgYW5kIFdlYktpdDIgYXMg
YSBwYXJ0IG9mIFdlYkNvcmUKYW5kIG1vZGlmaWVkIHRvIG5vdCByZWx5IG9uIFFPYmplY3QgKyBz
aWduYWxzLgoKVGhlIGNsaWVudCBpcyBpbXBsZW1lbnRlZCBpbiBXZWJLaXQxIGxheWVyIGFuZCBj
b21waWxlZCBpbnRvIFdlYkNvcmUsCnNvIHRoYXQgaXMgY2FuIGJlIHVzZWQgYnkgYm90aCBXZWJL
aXQxIGFuZCBXZWJLaXQyIHVudGlsIHdlIHR1cm4KV2ViQ29yZSBpbnRvIGl0cyBvd24gbGlicmFy
eS4KCiogQXBpL3F3ZWJwYWdlLmNwcDoKKFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRl
KToKKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHA6CihXZWJLaXQ6OkRl
dmljZU1vdGlvbkNsaWVudFF0Ojp+RGV2aWNlTW90aW9uQ2xpZW50UXQpOgooV2ViS2l0OjpEZXZp
Y2VNb3Rpb25DbGllbnRRdDo6ZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCk6CihXZWJL
aXQ6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzZXRDb250cm9sbGVyKToKKFdlYktpdDo6RGV2aWNl
TW90aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmcpOgooV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGll
bnRRdDo6c3RvcFVwZGF0aW5nKToKKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRR
dC5oOgooV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQp
OgoqIFdlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwOgooV2ViS2l0
OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Ojp+RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCk6
CihXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OmRldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlckRlc3Ryb3llZCk6CihXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnNl
dENvbnRyb2xsZXIpOgooV2ViS2l0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzdGFydFVw
ZGF0aW5nKToKKFdlYktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5n
KToKKFdlYktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVudGF0aW9uKToK
KiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Lmg6CihXZWJLaXQ6OkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQpOgoKU291
cmNlL1dlYktpdDI6CgpBZGQgdGhlIGNsaWVudHMgd2hlbiBjcmVhdGluZyB0aGUgcGFnZS4KCiog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNSArKysrKysrKwogLi4uL1dlYkNv
cmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgfCAgIDg1ICsrKysrKysr
KysrKysrKysrKysrCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRl
clF0LmggICB8ICAgNTggKysrKysrKysrKysrKwogLi4uL3BsYXRmb3JtL3F0L0RldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJRdC5jcHAgICAgfCAgIDc5ICsrKysrKysrKysrKysrKysrKwogLi4uL3Bs
YXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oICAgICAgfCAgIDU2ICsrKysr
KysrKysrKysKIFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCAgICAgICAgICAgICAg
ICAgIHwgICAgNCArLQogU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDM0ICsrKysrKysrCiAuLi4vcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90
aW9uQ2xpZW50UXQuY3BwICAgICB8ICAgNDcgKysrKy0tLS0tLS0KIC4uLi9xdC9XZWJDb3JlU3Vw
cG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oICAgICAgIHwgICAzNiArKysrLS0tLS0KIC4uLi9x
dC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcCAgIHwgICA3NSAtLS0t
LS0tLS0tLS0tLS0tLQogLi4uL3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVy
UXQuaCAgICAgfCAgIDU3IC0tLS0tLS0tLS0tLS0KIC4uLi9XZWJDb3JlU3VwcG9ydC9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0LmNwcCAgIHwgICA1MCArKysrKy0tLS0tLS0KIC4uLi9xdC9XZWJD
b3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmggIHwgICA0MCArKysrKy0tLS0t
CiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MTEgKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgICAg
ICB8ICAgIDcgKysKIDE1IGZpbGVzIGNoYW5nZWQsIDQ0MSBpbnNlcnRpb25zKCspLCAyMzMgZGVs
ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQv
RGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVy
UXQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2
aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwCiBkZWxldGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Q
cm92aWRlclF0LmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWEzZTZlYi4uMzUyOTA1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSw1ICsxLDQwIEBACiAyMDExLTA3LTE1ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAg
PGtlbm5ldGhAd2Via2l0Lm9yZz4KIAorICAgICAgICBbUXRdIE1ha2UgRGV2aWNlTW90aW9uIGFu
ZCBEZXZpY2VPcmllbnRhdGlvbiB3b3JrIHdpdGggV2ViS2l0MgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1OTUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJvdmlkZXIgaXMgc2hhcmVkIGJldHdl
ZW4gV2ViS2l0MSBhbmQgV2ViS2l0MiBhcyBhIHBhcnQgb2YgV2ViQ29yZQorICAgICAgICBhbmQg
bW9kaWZpZWQgdG8gbm90IHJlbHkgb24gUU9iamVjdCArIHNpZ25hbHMuCisKKyAgICAgICAgVGhl
IGNsaWVudCBpcyBpbXBsZW1lbnRlZCBpbiBXZWJLaXQxIGxheWVyIGFuZCBjb21waWxlZCBpbnRv
IFdlYkNvcmUsCisgICAgICAgIHNvIHRoYXQgaXMgY2FuIGJlIHVzZWQgYnkgYm90aCBXZWJLaXQx
IGFuZCBXZWJLaXQyIHVudGlsIHdlIHR1cm4KKyAgICAgICAgV2ViQ29yZSBpbnRvIGl0cyBvd24g
bGlicmFyeS4KKworICAgICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQu
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VN
b3Rpb25Qcm92aWRlclF0LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3Zp
ZGVyUXQ6OkRldmljZU1vdGlvblByb3ZpZGVyUXQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
TW90aW9uUHJvdmlkZXJRdDo6fkRldmljZU1vdGlvblByb3ZpZGVyUXQpOgorICAgICAgICAoV2Vi
Q29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcik6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmlj
ZU1vdGlvblByb3ZpZGVyUXQ6OmZpbHRlcik6CisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNl
TW90aW9uUHJvdmlkZXJRdC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmguCisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VNb3Rpb25Qcm92aWRlclF0OjpjdXJyZW50RGV2aWNlTW90aW9uKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6RGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJR
dDo6fkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnNldENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpzdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpmaWx0ZXIpOgorICAgICAgICAqIHBsYXRmb3Jt
L3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6aXNBY3RpdmUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpsYXN0T3JpZW50YXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpoYXNB
bHBoYSk6CisKKzIwMTEtMDctMTUgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0
aEB3ZWJraXQub3JnPgorCiAgICAgICAgIFVwc3RyZWFtIFF0V2ViS2l0L045IGNoYW5nZXMgcmVs
YXRlZCB0byB2aXNpYmxlQ29udGVudFJlY3QKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY0NTg5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYWVkMTAxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwCkBAIC0wLDAgKzEsODUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICoKKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZU1v
dGlvblByb3ZpZGVyUXQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEZXZpY2VNb3Rpb25Q
cm92aWRlclF0OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0KCkKKyAgICA6IG1fY29udHJvbGxlcigw
KQorICAgICwgbV9vcmllbnRhdGlvblByb3ZpZGVyKGFkb3B0UHRyKG5ldyBEZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXQoKSkpCit7CisgICAgbV9zZW5zb3IuYWRkRmlsdGVyKHRoaXMpOworICAg
IG1fbGFzdE1vdGlvbiA9IERldmljZU1vdGlvbkRhdGE6OmNyZWF0ZSgpOworfQorCitEZXZpY2VN
b3Rpb25Qcm92aWRlclF0Ojp+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpCit7CisgICAgLy8gVGhl
IHNlbnNvciBpcyBhdXRvbWF0aWNhbGx5IHN0b3BwZWQuCit9CisKK3ZvaWQgRGV2aWNlTW90aW9u
UHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9s
bGVyKQoreworICAgIGlmICghY29udHJvbGxlcikKKyAgICAgICAgc3RvcCgpOworCisgICAgbV9j
b250cm9sbGVyID0gY29udHJvbGxlcjsKK30KKwordm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0
OjpzdGFydCgpCit7CisgICAgbV9zZW5zb3Iuc3RhcnQoKTsKKyAgICBtX29yaWVudGF0aW9uUHJv
dmlkZXItPnN0YXJ0KCk7Cit9CisKK3ZvaWQgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RvcCgp
Cit7CisgICAgbV9zZW5zb3Iuc3RvcCgpOworICAgIG1fb3JpZW50YXRpb25Qcm92aWRlci0+c3Rv
cCgpOworfQorCitib29sIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OmZpbHRlcihRQWNjZWxlcm9t
ZXRlclJlYWRpbmcqIHJlYWRpbmcpCit7CisgICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE6OkFj
Y2VsZXJhdGlvbj4gYWNjZWwgPSBEZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRpb246OmNyZWF0
ZSgKKyAgICAgICAgICAgIC8qIHggYXZhaWxhYmxlICovIHRydWUsIC0gcmVhZGluZy0+eCgpLAor
ICAgICAgICAgICAgLyogeSBhdmFpbGFibGUgKi8gdHJ1ZSwgLSByZWFkaW5nLT55KCksCisgICAg
ICAgICAgICAvKiB6IGF2YWlsYWJsZSAqLyB0cnVlLCAtIHJlYWRpbmctPnooKSk7CisKKyAgICBi
b29sIGhhc0FscGhhID0gbV9vcmllbnRhdGlvblByb3ZpZGVyLT5oYXNBbHBoYSgpOworICAgIERl
dmljZU9yaWVudGF0aW9uKiBvcmllbnQgPSBtX29yaWVudGF0aW9uUHJvdmlkZXItPmxhc3RPcmll
bnRhdGlvbigpOworCisgICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE6OlJvdGF0aW9uUmF0ZT4g
cm90YXRpb24gPSBEZXZpY2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGU6OmNyZWF0ZSgKKyAgICAg
ICAgICAgIC8qIGFscGhhIGF2YWlsYWJsZSAqLyBoYXNBbHBoYSwgb3JpZW50LT5hbHBoYSgpLAor
ICAgICAgICAgICAgLyogYmV0YSAgYXZhaWxhYmxlICovIHRydWUsIG9yaWVudC0+YmV0YSgpLAor
ICAgICAgICAgICAgLyogZ2FtbWEgYXZhaWxhYmxlICovIHRydWUsIG9yaWVudC0+Z2FtbWEoKSk7
CisKKyAgICBtX2xhc3RNb3Rpb24gPSBEZXZpY2VNb3Rpb25EYXRhOjpjcmVhdGUoYWNjZWwsCisg
ICAgICAgICAgICBhY2NlbCwgLyogRklYTUU6IE5lZWRzIHRvIHByb3ZpZGUgYWNjZWxlcmF0aW9u
IGluY2x1ZGUgZ3Jhdml0eS4gKi8KKyAgICAgICAgICAgIHJvdGF0aW9uLAorICAgICAgICAgICAg
ZmFsc2UsIDAgLyogVGhlIGludGVydmFsIGlzIHRyZWF0ZWQgaW50ZXJuYWxseSBieSBRdCBtb2Jp
bGl0eSAqLyk7CisKKyAgICBpZiAobV9jb250cm9sbGVyKQorICAgICAgICBtX2NvbnRyb2xsZXIt
PmRpZENoYW5nZURldmljZU1vdGlvbihtX2xhc3RNb3Rpb24uZ2V0KCkpOworCisgICAgLy8gV2Ug
YXJlIHRoZSBvbmx5IGZpbHRlciwgc28gbm90IG5lZWQgdG8gYWxsb3cgcHJvcGFnYXRpb24uCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNjNDg2MwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaApAQCAt
MCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpZm5kZWYgRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdF9oCisjZGVmaW5lIERldmljZU1vdGlvblByb3ZpZGVyUXRfaAorCisjaW5jbHVkZSAiRGV2
aWNlTW90aW9uRGF0YS5oIgorI2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xsZXIuaCIKKyNp
bmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKKyNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCisjaW5jbHVkZSA8UUFjY2VsZXJvbWV0
ZXJGaWx0ZXI+CisKK1FUTV9VU0VfTkFNRVNQQUNFCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCA6IHB1YmxpYyBRQWNjZWxlcm9tZXRlckZpbHRl
ciB7CitwdWJsaWM6CisgICAgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpOworICAgIH5EZXZpY2VN
b3Rpb25Qcm92aWRlclF0KCk7CisKKyAgICB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9u
Q29udHJvbGxlciopOworCisgICAgYm9vbCBmaWx0ZXIoUUFjY2VsZXJvbWV0ZXJSZWFkaW5nKik7
CisgICAgdm9pZCBzdGFydCgpOworICAgIHZvaWQgc3RvcCgpOworICAgIERldmljZU1vdGlvbkRh
dGEqIGN1cnJlbnREZXZpY2VNb3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2xhc3RNb3Rpb24uZ2V0
KCk7IH0KKworcHJpdmF0ZToKKyAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YT4gbV9sYXN0TW90
aW9uOworCisgICAgRGV2aWNlTW90aW9uQ29udHJvbGxlciogbV9jb250cm9sbGVyOworICAgIFFB
Y2NlbGVyb21ldGVyIG1fc2Vuc29yOworCisgICAgT3duUHRyPERldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdD4gbV9vcmllbnRhdGlvblByb3ZpZGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRGV2aWNlTW90aW9uUHJvdmlkZXJRdF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDdhY2JhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0LmNwcApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpCisgICAgOiBtX2NvbnRyb2xsZXIoMCkKK3sKKyAgICBt
X3NlbnNvci5hZGRGaWx0ZXIodGhpcyk7CisgICAgbV9sYXN0T3JpZW50YXRpb24gPSBEZXZpY2VP
cmllbnRhdGlvbjo6Y3JlYXRlKCk7Cit9CisKK0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6
fkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpCit7CisgICAgLy8gVGhlIHNlbnNvciBpcyBh
dXRvbWF0aWNhbGx5IHN0b3BwZWQuCit9CisKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
clF0OjpzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxl
cikKK3sKKyAgICBpZiAoIWNvbnRyb2xsZXIpCisgICAgICAgIHN0b3AoKTsKKworICAgIG1fY29u
dHJvbGxlciA9IGNvbnRyb2xsZXI7Cit9CisKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
clF0OjpzdGFydCgpCit7CisgICAgbV9zZW5zb3Iuc3RhcnQoKTsKK30KKwordm9pZCBEZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0b3AoKQoreworICAgIG1fc2Vuc29yLnN0b3AoKTsKK30K
KworYm9vbCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OmZpbHRlcihRUm90YXRpb25SZWFk
aW5nKiByZWFkaW5nKQoreworICAgIC8vIFByb3ZpZGUgZGV2aWNlIG9yaWVudGF0aW9uIGRhdGEg
YWNjb3JkaW5nIFczQyBzcGVjOgorICAgIC8vIGh0dHA6Ly9kZXYudzMub3JnL2dlby9hcGkvc3Bl
Yy1zb3VyY2Utb3JpZW50YXRpb24uaHRtbAorICAgIC8vIFF0IG1vYmlsaXR5IHByb3ZpZGUgdGhl
c2UgZGF0YSB2aWEgUVJvdGF0aW9uU2Vuc29yIHVzaW5nIHRoZQorICAgIC8vIFFSb3RhdGlvblJl
YWRpbmcgY2xhc3M6CisgICAgLy8gIC0gdGhlIHJvdGF0aW9uIGFyb3VuZCB6IGF4aXMgKGFscGhh
KSBpcyBnaXZlbiBhcyB6IGluIFFSb3RhdGlvblJlYWRpbmc7CisgICAgLy8gIC0gdGhlIHJvdGF0
aW9uIGFyb3VuZCB4IGF4aXMgKGJldGEpIGlzIGdpdmVuIGFzIHggaW4gUVJvdGF0aW9uUmVhZGlu
ZzsKKyAgICAvLyAgLSB0aGUgcm90YXRpb24gYXJvdW5kIHkgYXhpcyAoZ2FtbWEpIGlzIGdpdmVu
IGFzIHkgaW4gUVJvdGF0aW9uUmVhZGluZzsKKyAgICAvLyBTZWU6IGh0dHA6Ly9kb2MucXQubm9r
aWEuY29tL3F0bW9iaWxpdHktMS4wL3Fyb3RhdGlvbnJlYWRpbmcuaHRtbAorICAgIC8vIFRoZSBa
IChhbHBoYSkgcm90YXRpb24gYW5nbGUgaXMgY2hlY2tlZCB2aWEgaGFzQWxwaGEoKSBwcml2YXRl
IG1ldGhvZCwKKyAgICAvLyBkZXBlbmRpbmcgaWYgdGhlIGRldmljZSBpcyBhYmxlIGRvIGRldGVj
dCB0aGUgYWxwaGEgcm90YXRpb24uIFggKGJldGEpIGFuZAorICAgIC8vIFkgKGdhbW1hKSBheGlz
IGFyZSBhdmFpbGJsZSBpbiB0aGlzIGNvbnRleHQuCisgICAgbV9sYXN0T3JpZW50YXRpb24gPSBE
ZXZpY2VPcmllbnRhdGlvbjo6Y3JlYXRlKGhhc0FscGhhKCksIHJlYWRpbmctPnooKSwKKyAgICAg
ICAgICAgIC8qIHggYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPngoKSwKKyAgICAgICAgICAg
IC8qIHkgYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPnkoKSk7CisKKyAgICBpZiAobV9jb250
cm9sbGVyKQorICAgICAgICBtX2NvbnRyb2xsZXItPmRpZENoYW5nZURldmljZU9yaWVudGF0aW9u
KG1fbGFzdE9yaWVudGF0aW9uLmdldCgpKTsKKworICAgIC8vIFdlIGFyZSB0aGUgb25seSBmaWx0
ZXIsIHNvIG5vdCBuZWVkIHRvIGFsbG93IHByb3BhZ2F0aW9uLgorICAgIHJldHVybiBmYWxzZTsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3Jp
ZW50YXRpb25Qcm92aWRlclF0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyUXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li45NDUxNDgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQv
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
KgorICovCisjaWZuZGVmIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdF9oCisjZGVmaW5lIERl
dmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdF9oCisKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlv
bi5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKworI2luY2x1ZGUgPFFSb3RhdGlvbkZpbHRlcj4KKworUVRNX1VTRV9O
QU1FU1BBQ0UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyUXQgOiBwdWJsaWMgUVJvdGF0aW9uRmlsdGVyIHsKK3B1YmxpYzoKKyAgICBEZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQoKTsKKyAgICB+RGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
clF0KCk7CisKKyAgICB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyKik7CisKKyAgICBib29sIGZpbHRlcihRUm90YXRpb25SZWFkaW5nKik7CisgICAgdm9pZCBz
dGFydCgpOworICAgIHZvaWQgc3RvcCgpOworICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJl
dHVybiBtX3NlbnNvci5pc0FjdGl2ZSgpOyB9CisgICAgRGV2aWNlT3JpZW50YXRpb24qIGxhc3RP
cmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE9yaWVudGF0aW9uLmdldCgpOyB9Cisg
ICAgYm9vbCBoYXNBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vuc29yLnByb3BlcnR5KCJoYXNa
IikudG9Cb29sKCk7IH0KKworcHJpdmF0ZToKKyAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb24+
IG1fbGFzdE9yaWVudGF0aW9uOworCisgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBt
X2NvbnRyb2xsZXI7CisgICAgUVJvdGF0aW9uU2Vuc29yIG1fc2Vuc29yOworfTsKKworfQorCisj
ZW5kaWYgLy8gRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJw
YWdlLmNwcAppbmRleCBmN2YyZGE4Li41YzFkNTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2Uu
Y3BwCkBAIC0zMzcsOCArMzM3LDggQEAgUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUo
UVdlYlBhZ2UgKnFxKQogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBuZXcgRHJhZ0NsaWVu
dFF0KHEpOwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBJbnNwZWN0b3JD
bGllbnRRdChxKTsKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIHBhZ2VDbGll
bnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50
UXQocSk7Ci0gICAgcGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xpZW50ID0gbmV3IERldmljZU1v
dGlvbkNsaWVudFF0KHEpOworICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50
ID0gbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ7CisgICAgcGFnZUNsaWVudHMuZGV2aWNl
TW90aW9uQ2xpZW50ID0gbmV3IERldmljZU1vdGlvbkNsaWVudFF0OwogI2VuZGlmCiAjaWYgRU5B
QkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBpZiAoUVdlYlBhZ2VQcml2YXRlOjpk
cnRSdW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGVmMjA2MjkuLjQ0ZDhhYWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9n
CkBAIC0xLDUgKzEsMzkgQEAKIDIwMTEtMDctMTUgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2Vu
ICA8a2VubmV0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24g
YW5kIERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcm92aWRlciBpcyBzaGFyZWQgYmV0
d2VlbiBXZWJLaXQxIGFuZCBXZWJLaXQyIGFzIGEgcGFydCBvZiBXZWJDb3JlCisgICAgICAgIGFu
ZCBtb2RpZmllZCB0byBub3QgcmVseSBvbiBRT2JqZWN0ICsgc2lnbmFscy4KKworICAgICAgICBU
aGUgY2xpZW50IGlzIGltcGxlbWVudGVkIGluIFdlYktpdDEgbGF5ZXIgYW5kIGNvbXBpbGVkIGlu
dG8gV2ViQ29yZSwKKyAgICAgICAgc28gdGhhdCBpcyBjYW4gYmUgdXNlZCBieSBib3RoIFdlYktp
dDEgYW5kIFdlYktpdDIgdW50aWwgd2UgdHVybgorICAgICAgICBXZWJDb3JlIGludG8gaXRzIG93
biBsaWJyYXJ5LgorCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFXZWJQ
YWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9E
ZXZpY2VNb3Rpb25DbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRldmljZU1vdGlvbkNs
aWVudFF0Ojp+RGV2aWNlTW90aW9uQ2xpZW50UXQpOgorICAgICAgICAoV2ViS2l0OjpEZXZpY2VN
b3Rpb25DbGllbnRRdDo6ZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCk6CisgICAgICAg
IChXZWJLaXQ6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzZXRDb250cm9sbGVyKToKKyAgICAgICAg
KFdlYktpdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAo
V2ViS2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oOgorICAgICAgICAoV2ViS2l0OjpE
ZXZpY2VNb3Rpb25DbGllbnRRdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Ojp+RGV2aWNlT3JpZW50YXRpb25DbGllbnRR
dCk6CisgICAgICAgIChXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OmRldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OkRldmljZU9y
aWVudGF0aW9uQ2xpZW50UXQ6OnNldENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViS2l0OjpEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktpdDo6
RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktp
dDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVudGF0aW9uKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Lmg6CisgICAgICAgIChX
ZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50
UXQpOgorCisyMDExLTA3LTE1ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhA
d2Via2l0Lm9yZz4KKwogICAgICAgICBVcHN0cmVhbSBRdFdlYktpdC9OOSBjaGFuZ2VzIHJlbGF0
ZWQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NDU4OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwCmluZGV4IDQ3NjE1MTQuLjQ2
Y2JiMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNl
TW90aW9uQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwCkBAIC0yMCw0MSArMjAsNDMgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25DbGllbnRRdC5oIgogCisjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKwogI2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgiCiAKLSNpbmNsdWRlICJxd2Vi
cGFnZS5oIgordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsK
K25hbWVzcGFjZSBXZWJLaXQgewogCi1EZXZpY2VNb3Rpb25DbGllbnRRdDo6RGV2aWNlTW90aW9u
Q2xpZW50UXQoUVdlYlBhZ2UqIHBhZ2UpCi0gICAgOiBtX3BhZ2UocGFnZSkKLSAgICAsIG1fY29u
dHJvbGxlcigwKQotICAgICwgbV9wcm92aWRlcihuZXcgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCgp
KQorRGV2aWNlTW90aW9uQ2xpZW50UXQ6On5EZXZpY2VNb3Rpb25DbGllbnRRdCgpCiB7Ci0KLSAg
ICBjb25uZWN0KG1fcHJvdmlkZXIsIFNJR05BTChkZXZpY2VNb3Rpb25DaGFuZ2VkKCkpLCBTTE9U
KGNoYW5nZURldmljZU1vdGlvbigpKSk7CiB9CiAKLURldmljZU1vdGlvbkNsaWVudFF0Ojp+RGV2
aWNlTW90aW9uQ2xpZW50UXQoKQordm9pZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6ZGV2aWNlTW90
aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCiB7Ci0gICAgZGlzY29ubmVjdCgpOwotICAgIGRlbGV0
ZSBtX3Byb3ZpZGVyOworICAgIGRlbGV0ZSB0aGlzOwogfQogCiB2b2lkIERldmljZU1vdGlvbkNs
aWVudFF0OjpzZXRDb250cm9sbGVyKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIp
CiB7Ci0gICAgbV9jb250cm9sbGVyID0gY29udHJvbGxlcjsKKyAgICAvLyBJbml0aWFsaXplIGxh
emlseS4KKyAgICBpZiAoIW1fcHJvdmlkZXIgJiYgY29udHJvbGxlcikKKyAgICAgICAgbV9wcm92
aWRlciA9IGFkb3B0UHRyKG5ldyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0KTsKKworICAgIG1fcHJv
dmlkZXItPnNldENvbnRyb2xsZXIoY29udHJvbGxlcik7CiB9CiAKIHZvaWQgRGV2aWNlTW90aW9u
Q2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmcoKQogewotICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7Cisg
ICAgaWYgKG1fcHJvdmlkZXIpCisgICAgICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7CiB9CiAKIHZv
aWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6OnN0b3BVcGRhdGluZygpCiB7Ci0gICAgbV9wcm92aWRl
ci0+c3RvcCgpOworICAgIGlmIChtX3Byb3ZpZGVyKQorICAgICAgICBtX3Byb3ZpZGVyLT5zdG9w
KCk7CiB9CiAKIERldmljZU1vdGlvbkRhdGEqIERldmljZU1vdGlvbkNsaWVudFF0OjpjdXJyZW50
RGV2aWNlTW90aW9uKCkgY29uc3QKQEAgLTYyLDE5ICs2NCw2IEBAIERldmljZU1vdGlvbkRhdGEq
IERldmljZU1vdGlvbkNsaWVudFF0OjpjdXJyZW50RGV2aWNlTW90aW9uKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9wcm92aWRlci0+Y3VycmVudERldmljZU1vdGlvbigpOwogfQogCi12b2lkIERldmlj
ZU1vdGlvbkNsaWVudFF0OjpkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVzdHJveWVkKCkKLXsKLSAg
ICBkZWxldGUgdGhpczsKLX0KLQotdm9pZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6Y2hhbmdlRGV2
aWNlTW90aW9uKCkKLXsKLSAgICBpZiAoIW1fY29udHJvbGxlcikKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgbV9jb250cm9sbGVyLT5kaWRDaGFuZ2VEZXZpY2VNb3Rpb24oY3VycmVudERldmljZU1v
dGlvbigpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAKLSNpbmNsdWRlICJtb2NfRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwIgorI2VuZGlmIC8v
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmgKaW5kZXggZWE4NDNlMi4uNWFj
MTYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VN
b3Rpb25DbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2
aWNlTW90aW9uQ2xpZW50UXQuaApAQCAtMjAsMzggKzIwLDM2IEBACiAjaWZuZGVmIERldmljZU1v
dGlvbkNsaWVudFF0X2gKICNkZWZpbmUgRGV2aWNlTW90aW9uQ2xpZW50UXRfaAogCisjaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKwogI2luY2x1ZGUgIkRldmljZU1vdGlvbkNsaWVudC5o
IgorI2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEZXZpY2VN
b3Rpb25EYXRhLmgiCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oIgorI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KIAotI2luY2x1ZGUgPFFPYmplY3Q+Ci0KLWNsYXNzIFFXZWJQYWdl
OwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgRGV2
aWNlTW90aW9uUHJvdmlkZXJRdDsKLQotY2xhc3MgRGV2aWNlTW90aW9uQ2xpZW50UXQgOiBwdWJs
aWMgUU9iamVjdCwgcHVibGljIERldmljZU1vdGlvbkNsaWVudCB7Ci0gICAgUV9PQkpFQ1QKK2Ns
YXNzIERldmljZU1vdGlvbkNsaWVudFF0IDogcHVibGljIFdlYkNvcmU6OkRldmljZU1vdGlvbkNs
aWVudCB7CiBwdWJsaWM6Ci0gICAgRGV2aWNlTW90aW9uQ2xpZW50UXQoUVdlYlBhZ2UqKTsKKyAg
ICBEZXZpY2VNb3Rpb25DbGllbnRRdCgpIHsgfTsKICAgICB2aXJ0dWFsIH5EZXZpY2VNb3Rpb25D
bGllbnRRdCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9u
Q29udHJvbGxlciopOworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlTW90aW9uQ29u
dHJvbGxlckRlc3Ryb3llZCgpOworCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCk7Ci0gICAgdmlydHVhbCBEZXZpY2VNb3Rp
b25EYXRhKiBjdXJyZW50RGV2aWNlTW90aW9uKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGRl
dmljZU1vdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKIAotcHVibGljIFFfU0xPVFM6Ci0gICAg
dm9pZCBjaGFuZ2VEZXZpY2VNb3Rpb24oKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkRldmljZU1v
dGlvbkRhdGEqIGN1cnJlbnREZXZpY2VNb3Rpb24oKSBjb25zdDsKIAotcHJpdmF0ZToKLSAgICBR
V2ViUGFnZSogbV9wYWdlOwotICAgIERldmljZU1vdGlvbkNvbnRyb2xsZXIqIG1fY29udHJvbGxl
cjsKLSAgICBEZXZpY2VNb3Rpb25Qcm92aWRlclF0KiBtX3Byb3ZpZGVyOworICAgIHZpcnR1YWwg
dm9pZCBzZXRDb250cm9sbGVyKFdlYkNvcmU6OkRldmljZU1vdGlvbkNvbnRyb2xsZXIqKTsKKwor
ICAgIE93blB0cjxXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0PiBtX3Byb3ZpZGVyOwog
fTsKIAogfSAvLyBuYW1lc3BlY2UgV2ViQ29yZQogCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKKwogI2VuZGlmIC8vIERldmljZU1vdGlvbkNsaWVudFF0X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJR
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3Zp
ZGVyUXQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjY2Y3Njk3Li4wMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
LSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEZXZpY2VNb3Rpb25Qcm92aWRlclF0Lmgi
Ci0KLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1EZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpEZXZpY2VNb3Rpb25Qcm92aWRl
clF0KCkKLXsKLSAgICBtX2FjY2VsZXJhdGlvbi5hZGRGaWx0ZXIodGhpcyk7Ci0gICAgbV9tb3Rp
b24gPSBEZXZpY2VNb3Rpb25EYXRhOjpjcmVhdGUoKTsKLSAgICBtX2RldmljZU9yaWVudGF0aW9u
ID0gbmV3IERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpOwotfQotCi1EZXZpY2VNb3Rpb25Q
cm92aWRlclF0Ojp+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpCi17Ci0gICAgZGVsZXRlIG1fZGV2
aWNlT3JpZW50YXRpb247Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RhcnQo
KQotewotICAgIG1fYWNjZWxlcmF0aW9uLnN0YXJ0KCk7Ci0gICAgbV9kZXZpY2VPcmllbnRhdGlv
bi0+c3RhcnQoKTsKLX0KLQotdm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdG9wKCkKLXsK
LSAgICBtX2FjY2VsZXJhdGlvbi5zdG9wKCk7Ci0gICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+c3Rv
cCgpOwotfQotCi1ib29sIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OmZpbHRlcihRQWNjZWxlcm9t
ZXRlclJlYWRpbmcqIHJlYWRpbmcpCi17Ci0gICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE6OkFj
Y2VsZXJhdGlvbj4gYWNjZWwgPSBEZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRpb246OmNyZWF0
ZSgKLSAgICAgICAgICAgIC8qIHggYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPngoKSwKLSAg
ICAgICAgICAgIC8qIHkgYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPnkoKSwKLSAgICAgICAg
ICAgIC8qIHogYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPnooKSk7Ci0KLSAgICBSZWZQdHI8
RGV2aWNlTW90aW9uRGF0YTo6Um90YXRpb25SYXRlPiByb3RhdGlvbiA9IERldmljZU1vdGlvbkRh
dGE6OlJvdGF0aW9uUmF0ZTo6Y3JlYXRlKAotICAgICAgICAgICAgbV9kZXZpY2VPcmllbnRhdGlv
bi0+aGFzQWxwaGEoKSwgbV9kZXZpY2VPcmllbnRhdGlvbi0+b3JpZW50YXRpb24oKS0+YWxwaGEo
KSwKLSAgICAgICAgICAgIC8qIGJldGEgYXZhaWxhYmxlICovIHRydWUsIG1fZGV2aWNlT3JpZW50
YXRpb24tPm9yaWVudGF0aW9uKCktPmJldGEoKSwKLSAgICAgICAgICAgIC8qIGdhbW1hIGF2YWls
YWJsZSAqLyB0cnVlLCBtX2RldmljZU9yaWVudGF0aW9uLT5vcmllbnRhdGlvbigpLT5nYW1tYSgp
KTsKLQotICAgIG1fbW90aW9uID0gRGV2aWNlTW90aW9uRGF0YTo6Y3JlYXRlKGFjY2VsLAotICAg
ICAgICAgICAgYWNjZWwsIC8qIEZJWE1FOiBOZWVkcyB0byBwcm92aWRlIGFjY2VsZXJhdGlvbiBp
bmNsdWRlIGdyYXZpdHkuICovCi0gICAgICAgICAgICByb3RhdGlvbiwKLSAgICAgICAgICAgIGZh
bHNlLCAwIC8qIFRoZSBpbnRlcnZhbCBpcyB0cmVhdGVkIGludGVybmFsbHkgYnkgUXQgbW9iaWxp
dHkgKi8pOwotCi0gICAgZW1pdCBkZXZpY2VNb3Rpb25DaGFuZ2VkKCk7Ci0KLSAgICByZXR1cm4g
ZmFsc2U7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2luY2x1ZGUgIm1vY19EZXZp
Y2VNb3Rpb25Qcm92aWRlclF0LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGYzMjAwZDUuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1
NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLSNpZm5kZWYgRGV2aWNlTW90aW9uUHJvdmlkZXJR
dF9oCi0jZGVmaW5lIERldmljZU1vdGlvblByb3ZpZGVyUXRfaAotCi0jaW5jbHVkZSAiRGV2aWNl
TW90aW9uRGF0YS5oIgotI2luY2x1ZGUgIlJlZlB0ci5oIgotCi0jaW5jbHVkZSA8UUFjY2VsZXJv
bWV0ZXJGaWx0ZXI+Ci0jaW5jbHVkZSA8UU9iamVjdD4KLQotUVRNX1VTRV9OQU1FU1BBQ0UKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ7
Ci0KLWNsYXNzIERldmljZU1vdGlvblByb3ZpZGVyUXQgOiBwdWJsaWMgUU9iamVjdCwgcHVibGlj
IFFBY2NlbGVyb21ldGVyRmlsdGVyIHsKLSAgICBRX09CSkVDVAotcHVibGljOgotICAgIERldmlj
ZU1vdGlvblByb3ZpZGVyUXQoKTsKLSAgICB+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpOwotCi0g
ICAgYm9vbCBmaWx0ZXIoUUFjY2VsZXJvbWV0ZXJSZWFkaW5nKik7Ci0gICAgdm9pZCBzdGFydCgp
OwotICAgIHZvaWQgc3RvcCgpOwotICAgIERldmljZU1vdGlvbkRhdGEqIGN1cnJlbnREZXZpY2VN
b3Rpb24oKSBjb25zdCB7IHJldHVybiBtX21vdGlvbi5nZXQoKTsgfQotCi1RX1NJR05BTFM6Ci0g
ICAgdm9pZCBkZXZpY2VNb3Rpb25DaGFuZ2VkKCk7Ci0KLXByaXZhdGU6Ci0gICAgUmVmUHRyPERl
dmljZU1vdGlvbkRhdGE+IG1fbW90aW9uOwotICAgIFFBY2NlbGVyb21ldGVyIG1fYWNjZWxlcmF0
aW9uOwotICAgIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCogbV9kZXZpY2VPcmllbnRhdGlv
bjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIERldmljZU1vdGlv
blByb3ZpZGVyUXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAKaW5kZXggMDFjYmU3My4uZGZj
MWY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwCkBAIC0yMSw1OSArMjEsNDkgQEAKICNp
bmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgiCiAKICNpbmNsdWRlICJEZXZpY2VP
cmllbnRhdGlvbkNsaWVudE1vY2tRdC5oIgotI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlci5oIgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisKICNpbmNsdWRlICJE
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKLSNpbmNsdWRlICJxd2VicGFnZS5oIgogCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNl
IFdlYktpdCB7CiAKLURldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OkRldmljZU9yaWVudGF0aW9u
Q2xpZW50UXQoUVdlYlBhZ2UqIHBhZ2UpCi0gICAgOiBtX3BhZ2UocGFnZSkKLSAgICAsIG1fY29u
dHJvbGxlcigwKQotICAgICwgbV9wcm92aWRlcihuZXcgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
clF0KCkpCitEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Ojp+RGV2aWNlT3JpZW50YXRpb25DbGll
bnRRdCgpCiB7Ci0gICAgY29ubmVjdChtX3Byb3ZpZGVyLCBTSUdOQUwoZGV2aWNlT3JpZW50YXRp
b25DaGFuZ2VkKERldmljZU9yaWVudGF0aW9uKikpLCBTTE9UKGNoYW5nZURldmljZU9yaWVudGF0
aW9uKERldmljZU9yaWVudGF0aW9uKikpKTsKIH0KIAotRGV2aWNlT3JpZW50YXRpb25DbGllbnRR
dDo6fkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQoKQordm9pZCBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudFF0OjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQogewotICAgIGRp
c2Nvbm5lY3QoKTsKLSAgICBkZWxldGUgbV9wcm92aWRlcjsKKyAgICBkZWxldGUgdGhpczsKIH0K
IAogdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzZXRDb250cm9sbGVyKERldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKIHsKLSAgICBtX2NvbnRyb2xsZXIgPSBj
b250cm9sbGVyOworICAgIC8vIEluaXRpYWxpemUgbGF6aWx5LgorICAgIGlmICghbV9wcm92aWRl
ciAmJiBjb250cm9sbGVyKQorICAgICAgICBtX3Byb3ZpZGVyID0gYWRvcHRQdHIobmV3IERldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdCk7CisKKyAgICBtX3Byb3ZpZGVyLT5zZXRDb250cm9sbGVy
KGNvbnRyb2xsZXIpOwogfQogCiB2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnN0YXJ0
VXBkYXRpbmcoKQogewotICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7CisgICAgaWYgKG1fcHJvdmlk
ZXIpCisgICAgICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7CiB9CiAKIHZvaWQgRGV2aWNlT3JpZW50
YXRpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKCkKIHsKLSAgICBtX3Byb3ZpZGVyLT5zdG9wKCk7
CisgICAgaWYgKG1fcHJvdmlkZXIpCisgICAgICAgIG1fcHJvdmlkZXItPnN0b3AoKTsKIH0KIAog
RGV2aWNlT3JpZW50YXRpb24qIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6Omxhc3RPcmllbnRh
dGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJvdmlkZXItPm9yaWVudGF0aW9uKCk7Ci19
Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6ZGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyRGVzdHJveWVkKCkKLXsKLSAgICBkZWxldGUgdGhpczsKLX0KLQotdm9pZCBEZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0OjpjaGFuZ2VEZXZpY2VPcmllbnRhdGlvbihEZXZpY2VPcmllbnRh
dGlvbiogb3JpZW50YXRpb24pCi17Ci0gICAgaWYgKCFtX2NvbnRyb2xsZXIpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24ob3Jp
ZW50YXRpb24pOworICAgIHJldHVybiAobV9wcm92aWRlcikgPyBtX3Byb3ZpZGVyLT5sYXN0T3Jp
ZW50YXRpb24oKSA6IDA7CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAogCi0jaW5jbHVkZSAibW9jX0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3Bw
IgorI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRR
dC5oCmluZGV4IDYxOTY4YzQuLjNlODNhODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oCkBAIC0y
MCwzOCArMjAsMzYgQEAKICNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdF9oCiAjZGVm
aW5lIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXRfaAogCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50
YXRpb24uaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgotCi0jaW5jbHVk
ZSA8UU9iamVjdD4KLQotY2xhc3MgUVdlYlBhZ2U7CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9u
Q2xpZW50LmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCisjaW5j
bHVkZSAiRGV2aWNlT3JpZW50YXRpb24uaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyUXQuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKLWNsYXNzIERldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJRdDsKK25hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBEZXZpY2VPcmll
bnRhdGlvbkNsaWVudFF0IDogcHVibGljIFFPYmplY3QsIHB1YmxpYyBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudCB7Ci0gICAgUV9PQkpFQ1QKK2NsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQg
OiBwdWJsaWMgV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnQgewogcHVibGljOgotICAg
IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQoUVdlYlBhZ2UqKTsKKyAgICBEZXZpY2VPcmllbnRh
dGlvbkNsaWVudFF0KCkgeyB9CiAgICAgdmlydHVhbCB+RGV2aWNlT3JpZW50YXRpb25DbGllbnRR
dCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyKik7Citwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKKwogICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5n
KCk7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpOwotICAgIHZpcnR1YWwgRGV2aWNl
T3JpZW50YXRpb24qIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBk
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKIAotcHVibGljIFFfU0xPVFM6
Ci0gICAgdm9pZCBjaGFuZ2VEZXZpY2VPcmllbnRhdGlvbihEZXZpY2VPcmllbnRhdGlvbiopOwor
ICAgIHZpcnR1YWwgV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb24qIGxhc3RPcmllbnRhdGlvbigp
IGNvbnN0OwogCi1wcml2YXRlOgotICAgIFFXZWJQYWdlKiBtX3BhZ2U7Ci0gICAgRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7Ci0gICAgRGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0KiBtX3Byb3ZpZGVyOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopOworCisgICAgT3duUHRyPFdlYkNv
cmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdD4gbV9wcm92aWRlcjsKIH07CiAKLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKIAogI2VuZGlmIC8vIERldmljZU9yaWVudGF0aW9uQ2xp
ZW50UXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IGNlNTBhMDMuLjllNzNjYWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwxNiBAQAogMjAxMS0wNy0xNSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5u
ZXRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1F0XSBNYWtlIERldmljZU1vdGlvbiBhbmQgRGV2
aWNlT3JpZW50YXRpb24gd29yayB3aXRoIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBjbGllbnRzIHdoZW4gY3JlYXRpbmcgdGhl
IHBhZ2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisKKzIw
MTEtMDctMTUgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3Jn
PgorCiAgICAgICAgIFVwc3RyZWFtIFF0V2ViS2l0L045IGNoYW5nZXMgcmVsYXRlZCB0byB2aXNp
YmxlQ29udGVudFJlY3QKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY0NTg5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCA2NTQ0M2FiLi4zMTY5MDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC05NCw2ICs5NCw4IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9QcmludENvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlckFyZW5hLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJMYXllci5oPgorI2luY2x1ZGUgIkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50UXQuaCIKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25DbGllbnRRdC5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVuZGVyVHJlZUFzVGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVu
ZGVyVmlldy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaD4K
QEAgLTE1NCw2ICsxNTYsMTEgQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiBzdGF0aWMgV1RG
OjpSZWZDb3VudGVkTGVha0NvdW50ZXIgd2ViUGFnZUNvdW50ZXIoIldlYlBhZ2UiKTsKICNlbmRp
ZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKFFUKQorICAgIHBh
Z2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IERldmljZU9yaWVudGF0aW9u
Q2xpZW50UXQ7CisgICAgcGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xpZW50ID0gbmV3IERldmlj
ZU1vdGlvbkNsaWVudFF0OworI2VuZGlmCisKIAogUGFzc1JlZlB0cjxXZWJQYWdlPiBXZWJQYWdl
OjpjcmVhdGUodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzKQogewotLSAKMS43LjEKCg==
</data>
<flag name="review"
          id="95757"
          type_id="1"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100969</attachid>
            <date>2011-07-15 06:49:43 -0700</date>
            <delta_ts>2011-07-15 07:02:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Qt-Make-DeviceMotion-and-DeviceOrientation-work-with.patch</filename>
            <type>text/plain</type>
            <size>34950</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSBjOWE4MjA4ZDFhYmY1NzRhNjVlNDlhNTg4NTk2YWMxYzE1MWVkN2M0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aEB3
ZWJraXQub3JnPgpEYXRlOiBGcmksIDE1IEp1bCAyMDExIDE1OjAzOjUzICswMjAwClN1YmplY3Q6
IFtQQVRDSF0gW1F0XSBNYWtlIERldmljZU1vdGlvbiBhbmQgRGV2aWNlT3JpZW50YXRpb24gd29y
ayB3aXRoIFdlYktpdDIKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NDU5NQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpTb3VyY2UvV2ViQ29yZToKClRoZSBw
cm92aWRlciBpcyBzaGFyZWQgYmV0d2VlbiBXZWJLaXQxIGFuZCBXZWJLaXQyIGFzIGEgcGFydCBv
ZiBXZWJDb3JlCmFuZCBtb2RpZmllZCB0byBub3QgcmVseSBvbiBRT2JqZWN0ICsgc2lnbmFscy4K
ClRoZSBjbGllbnQgaXMgaW1wbGVtZW50ZWQgaW4gV2ViS2l0MSBsYXllciBhbmQgY29tcGlsZWQg
aW50byBXZWJDb3JlLApzbyB0aGF0IGlzIGNhbiBiZSB1c2VkIGJ5IGJvdGggV2ViS2l0MSBhbmQg
V2ViS2l0MiB1bnRpbCB3ZSB0dXJuCldlYkNvcmUgaW50byBpdHMgb3duIGxpYnJhcnkuCgoqIHBs
YXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcC4KKFdl
YkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OkRldmljZU1vdGlvblByb3ZpZGVyUXQpOgoo
V2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6fkRldmljZU1vdGlvblByb3ZpZGVyUXQp
OgooV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcik6CihXZWJD
b3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdGFydCk6CihXZWJDb3JlOjpEZXZpY2VNb3Rp
b25Qcm92aWRlclF0OjpzdG9wKToKKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OmZp
bHRlcik6CiogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0
LmguCihXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpjdXJyZW50RGV2aWNlTW90aW9u
KToKKiBwbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwOiBBZGRlZC4K
KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6RGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0KToKKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6fkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdCk6CihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQ6OnNldENvbnRyb2xsZXIpOgooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
clF0OjpzdGFydCk6CihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0b3Ap
OgooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpmaWx0ZXIpOgoqIHBsYXRm
b3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaC4KKFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6aXNBY3RpdmUpOgooV2ViQ29yZTo6
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpsYXN0T3JpZW50YXRpb24pOgooV2ViQ29yZTo6
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpoYXNBbHBoYSk6CgpTb3VyY2UvV2ViS2l0L3F0
OgoKVGhlIHByb3ZpZGVyIGlzIHNoYXJlZCBiZXR3ZWVuIFdlYktpdDEgYW5kIFdlYktpdDIgYXMg
YSBwYXJ0IG9mIFdlYkNvcmUKYW5kIG1vZGlmaWVkIHRvIG5vdCByZWx5IG9uIFFPYmplY3QgKyBz
aWduYWxzLgoKVGhlIGNsaWVudCBpcyBpbXBsZW1lbnRlZCBpbiBXZWJLaXQxIGxheWVyIGFuZCBj
b21waWxlZCBpbnRvIFdlYkNvcmUsCnNvIHRoYXQgaXMgY2FuIGJlIHVzZWQgYnkgYm90aCBXZWJL
aXQxIGFuZCBXZWJLaXQyIHVudGlsIHdlIHR1cm4KV2ViQ29yZSBpbnRvIGl0cyBvd24gbGlicmFy
eS4KCiogQXBpL3F3ZWJwYWdlLmNwcDoKKFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRl
KToKKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHA6CihXZWJLaXQ6OkRl
dmljZU1vdGlvbkNsaWVudFF0Ojp+RGV2aWNlTW90aW9uQ2xpZW50UXQpOgooV2ViS2l0OjpEZXZp
Y2VNb3Rpb25DbGllbnRRdDo6ZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCk6CihXZWJL
aXQ6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzZXRDb250cm9sbGVyKToKKFdlYktpdDo6RGV2aWNl
TW90aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmcpOgooV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGll
bnRRdDo6c3RvcFVwZGF0aW5nKToKKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRR
dC5oOgooV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQp
OgoqIFdlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwOgooV2ViS2l0
OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Ojp+RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCk6
CihXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OmRldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlckRlc3Ryb3llZCk6CihXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnNl
dENvbnRyb2xsZXIpOgooV2ViS2l0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzdGFydFVw
ZGF0aW5nKToKKFdlYktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5n
KToKKFdlYktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVudGF0aW9uKToK
KiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Lmg6CihXZWJLaXQ6OkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQpOgoKU291
cmNlL1dlYktpdDI6CgpBZGQgdGhlIGNsaWVudHMgd2hlbiBjcmVhdGluZyB0aGUgcGFnZS4KCiog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNSArKysrKysrKwogLi4uL1dlYkNv
cmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgfCAgIDg1ICsrKysrKysr
KysrKysrKysrKysrCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRl
clF0LmggICB8ICAgNTggKysrKysrKysrKysrKwogLi4uL3BsYXRmb3JtL3F0L0RldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJRdC5jcHAgICAgfCAgIDc5ICsrKysrKysrKysrKysrKysrKwogLi4uL3Bs
YXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oICAgICAgfCAgIDU1ICsrKysr
KysrKysrKysKIFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCAgICAgICAgICAgICAg
ICAgIHwgICAgNCArLQogU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDM0ICsrKysrKysrCiAuLi4vcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90
aW9uQ2xpZW50UXQuY3BwICAgICB8ICAgNDcgKysrKy0tLS0tLS0KIC4uLi9xdC9XZWJDb3JlU3Vw
cG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oICAgICAgIHwgICAzNiArKysrLS0tLS0KIC4uLi9x
dC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcCAgIHwgICA3NSAtLS0t
LS0tLS0tLS0tLS0tLQogLi4uL3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVy
UXQuaCAgICAgfCAgIDU3IC0tLS0tLS0tLS0tLS0KIC4uLi9XZWJDb3JlU3VwcG9ydC9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0LmNwcCAgIHwgICA1MCArKysrKy0tLS0tLS0KIC4uLi9xdC9XZWJD
b3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmggIHwgICAzOCArKysrLS0tLS0K
IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx
MSArKysKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCAgICAg
IHwgICAgNiArKwogMTUgZmlsZXMgY2hhbmdlZCwgNDM4IGluc2VydGlvbnMoKyksIDIzMiBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9E
ZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJR
dC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKIGRlbGV0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblBy
b3ZpZGVyUXQuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YTNlNmViLi4zNTI5MDViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsNDAgQEAKIDIwMTEtMDctMTUgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8
a2VubmV0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24gYW5k
IERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcm92aWRlciBpcyBzaGFyZWQgYmV0d2Vl
biBXZWJLaXQxIGFuZCBXZWJLaXQyIGFzIGEgcGFydCBvZiBXZWJDb3JlCisgICAgICAgIGFuZCBt
b2RpZmllZCB0byBub3QgcmVseSBvbiBRT2JqZWN0ICsgc2lnbmFscy4KKworICAgICAgICBUaGUg
Y2xpZW50IGlzIGltcGxlbWVudGVkIGluIFdlYktpdDEgbGF5ZXIgYW5kIGNvbXBpbGVkIGludG8g
V2ViQ29yZSwKKyAgICAgICAgc28gdGhhdCBpcyBjYW4gYmUgdXNlZCBieSBib3RoIFdlYktpdDEg
YW5kIFdlYktpdDIgdW50aWwgd2UgdHVybgorICAgICAgICBXZWJDb3JlIGludG8gaXRzIG93biBs
aWJyYXJ5LgorCisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1v
dGlvblByb3ZpZGVyUXQuY3BwLgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlk
ZXJRdDo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VN
b3Rpb25Qcm92aWRlclF0Ojp+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCk6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzZXRDb250cm9sbGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
TW90aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9EZXZpY2VN
b3Rpb25Qcm92aWRlclF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRldmlj
ZU1vdGlvblByb3ZpZGVyUXQ6OmN1cnJlbnREZXZpY2VNb3Rpb24pOgorICAgICAgICAqIHBsYXRm
b3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpEZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyUXQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0
Ojp+RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3Jl
OjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OmZpbHRlcik6CisgICAgICAgICogcGxhdGZvcm0v
cXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oLgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojppc0FjdGl2ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6Omxhc3RPcmllbnRhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6Omhhc0Fs
cGhhKToKKworMjAxMS0wNy0xNSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRo
QHdlYmtpdC5vcmc+CisKICAgICAgICAgVXBzdHJlYW0gUXRXZWJLaXQvTjkgY2hhbmdlcyByZWxh
dGVkIHRvIHZpc2libGVDb250ZW50UmVjdAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1ODkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5hZWQxMDE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKQEAgLTAsMCArMSw4NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlTW90
aW9uUHJvdmlkZXJRdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RldmljZU1vdGlvblBy
b3ZpZGVyUXQ6OkRldmljZU1vdGlvblByb3ZpZGVyUXQoKQorICAgIDogbV9jb250cm9sbGVyKDAp
CisgICAgLCBtX29yaWVudGF0aW9uUHJvdmlkZXIoYWRvcHRQdHIobmV3IERldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdCgpKSkKK3sKKyAgICBtX3NlbnNvci5hZGRGaWx0ZXIodGhpcyk7CisgICAg
bV9sYXN0TW90aW9uID0gRGV2aWNlTW90aW9uRGF0YTo6Y3JlYXRlKCk7Cit9CisKK0RldmljZU1v
dGlvblByb3ZpZGVyUXQ6On5EZXZpY2VNb3Rpb25Qcm92aWRlclF0KCkKK3sKKyAgICAvLyBUaGUg
c2Vuc29yIGlzIGF1dG9tYXRpY2FsbHkgc3RvcHBlZC4KK30KKwordm9pZCBEZXZpY2VNb3Rpb25Q
cm92aWRlclF0OjpzZXRDb250cm9sbGVyKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xs
ZXIpCit7CisgICAgaWYgKCFjb250cm9sbGVyKQorICAgICAgICBzdG9wKCk7CisKKyAgICBtX2Nv
bnRyb2xsZXIgPSBjb250cm9sbGVyOworfQorCit2b2lkIERldmljZU1vdGlvblByb3ZpZGVyUXQ6
OnN0YXJ0KCkKK3sKKyAgICBtX3NlbnNvci5zdGFydCgpOworICAgIG1fb3JpZW50YXRpb25Qcm92
aWRlci0+c3RhcnQoKTsKK30KKwordm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdG9wKCkK
K3sKKyAgICBtX3NlbnNvci5zdG9wKCk7CisgICAgbV9vcmllbnRhdGlvblByb3ZpZGVyLT5zdG9w
KCk7Cit9CisKK2Jvb2wgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKFFBY2NlbGVyb21l
dGVyUmVhZGluZyogcmVhZGluZykKK3sKKyAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YTo6QWNj
ZWxlcmF0aW9uPiBhY2NlbCA9IERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbjo6Y3JlYXRl
KAorICAgICAgICAgICAgLyogeCBhdmFpbGFibGUgKi8gdHJ1ZSwgLSByZWFkaW5nLT54KCksCisg
ICAgICAgICAgICAvKiB5IGF2YWlsYWJsZSAqLyB0cnVlLCAtIHJlYWRpbmctPnkoKSwKKyAgICAg
ICAgICAgIC8qIHogYXZhaWxhYmxlICovIHRydWUsIC0gcmVhZGluZy0+eigpKTsKKworICAgIGJv
b2wgaGFzQWxwaGEgPSBtX29yaWVudGF0aW9uUHJvdmlkZXItPmhhc0FscGhhKCk7CisgICAgRGV2
aWNlT3JpZW50YXRpb24qIG9yaWVudCA9IG1fb3JpZW50YXRpb25Qcm92aWRlci0+bGFzdE9yaWVu
dGF0aW9uKCk7CisKKyAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YTo6Um90YXRpb25SYXRlPiBy
b3RhdGlvbiA9IERldmljZU1vdGlvbkRhdGE6OlJvdGF0aW9uUmF0ZTo6Y3JlYXRlKAorICAgICAg
ICAgICAgLyogYWxwaGEgYXZhaWxhYmxlICovIGhhc0FscGhhLCBvcmllbnQtPmFscGhhKCksCisg
ICAgICAgICAgICAvKiBiZXRhICBhdmFpbGFibGUgKi8gdHJ1ZSwgb3JpZW50LT5iZXRhKCksCisg
ICAgICAgICAgICAvKiBnYW1tYSBhdmFpbGFibGUgKi8gdHJ1ZSwgb3JpZW50LT5nYW1tYSgpKTsK
KworICAgIG1fbGFzdE1vdGlvbiA9IERldmljZU1vdGlvbkRhdGE6OmNyZWF0ZShhY2NlbCwKKyAg
ICAgICAgICAgIGFjY2VsLCAvKiBGSVhNRTogTmVlZHMgdG8gcHJvdmlkZSBhY2NlbGVyYXRpb24g
aW5jbHVkZSBncmF2aXR5LiAqLworICAgICAgICAgICAgcm90YXRpb24sCisgICAgICAgICAgICBm
YWxzZSwgMCAvKiBUaGUgaW50ZXJ2YWwgaXMgdHJlYXRlZCBpbnRlcm5hbGx5IGJ5IFF0IG1vYmls
aXR5ICovKTsKKworICAgIGlmIChtX2NvbnRyb2xsZXIpCisgICAgICAgIG1fY29udHJvbGxlci0+
ZGlkQ2hhbmdlRGV2aWNlTW90aW9uKG1fbGFzdE1vdGlvbi5nZXQoKSk7CisKKyAgICAvLyBXZSBh
cmUgdGhlIG9ubHkgZmlsdGVyLCBzbyBub3QgbmVlZCB0byBhbGxvdyBwcm9wYWdhdGlvbi4KKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMmEwNjBhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oCkBAIC0w
LDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworI2lmbmRlZiBEZXZpY2VNb3Rpb25Qcm92aWRl
clF0X2gKKyNkZWZpbmUgRGV2aWNlTW90aW9uUHJvdmlkZXJRdF9oCisKKyNpbmNsdWRlICJEZXZp
Y2VNb3Rpb25Db250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0YS5oIgorI2lu
Y2x1ZGUgIkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oIgorI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNpbmNsdWRlIDxRQWNjZWxlcm9tZXRl
ckZpbHRlcj4KKworUVRNX1VTRV9OQU1FU1BBQ0UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0IDogcHVibGljIFFBY2NlbGVyb21ldGVyRmlsdGVy
IHsKK3B1YmxpYzoKKyAgICBEZXZpY2VNb3Rpb25Qcm92aWRlclF0KCk7CisgICAgfkRldmljZU1v
dGlvblByb3ZpZGVyUXQoKTsKKworICAgIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25D
b250cm9sbGVyKik7CisKKyAgICBib29sIGZpbHRlcihRQWNjZWxlcm9tZXRlclJlYWRpbmcqKTsK
KyAgICB2b2lkIHN0YXJ0KCk7CisgICAgdm9pZCBzdG9wKCk7CisgICAgRGV2aWNlTW90aW9uRGF0
YSogY3VycmVudERldmljZU1vdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE1vdGlvbi5nZXQo
KTsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxEZXZpY2VNb3Rpb25EYXRhPiBtX2xhc3RNb3Rp
b247CisKKyAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CisgICAgUUFj
Y2VsZXJvbWV0ZXIgbV9zZW5zb3I7CisKKyAgICBPd25QdHI8RGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0PiBtX29yaWVudGF0aW9uUHJvdmlkZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwN2FjYmEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyUXQuY3BwCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6RGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0KCkKKyAgICA6IG1fY29udHJvbGxlcigwKQoreworICAgIG1f
c2Vuc29yLmFkZEZpbHRlcih0aGlzKTsKKyAgICBtX2xhc3RPcmllbnRhdGlvbiA9IERldmljZU9y
aWVudGF0aW9uOjpjcmVhdGUoKTsKK30KKworRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojp+
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KCkKK3sKKyAgICAvLyBUaGUgc2Vuc29yIGlzIGF1
dG9tYXRpY2FsbHkgc3RvcHBlZC4KK30KKwordm9pZCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVy
UXQ6OnNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVy
KQoreworICAgIGlmICghY29udHJvbGxlcikKKyAgICAgICAgc3RvcCgpOworCisgICAgbV9jb250
cm9sbGVyID0gY29udHJvbGxlcjsKK30KKwordm9pZCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVy
UXQ6OnN0YXJ0KCkKK3sKKyAgICBtX3NlbnNvci5zdGFydCgpOworfQorCit2b2lkIERldmljZU9y
aWVudGF0aW9uUHJvdmlkZXJRdDo6c3RvcCgpCit7CisgICAgbV9zZW5zb3Iuc3RvcCgpOworfQor
Citib29sIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKFFSb3RhdGlvblJlYWRp
bmcqIHJlYWRpbmcpCit7CisgICAgLy8gUHJvdmlkZSBkZXZpY2Ugb3JpZW50YXRpb24gZGF0YSBh
Y2NvcmRpbmcgVzNDIHNwZWM6CisgICAgLy8gaHR0cDovL2Rldi53My5vcmcvZ2VvL2FwaS9zcGVj
LXNvdXJjZS1vcmllbnRhdGlvbi5odG1sCisgICAgLy8gUXQgbW9iaWxpdHkgcHJvdmlkZSB0aGVz
ZSBkYXRhIHZpYSBRUm90YXRpb25TZW5zb3IgdXNpbmcgdGhlCisgICAgLy8gUVJvdGF0aW9uUmVh
ZGluZyBjbGFzczoKKyAgICAvLyAgLSB0aGUgcm90YXRpb24gYXJvdW5kIHogYXhpcyAoYWxwaGEp
IGlzIGdpdmVuIGFzIHogaW4gUVJvdGF0aW9uUmVhZGluZzsKKyAgICAvLyAgLSB0aGUgcm90YXRp
b24gYXJvdW5kIHggYXhpcyAoYmV0YSkgaXMgZ2l2ZW4gYXMgeCBpbiBRUm90YXRpb25SZWFkaW5n
OworICAgIC8vICAtIHRoZSByb3RhdGlvbiBhcm91bmQgeSBheGlzIChnYW1tYSkgaXMgZ2l2ZW4g
YXMgeSBpbiBRUm90YXRpb25SZWFkaW5nOworICAgIC8vIFNlZTogaHR0cDovL2RvYy5xdC5ub2tp
YS5jb20vcXRtb2JpbGl0eS0xLjAvcXJvdGF0aW9ucmVhZGluZy5odG1sCisgICAgLy8gVGhlIFog
KGFscGhhKSByb3RhdGlvbiBhbmdsZSBpcyBjaGVja2VkIHZpYSBoYXNBbHBoYSgpIHByaXZhdGUg
bWV0aG9kLAorICAgIC8vIGRlcGVuZGluZyBpZiB0aGUgZGV2aWNlIGlzIGFibGUgZG8gZGV0ZWN0
IHRoZSBhbHBoYSByb3RhdGlvbi4gWCAoYmV0YSkgYW5kCisgICAgLy8gWSAoZ2FtbWEpIGF4aXMg
YXJlIGF2YWlsYmxlIGluIHRoaXMgY29udGV4dC4KKyAgICBtX2xhc3RPcmllbnRhdGlvbiA9IERl
dmljZU9yaWVudGF0aW9uOjpjcmVhdGUoaGFzQWxwaGEoKSwgcmVhZGluZy0+eigpLAorICAgICAg
ICAgICAgLyogeCBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eCgpLAorICAgICAgICAgICAg
LyogeSBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eSgpKTsKKworICAgIGlmIChtX2NvbnRy
b2xsZXIpCisgICAgICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24o
bV9sYXN0T3JpZW50YXRpb24uZ2V0KCkpOworCisgICAgLy8gV2UgYXJlIHRoZSBvbmx5IGZpbHRl
ciwgc28gbm90IG5lZWQgdG8gYWxsb3cgcHJvcGFnYXRpb24uCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmll
bnRhdGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9y
aWVudGF0aW9uUHJvdmlkZXJRdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmRjMTM2YWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9E
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
CisgKi8KKyNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gKKyNkZWZpbmUgRGV2
aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gKKworI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9u
LmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPFFSb3RhdGlvbkZpbHRlcj4KKworUVRNX1VTRV9OQU1F
U1BBQ0UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyUXQgOiBwdWJsaWMgUVJvdGF0aW9uRmlsdGVyIHsKK3B1YmxpYzoKKyAgICBEZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyUXQoKTsKKyAgICB+RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0
KCk7CisKKyAgICB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
Kik7CisKKyAgICBib29sIGZpbHRlcihRUm90YXRpb25SZWFkaW5nKik7CisgICAgdm9pZCBzdGFy
dCgpOworICAgIHZvaWQgc3RvcCgpOworICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVy
biBtX3NlbnNvci5pc0FjdGl2ZSgpOyB9CisgICAgRGV2aWNlT3JpZW50YXRpb24qIGxhc3RPcmll
bnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE9yaWVudGF0aW9uLmdldCgpOyB9CisgICAg
Ym9vbCBoYXNBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vuc29yLnByb3BlcnR5KCJoYXNaIiku
dG9Cb29sKCk7IH0KKworcHJpdmF0ZToKKyAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb24+IG1f
bGFzdE9yaWVudGF0aW9uOworCisgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBtX2Nv
bnRyb2xsZXI7CisgICAgUVJvdGF0aW9uU2Vuc29yIG1fc2Vuc29yOworfTsKKworfQorCisjZW5k
aWYgLy8gRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdl
LmNwcAppbmRleCBmN2YyZGE4Li41YzFkNTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0
L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3Bw
CkBAIC0zMzcsOCArMzM3LDggQEAgUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUoUVdl
YlBhZ2UgKnFxKQogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBuZXcgRHJhZ0NsaWVudFF0
KHEpOwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBJbnNwZWN0b3JDbGll
bnRRdChxKTsKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIHBhZ2VDbGllbnRz
LmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQo
cSk7Ci0gICAgcGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xpZW50ID0gbmV3IERldmljZU1vdGlv
bkNsaWVudFF0KHEpOworICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0g
bmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ7CisgICAgcGFnZUNsaWVudHMuZGV2aWNlTW90
aW9uQ2xpZW50ID0gbmV3IERldmljZU1vdGlvbkNsaWVudFF0OwogI2VuZGlmCiAjaWYgRU5BQkxF
KENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBpZiAoUVdlYlBhZ2VQcml2YXRlOjpkcnRS
dW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCmluZGV4IGVmMjA2MjkuLjQ0ZDhhYWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMzkgQEAKIDIwMTEtMDctMTUgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8
a2VubmV0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24gYW5k
IERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcm92aWRlciBpcyBzaGFyZWQgYmV0d2Vl
biBXZWJLaXQxIGFuZCBXZWJLaXQyIGFzIGEgcGFydCBvZiBXZWJDb3JlCisgICAgICAgIGFuZCBt
b2RpZmllZCB0byBub3QgcmVseSBvbiBRT2JqZWN0ICsgc2lnbmFscy4KKworICAgICAgICBUaGUg
Y2xpZW50IGlzIGltcGxlbWVudGVkIGluIFdlYktpdDEgbGF5ZXIgYW5kIGNvbXBpbGVkIGludG8g
V2ViQ29yZSwKKyAgICAgICAgc28gdGhhdCBpcyBjYW4gYmUgdXNlZCBieSBib3RoIFdlYktpdDEg
YW5kIFdlYktpdDIgdW50aWwgd2UgdHVybgorICAgICAgICBXZWJDb3JlIGludG8gaXRzIG93biBs
aWJyYXJ5LgorCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFXZWJQYWdl
UHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EZXZp
Y2VNb3Rpb25DbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRldmljZU1vdGlvbkNsaWVu
dFF0Ojp+RGV2aWNlTW90aW9uQ2xpZW50UXQpOgorICAgICAgICAoV2ViS2l0OjpEZXZpY2VNb3Rp
b25DbGllbnRRdDo6ZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCk6CisgICAgICAgIChX
ZWJLaXQ6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzZXRDb250cm9sbGVyKToKKyAgICAgICAgKFdl
YktpdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oOgorICAgICAgICAoV2ViS2l0OjpEZXZp
Y2VNb3Rpb25DbGllbnRRdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQpOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Ojp+RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCk6
CisgICAgICAgIChXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OmRldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50UXQ6OnNldENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViS2l0OjpEZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktpdDo6RGV2
aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktpdDo6
RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVudGF0aW9uKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Lmg6CisgICAgICAgIChXZWJL
aXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQp
OgorCisyMDExLTA3LTE1ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Vi
a2l0Lm9yZz4KKwogICAgICAgICBVcHN0cmVhbSBRdFdlYktpdC9OOSBjaGFuZ2VzIHJlbGF0ZWQg
dG8gdmlzaWJsZUNvbnRlbnRSZWN0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NDU4OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwCmluZGV4IDQ3NjE1MTQuLjQ2Y2Ji
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90
aW9uQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2
aWNlTW90aW9uQ2xpZW50UXQuY3BwCkBAIC0yMCw0MSArMjAsNDMgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25DbGllbnRRdC5oIgogCisjaWYgRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikKKwogI2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJEZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgiCiAKLSNpbmNsdWRlICJxd2VicGFn
ZS5oIgordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25h
bWVzcGFjZSBXZWJLaXQgewogCi1EZXZpY2VNb3Rpb25DbGllbnRRdDo6RGV2aWNlTW90aW9uQ2xp
ZW50UXQoUVdlYlBhZ2UqIHBhZ2UpCi0gICAgOiBtX3BhZ2UocGFnZSkKLSAgICAsIG1fY29udHJv
bGxlcigwKQotICAgICwgbV9wcm92aWRlcihuZXcgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpKQor
RGV2aWNlTW90aW9uQ2xpZW50UXQ6On5EZXZpY2VNb3Rpb25DbGllbnRRdCgpCiB7Ci0KLSAgICBj
b25uZWN0KG1fcHJvdmlkZXIsIFNJR05BTChkZXZpY2VNb3Rpb25DaGFuZ2VkKCkpLCBTTE9UKGNo
YW5nZURldmljZU1vdGlvbigpKSk7CiB9CiAKLURldmljZU1vdGlvbkNsaWVudFF0Ojp+RGV2aWNl
TW90aW9uQ2xpZW50UXQoKQordm9pZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6ZGV2aWNlTW90aW9u
Q29udHJvbGxlckRlc3Ryb3llZCgpCiB7Ci0gICAgZGlzY29ubmVjdCgpOwotICAgIGRlbGV0ZSBt
X3Byb3ZpZGVyOworICAgIGRlbGV0ZSB0aGlzOwogfQogCiB2b2lkIERldmljZU1vdGlvbkNsaWVu
dFF0OjpzZXRDb250cm9sbGVyKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCiB7
Ci0gICAgbV9jb250cm9sbGVyID0gY29udHJvbGxlcjsKKyAgICAvLyBJbml0aWFsaXplIGxhemls
eS4KKyAgICBpZiAoIW1fcHJvdmlkZXIgJiYgY29udHJvbGxlcikKKyAgICAgICAgbV9wcm92aWRl
ciA9IGFkb3B0UHRyKG5ldyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0KTsKKworICAgIG1fcHJvdmlk
ZXItPnNldENvbnRyb2xsZXIoY29udHJvbGxlcik7CiB9CiAKIHZvaWQgRGV2aWNlTW90aW9uQ2xp
ZW50UXQ6OnN0YXJ0VXBkYXRpbmcoKQogewotICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7CisgICAg
aWYgKG1fcHJvdmlkZXIpCisgICAgICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7CiB9CiAKIHZvaWQg
RGV2aWNlTW90aW9uQ2xpZW50UXQ6OnN0b3BVcGRhdGluZygpCiB7Ci0gICAgbV9wcm92aWRlci0+
c3RvcCgpOworICAgIGlmIChtX3Byb3ZpZGVyKQorICAgICAgICBtX3Byb3ZpZGVyLT5zdG9wKCk7
CiB9CiAKIERldmljZU1vdGlvbkRhdGEqIERldmljZU1vdGlvbkNsaWVudFF0OjpjdXJyZW50RGV2
aWNlTW90aW9uKCkgY29uc3QKQEAgLTYyLDE5ICs2NCw2IEBAIERldmljZU1vdGlvbkRhdGEqIERl
dmljZU1vdGlvbkNsaWVudFF0OjpjdXJyZW50RGV2aWNlTW90aW9uKCkgY29uc3QKICAgICByZXR1
cm4gbV9wcm92aWRlci0+Y3VycmVudERldmljZU1vdGlvbigpOwogfQogCi12b2lkIERldmljZU1v
dGlvbkNsaWVudFF0OjpkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVzdHJveWVkKCkKLXsKLSAgICBk
ZWxldGUgdGhpczsKLX0KLQotdm9pZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6Y2hhbmdlRGV2aWNl
TW90aW9uKCkKLXsKLSAgICBpZiAoIW1fY29udHJvbGxlcikKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgbV9jb250cm9sbGVyLT5kaWRDaGFuZ2VEZXZpY2VNb3Rpb24oY3VycmVudERldmljZU1vdGlv
bigpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKLSNpbmNsdWRlICJtb2NfRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwIgorI2VuZGlmIC8vIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmgKaW5kZXggZWE4NDNlMi4uNWFjMTYx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rp
b25DbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNl
TW90aW9uQ2xpZW50UXQuaApAQCAtMjAsMzggKzIwLDM2IEBACiAjaWZuZGVmIERldmljZU1vdGlv
bkNsaWVudFF0X2gKICNkZWZpbmUgRGV2aWNlTW90aW9uQ2xpZW50UXRfaAogCisjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKwogI2luY2x1ZGUgIkRldmljZU1vdGlvbkNsaWVudC5oIgor
I2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEZXZpY2VNb3Rp
b25EYXRhLmgiCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oIgorI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KIAotI2luY2x1ZGUgPFFPYmplY3Q+Ci0KLWNsYXNzIFFXZWJQYWdlOwot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgRGV2aWNl
TW90aW9uUHJvdmlkZXJRdDsKLQotY2xhc3MgRGV2aWNlTW90aW9uQ2xpZW50UXQgOiBwdWJsaWMg
UU9iamVjdCwgcHVibGljIERldmljZU1vdGlvbkNsaWVudCB7Ci0gICAgUV9PQkpFQ1QKK2NsYXNz
IERldmljZU1vdGlvbkNsaWVudFF0IDogcHVibGljIFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgRGV2aWNlTW90aW9uQ2xpZW50UXQoUVdlYlBhZ2UqKTsKKyAgICBE
ZXZpY2VNb3Rpb25DbGllbnRRdCgpIHsgfTsKICAgICB2aXJ0dWFsIH5EZXZpY2VNb3Rpb25DbGll
bnRRdCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29u
dHJvbGxlciopOworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlTW90aW9uQ29udHJv
bGxlckRlc3Ryb3llZCgpOworCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCk7Ci0gICAgdmlydHVhbCBEZXZpY2VNb3Rpb25E
YXRhKiBjdXJyZW50RGV2aWNlTW90aW9uKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGRldmlj
ZU1vdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKIAotcHVibGljIFFfU0xPVFM6Ci0gICAgdm9p
ZCBjaGFuZ2VEZXZpY2VNb3Rpb24oKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkRldmljZU1vdGlv
bkRhdGEqIGN1cnJlbnREZXZpY2VNb3Rpb24oKSBjb25zdDsKIAotcHJpdmF0ZToKLSAgICBRV2Vi
UGFnZSogbV9wYWdlOwotICAgIERldmljZU1vdGlvbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsK
LSAgICBEZXZpY2VNb3Rpb25Qcm92aWRlclF0KiBtX3Byb3ZpZGVyOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRDb250cm9sbGVyKFdlYkNvcmU6OkRldmljZU1vdGlvbkNvbnRyb2xsZXIqKTsKKworICAg
IE93blB0cjxXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0PiBtX3Byb3ZpZGVyOwogfTsK
IAogfSAvLyBuYW1lc3BlY2UgV2ViQ29yZQogCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKwogI2VuZGlmIC8vIERldmljZU1vdGlvbkNsaWVudFF0X2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVy
UXQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjY2Y3Njk3Li4wMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJR
dC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoK
LSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgiCi0K
LSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1EZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0
KCkKLXsKLSAgICBtX2FjY2VsZXJhdGlvbi5hZGRGaWx0ZXIodGhpcyk7Ci0gICAgbV9tb3Rpb24g
PSBEZXZpY2VNb3Rpb25EYXRhOjpjcmVhdGUoKTsKLSAgICBtX2RldmljZU9yaWVudGF0aW9uID0g
bmV3IERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpOwotfQotCi1EZXZpY2VNb3Rpb25Qcm92
aWRlclF0Ojp+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpCi17Ci0gICAgZGVsZXRlIG1fZGV2aWNl
T3JpZW50YXRpb247Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RhcnQoKQot
ewotICAgIG1fYWNjZWxlcmF0aW9uLnN0YXJ0KCk7Ci0gICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+
c3RhcnQoKTsKLX0KLQotdm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdG9wKCkKLXsKLSAg
ICBtX2FjY2VsZXJhdGlvbi5zdG9wKCk7Ci0gICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+c3RvcCgp
OwotfQotCi1ib29sIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OmZpbHRlcihRQWNjZWxlcm9tZXRl
clJlYWRpbmcqIHJlYWRpbmcpCi17Ci0gICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE6OkFjY2Vs
ZXJhdGlvbj4gYWNjZWwgPSBEZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRpb246OmNyZWF0ZSgK
LSAgICAgICAgICAgIC8qIHggYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPngoKSwKLSAgICAg
ICAgICAgIC8qIHkgYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPnkoKSwKLSAgICAgICAgICAg
IC8qIHogYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPnooKSk7Ci0KLSAgICBSZWZQdHI8RGV2
aWNlTW90aW9uRGF0YTo6Um90YXRpb25SYXRlPiByb3RhdGlvbiA9IERldmljZU1vdGlvbkRhdGE6
OlJvdGF0aW9uUmF0ZTo6Y3JlYXRlKAotICAgICAgICAgICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+
aGFzQWxwaGEoKSwgbV9kZXZpY2VPcmllbnRhdGlvbi0+b3JpZW50YXRpb24oKS0+YWxwaGEoKSwK
LSAgICAgICAgICAgIC8qIGJldGEgYXZhaWxhYmxlICovIHRydWUsIG1fZGV2aWNlT3JpZW50YXRp
b24tPm9yaWVudGF0aW9uKCktPmJldGEoKSwKLSAgICAgICAgICAgIC8qIGdhbW1hIGF2YWlsYWJs
ZSAqLyB0cnVlLCBtX2RldmljZU9yaWVudGF0aW9uLT5vcmllbnRhdGlvbigpLT5nYW1tYSgpKTsK
LQotICAgIG1fbW90aW9uID0gRGV2aWNlTW90aW9uRGF0YTo6Y3JlYXRlKGFjY2VsLAotICAgICAg
ICAgICAgYWNjZWwsIC8qIEZJWE1FOiBOZWVkcyB0byBwcm92aWRlIGFjY2VsZXJhdGlvbiBpbmNs
dWRlIGdyYXZpdHkuICovCi0gICAgICAgICAgICByb3RhdGlvbiwKLSAgICAgICAgICAgIGZhbHNl
LCAwIC8qIFRoZSBpbnRlcnZhbCBpcyB0cmVhdGVkIGludGVybmFsbHkgYnkgUXQgbW9iaWxpdHkg
Ki8pOwotCi0gICAgZW1pdCBkZXZpY2VNb3Rpb25DaGFuZ2VkKCk7Ci0KLSAgICByZXR1cm4gZmFs
c2U7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2luY2x1ZGUgIm1vY19EZXZpY2VN
b3Rpb25Qcm92aWRlclF0LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGYzMjAwZDUuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLSNpZm5kZWYgRGV2aWNlTW90aW9uUHJvdmlkZXJRdF9o
Ci0jZGVmaW5lIERldmljZU1vdGlvblByb3ZpZGVyUXRfaAotCi0jaW5jbHVkZSAiRGV2aWNlTW90
aW9uRGF0YS5oIgotI2luY2x1ZGUgIlJlZlB0ci5oIgotCi0jaW5jbHVkZSA8UUFjY2VsZXJvbWV0
ZXJGaWx0ZXI+Ci0jaW5jbHVkZSA8UU9iamVjdD4KLQotUVRNX1VTRV9OQU1FU1BBQ0UKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ7Ci0K
LWNsYXNzIERldmljZU1vdGlvblByb3ZpZGVyUXQgOiBwdWJsaWMgUU9iamVjdCwgcHVibGljIFFB
Y2NlbGVyb21ldGVyRmlsdGVyIHsKLSAgICBRX09CSkVDVAotcHVibGljOgotICAgIERldmljZU1v
dGlvblByb3ZpZGVyUXQoKTsKLSAgICB+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpOwotCi0gICAg
Ym9vbCBmaWx0ZXIoUUFjY2VsZXJvbWV0ZXJSZWFkaW5nKik7Ci0gICAgdm9pZCBzdGFydCgpOwot
ICAgIHZvaWQgc3RvcCgpOwotICAgIERldmljZU1vdGlvbkRhdGEqIGN1cnJlbnREZXZpY2VNb3Rp
b24oKSBjb25zdCB7IHJldHVybiBtX21vdGlvbi5nZXQoKTsgfQotCi1RX1NJR05BTFM6Ci0gICAg
dm9pZCBkZXZpY2VNb3Rpb25DaGFuZ2VkKCk7Ci0KLXByaXZhdGU6Ci0gICAgUmVmUHRyPERldmlj
ZU1vdGlvbkRhdGE+IG1fbW90aW9uOwotICAgIFFBY2NlbGVyb21ldGVyIG1fYWNjZWxlcmF0aW9u
OwotICAgIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCogbV9kZXZpY2VPcmllbnRhdGlvbjsK
LX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIERldmljZU1vdGlvblBy
b3ZpZGVyUXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAKaW5kZXggMDFjYmU3My4uZGZjMWY2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmll
bnRhdGlvbkNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwCkBAIC0yMSw1OSArMjEsNDkgQEAKICNpbmNs
dWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgiCiAKICNpbmNsdWRlICJEZXZpY2VPcmll
bnRhdGlvbkNsaWVudE1vY2tRdC5oIgotI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlci5oIgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisKICNpbmNsdWRlICJEZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKLSNpbmNsdWRlICJxd2VicGFnZS5oIgogCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CiAKLURldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OkRldmljZU9yaWVudGF0aW9uQ2xp
ZW50UXQoUVdlYlBhZ2UqIHBhZ2UpCi0gICAgOiBtX3BhZ2UocGFnZSkKLSAgICAsIG1fY29udHJv
bGxlcigwKQotICAgICwgbV9wcm92aWRlcihuZXcgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0
KCkpCitEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Ojp+RGV2aWNlT3JpZW50YXRpb25DbGllbnRR
dCgpCiB7Ci0gICAgY29ubmVjdChtX3Byb3ZpZGVyLCBTSUdOQUwoZGV2aWNlT3JpZW50YXRpb25D
aGFuZ2VkKERldmljZU9yaWVudGF0aW9uKikpLCBTTE9UKGNoYW5nZURldmljZU9yaWVudGF0aW9u
KERldmljZU9yaWVudGF0aW9uKikpKTsKIH0KIAotRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6
fkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQoKQordm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dFF0OjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQogewotICAgIGRpc2Nv
bm5lY3QoKTsKLSAgICBkZWxldGUgbV9wcm92aWRlcjsKKyAgICBkZWxldGUgdGhpczsKIH0KIAog
dm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzZXRDb250cm9sbGVyKERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKIHsKLSAgICBtX2NvbnRyb2xsZXIgPSBjb250
cm9sbGVyOworICAgIC8vIEluaXRpYWxpemUgbGF6aWx5LgorICAgIGlmICghbV9wcm92aWRlciAm
JiBjb250cm9sbGVyKQorICAgICAgICBtX3Byb3ZpZGVyID0gYWRvcHRQdHIobmV3IERldmljZU9y
aWVudGF0aW9uUHJvdmlkZXJRdCk7CisKKyAgICBtX3Byb3ZpZGVyLT5zZXRDb250cm9sbGVyKGNv
bnRyb2xsZXIpOwogfQogCiB2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnN0YXJ0VXBk
YXRpbmcoKQogewotICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7CisgICAgaWYgKG1fcHJvdmlkZXIp
CisgICAgICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7CiB9CiAKIHZvaWQgRGV2aWNlT3JpZW50YXRp
b25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKCkKIHsKLSAgICBtX3Byb3ZpZGVyLT5zdG9wKCk7Cisg
ICAgaWYgKG1fcHJvdmlkZXIpCisgICAgICAgIG1fcHJvdmlkZXItPnN0b3AoKTsKIH0KIAogRGV2
aWNlT3JpZW50YXRpb24qIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6Omxhc3RPcmllbnRhdGlv
bigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJvdmlkZXItPm9yaWVudGF0aW9uKCk7Ci19Ci0K
LXZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyRGVzdHJveWVkKCkKLXsKLSAgICBkZWxldGUgdGhpczsKLX0KLQotdm9pZCBEZXZpY2VPcmll
bnRhdGlvbkNsaWVudFF0OjpjaGFuZ2VEZXZpY2VPcmllbnRhdGlvbihEZXZpY2VPcmllbnRhdGlv
biogb3JpZW50YXRpb24pCi17Ci0gICAgaWYgKCFtX2NvbnRyb2xsZXIpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24ob3JpZW50
YXRpb24pOworICAgIHJldHVybiAobV9wcm92aWRlcikgPyBtX3Byb3ZpZGVyLT5sYXN0T3JpZW50
YXRpb24oKSA6IDA7CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAogCi0jaW5jbHVkZSAibW9jX0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwIgor
I2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5o
CmluZGV4IDYxOTY4YzQuLjNiMzUxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oCkBAIC0yMCwz
OCArMjAsMzYgQEAKICNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdF9oCiAjZGVmaW5l
IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXRfaAogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKKwogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRGV2aWNl
T3JpZW50YXRpb25DbGllbnQuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKKyNpbmNsdWRl
IDx3dGYvT3duUHRyLmg+CiAKLSNpbmNsdWRlIDxRT2JqZWN0PgotCi1jbGFzcyBRV2ViUGFnZTsK
LQotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIERldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdDsKLQotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnRR
dCA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMgRGV2aWNlT3JpZW50YXRpb25DbGllbnQgewotICAg
IFFfT0JKRUNUCitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0IDogcHVibGljIFdlYkNv
cmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBEZXZpY2VPcmllbnRh
dGlvbkNsaWVudFF0KFFXZWJQYWdlKik7CisgICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCgp
IHsgfQogICAgIHZpcnR1YWwgfkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQoKTsKIAotICAgIHZp
cnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopOwor
cHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVz
dHJveWVkKCk7CisKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZpcnR1
YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKLSAgICB2aXJ0dWFsIERldmljZU9yaWVudGF0aW9uKiBs
YXN0T3JpZW50YXRpb24oKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyRGVzdHJveWVkKCk7CiAKLXB1YmxpYyBRX1NMT1RTOgotICAgIHZvaWQgY2hh
bmdlRGV2aWNlT3JpZW50YXRpb24oRGV2aWNlT3JpZW50YXRpb24qKTsKKyAgICB2aXJ0dWFsIFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdDsKIAotcHJp
dmF0ZToKLSAgICBRV2ViUGFnZSogbV9wYWdlOwotICAgIERldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlciogbV9jb250cm9sbGVyOwotICAgIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCogbV9w
cm92aWRlcjsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIqKTsKKworICAgIE93blB0cjxXZWJDb3JlOjpEZXZpY2VPcmll
bnRhdGlvblByb3ZpZGVyUXQ+IG1fcHJvdmlkZXI7CiB9OwogCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pCiAKICNlbmRpZiAvLyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBjZTUwYTAzLi45ZTczY2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAKIDIw
MTEtMDctMTUgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3Jn
PgogCisgICAgICAgIFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9u
IHdvcmsgd2l0aCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NDU5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCB0aGUgY2xpZW50cyB3aGVuIGNyZWF0aW5nIHRoZSBwYWdlLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorCisyMDExLTA3LTE1ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKwogICAgICAgICBV
cHN0cmVhbSBRdFdlYktpdC9OOSBjaGFuZ2VzIHJlbGF0ZWQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU4OQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
NjU0NDNhYi4uZjBkY2Q3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtMjksNiArMjksOCBAQAogI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgog
I2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJEZWNvZGVyQWRhcHRlci5oIgor
I2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCIKKyNpbmNsdWRlICJEZXZpY2VN
b3Rpb25DbGllbnRRdC5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgiCiAjaW5jbHVkZSAiSW5q
ZWN0ZWRCdW5kbGUuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5o
IgpAQCAtMjExLDYgKzIxMywxMCBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwg
Y29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICNpZiBFTkFCTEUo
SU5TUEVDVE9SKQogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNw
ZWN0b3JDbGllbnQodGhpcyk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KSAmJiBQTEFURk9STShRVCkKKyAgICBwYWdlQ2xpZW50cy5kZXZpY2VPcmllbnRhdGlvbkNsaWVu
dCA9IG5ldyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OworICAgIHBhZ2VDbGllbnRzLmRldmlj
ZU1vdGlvbkNsaWVudCA9IG5ldyBEZXZpY2VNb3Rpb25DbGllbnRRdDsKKyNlbmRpZgogICAgIG1f
cGFnZSA9IGFkb3B0UHRyKG5ldyBQYWdlKHBhZ2VDbGllbnRzKSk7CiAKICAgICAvLyBRdCBkb2Vz
IG5vdCB5ZXQgY2FsbCBzZXRJc0luV2luZG93LiBVbnRpbCBpdCBkb2VzLCBqdXN0IGxlYXZlCi0t
IAoxLjcuMQoK
</data>
<flag name="commit-queue"
          id="95760"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100972</attachid>
            <date>2011-07-15 07:02:07 -0700</date>
            <delta_ts>2011-07-15 07:50:09 -0700</delta_ts>
            <desc>Patch 3</desc>
            <filename>0001-Qt-Make-DeviceMotion-and-DeviceOrientation-work-with.patch</filename>
            <type>text/plain</type>
            <size>34838</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSAyNzE0ZThlNzQyNGMwN2JhOTMyMjM2NTM4OTJhZDA4NTA3NDA2ZjM2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aEB3
ZWJraXQub3JnPgpEYXRlOiBGcmksIDE1IEp1bCAyMDExIDE1OjAzOjUzICswMjAwClN1YmplY3Q6
IFtQQVRDSF0gW1F0XSBNYWtlIERldmljZU1vdGlvbiBhbmQgRGV2aWNlT3JpZW50YXRpb24gd29y
ayB3aXRoIFdlYktpdDIKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NDU5NQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpTb3VyY2UvV2ViQ29yZToKClRoZSBw
cm92aWRlciBpcyBzaGFyZWQgYmV0d2VlbiBXZWJLaXQxIGFuZCBXZWJLaXQyIGFzIGEgcGFydCBv
ZiBXZWJDb3JlCmFuZCBtb2RpZmllZCB0byBub3QgcmVseSBvbiBRT2JqZWN0ICsgc2lnbmFscy4K
ClRoZSBjbGllbnQgaXMgaW1wbGVtZW50ZWQgaW4gV2ViS2l0MSBsYXllciBhbmQgY29tcGlsZWQg
aW50byBXZWJDb3JlLApzbyB0aGF0IGlzIGNhbiBiZSB1c2VkIGJ5IGJvdGggV2ViS2l0MSBhbmQg
V2ViS2l0MiB1bnRpbCB3ZSB0dXJuCldlYkNvcmUgaW50byBpdHMgb3duIGxpYnJhcnkuCgoqIHBs
YXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcC4KKFdl
YkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OkRldmljZU1vdGlvblByb3ZpZGVyUXQpOgoo
V2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6fkRldmljZU1vdGlvblByb3ZpZGVyUXQp
OgooV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcik6CihXZWJD
b3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdGFydCk6CihXZWJDb3JlOjpEZXZpY2VNb3Rp
b25Qcm92aWRlclF0OjpzdG9wKToKKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OmZp
bHRlcik6CiogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0
LmguCihXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpjdXJyZW50RGV2aWNlTW90aW9u
KToKKiBwbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwOiBBZGRlZC4K
KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6RGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0KToKKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6fkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdCk6CihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQ6OnNldENvbnRyb2xsZXIpOgooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
clF0OjpzdGFydCk6CihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0b3Ap
OgooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpmaWx0ZXIpOgoqIHBsYXRm
b3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaC4KKFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6aXNBY3RpdmUpOgooV2ViQ29yZTo6
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpsYXN0T3JpZW50YXRpb24pOgooV2ViQ29yZTo6
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpoYXNBbHBoYSk6CgpTb3VyY2UvV2ViS2l0L3F0
OgoKVGhlIHByb3ZpZGVyIGlzIHNoYXJlZCBiZXR3ZWVuIFdlYktpdDEgYW5kIFdlYktpdDIgYXMg
YSBwYXJ0IG9mIFdlYkNvcmUKYW5kIG1vZGlmaWVkIHRvIG5vdCByZWx5IG9uIFFPYmplY3QgKyBz
aWduYWxzLgoKVGhlIGNsaWVudCBpcyBpbXBsZW1lbnRlZCBpbiBXZWJLaXQxIGxheWVyIGFuZCBj
b21waWxlZCBpbnRvIFdlYkNvcmUsCnNvIHRoYXQgaXMgY2FuIGJlIHVzZWQgYnkgYm90aCBXZWJL
aXQxIGFuZCBXZWJLaXQyIHVudGlsIHdlIHR1cm4KV2ViQ29yZSBpbnRvIGl0cyBvd24gbGlicmFy
eS4KCiogQXBpL3F3ZWJwYWdlLmNwcDoKKFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRl
KToKKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHA6CihXZWJLaXQ6OkRl
dmljZU1vdGlvbkNsaWVudFF0Ojp+RGV2aWNlTW90aW9uQ2xpZW50UXQpOgooV2ViS2l0OjpEZXZp
Y2VNb3Rpb25DbGllbnRRdDo6ZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCk6CihXZWJL
aXQ6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzZXRDb250cm9sbGVyKToKKFdlYktpdDo6RGV2aWNl
TW90aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmcpOgooV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGll
bnRRdDo6c3RvcFVwZGF0aW5nKToKKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRR
dC5oOgooV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQp
OgoqIFdlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwOgooV2ViS2l0
OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Ojp+RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCk6
CihXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OmRldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlckRlc3Ryb3llZCk6CihXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnNl
dENvbnRyb2xsZXIpOgooV2ViS2l0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzdGFydFVw
ZGF0aW5nKToKKFdlYktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5n
KToKKFdlYktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVudGF0aW9uKToK
KiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Lmg6CihXZWJLaXQ6OkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQpOgoKU291
cmNlL1dlYktpdDI6CgpBZGQgdGhlIGNsaWVudHMgd2hlbiBjcmVhdGluZyB0aGUgcGFnZS4KCiog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNSArKysrKysrKwogLi4uL1dlYkNv
cmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgfCAgIDg1ICsrKysrKysr
KysrKysrKysrKysrCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRl
clF0LmggICB8ICAgNTggKysrKysrKysrKysrKwogLi4uL3BsYXRmb3JtL3F0L0RldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJRdC5jcHAgICAgfCAgIDc5ICsrKysrKysrKysrKysrKysrKwogLi4uL3Bs
YXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oICAgICAgfCAgIDU1ICsrKysr
KysrKysrKysKIFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCAgICAgICAgICAgICAg
ICAgIHwgICAgNCArLQogU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDM0ICsrKysrKysrCiAuLi4vcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90
aW9uQ2xpZW50UXQuY3BwICAgICB8ICAgNDcgKysrKy0tLS0tLS0KIC4uLi9xdC9XZWJDb3JlU3Vw
cG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oICAgICAgIHwgICAzNiArKysrLS0tLS0KIC4uLi9x
dC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcCAgIHwgICA3NSAtLS0t
LS0tLS0tLS0tLS0tLQogLi4uL3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVy
UXQuaCAgICAgfCAgIDU3IC0tLS0tLS0tLS0tLS0KIC4uLi9XZWJDb3JlU3VwcG9ydC9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0LmNwcCAgIHwgICA1MCArKysrKy0tLS0tLS0KIC4uLi9xdC9XZWJD
b3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmggIHwgICAzOCArKysrLS0tLS0K
IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx
MSArKysKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCAgICAg
IHwgICAgNiArKwogMTUgZmlsZXMgY2hhbmdlZCwgNDM4IGluc2VydGlvbnMoKyksIDIzMiBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9E
ZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJR
dC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKIGRlbGV0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblBy
b3ZpZGVyUXQuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YTNlNmViLi4zNTI5MDViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsNDAgQEAKIDIwMTEtMDctMTUgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8
a2VubmV0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24gYW5k
IERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcm92aWRlciBpcyBzaGFyZWQgYmV0d2Vl
biBXZWJLaXQxIGFuZCBXZWJLaXQyIGFzIGEgcGFydCBvZiBXZWJDb3JlCisgICAgICAgIGFuZCBt
b2RpZmllZCB0byBub3QgcmVseSBvbiBRT2JqZWN0ICsgc2lnbmFscy4KKworICAgICAgICBUaGUg
Y2xpZW50IGlzIGltcGxlbWVudGVkIGluIFdlYktpdDEgbGF5ZXIgYW5kIGNvbXBpbGVkIGludG8g
V2ViQ29yZSwKKyAgICAgICAgc28gdGhhdCBpcyBjYW4gYmUgdXNlZCBieSBib3RoIFdlYktpdDEg
YW5kIFdlYktpdDIgdW50aWwgd2UgdHVybgorICAgICAgICBXZWJDb3JlIGludG8gaXRzIG93biBs
aWJyYXJ5LgorCisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1v
dGlvblByb3ZpZGVyUXQuY3BwLgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlk
ZXJRdDo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VN
b3Rpb25Qcm92aWRlclF0Ojp+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCk6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzZXRDb250cm9sbGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
TW90aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9EZXZpY2VN
b3Rpb25Qcm92aWRlclF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRldmlj
ZU1vdGlvblByb3ZpZGVyUXQ6OmN1cnJlbnREZXZpY2VNb3Rpb24pOgorICAgICAgICAqIHBsYXRm
b3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpEZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyUXQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0
Ojp+RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3Jl
OjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OmZpbHRlcik6CisgICAgICAgICogcGxhdGZvcm0v
cXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oLgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojppc0FjdGl2ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6Omxhc3RPcmllbnRhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6Omhhc0Fs
cGhhKToKKworMjAxMS0wNy0xNSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRo
QHdlYmtpdC5vcmc+CisKICAgICAgICAgVXBzdHJlYW0gUXRXZWJLaXQvTjkgY2hhbmdlcyByZWxh
dGVkIHRvIHZpc2libGVDb250ZW50UmVjdAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1ODkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5hZWQxMDE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKQEAgLTAsMCArMSw4NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlTW90
aW9uUHJvdmlkZXJRdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RldmljZU1vdGlvblBy
b3ZpZGVyUXQ6OkRldmljZU1vdGlvblByb3ZpZGVyUXQoKQorICAgIDogbV9jb250cm9sbGVyKDAp
CisgICAgLCBtX29yaWVudGF0aW9uUHJvdmlkZXIoYWRvcHRQdHIobmV3IERldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdCgpKSkKK3sKKyAgICBtX3NlbnNvci5hZGRGaWx0ZXIodGhpcyk7CisgICAg
bV9sYXN0TW90aW9uID0gRGV2aWNlTW90aW9uRGF0YTo6Y3JlYXRlKCk7Cit9CisKK0RldmljZU1v
dGlvblByb3ZpZGVyUXQ6On5EZXZpY2VNb3Rpb25Qcm92aWRlclF0KCkKK3sKKyAgICAvLyBUaGUg
c2Vuc29yIGlzIGF1dG9tYXRpY2FsbHkgc3RvcHBlZC4KK30KKwordm9pZCBEZXZpY2VNb3Rpb25Q
cm92aWRlclF0OjpzZXRDb250cm9sbGVyKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xs
ZXIpCit7CisgICAgaWYgKCFjb250cm9sbGVyKQorICAgICAgICBzdG9wKCk7CisKKyAgICBtX2Nv
bnRyb2xsZXIgPSBjb250cm9sbGVyOworfQorCit2b2lkIERldmljZU1vdGlvblByb3ZpZGVyUXQ6
OnN0YXJ0KCkKK3sKKyAgICBtX3NlbnNvci5zdGFydCgpOworICAgIG1fb3JpZW50YXRpb25Qcm92
aWRlci0+c3RhcnQoKTsKK30KKwordm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdG9wKCkK
K3sKKyAgICBtX3NlbnNvci5zdG9wKCk7CisgICAgbV9vcmllbnRhdGlvblByb3ZpZGVyLT5zdG9w
KCk7Cit9CisKK2Jvb2wgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKFFBY2NlbGVyb21l
dGVyUmVhZGluZyogcmVhZGluZykKK3sKKyAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YTo6QWNj
ZWxlcmF0aW9uPiBhY2NlbCA9IERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbjo6Y3JlYXRl
KAorICAgICAgICAgICAgLyogeCBhdmFpbGFibGUgKi8gdHJ1ZSwgLSByZWFkaW5nLT54KCksCisg
ICAgICAgICAgICAvKiB5IGF2YWlsYWJsZSAqLyB0cnVlLCAtIHJlYWRpbmctPnkoKSwKKyAgICAg
ICAgICAgIC8qIHogYXZhaWxhYmxlICovIHRydWUsIC0gcmVhZGluZy0+eigpKTsKKworICAgIGJv
b2wgaGFzQWxwaGEgPSBtX29yaWVudGF0aW9uUHJvdmlkZXItPmhhc0FscGhhKCk7CisgICAgRGV2
aWNlT3JpZW50YXRpb24qIG9yaWVudCA9IG1fb3JpZW50YXRpb25Qcm92aWRlci0+bGFzdE9yaWVu
dGF0aW9uKCk7CisKKyAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YTo6Um90YXRpb25SYXRlPiBy
b3RhdGlvbiA9IERldmljZU1vdGlvbkRhdGE6OlJvdGF0aW9uUmF0ZTo6Y3JlYXRlKAorICAgICAg
ICAgICAgLyogYWxwaGEgYXZhaWxhYmxlICovIGhhc0FscGhhLCBvcmllbnQtPmFscGhhKCksCisg
ICAgICAgICAgICAvKiBiZXRhICBhdmFpbGFibGUgKi8gdHJ1ZSwgb3JpZW50LT5iZXRhKCksCisg
ICAgICAgICAgICAvKiBnYW1tYSBhdmFpbGFibGUgKi8gdHJ1ZSwgb3JpZW50LT5nYW1tYSgpKTsK
KworICAgIG1fbGFzdE1vdGlvbiA9IERldmljZU1vdGlvbkRhdGE6OmNyZWF0ZShhY2NlbCwKKyAg
ICAgICAgICAgIGFjY2VsLCAvKiBGSVhNRTogTmVlZHMgdG8gcHJvdmlkZSBhY2NlbGVyYXRpb24g
aW5jbHVkZSBncmF2aXR5LiAqLworICAgICAgICAgICAgcm90YXRpb24sCisgICAgICAgICAgICBm
YWxzZSwgMCAvKiBUaGUgaW50ZXJ2YWwgaXMgdHJlYXRlZCBpbnRlcm5hbGx5IGJ5IFF0IG1vYmls
aXR5ICovKTsKKworICAgIGlmIChtX2NvbnRyb2xsZXIpCisgICAgICAgIG1fY29udHJvbGxlci0+
ZGlkQ2hhbmdlRGV2aWNlTW90aW9uKG1fbGFzdE1vdGlvbi5nZXQoKSk7CisKKyAgICAvLyBXZSBh
cmUgdGhlIG9ubHkgZmlsdGVyLCBzbyBub3QgbmVlZCB0byBhbGxvdyBwcm9wYWdhdGlvbi4KKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMmEwNjBhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oCkBAIC0w
LDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworI2lmbmRlZiBEZXZpY2VNb3Rpb25Qcm92aWRl
clF0X2gKKyNkZWZpbmUgRGV2aWNlTW90aW9uUHJvdmlkZXJRdF9oCisKKyNpbmNsdWRlICJEZXZp
Y2VNb3Rpb25Db250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0YS5oIgorI2lu
Y2x1ZGUgIkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oIgorI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNpbmNsdWRlIDxRQWNjZWxlcm9tZXRl
ckZpbHRlcj4KKworUVRNX1VTRV9OQU1FU1BBQ0UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0IDogcHVibGljIFFBY2NlbGVyb21ldGVyRmlsdGVy
IHsKK3B1YmxpYzoKKyAgICBEZXZpY2VNb3Rpb25Qcm92aWRlclF0KCk7CisgICAgfkRldmljZU1v
dGlvblByb3ZpZGVyUXQoKTsKKworICAgIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25D
b250cm9sbGVyKik7CisKKyAgICBib29sIGZpbHRlcihRQWNjZWxlcm9tZXRlclJlYWRpbmcqKTsK
KyAgICB2b2lkIHN0YXJ0KCk7CisgICAgdm9pZCBzdG9wKCk7CisgICAgRGV2aWNlTW90aW9uRGF0
YSogY3VycmVudERldmljZU1vdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE1vdGlvbi5nZXQo
KTsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxEZXZpY2VNb3Rpb25EYXRhPiBtX2xhc3RNb3Rp
b247CisKKyAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CisgICAgUUFj
Y2VsZXJvbWV0ZXIgbV9zZW5zb3I7CisKKyAgICBPd25QdHI8RGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0PiBtX29yaWVudGF0aW9uUHJvdmlkZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwN2FjYmEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyUXQuY3BwCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6RGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0KCkKKyAgICA6IG1fY29udHJvbGxlcigwKQoreworICAgIG1f
c2Vuc29yLmFkZEZpbHRlcih0aGlzKTsKKyAgICBtX2xhc3RPcmllbnRhdGlvbiA9IERldmljZU9y
aWVudGF0aW9uOjpjcmVhdGUoKTsKK30KKworRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojp+
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KCkKK3sKKyAgICAvLyBUaGUgc2Vuc29yIGlzIGF1
dG9tYXRpY2FsbHkgc3RvcHBlZC4KK30KKwordm9pZCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVy
UXQ6OnNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVy
KQoreworICAgIGlmICghY29udHJvbGxlcikKKyAgICAgICAgc3RvcCgpOworCisgICAgbV9jb250
cm9sbGVyID0gY29udHJvbGxlcjsKK30KKwordm9pZCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVy
UXQ6OnN0YXJ0KCkKK3sKKyAgICBtX3NlbnNvci5zdGFydCgpOworfQorCit2b2lkIERldmljZU9y
aWVudGF0aW9uUHJvdmlkZXJRdDo6c3RvcCgpCit7CisgICAgbV9zZW5zb3Iuc3RvcCgpOworfQor
Citib29sIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKFFSb3RhdGlvblJlYWRp
bmcqIHJlYWRpbmcpCit7CisgICAgLy8gUHJvdmlkZSBkZXZpY2Ugb3JpZW50YXRpb24gZGF0YSBh
Y2NvcmRpbmcgVzNDIHNwZWM6CisgICAgLy8gaHR0cDovL2Rldi53My5vcmcvZ2VvL2FwaS9zcGVj
LXNvdXJjZS1vcmllbnRhdGlvbi5odG1sCisgICAgLy8gUXQgbW9iaWxpdHkgcHJvdmlkZSB0aGVz
ZSBkYXRhIHZpYSBRUm90YXRpb25TZW5zb3IgdXNpbmcgdGhlCisgICAgLy8gUVJvdGF0aW9uUmVh
ZGluZyBjbGFzczoKKyAgICAvLyAgLSB0aGUgcm90YXRpb24gYXJvdW5kIHogYXhpcyAoYWxwaGEp
IGlzIGdpdmVuIGFzIHogaW4gUVJvdGF0aW9uUmVhZGluZzsKKyAgICAvLyAgLSB0aGUgcm90YXRp
b24gYXJvdW5kIHggYXhpcyAoYmV0YSkgaXMgZ2l2ZW4gYXMgeCBpbiBRUm90YXRpb25SZWFkaW5n
OworICAgIC8vICAtIHRoZSByb3RhdGlvbiBhcm91bmQgeSBheGlzIChnYW1tYSkgaXMgZ2l2ZW4g
YXMgeSBpbiBRUm90YXRpb25SZWFkaW5nOworICAgIC8vIFNlZTogaHR0cDovL2RvYy5xdC5ub2tp
YS5jb20vcXRtb2JpbGl0eS0xLjAvcXJvdGF0aW9ucmVhZGluZy5odG1sCisgICAgLy8gVGhlIFog
KGFscGhhKSByb3RhdGlvbiBhbmdsZSBpcyBjaGVja2VkIHZpYSBoYXNBbHBoYSgpIHByaXZhdGUg
bWV0aG9kLAorICAgIC8vIGRlcGVuZGluZyBpZiB0aGUgZGV2aWNlIGlzIGFibGUgZG8gZGV0ZWN0
IHRoZSBhbHBoYSByb3RhdGlvbi4gWCAoYmV0YSkgYW5kCisgICAgLy8gWSAoZ2FtbWEpIGF4aXMg
YXJlIGF2YWlsYmxlIGluIHRoaXMgY29udGV4dC4KKyAgICBtX2xhc3RPcmllbnRhdGlvbiA9IERl
dmljZU9yaWVudGF0aW9uOjpjcmVhdGUoaGFzQWxwaGEoKSwgcmVhZGluZy0+eigpLAorICAgICAg
ICAgICAgLyogeCBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eCgpLAorICAgICAgICAgICAg
LyogeSBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eSgpKTsKKworICAgIGlmIChtX2NvbnRy
b2xsZXIpCisgICAgICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24o
bV9sYXN0T3JpZW50YXRpb24uZ2V0KCkpOworCisgICAgLy8gV2UgYXJlIHRoZSBvbmx5IGZpbHRl
ciwgc28gbm90IG5lZWQgdG8gYWxsb3cgcHJvcGFnYXRpb24uCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmll
bnRhdGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9y
aWVudGF0aW9uUHJvdmlkZXJRdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmZhOGI5NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9E
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
CisgKi8KKyNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gKKyNkZWZpbmUgRGV2
aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gKKworI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9u
LmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCisjaW5jbHVkZSA8
UVJvdGF0aW9uRmlsdGVyPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworUVRNX1VTRV9OQU1F
U1BBQ0UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyUXQgOiBwdWJsaWMgUVJvdGF0aW9uRmlsdGVyIHsKK3B1YmxpYzoKKyAgICBEZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyUXQoKTsKKyAgICB+RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0
KCk7CisKKyAgICB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
Kik7CisKKyAgICBib29sIGZpbHRlcihRUm90YXRpb25SZWFkaW5nKik7CisgICAgdm9pZCBzdGFy
dCgpOworICAgIHZvaWQgc3RvcCgpOworICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVy
biBtX3NlbnNvci5pc0FjdGl2ZSgpOyB9CisgICAgRGV2aWNlT3JpZW50YXRpb24qIGxhc3RPcmll
bnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE9yaWVudGF0aW9uLmdldCgpOyB9CisgICAg
Ym9vbCBoYXNBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vuc29yLnByb3BlcnR5KCJoYXNaIiku
dG9Cb29sKCk7IH0KKworcHJpdmF0ZToKKyAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb24+IG1f
bGFzdE9yaWVudGF0aW9uOworCisgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBtX2Nv
bnRyb2xsZXI7CisgICAgUVJvdGF0aW9uU2Vuc29yIG1fc2Vuc29yOworfTsKKworfQorCisjZW5k
aWYgLy8gRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdl
LmNwcAppbmRleCBmN2YyZGE4Li41YzFkNTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0
L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3Bw
CkBAIC0zMzcsOCArMzM3LDggQEAgUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUoUVdl
YlBhZ2UgKnFxKQogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBuZXcgRHJhZ0NsaWVudFF0
KHEpOwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBJbnNwZWN0b3JDbGll
bnRRdChxKTsKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIHBhZ2VDbGllbnRz
LmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQo
cSk7Ci0gICAgcGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xpZW50ID0gbmV3IERldmljZU1vdGlv
bkNsaWVudFF0KHEpOworICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0g
bmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ7CisgICAgcGFnZUNsaWVudHMuZGV2aWNlTW90
aW9uQ2xpZW50ID0gbmV3IERldmljZU1vdGlvbkNsaWVudFF0OwogI2VuZGlmCiAjaWYgRU5BQkxF
KENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBpZiAoUVdlYlBhZ2VQcml2YXRlOjpkcnRS
dW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCmluZGV4IGVmMjA2MjkuLjQ0ZDhhYWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMzkgQEAKIDIwMTEtMDctMTUgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8
a2VubmV0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24gYW5k
IERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcm92aWRlciBpcyBzaGFyZWQgYmV0d2Vl
biBXZWJLaXQxIGFuZCBXZWJLaXQyIGFzIGEgcGFydCBvZiBXZWJDb3JlCisgICAgICAgIGFuZCBt
b2RpZmllZCB0byBub3QgcmVseSBvbiBRT2JqZWN0ICsgc2lnbmFscy4KKworICAgICAgICBUaGUg
Y2xpZW50IGlzIGltcGxlbWVudGVkIGluIFdlYktpdDEgbGF5ZXIgYW5kIGNvbXBpbGVkIGludG8g
V2ViQ29yZSwKKyAgICAgICAgc28gdGhhdCBpcyBjYW4gYmUgdXNlZCBieSBib3RoIFdlYktpdDEg
YW5kIFdlYktpdDIgdW50aWwgd2UgdHVybgorICAgICAgICBXZWJDb3JlIGludG8gaXRzIG93biBs
aWJyYXJ5LgorCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFXZWJQYWdl
UHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EZXZp
Y2VNb3Rpb25DbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRldmljZU1vdGlvbkNsaWVu
dFF0Ojp+RGV2aWNlTW90aW9uQ2xpZW50UXQpOgorICAgICAgICAoV2ViS2l0OjpEZXZpY2VNb3Rp
b25DbGllbnRRdDo6ZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCk6CisgICAgICAgIChX
ZWJLaXQ6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzZXRDb250cm9sbGVyKToKKyAgICAgICAgKFdl
YktpdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oOgorICAgICAgICAoV2ViS2l0OjpEZXZp
Y2VNb3Rpb25DbGllbnRRdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQpOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Ojp+RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCk6
CisgICAgICAgIChXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OmRldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50UXQ6OnNldENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViS2l0OjpEZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktpdDo6RGV2
aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktpdDo6
RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVudGF0aW9uKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Lmg6CisgICAgICAgIChXZWJL
aXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQp
OgorCisyMDExLTA3LTE1ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Vi
a2l0Lm9yZz4KKwogICAgICAgICBVcHN0cmVhbSBRdFdlYktpdC9OOSBjaGFuZ2VzIHJlbGF0ZWQg
dG8gdmlzaWJsZUNvbnRlbnRSZWN0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NDU4OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwCmluZGV4IDQ3NjE1MTQuLjQ2Y2Ji
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90
aW9uQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2
aWNlTW90aW9uQ2xpZW50UXQuY3BwCkBAIC0yMCw0MSArMjAsNDMgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25DbGllbnRRdC5oIgogCisjaWYgRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikKKwogI2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJEZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgiCiAKLSNpbmNsdWRlICJxd2VicGFn
ZS5oIgordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25h
bWVzcGFjZSBXZWJLaXQgewogCi1EZXZpY2VNb3Rpb25DbGllbnRRdDo6RGV2aWNlTW90aW9uQ2xp
ZW50UXQoUVdlYlBhZ2UqIHBhZ2UpCi0gICAgOiBtX3BhZ2UocGFnZSkKLSAgICAsIG1fY29udHJv
bGxlcigwKQotICAgICwgbV9wcm92aWRlcihuZXcgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpKQor
RGV2aWNlTW90aW9uQ2xpZW50UXQ6On5EZXZpY2VNb3Rpb25DbGllbnRRdCgpCiB7Ci0KLSAgICBj
b25uZWN0KG1fcHJvdmlkZXIsIFNJR05BTChkZXZpY2VNb3Rpb25DaGFuZ2VkKCkpLCBTTE9UKGNo
YW5nZURldmljZU1vdGlvbigpKSk7CiB9CiAKLURldmljZU1vdGlvbkNsaWVudFF0Ojp+RGV2aWNl
TW90aW9uQ2xpZW50UXQoKQordm9pZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6ZGV2aWNlTW90aW9u
Q29udHJvbGxlckRlc3Ryb3llZCgpCiB7Ci0gICAgZGlzY29ubmVjdCgpOwotICAgIGRlbGV0ZSBt
X3Byb3ZpZGVyOworICAgIGRlbGV0ZSB0aGlzOwogfQogCiB2b2lkIERldmljZU1vdGlvbkNsaWVu
dFF0OjpzZXRDb250cm9sbGVyKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCiB7
Ci0gICAgbV9jb250cm9sbGVyID0gY29udHJvbGxlcjsKKyAgICAvLyBJbml0aWFsaXplIGxhemls
eS4KKyAgICBpZiAoIW1fcHJvdmlkZXIgJiYgY29udHJvbGxlcikKKyAgICAgICAgbV9wcm92aWRl
ciA9IGFkb3B0UHRyKG5ldyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0KTsKKworICAgIG1fcHJvdmlk
ZXItPnNldENvbnRyb2xsZXIoY29udHJvbGxlcik7CiB9CiAKIHZvaWQgRGV2aWNlTW90aW9uQ2xp
ZW50UXQ6OnN0YXJ0VXBkYXRpbmcoKQogewotICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7CisgICAg
aWYgKG1fcHJvdmlkZXIpCisgICAgICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7CiB9CiAKIHZvaWQg
RGV2aWNlTW90aW9uQ2xpZW50UXQ6OnN0b3BVcGRhdGluZygpCiB7Ci0gICAgbV9wcm92aWRlci0+
c3RvcCgpOworICAgIGlmIChtX3Byb3ZpZGVyKQorICAgICAgICBtX3Byb3ZpZGVyLT5zdG9wKCk7
CiB9CiAKIERldmljZU1vdGlvbkRhdGEqIERldmljZU1vdGlvbkNsaWVudFF0OjpjdXJyZW50RGV2
aWNlTW90aW9uKCkgY29uc3QKQEAgLTYyLDE5ICs2NCw2IEBAIERldmljZU1vdGlvbkRhdGEqIERl
dmljZU1vdGlvbkNsaWVudFF0OjpjdXJyZW50RGV2aWNlTW90aW9uKCkgY29uc3QKICAgICByZXR1
cm4gbV9wcm92aWRlci0+Y3VycmVudERldmljZU1vdGlvbigpOwogfQogCi12b2lkIERldmljZU1v
dGlvbkNsaWVudFF0OjpkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVzdHJveWVkKCkKLXsKLSAgICBk
ZWxldGUgdGhpczsKLX0KLQotdm9pZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6Y2hhbmdlRGV2aWNl
TW90aW9uKCkKLXsKLSAgICBpZiAoIW1fY29udHJvbGxlcikKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgbV9jb250cm9sbGVyLT5kaWRDaGFuZ2VEZXZpY2VNb3Rpb24oY3VycmVudERldmljZU1vdGlv
bigpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKLSNpbmNsdWRlICJtb2NfRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwIgorI2VuZGlmIC8vIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmgKaW5kZXggZWE4NDNlMi4uNWFjMTYx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rp
b25DbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNl
TW90aW9uQ2xpZW50UXQuaApAQCAtMjAsMzggKzIwLDM2IEBACiAjaWZuZGVmIERldmljZU1vdGlv
bkNsaWVudFF0X2gKICNkZWZpbmUgRGV2aWNlTW90aW9uQ2xpZW50UXRfaAogCisjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKwogI2luY2x1ZGUgIkRldmljZU1vdGlvbkNsaWVudC5oIgor
I2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEZXZpY2VNb3Rp
b25EYXRhLmgiCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oIgorI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KIAotI2luY2x1ZGUgPFFPYmplY3Q+Ci0KLWNsYXNzIFFXZWJQYWdlOwot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgRGV2aWNl
TW90aW9uUHJvdmlkZXJRdDsKLQotY2xhc3MgRGV2aWNlTW90aW9uQ2xpZW50UXQgOiBwdWJsaWMg
UU9iamVjdCwgcHVibGljIERldmljZU1vdGlvbkNsaWVudCB7Ci0gICAgUV9PQkpFQ1QKK2NsYXNz
IERldmljZU1vdGlvbkNsaWVudFF0IDogcHVibGljIFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgRGV2aWNlTW90aW9uQ2xpZW50UXQoUVdlYlBhZ2UqKTsKKyAgICBE
ZXZpY2VNb3Rpb25DbGllbnRRdCgpIHsgfTsKICAgICB2aXJ0dWFsIH5EZXZpY2VNb3Rpb25DbGll
bnRRdCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29u
dHJvbGxlciopOworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlTW90aW9uQ29udHJv
bGxlckRlc3Ryb3llZCgpOworCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCk7Ci0gICAgdmlydHVhbCBEZXZpY2VNb3Rpb25E
YXRhKiBjdXJyZW50RGV2aWNlTW90aW9uKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGRldmlj
ZU1vdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKIAotcHVibGljIFFfU0xPVFM6Ci0gICAgdm9p
ZCBjaGFuZ2VEZXZpY2VNb3Rpb24oKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkRldmljZU1vdGlv
bkRhdGEqIGN1cnJlbnREZXZpY2VNb3Rpb24oKSBjb25zdDsKIAotcHJpdmF0ZToKLSAgICBRV2Vi
UGFnZSogbV9wYWdlOwotICAgIERldmljZU1vdGlvbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsK
LSAgICBEZXZpY2VNb3Rpb25Qcm92aWRlclF0KiBtX3Byb3ZpZGVyOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRDb250cm9sbGVyKFdlYkNvcmU6OkRldmljZU1vdGlvbkNvbnRyb2xsZXIqKTsKKworICAg
IE93blB0cjxXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0PiBtX3Byb3ZpZGVyOwogfTsK
IAogfSAvLyBuYW1lc3BlY2UgV2ViQ29yZQogCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKwogI2VuZGlmIC8vIERldmljZU1vdGlvbkNsaWVudFF0X2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVy
UXQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjY2Y3Njk3Li4wMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJR
dC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoK
LSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgiCi0K
LSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1EZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0
KCkKLXsKLSAgICBtX2FjY2VsZXJhdGlvbi5hZGRGaWx0ZXIodGhpcyk7Ci0gICAgbV9tb3Rpb24g
PSBEZXZpY2VNb3Rpb25EYXRhOjpjcmVhdGUoKTsKLSAgICBtX2RldmljZU9yaWVudGF0aW9uID0g
bmV3IERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpOwotfQotCi1EZXZpY2VNb3Rpb25Qcm92
aWRlclF0Ojp+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpCi17Ci0gICAgZGVsZXRlIG1fZGV2aWNl
T3JpZW50YXRpb247Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RhcnQoKQot
ewotICAgIG1fYWNjZWxlcmF0aW9uLnN0YXJ0KCk7Ci0gICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+
c3RhcnQoKTsKLX0KLQotdm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdG9wKCkKLXsKLSAg
ICBtX2FjY2VsZXJhdGlvbi5zdG9wKCk7Ci0gICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+c3RvcCgp
OwotfQotCi1ib29sIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OmZpbHRlcihRQWNjZWxlcm9tZXRl
clJlYWRpbmcqIHJlYWRpbmcpCi17Ci0gICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE6OkFjY2Vs
ZXJhdGlvbj4gYWNjZWwgPSBEZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRpb246OmNyZWF0ZSgK
LSAgICAgICAgICAgIC8qIHggYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPngoKSwKLSAgICAg
ICAgICAgIC8qIHkgYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPnkoKSwKLSAgICAgICAgICAg
IC8qIHogYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPnooKSk7Ci0KLSAgICBSZWZQdHI8RGV2
aWNlTW90aW9uRGF0YTo6Um90YXRpb25SYXRlPiByb3RhdGlvbiA9IERldmljZU1vdGlvbkRhdGE6
OlJvdGF0aW9uUmF0ZTo6Y3JlYXRlKAotICAgICAgICAgICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+
aGFzQWxwaGEoKSwgbV9kZXZpY2VPcmllbnRhdGlvbi0+b3JpZW50YXRpb24oKS0+YWxwaGEoKSwK
LSAgICAgICAgICAgIC8qIGJldGEgYXZhaWxhYmxlICovIHRydWUsIG1fZGV2aWNlT3JpZW50YXRp
b24tPm9yaWVudGF0aW9uKCktPmJldGEoKSwKLSAgICAgICAgICAgIC8qIGdhbW1hIGF2YWlsYWJs
ZSAqLyB0cnVlLCBtX2RldmljZU9yaWVudGF0aW9uLT5vcmllbnRhdGlvbigpLT5nYW1tYSgpKTsK
LQotICAgIG1fbW90aW9uID0gRGV2aWNlTW90aW9uRGF0YTo6Y3JlYXRlKGFjY2VsLAotICAgICAg
ICAgICAgYWNjZWwsIC8qIEZJWE1FOiBOZWVkcyB0byBwcm92aWRlIGFjY2VsZXJhdGlvbiBpbmNs
dWRlIGdyYXZpdHkuICovCi0gICAgICAgICAgICByb3RhdGlvbiwKLSAgICAgICAgICAgIGZhbHNl
LCAwIC8qIFRoZSBpbnRlcnZhbCBpcyB0cmVhdGVkIGludGVybmFsbHkgYnkgUXQgbW9iaWxpdHkg
Ki8pOwotCi0gICAgZW1pdCBkZXZpY2VNb3Rpb25DaGFuZ2VkKCk7Ci0KLSAgICByZXR1cm4gZmFs
c2U7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2luY2x1ZGUgIm1vY19EZXZpY2VN
b3Rpb25Qcm92aWRlclF0LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGYzMjAwZDUuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLSNpZm5kZWYgRGV2aWNlTW90aW9uUHJvdmlkZXJRdF9o
Ci0jZGVmaW5lIERldmljZU1vdGlvblByb3ZpZGVyUXRfaAotCi0jaW5jbHVkZSAiRGV2aWNlTW90
aW9uRGF0YS5oIgotI2luY2x1ZGUgIlJlZlB0ci5oIgotCi0jaW5jbHVkZSA8UUFjY2VsZXJvbWV0
ZXJGaWx0ZXI+Ci0jaW5jbHVkZSA8UU9iamVjdD4KLQotUVRNX1VTRV9OQU1FU1BBQ0UKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ7Ci0K
LWNsYXNzIERldmljZU1vdGlvblByb3ZpZGVyUXQgOiBwdWJsaWMgUU9iamVjdCwgcHVibGljIFFB
Y2NlbGVyb21ldGVyRmlsdGVyIHsKLSAgICBRX09CSkVDVAotcHVibGljOgotICAgIERldmljZU1v
dGlvblByb3ZpZGVyUXQoKTsKLSAgICB+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpOwotCi0gICAg
Ym9vbCBmaWx0ZXIoUUFjY2VsZXJvbWV0ZXJSZWFkaW5nKik7Ci0gICAgdm9pZCBzdGFydCgpOwot
ICAgIHZvaWQgc3RvcCgpOwotICAgIERldmljZU1vdGlvbkRhdGEqIGN1cnJlbnREZXZpY2VNb3Rp
b24oKSBjb25zdCB7IHJldHVybiBtX21vdGlvbi5nZXQoKTsgfQotCi1RX1NJR05BTFM6Ci0gICAg
dm9pZCBkZXZpY2VNb3Rpb25DaGFuZ2VkKCk7Ci0KLXByaXZhdGU6Ci0gICAgUmVmUHRyPERldmlj
ZU1vdGlvbkRhdGE+IG1fbW90aW9uOwotICAgIFFBY2NlbGVyb21ldGVyIG1fYWNjZWxlcmF0aW9u
OwotICAgIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCogbV9kZXZpY2VPcmllbnRhdGlvbjsK
LX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIERldmljZU1vdGlvblBy
b3ZpZGVyUXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAKaW5kZXggMDFjYmU3My4uZGZjMWY2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmll
bnRhdGlvbkNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwCkBAIC0yMSw1OSArMjEsNDkgQEAKICNpbmNs
dWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgiCiAKICNpbmNsdWRlICJEZXZpY2VPcmll
bnRhdGlvbkNsaWVudE1vY2tRdC5oIgotI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlci5oIgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisKICNpbmNsdWRlICJEZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKLSNpbmNsdWRlICJxd2VicGFnZS5oIgogCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CiAKLURldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OkRldmljZU9yaWVudGF0aW9uQ2xp
ZW50UXQoUVdlYlBhZ2UqIHBhZ2UpCi0gICAgOiBtX3BhZ2UocGFnZSkKLSAgICAsIG1fY29udHJv
bGxlcigwKQotICAgICwgbV9wcm92aWRlcihuZXcgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0
KCkpCitEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Ojp+RGV2aWNlT3JpZW50YXRpb25DbGllbnRR
dCgpCiB7Ci0gICAgY29ubmVjdChtX3Byb3ZpZGVyLCBTSUdOQUwoZGV2aWNlT3JpZW50YXRpb25D
aGFuZ2VkKERldmljZU9yaWVudGF0aW9uKikpLCBTTE9UKGNoYW5nZURldmljZU9yaWVudGF0aW9u
KERldmljZU9yaWVudGF0aW9uKikpKTsKIH0KIAotRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6
fkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQoKQordm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dFF0OjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQogewotICAgIGRpc2Nv
bm5lY3QoKTsKLSAgICBkZWxldGUgbV9wcm92aWRlcjsKKyAgICBkZWxldGUgdGhpczsKIH0KIAog
dm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzZXRDb250cm9sbGVyKERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKIHsKLSAgICBtX2NvbnRyb2xsZXIgPSBjb250
cm9sbGVyOworICAgIC8vIEluaXRpYWxpemUgbGF6aWx5LgorICAgIGlmICghbV9wcm92aWRlciAm
JiBjb250cm9sbGVyKQorICAgICAgICBtX3Byb3ZpZGVyID0gYWRvcHRQdHIobmV3IERldmljZU9y
aWVudGF0aW9uUHJvdmlkZXJRdCk7CisKKyAgICBtX3Byb3ZpZGVyLT5zZXRDb250cm9sbGVyKGNv
bnRyb2xsZXIpOwogfQogCiB2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnN0YXJ0VXBk
YXRpbmcoKQogewotICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7CisgICAgaWYgKG1fcHJvdmlkZXIp
CisgICAgICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7CiB9CiAKIHZvaWQgRGV2aWNlT3JpZW50YXRp
b25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKCkKIHsKLSAgICBtX3Byb3ZpZGVyLT5zdG9wKCk7Cisg
ICAgaWYgKG1fcHJvdmlkZXIpCisgICAgICAgIG1fcHJvdmlkZXItPnN0b3AoKTsKIH0KIAogRGV2
aWNlT3JpZW50YXRpb24qIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6Omxhc3RPcmllbnRhdGlv
bigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJvdmlkZXItPm9yaWVudGF0aW9uKCk7Ci19Ci0K
LXZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyRGVzdHJveWVkKCkKLXsKLSAgICBkZWxldGUgdGhpczsKLX0KLQotdm9pZCBEZXZpY2VPcmll
bnRhdGlvbkNsaWVudFF0OjpjaGFuZ2VEZXZpY2VPcmllbnRhdGlvbihEZXZpY2VPcmllbnRhdGlv
biogb3JpZW50YXRpb24pCi17Ci0gICAgaWYgKCFtX2NvbnRyb2xsZXIpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24ob3JpZW50
YXRpb24pOworICAgIHJldHVybiAobV9wcm92aWRlcikgPyBtX3Byb3ZpZGVyLT5sYXN0T3JpZW50
YXRpb24oKSA6IDA7CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAogCi0jaW5jbHVkZSAibW9jX0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwIgor
I2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5o
CmluZGV4IDYxOTY4YzQuLjNiMzUxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oCkBAIC0yMCwz
OCArMjAsMzYgQEAKICNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdF9oCiAjZGVmaW5l
IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXRfaAogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKKwogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRGV2aWNl
T3JpZW50YXRpb25DbGllbnQuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKKyNpbmNsdWRl
IDx3dGYvT3duUHRyLmg+CiAKLSNpbmNsdWRlIDxRT2JqZWN0PgotCi1jbGFzcyBRV2ViUGFnZTsK
LQotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIERldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdDsKLQotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnRR
dCA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMgRGV2aWNlT3JpZW50YXRpb25DbGllbnQgewotICAg
IFFfT0JKRUNUCitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0IDogcHVibGljIFdlYkNv
cmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBEZXZpY2VPcmllbnRh
dGlvbkNsaWVudFF0KFFXZWJQYWdlKik7CisgICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCgp
IHsgfQogICAgIHZpcnR1YWwgfkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQoKTsKIAotICAgIHZp
cnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopOwor
cHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVz
dHJveWVkKCk7CisKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZpcnR1
YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKLSAgICB2aXJ0dWFsIERldmljZU9yaWVudGF0aW9uKiBs
YXN0T3JpZW50YXRpb24oKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyRGVzdHJveWVkKCk7CiAKLXB1YmxpYyBRX1NMT1RTOgotICAgIHZvaWQgY2hh
bmdlRGV2aWNlT3JpZW50YXRpb24oRGV2aWNlT3JpZW50YXRpb24qKTsKKyAgICB2aXJ0dWFsIFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdDsKIAotcHJp
dmF0ZToKLSAgICBRV2ViUGFnZSogbV9wYWdlOwotICAgIERldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlciogbV9jb250cm9sbGVyOwotICAgIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCogbV9w
cm92aWRlcjsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIqKTsKKworICAgIE93blB0cjxXZWJDb3JlOjpEZXZpY2VPcmll
bnRhdGlvblByb3ZpZGVyUXQ+IG1fcHJvdmlkZXI7CiB9OwogCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pCiAKICNlbmRpZiAvLyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBjZTUwYTAzLi45ZTczY2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAKIDIw
MTEtMDctMTUgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3Jn
PgogCisgICAgICAgIFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9u
IHdvcmsgd2l0aCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NDU5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCB0aGUgY2xpZW50cyB3aGVuIGNyZWF0aW5nIHRoZSBwYWdlLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorCisyMDExLTA3LTE1ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKwogICAgICAgICBV
cHN0cmVhbSBRdFdlYktpdC9OOSBjaGFuZ2VzIHJlbGF0ZWQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU4OQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
NjU0NDNhYi4uYzI3N2UyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtMTIzLDYgKzEyMyw4IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KFFUKQorI2luY2x1ZGUgIkRldmljZU1vdGlvbkNsaWVudFF0LmgiCisjaW5jbHVkZSAiRGV2aWNl
T3JpZW50YXRpb25DbGllbnRRdC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNlbmRp
ZgogCkBAIC0yMTEsNiArMjEzLDEwIEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlE
LCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYklu
c3BlY3RvckNsaWVudCh0aGlzKTsKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pICYmIFBMQVRGT1JNKFFUKQorICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xp
ZW50ID0gbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ7CisgICAgcGFnZUNsaWVudHMuZGV2
aWNlTW90aW9uQ2xpZW50ID0gbmV3IERldmljZU1vdGlvbkNsaWVudFF0OworI2VuZGlmCiAgICAg
bV9wYWdlID0gYWRvcHRQdHIobmV3IFBhZ2UocGFnZUNsaWVudHMpKTsKIAogICAgIC8vIFF0IGRv
ZXMgbm90IHlldCBjYWxsIHNldElzSW5XaW5kb3cuIFVudGlsIGl0IGRvZXMsIGp1c3QgbGVhdmUK
LS0gCjEuNy4xCgo=
</data>
<flag name="commit-queue"
          id="95764"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100975</attachid>
            <date>2011-07-15 07:50:09 -0700</date>
            <delta_ts>2011-07-15 09:15:47 -0700</delta_ts>
            <desc>Patch 4</desc>
            <filename>0001-Qt-Make-DeviceMotion-and-DeviceOrientation-work-with.patch</filename>
            <type>text/plain</type>
            <size>36422</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSBiYzdlNWYzY2FmYWI1YzlhNzM4MGIyYzgyMDk4NDdlN2IzNzY1YTBlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aEB3
ZWJraXQub3JnPgpEYXRlOiBGcmksIDE1IEp1bCAyMDExIDE1OjAzOjUzICswMjAwClN1YmplY3Q6
IFtQQVRDSF0gW1F0XSBNYWtlIERldmljZU1vdGlvbiBhbmQgRGV2aWNlT3JpZW50YXRpb24gd29y
ayB3aXRoIFdlYktpdDIKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NDU5NQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpTb3VyY2UvV2ViQ29yZToKClRoZSBw
cm92aWRlciBpcyBzaGFyZWQgYmV0d2VlbiBXZWJLaXQxIGFuZCBXZWJLaXQyIGFzIGEgcGFydCBv
ZiBXZWJDb3JlCmFuZCBtb2RpZmllZCB0byBub3QgcmVseSBvbiBRT2JqZWN0ICsgc2lnbmFscy4K
ClRoZSBjbGllbnQgaXMgaW1wbGVtZW50ZWQgaW4gV2ViS2l0MSBsYXllciBhbmQgY29tcGlsZWQg
aW50byBXZWJDb3JlLApzbyB0aGF0IGlzIGNhbiBiZSB1c2VkIGJ5IGJvdGggV2ViS2l0MSBhbmQg
V2ViS2l0MiB1bnRpbCB3ZSB0dXJuCldlYkNvcmUgaW50byBpdHMgb3duIGxpYnJhcnkuCgoqIHBs
YXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcC4KKFdl
YkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OkRldmljZU1vdGlvblByb3ZpZGVyUXQpOgoo
V2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6fkRldmljZU1vdGlvblByb3ZpZGVyUXQp
OgooV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcik6CihXZWJD
b3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdGFydCk6CihXZWJDb3JlOjpEZXZpY2VNb3Rp
b25Qcm92aWRlclF0OjpzdG9wKToKKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OmZp
bHRlcik6CiogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0
LmguCihXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpjdXJyZW50RGV2aWNlTW90aW9u
KToKKiBwbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwOiBBZGRlZC4K
KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6RGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0KToKKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6fkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdCk6CihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQ6OnNldENvbnRyb2xsZXIpOgooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
clF0OjpzdGFydCk6CihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0b3Ap
OgooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpmaWx0ZXIpOgoqIHBsYXRm
b3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaC4KKFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6aXNBY3RpdmUpOgooV2ViQ29yZTo6
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpsYXN0T3JpZW50YXRpb24pOgooV2ViQ29yZTo6
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpoYXNBbHBoYSk6CgpTb3VyY2UvV2ViS2l0L3F0
OgoKVGhlIHByb3ZpZGVyIGlzIHNoYXJlZCBiZXR3ZWVuIFdlYktpdDEgYW5kIFdlYktpdDIgYXMg
YSBwYXJ0IG9mIFdlYkNvcmUKYW5kIG1vZGlmaWVkIHRvIG5vdCByZWx5IG9uIFFPYmplY3QgKyBz
aWduYWxzLgoKVGhlIGNsaWVudCBpcyBpbXBsZW1lbnRlZCBpbiBXZWJLaXQxIGxheWVyIGFuZCBj
b21waWxlZCBpbnRvIFdlYkNvcmUsCnNvIHRoYXQgaXMgY2FuIGJlIHVzZWQgYnkgYm90aCBXZWJL
aXQxIGFuZCBXZWJLaXQyIHVudGlsIHdlIHR1cm4KV2ViQ29yZSBpbnRvIGl0cyBvd24gbGlicmFy
eS4KCiogQXBpL3F3ZWJwYWdlLmNwcDoKKFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRl
KToKKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHA6CihXZWJLaXQ6OkRl
dmljZU1vdGlvbkNsaWVudFF0Ojp+RGV2aWNlTW90aW9uQ2xpZW50UXQpOgooV2ViS2l0OjpEZXZp
Y2VNb3Rpb25DbGllbnRRdDo6ZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCk6CihXZWJL
aXQ6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzZXRDb250cm9sbGVyKToKKFdlYktpdDo6RGV2aWNl
TW90aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmcpOgooV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGll
bnRRdDo6c3RvcFVwZGF0aW5nKToKKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRR
dC5oOgooV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQp
OgoqIFdlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwOgooV2ViS2l0
OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Ojp+RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCk6
CihXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OmRldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlckRlc3Ryb3llZCk6CihXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnNl
dENvbnRyb2xsZXIpOgooV2ViS2l0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzdGFydFVw
ZGF0aW5nKToKKFdlYktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5n
KToKKFdlYktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVudGF0aW9uKToK
KiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Lmg6CihXZWJLaXQ6OkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQpOgoKU291
cmNlL1dlYktpdDI6CgpBZGQgdGhlIGNsaWVudHMgd2hlbiBjcmVhdGluZyB0aGUgcGFnZS4KCiog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNSArKysrKysrKwogU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcm8gICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICsrKwogLi4u
L1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgfCAgIDg1ICsr
KysrKysrKysrKysrKysrKysrCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Q
cm92aWRlclF0LmggICB8ICAgNTggKysrKysrKysrKysrKwogLi4uL3BsYXRmb3JtL3F0L0Rldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAgICAgfCAgIDc5ICsrKysrKysrKysrKysrKysrKwog
Li4uL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oICAgICAgfCAgIDU1
ICsrKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCAgICAgICAg
ICAgICAgICAgIHwgICAgNCArLQogU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDM0ICsrKysrKysrCiBTb3VyY2UvV2ViS2l0L3F0L1F0V2ViS2l0
LnBybyAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgLQogLi4uL3F0L1dlYkNvcmVTdXBwb3J0
L0RldmljZU1vdGlvbkNsaWVudFF0LmNwcCAgICAgfCAgIDQ1ICsrKystLS0tLS0tCiAuLi4vcXQv
V2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuaCAgICAgICB8ICAgMzQgKysrKy0t
LS0KIC4uLi9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcCAgIHwg
ICA3NSAtLS0tLS0tLS0tLS0tLS0tLQogLi4uL3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlv
blByb3ZpZGVyUXQuaCAgICAgfCAgIDU3IC0tLS0tLS0tLS0tLS0KIC4uLi9XZWJDb3JlU3VwcG9y
dC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcCAgIHwgICA0NiArKysrLS0tLS0tLQogLi4u
L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCAgfCAgIDM2ICsr
KystLS0tLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDExICsrKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwICAgICAgfCAgICA2ICsrCiAxNyBmaWxlcyBjaGFuZ2VkLCA0NDEgaW5zZXJ0aW9ucygrKSwg
MjMxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcAog
ZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNl
TW90aW9uUHJvdmlkZXJRdC5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDlhM2U2ZWIuLjM1MjkwNWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsNSArMSw0MCBAQAogMjAxMS0wNy0xNSAgS2VubmV0aCBSb2hkZSBDaHJpc3Rp
YW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1F0XSBNYWtlIERldmljZU1v
dGlvbiBhbmQgRGV2aWNlT3JpZW50YXRpb24gd29yayB3aXRoIFdlYktpdDIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTk1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHByb3ZpZGVyIGlzIHNoYXJl
ZCBiZXR3ZWVuIFdlYktpdDEgYW5kIFdlYktpdDIgYXMgYSBwYXJ0IG9mIFdlYkNvcmUKKyAgICAg
ICAgYW5kIG1vZGlmaWVkIHRvIG5vdCByZWx5IG9uIFFPYmplY3QgKyBzaWduYWxzLgorCisgICAg
ICAgIFRoZSBjbGllbnQgaXMgaW1wbGVtZW50ZWQgaW4gV2ViS2l0MSBsYXllciBhbmQgY29tcGls
ZWQgaW50byBXZWJDb3JlLAorICAgICAgICBzbyB0aGF0IGlzIGNhbiBiZSB1c2VkIGJ5IGJvdGgg
V2ViS2l0MSBhbmQgV2ViS2l0MiB1bnRpbCB3ZSB0dXJuCisgICAgICAgIFdlYkNvcmUgaW50byBp
dHMgb3duIGxpYnJhcnkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92
aWRlclF0LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAuCisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rp
b25Qcm92aWRlclF0OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6On5EZXZpY2VNb3Rpb25Qcm92aWRlclF0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnNldENvbnRyb2xsZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RvcCk6CisgICAgICAgIChXZWJDb3Jl
OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpmaWx0ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL3F0
L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oLgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6Y3VycmVudERldmljZU1vdGlvbik6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OkRldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJRdCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyUXQ6On5EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpzZXRDb250cm9sbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpzdG9wKToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Lmgu
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OmlzQWN0aXZl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6bGFzdE9y
aWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJR
dDo6aGFzQWxwaGEpOgorCisyMDExLTA3LTE1ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAg
PGtlbm5ldGhAd2Via2l0Lm9yZz4KKwogICAgICAgICBVcHN0cmVhbSBRdFdlYktpdC9OOSBjaGFu
Z2VzIHJlbGF0ZWQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0CiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU4OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDlkMzQ0
OGQuLmI1OGUwNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0zMjEwLDYgKzMyMTAsMTYgQEAgY29udGFp
bnMoREVGSU5FUywgV1RGX1VTRV9RVF9CRUFSRVI9MSkgewogICAgICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuaAogfQogCitjb250YWlucyhERUZJ
TkVTLCBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OPTEpIHsKKyAgICBIRUFERVJTICs9IFwKKyAg
ICAgICAgcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oIFwKKyAgICAgICAgcGxh
dGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgKKworICAgIFNPVVJDRVMgKz0g
XAorICAgICAgICBwbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcCBcCisgICAg
ICAgIHBsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAKK30KKwogY29u
dGFpbnMoREVGSU5FUywgRU5BQkxFX0dFT0xPQ0FUSU9OPTEpIHsKICAgICB2OCB7CiAgICAgICAg
IFNPVVJDRVMgKz0gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2
aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZp
Y2VNb3Rpb25Qcm92aWRlclF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5hZWQxMDE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQv
RGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgor
ICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uUHJvdmlkZXJR
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RldmljZU1vdGlvblByb3ZpZGVyUXQ6OkRl
dmljZU1vdGlvblByb3ZpZGVyUXQoKQorICAgIDogbV9jb250cm9sbGVyKDApCisgICAgLCBtX29y
aWVudGF0aW9uUHJvdmlkZXIoYWRvcHRQdHIobmV3IERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJR
dCgpKSkKK3sKKyAgICBtX3NlbnNvci5hZGRGaWx0ZXIodGhpcyk7CisgICAgbV9sYXN0TW90aW9u
ID0gRGV2aWNlTW90aW9uRGF0YTo6Y3JlYXRlKCk7Cit9CisKK0RldmljZU1vdGlvblByb3ZpZGVy
UXQ6On5EZXZpY2VNb3Rpb25Qcm92aWRlclF0KCkKK3sKKyAgICAvLyBUaGUgc2Vuc29yIGlzIGF1
dG9tYXRpY2FsbHkgc3RvcHBlZC4KK30KKwordm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0Ojpz
ZXRDb250cm9sbGVyKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCit7CisgICAg
aWYgKCFjb250cm9sbGVyKQorICAgICAgICBzdG9wKCk7CisKKyAgICBtX2NvbnRyb2xsZXIgPSBj
b250cm9sbGVyOworfQorCit2b2lkIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0YXJ0KCkKK3sK
KyAgICBtX3NlbnNvci5zdGFydCgpOworICAgIG1fb3JpZW50YXRpb25Qcm92aWRlci0+c3RhcnQo
KTsKK30KKwordm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdG9wKCkKK3sKKyAgICBtX3Nl
bnNvci5zdG9wKCk7CisgICAgbV9vcmllbnRhdGlvblByb3ZpZGVyLT5zdG9wKCk7Cit9CisKK2Jv
b2wgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKFFBY2NlbGVyb21ldGVyUmVhZGluZyog
cmVhZGluZykKK3sKKyAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YTo6QWNjZWxlcmF0aW9uPiBh
Y2NlbCA9IERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbjo6Y3JlYXRlKAorICAgICAgICAg
ICAgLyogeCBhdmFpbGFibGUgKi8gdHJ1ZSwgLSByZWFkaW5nLT54KCksCisgICAgICAgICAgICAv
KiB5IGF2YWlsYWJsZSAqLyB0cnVlLCAtIHJlYWRpbmctPnkoKSwKKyAgICAgICAgICAgIC8qIHog
YXZhaWxhYmxlICovIHRydWUsIC0gcmVhZGluZy0+eigpKTsKKworICAgIGJvb2wgaGFzQWxwaGEg
PSBtX29yaWVudGF0aW9uUHJvdmlkZXItPmhhc0FscGhhKCk7CisgICAgRGV2aWNlT3JpZW50YXRp
b24qIG9yaWVudCA9IG1fb3JpZW50YXRpb25Qcm92aWRlci0+bGFzdE9yaWVudGF0aW9uKCk7CisK
KyAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YTo6Um90YXRpb25SYXRlPiByb3RhdGlvbiA9IERl
dmljZU1vdGlvbkRhdGE6OlJvdGF0aW9uUmF0ZTo6Y3JlYXRlKAorICAgICAgICAgICAgLyogYWxw
aGEgYXZhaWxhYmxlICovIGhhc0FscGhhLCBvcmllbnQtPmFscGhhKCksCisgICAgICAgICAgICAv
KiBiZXRhICBhdmFpbGFibGUgKi8gdHJ1ZSwgb3JpZW50LT5iZXRhKCksCisgICAgICAgICAgICAv
KiBnYW1tYSBhdmFpbGFibGUgKi8gdHJ1ZSwgb3JpZW50LT5nYW1tYSgpKTsKKworICAgIG1fbGFz
dE1vdGlvbiA9IERldmljZU1vdGlvbkRhdGE6OmNyZWF0ZShhY2NlbCwKKyAgICAgICAgICAgIGFj
Y2VsLCAvKiBGSVhNRTogTmVlZHMgdG8gcHJvdmlkZSBhY2NlbGVyYXRpb24gaW5jbHVkZSBncmF2
aXR5LiAqLworICAgICAgICAgICAgcm90YXRpb24sCisgICAgICAgICAgICBmYWxzZSwgMCAvKiBU
aGUgaW50ZXJ2YWwgaXMgdHJlYXRlZCBpbnRlcm5hbGx5IGJ5IFF0IG1vYmlsaXR5ICovKTsKKwor
ICAgIGlmIChtX2NvbnRyb2xsZXIpCisgICAgICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2
aWNlTW90aW9uKG1fbGFzdE1vdGlvbi5nZXQoKSk7CisKKyAgICAvLyBXZSBhcmUgdGhlIG9ubHkg
ZmlsdGVyLCBzbyBub3QgbmVlZCB0byBhbGxvdyBwcm9wYWdhdGlvbi4KKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4wMmEwNjBhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oCkBAIC0wLDAgKzEsNTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICoKKyAqLworI2lmbmRlZiBEZXZpY2VNb3Rpb25Qcm92aWRlclF0X2gKKyNkZWZp
bmUgRGV2aWNlTW90aW9uUHJvdmlkZXJRdF9oCisKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25Db250
cm9sbGVyLmgiCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0YS5oIgorI2luY2x1ZGUgIkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oIgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CisKKyNpbmNsdWRlIDxRQWNjZWxlcm9tZXRlckZpbHRlcj4KKwor
UVRNX1VTRV9OQU1FU1BBQ0UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VN
b3Rpb25Qcm92aWRlclF0IDogcHVibGljIFFBY2NlbGVyb21ldGVyRmlsdGVyIHsKK3B1YmxpYzoK
KyAgICBEZXZpY2VNb3Rpb25Qcm92aWRlclF0KCk7CisgICAgfkRldmljZU1vdGlvblByb3ZpZGVy
UXQoKTsKKworICAgIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKik7
CisKKyAgICBib29sIGZpbHRlcihRQWNjZWxlcm9tZXRlclJlYWRpbmcqKTsKKyAgICB2b2lkIHN0
YXJ0KCk7CisgICAgdm9pZCBzdG9wKCk7CisgICAgRGV2aWNlTW90aW9uRGF0YSogY3VycmVudERl
dmljZU1vdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE1vdGlvbi5nZXQoKTsgfQorCitwcml2
YXRlOgorICAgIFJlZlB0cjxEZXZpY2VNb3Rpb25EYXRhPiBtX2xhc3RNb3Rpb247CisKKyAgICBE
ZXZpY2VNb3Rpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CisgICAgUUFjY2VsZXJvbWV0ZXIg
bV9zZW5zb3I7CisKKyAgICBPd25QdHI8RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0PiBtX29y
aWVudGF0aW9uUHJvdmlkZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwN2FjYmEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3Bw
CkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6RGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0KCkKKyAgICA6IG1fY29udHJvbGxlcigwKQoreworICAgIG1fc2Vuc29yLmFkZEZp
bHRlcih0aGlzKTsKKyAgICBtX2xhc3RPcmllbnRhdGlvbiA9IERldmljZU9yaWVudGF0aW9uOjpj
cmVhdGUoKTsKK30KKworRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojp+RGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0KCkKK3sKKyAgICAvLyBUaGUgc2Vuc29yIGlzIGF1dG9tYXRpY2FsbHkg
c3RvcHBlZC4KK30KKwordm9pZCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnNldENvbnRy
b2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyKQoreworICAgIGlm
ICghY29udHJvbGxlcikKKyAgICAgICAgc3RvcCgpOworCisgICAgbV9jb250cm9sbGVyID0gY29u
dHJvbGxlcjsKK30KKwordm9pZCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0YXJ0KCkK
K3sKKyAgICBtX3NlbnNvci5zdGFydCgpOworfQorCit2b2lkIERldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdDo6c3RvcCgpCit7CisgICAgbV9zZW5zb3Iuc3RvcCgpOworfQorCitib29sIERldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKFFSb3RhdGlvblJlYWRpbmcqIHJlYWRpbmcp
Cit7CisgICAgLy8gUHJvdmlkZSBkZXZpY2Ugb3JpZW50YXRpb24gZGF0YSBhY2NvcmRpbmcgVzND
IHNwZWM6CisgICAgLy8gaHR0cDovL2Rldi53My5vcmcvZ2VvL2FwaS9zcGVjLXNvdXJjZS1vcmll
bnRhdGlvbi5odG1sCisgICAgLy8gUXQgbW9iaWxpdHkgcHJvdmlkZSB0aGVzZSBkYXRhIHZpYSBR
Um90YXRpb25TZW5zb3IgdXNpbmcgdGhlCisgICAgLy8gUVJvdGF0aW9uUmVhZGluZyBjbGFzczoK
KyAgICAvLyAgLSB0aGUgcm90YXRpb24gYXJvdW5kIHogYXhpcyAoYWxwaGEpIGlzIGdpdmVuIGFz
IHogaW4gUVJvdGF0aW9uUmVhZGluZzsKKyAgICAvLyAgLSB0aGUgcm90YXRpb24gYXJvdW5kIHgg
YXhpcyAoYmV0YSkgaXMgZ2l2ZW4gYXMgeCBpbiBRUm90YXRpb25SZWFkaW5nOworICAgIC8vICAt
IHRoZSByb3RhdGlvbiBhcm91bmQgeSBheGlzIChnYW1tYSkgaXMgZ2l2ZW4gYXMgeSBpbiBRUm90
YXRpb25SZWFkaW5nOworICAgIC8vIFNlZTogaHR0cDovL2RvYy5xdC5ub2tpYS5jb20vcXRtb2Jp
bGl0eS0xLjAvcXJvdGF0aW9ucmVhZGluZy5odG1sCisgICAgLy8gVGhlIFogKGFscGhhKSByb3Rh
dGlvbiBhbmdsZSBpcyBjaGVja2VkIHZpYSBoYXNBbHBoYSgpIHByaXZhdGUgbWV0aG9kLAorICAg
IC8vIGRlcGVuZGluZyBpZiB0aGUgZGV2aWNlIGlzIGFibGUgZG8gZGV0ZWN0IHRoZSBhbHBoYSBy
b3RhdGlvbi4gWCAoYmV0YSkgYW5kCisgICAgLy8gWSAoZ2FtbWEpIGF4aXMgYXJlIGF2YWlsYmxl
IGluIHRoaXMgY29udGV4dC4KKyAgICBtX2xhc3RPcmllbnRhdGlvbiA9IERldmljZU9yaWVudGF0
aW9uOjpjcmVhdGUoaGFzQWxwaGEoKSwgcmVhZGluZy0+eigpLAorICAgICAgICAgICAgLyogeCBh
dmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eCgpLAorICAgICAgICAgICAgLyogeSBhdmFpbGFi
bGUgKi8gdHJ1ZSwgcmVhZGluZy0+eSgpKTsKKworICAgIGlmIChtX2NvbnRyb2xsZXIpCisgICAg
ICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24obV9sYXN0T3JpZW50
YXRpb24uZ2V0KCkpOworCisgICAgLy8gV2UgYXJlIHRoZSBvbmx5IGZpbHRlciwgc28gbm90IG5l
ZWQgdG8gYWxsb3cgcHJvcGFnYXRpb24uCisgICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhOGI5NmIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXQuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpZm5k
ZWYgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gKKyNkZWZpbmUgRGV2aWNlT3JpZW50YXRp
b25Qcm92aWRlclF0X2gKKworI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uLmgiCisjaW5jbHVk
ZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCisjaW5jbHVkZSA8UVJvdGF0aW9uRmls
dGVyPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworUVRNX1VTRV9OQU1FU1BBQ0UKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQgOiBw
dWJsaWMgUVJvdGF0aW9uRmlsdGVyIHsKK3B1YmxpYzoKKyAgICBEZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyUXQoKTsKKyAgICB+RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KCk7CisKKyAgICB2
b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKik7CisKKyAgICBi
b29sIGZpbHRlcihRUm90YXRpb25SZWFkaW5nKik7CisgICAgdm9pZCBzdGFydCgpOworICAgIHZv
aWQgc3RvcCgpOworICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX3NlbnNvci5p
c0FjdGl2ZSgpOyB9CisgICAgRGV2aWNlT3JpZW50YXRpb24qIGxhc3RPcmllbnRhdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fbGFzdE9yaWVudGF0aW9uLmdldCgpOyB9CisgICAgYm9vbCBoYXNBbHBo
YSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vuc29yLnByb3BlcnR5KCJoYXNaIikudG9Cb29sKCk7IH0K
KworcHJpdmF0ZToKKyAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb24+IG1fbGFzdE9yaWVudGF0
aW9uOworCisgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7Cisg
ICAgUVJvdGF0aW9uU2Vuc29yIG1fc2Vuc29yOworfTsKKworfQorCisjZW5kaWYgLy8gRGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBp
L3F3ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAppbmRleCBm
N2YyZGE4Li41YzFkNTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCkBAIC0zMzcsOCAr
MzM3LDggQEAgUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUoUVdlYlBhZ2UgKnFxKQog
ICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBuZXcgRHJhZ0NsaWVudFF0KHEpOwogICAgIHBh
Z2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBJbnNwZWN0b3JDbGllbnRRdChxKTsKICNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVu
dGF0aW9uQ2xpZW50ID0gbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQocSk7Ci0gICAgcGFn
ZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xpZW50ID0gbmV3IERldmljZU1vdGlvbkNsaWVudFF0KHEp
OworICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IERldmljZU9y
aWVudGF0aW9uQ2xpZW50UXQ7CisgICAgcGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xpZW50ID0g
bmV3IERldmljZU1vdGlvbkNsaWVudFF0OwogI2VuZGlmCiAjaWYgRU5BQkxFKENMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikKICAgICBpZiAoUVdlYlBhZ2VQcml2YXRlOjpkcnRSdW4pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nCmluZGV4IGVmMjA2MjkuLjQ0ZDhhYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzkg
QEAKIDIwMTEtMDctMTUgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJr
aXQub3JnPgogCisgICAgICAgIFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVu
dGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoZSBwcm92aWRlciBpcyBzaGFyZWQgYmV0d2VlbiBXZWJLaXQxIGFu
ZCBXZWJLaXQyIGFzIGEgcGFydCBvZiBXZWJDb3JlCisgICAgICAgIGFuZCBtb2RpZmllZCB0byBu
b3QgcmVseSBvbiBRT2JqZWN0ICsgc2lnbmFscy4KKworICAgICAgICBUaGUgY2xpZW50IGlzIGlt
cGxlbWVudGVkIGluIFdlYktpdDEgbGF5ZXIgYW5kIGNvbXBpbGVkIGludG8gV2ViQ29yZSwKKyAg
ICAgICAgc28gdGhhdCBpcyBjYW4gYmUgdXNlZCBieSBib3RoIFdlYktpdDEgYW5kIFdlYktpdDIg
dW50aWwgd2UgdHVybgorICAgICAgICBXZWJDb3JlIGludG8gaXRzIG93biBsaWJyYXJ5LgorCisg
ICAgICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFXZWJQYWdlUHJpdmF0ZTo6UVdl
YlBhZ2VQcml2YXRlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGll
bnRRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRldmljZU1vdGlvbkNsaWVudFF0Ojp+RGV2aWNl
TW90aW9uQ2xpZW50UXQpOgorICAgICAgICAoV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6
ZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OkRldmlj
ZU1vdGlvbkNsaWVudFF0OjpzZXRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYktpdDo6RGV2aWNl
TW90aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpEZXZpY2VN
b3Rpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9E
ZXZpY2VNb3Rpb25DbGllbnRRdC5oOgorICAgICAgICAoV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGll
bnRRdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpEZXZpY2VPcmll
bnRhdGlvbkNsaWVudFF0Ojp+RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCk6CisgICAgICAgIChX
ZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OmRldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlckRlc3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50
UXQ6OnNldENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViS2l0OjpEZXZpY2VPcmllbnRhdGlvbkNs
aWVudFF0OjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktpdDo6RGV2aWNlT3JpZW50YXRp
b25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktpdDo6RGV2aWNlT3JpZW50
YXRpb25DbGllbnRRdDo6bGFzdE9yaWVudGF0aW9uKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Lmg6CisgICAgICAgIChXZWJLaXQ6OkRldmljZU9y
aWVudGF0aW9uQ2xpZW50UXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQpOgorCisyMDExLTA3
LTE1ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKwog
ICAgICAgICBVcHN0cmVhbSBRdFdlYktpdC9OOSBjaGFuZ2VzIHJlbGF0ZWQgdG8gdmlzaWJsZUNv
bnRlbnRSZWN0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02NDU4OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1F0V2ViS2l0LnBybyBiL1Nv
dXJjZS9XZWJLaXQvcXQvUXRXZWJLaXQucHJvCmluZGV4IDZjMGQ0ODcuLmI1NmQ0NTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvUXRXZWJLaXQucHJvCisrKyBiL1NvdXJjZS9XZWJLaXQv
cXQvUXRXZWJLaXQucHJvCkBAIC0yNzQsMTQgKzI3NCwxMiBAQCBjb250YWlucyhERUZJTkVTLCBF
TkFCTEVfSUNPTkRBVEFCQVNFPTEpIHsKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ERVZJQ0Vf
T1JJRU5UQVRJT049MSkgewogICAgIEhFQURFUlMgKz0gXAogICAgICAgICAkJFBXRC9XZWJDb3Jl
U3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oIFwKLSAgICAgICAgJCRQV0QvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oIFwKICAgICAgICAgJCRQV0QvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oIFwKICAgICAgICAgJCRQV0QvV2ViQ29y
ZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrUXQuaCBcCiAgICAgICAgICQkUFdE
L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oCiAKICAgICBTT1VS
Q0VTICs9IFwKICAgICAgICAgJCRQV0QvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50
UXQuY3BwIFwKLSAgICAgICAgJCRQV0QvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdC5jcHAgXAogICAgICAgICAkJFBXRC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlv
bkNsaWVudFF0LmNwcCBcCiAgICAgICAgICQkUFdEL1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVu
dGF0aW9uQ2xpZW50TW9ja1F0LmNwcCBcCiAgICAgICAgICQkUFdEL1dlYkNvcmVTdXBwb3J0L0Rl
dmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAKaW5kZXggNDc2MTUx
NC4uM2ZmMjY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
ZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAKQEAgLTIwLDQxICsyMCw0MSBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRldmljZU1vdGlvbkNsaWVudFF0LmgiCiAKKyNpZiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIkRldmljZU1vdGlvblByb3ZpZGVyUXQuaCIKIAotI2luY2x1ZGUg
InF3ZWJwYWdlLmgiCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRGV2aWNlTW90aW9uQ2xpZW50
UXQ6OkRldmljZU1vdGlvbkNsaWVudFF0KFFXZWJQYWdlKiBwYWdlKQotICAgIDogbV9wYWdlKHBh
Z2UpCi0gICAgLCBtX2NvbnRyb2xsZXIoMCkKLSAgICAsIG1fcHJvdmlkZXIobmV3IERldmljZU1v
dGlvblByb3ZpZGVyUXQoKSkKK0RldmljZU1vdGlvbkNsaWVudFF0Ojp+RGV2aWNlTW90aW9uQ2xp
ZW50UXQoKQogewotCi0gICAgY29ubmVjdChtX3Byb3ZpZGVyLCBTSUdOQUwoZGV2aWNlTW90aW9u
Q2hhbmdlZCgpKSwgU0xPVChjaGFuZ2VEZXZpY2VNb3Rpb24oKSkpOwogfQogCi1EZXZpY2VNb3Rp
b25DbGllbnRRdDo6fkRldmljZU1vdGlvbkNsaWVudFF0KCkKK3ZvaWQgRGV2aWNlTW90aW9uQ2xp
ZW50UXQ6OmRldmljZU1vdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQogewotICAgIGRpc2Nvbm5l
Y3QoKTsKLSAgICBkZWxldGUgbV9wcm92aWRlcjsKKyAgICBkZWxldGUgdGhpczsKIH0KIAogdm9p
ZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6c2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9s
bGVyKiBjb250cm9sbGVyKQogewotICAgIG1fY29udHJvbGxlciA9IGNvbnRyb2xsZXI7CisgICAg
Ly8gSW5pdGlhbGl6ZSBsYXppbHkuCisgICAgaWYgKCFtX3Byb3ZpZGVyICYmIGNvbnRyb2xsZXIp
CisgICAgICAgIG1fcHJvdmlkZXIgPSBhZG9wdFB0cihuZXcgRGV2aWNlTW90aW9uUHJvdmlkZXJR
dCk7CisKKyAgICBtX3Byb3ZpZGVyLT5zZXRDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogfQogCiB2
b2lkIERldmljZU1vdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0aW5nKCkKIHsKLSAgICBtX3Byb3Zp
ZGVyLT5zdGFydCgpOworICAgIGlmIChtX3Byb3ZpZGVyKQorICAgICAgICBtX3Byb3ZpZGVyLT5z
dGFydCgpOwogfQogCiB2b2lkIERldmljZU1vdGlvbkNsaWVudFF0OjpzdG9wVXBkYXRpbmcoKQog
ewotICAgIG1fcHJvdmlkZXItPnN0b3AoKTsKKyAgICBpZiAobV9wcm92aWRlcikKKyAgICAgICAg
bV9wcm92aWRlci0+c3RvcCgpOwogfQogCiBEZXZpY2VNb3Rpb25EYXRhKiBEZXZpY2VNb3Rpb25D
bGllbnRRdDo6Y3VycmVudERldmljZU1vdGlvbigpIGNvbnN0CkBAIC02MiwxOSArNjIsNiBAQCBE
ZXZpY2VNb3Rpb25EYXRhKiBEZXZpY2VNb3Rpb25DbGllbnRRdDo6Y3VycmVudERldmljZU1vdGlv
bigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcHJvdmlkZXItPmN1cnJlbnREZXZpY2VNb3Rpb24oKTsK
IH0KIAotdm9pZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6ZGV2aWNlTW90aW9uQ29udHJvbGxlckRl
c3Ryb3llZCgpCi17Ci0gICAgZGVsZXRlIHRoaXM7Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uQ2xp
ZW50UXQ6OmNoYW5nZURldmljZU1vdGlvbigpCi17Ci0gICAgaWYgKCFtX2NvbnRyb2xsZXIpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlTW90aW9u
KGN1cnJlbnREZXZpY2VNb3Rpb24oKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCi0jaW5jbHVkZSAibW9jX0RldmljZU1vdGlvbkNsaWVudFF0
LmNwcCIKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oIGIv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oCmlu
ZGV4IGVhODQzZTIuLjk5YmQ4OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmgKQEAgLTIwLDM4ICsyMCwzNiBAQAog
I2lmbmRlZiBEZXZpY2VNb3Rpb25DbGllbnRRdF9oCiAjZGVmaW5lIERldmljZU1vdGlvbkNsaWVu
dFF0X2gKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisKICNpbmNsdWRlICJEZXZp
Y2VNb3Rpb25DbGllbnQuaCIKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25Db250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0YS5oIgotCi0jaW5jbHVkZSA8UU9iamVjdD4KLQotY2xh
c3MgUVdlYlBhZ2U7CisjaW5jbHVkZSAiRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oIgorI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEZXZpY2VN
b3Rpb25Qcm92aWRlclF0OwotCi1jbGFzcyBEZXZpY2VNb3Rpb25DbGllbnRRdCA6IHB1YmxpYyBR
T2JqZWN0LCBwdWJsaWMgRGV2aWNlTW90aW9uQ2xpZW50IHsKLSAgICBRX09CSkVDVAorY2xhc3Mg
RGV2aWNlTW90aW9uQ2xpZW50UXQgOiBwdWJsaWMgV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50
IHsKIHB1YmxpYzoKLSAgICBEZXZpY2VNb3Rpb25DbGllbnRRdChRV2ViUGFnZSopOworICAgIERl
dmljZU1vdGlvbkNsaWVudFF0KCkgeyB9OwogICAgIHZpcnR1YWwgfkRldmljZU1vdGlvbkNsaWVu
dFF0KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250
cm9sbGVyKik7Citwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VNb3Rpb25Db250cm9s
bGVyRGVzdHJveWVkKCk7CisKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAg
IHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKLSAgICB2aXJ0dWFsIERldmljZU1vdGlvbkRh
dGEqIGN1cnJlbnREZXZpY2VNb3Rpb24oKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgZGV2aWNl
TW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpOwogCi1wdWJsaWMgUV9TTE9UUzoKLSAgICB2b2lk
IGNoYW5nZURldmljZU1vdGlvbigpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RGV2aWNlTW90aW9u
RGF0YSogY3VycmVudERldmljZU1vdGlvbigpIGNvbnN0OwogCi1wcml2YXRlOgotICAgIFFXZWJQ
YWdlKiBtX3BhZ2U7Ci0gICAgRGV2aWNlTW90aW9uQ29udHJvbGxlciogbV9jb250cm9sbGVyOwot
ICAgIERldmljZU1vdGlvblByb3ZpZGVyUXQqIG1fcHJvdmlkZXI7CisgICAgdmlydHVhbCB2b2lk
IHNldENvbnRyb2xsZXIoV2ViQ29yZTo6RGV2aWNlTW90aW9uQ29udHJvbGxlciopOworCisgICAg
T3duUHRyPFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ+IG1fcHJvdmlkZXI7CiB9Owog
CiB9IC8vIG5hbWVzcGVjZSBXZWJDb3JlCiAKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQorCiAjZW5kaWYgLy8gRGV2aWNlTW90aW9uQ2xpZW50UXRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJR
dC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNjZjc2OTcuLjAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgot
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRldmljZU1vdGlvblByb3ZpZGVyUXQuaCIKLQot
I2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oIgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLURldmljZU1vdGlvblByb3ZpZGVyUXQ6OkRldmljZU1vdGlvblByb3ZpZGVyUXQo
KQotewotICAgIG1fYWNjZWxlcmF0aW9uLmFkZEZpbHRlcih0aGlzKTsKLSAgICBtX21vdGlvbiA9
IERldmljZU1vdGlvbkRhdGE6OmNyZWF0ZSgpOwotICAgIG1fZGV2aWNlT3JpZW50YXRpb24gPSBu
ZXcgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KCk7Ci19Ci0KLURldmljZU1vdGlvblByb3Zp
ZGVyUXQ6On5EZXZpY2VNb3Rpb25Qcm92aWRlclF0KCkKLXsKLSAgICBkZWxldGUgbV9kZXZpY2VP
cmllbnRhdGlvbjsKLX0KLQotdm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdGFydCgpCi17
Ci0gICAgbV9hY2NlbGVyYXRpb24uc3RhcnQoKTsKLSAgICBtX2RldmljZU9yaWVudGF0aW9uLT5z
dGFydCgpOwotfQotCi12b2lkIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0b3AoKQotewotICAg
IG1fYWNjZWxlcmF0aW9uLnN0b3AoKTsKLSAgICBtX2RldmljZU9yaWVudGF0aW9uLT5zdG9wKCk7
Ci19Ci0KLWJvb2wgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKFFBY2NlbGVyb21ldGVy
UmVhZGluZyogcmVhZGluZykKLXsKLSAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YTo6QWNjZWxl
cmF0aW9uPiBhY2NlbCA9IERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbjo6Y3JlYXRlKAot
ICAgICAgICAgICAgLyogeCBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eCgpLAotICAgICAg
ICAgICAgLyogeSBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eSgpLAotICAgICAgICAgICAg
LyogeiBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eigpKTsKLQotICAgIFJlZlB0cjxEZXZp
Y2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGU+IHJvdGF0aW9uID0gRGV2aWNlTW90aW9uRGF0YTo6
Um90YXRpb25SYXRlOjpjcmVhdGUoCi0gICAgICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uLT5o
YXNBbHBoYSgpLCBtX2RldmljZU9yaWVudGF0aW9uLT5vcmllbnRhdGlvbigpLT5hbHBoYSgpLAot
ICAgICAgICAgICAgLyogYmV0YSBhdmFpbGFibGUgKi8gdHJ1ZSwgbV9kZXZpY2VPcmllbnRhdGlv
bi0+b3JpZW50YXRpb24oKS0+YmV0YSgpLAotICAgICAgICAgICAgLyogZ2FtbWEgYXZhaWxhYmxl
ICovIHRydWUsIG1fZGV2aWNlT3JpZW50YXRpb24tPm9yaWVudGF0aW9uKCktPmdhbW1hKCkpOwot
Ci0gICAgbV9tb3Rpb24gPSBEZXZpY2VNb3Rpb25EYXRhOjpjcmVhdGUoYWNjZWwsCi0gICAgICAg
ICAgICBhY2NlbCwgLyogRklYTUU6IE5lZWRzIHRvIHByb3ZpZGUgYWNjZWxlcmF0aW9uIGluY2x1
ZGUgZ3Jhdml0eS4gKi8KLSAgICAgICAgICAgIHJvdGF0aW9uLAotICAgICAgICAgICAgZmFsc2Us
IDAgLyogVGhlIGludGVydmFsIGlzIHRyZWF0ZWQgaW50ZXJuYWxseSBieSBRdCBtb2JpbGl0eSAq
Lyk7Ci0KLSAgICBlbWl0IGRldmljZU1vdGlvbkNoYW5nZWQoKTsKLQotICAgIHJldHVybiBmYWxz
ZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jaW5jbHVkZSAibW9jX0RldmljZU1v
dGlvblByb3ZpZGVyUXQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZjMyMDBkNS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgotICoKLSAqLwotI2lmbmRlZiBEZXZpY2VNb3Rpb25Qcm92aWRlclF0X2gK
LSNkZWZpbmUgRGV2aWNlTW90aW9uUHJvdmlkZXJRdF9oCi0KLSNpbmNsdWRlICJEZXZpY2VNb3Rp
b25EYXRhLmgiCi0jaW5jbHVkZSAiUmVmUHRyLmgiCi0KLSNpbmNsdWRlIDxRQWNjZWxlcm9tZXRl
ckZpbHRlcj4KLSNpbmNsdWRlIDxRT2JqZWN0PgotCi1RVE1fVVNFX05BTUVTUEFDRQotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDsKLQot
Y2xhc3MgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMgUUFj
Y2VsZXJvbWV0ZXJGaWx0ZXIgewotICAgIFFfT0JKRUNUCi1wdWJsaWM6Ci0gICAgRGV2aWNlTW90
aW9uUHJvdmlkZXJRdCgpOwotICAgIH5EZXZpY2VNb3Rpb25Qcm92aWRlclF0KCk7Ci0KLSAgICBi
b29sIGZpbHRlcihRQWNjZWxlcm9tZXRlclJlYWRpbmcqKTsKLSAgICB2b2lkIHN0YXJ0KCk7Ci0g
ICAgdm9pZCBzdG9wKCk7Ci0gICAgRGV2aWNlTW90aW9uRGF0YSogY3VycmVudERldmljZU1vdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fbW90aW9uLmdldCgpOyB9Ci0KLVFfU0lHTkFMUzoKLSAgICB2
b2lkIGRldmljZU1vdGlvbkNoYW5nZWQoKTsKLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8RGV2aWNl
TW90aW9uRGF0YT4gbV9tb3Rpb247Ci0gICAgUUFjY2VsZXJvbWV0ZXIgbV9hY2NlbGVyYXRpb247
Ci0gICAgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KiBtX2RldmljZU9yaWVudGF0aW9uOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRGV2aWNlTW90aW9uUHJv
dmlkZXJRdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcAppbmRleCAwMWNiZTczLi43MDM4YWQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVu
dGF0aW9uQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAKQEAgLTIxLDU5ICsyMSw0NyBAQAogI2luY2x1
ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCIKIAogI2luY2x1ZGUgIkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50TW9ja1F0LmgiCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyLmgiCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKwogI2luY2x1ZGUgIkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oIgotI2luY2x1ZGUgInF3ZWJwYWdlLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6RGV2aWNlT3JpZW50
YXRpb25DbGllbnRRdChRV2ViUGFnZSogcGFnZSkKLSAgICA6IG1fcGFnZShwYWdlKQotICAgICwg
bV9jb250cm9sbGVyKDApCi0gICAgLCBtX3Byb3ZpZGVyKG5ldyBEZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyUXQoKSkKK0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6On5EZXZpY2VPcmllbnRhdGlv
bkNsaWVudFF0KCkKIHsKLSAgICBjb25uZWN0KG1fcHJvdmlkZXIsIFNJR05BTChkZXZpY2VPcmll
bnRhdGlvbkNoYW5nZWQoRGV2aWNlT3JpZW50YXRpb24qKSksIFNMT1QoY2hhbmdlRGV2aWNlT3Jp
ZW50YXRpb24oRGV2aWNlT3JpZW50YXRpb24qKSkpOwogfQogCi1EZXZpY2VPcmllbnRhdGlvbkNs
aWVudFF0Ojp+RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCgpCit2b2lkIERldmljZU9yaWVudGF0
aW9uQ2xpZW50UXQ6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCiB7Ci0g
ICAgZGlzY29ubmVjdCgpOwotICAgIGRlbGV0ZSBtX3Byb3ZpZGVyOworICAgIGRlbGV0ZSB0aGlz
OwogfQogCiB2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnNldENvbnRyb2xsZXIoRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyKQogewotICAgIG1fY29udHJvbGxl
ciA9IGNvbnRyb2xsZXI7CisgICAgLy8gSW5pdGlhbGl6ZSBsYXppbHkuCisgICAgaWYgKCFtX3By
b3ZpZGVyICYmIGNvbnRyb2xsZXIpCisgICAgICAgIG1fcHJvdmlkZXIgPSBhZG9wdFB0cihuZXcg
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KTsKKworICAgIG1fcHJvdmlkZXItPnNldENvbnRy
b2xsZXIoY29udHJvbGxlcik7CiB9CiAKIHZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6
c3RhcnRVcGRhdGluZygpCiB7Ci0gICAgbV9wcm92aWRlci0+c3RhcnQoKTsKKyAgICBpZiAobV9w
cm92aWRlcikKKyAgICAgICAgbV9wcm92aWRlci0+c3RhcnQoKTsKIH0KIAogdm9pZCBEZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0OjpzdG9wVXBkYXRpbmcoKQogewotICAgIG1fcHJvdmlkZXItPnN0
b3AoKTsKKyAgICBpZiAobV9wcm92aWRlcikKKyAgICAgICAgbV9wcm92aWRlci0+c3RvcCgpOwog
fQogCiBEZXZpY2VPcmllbnRhdGlvbiogRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6bGFzdE9y
aWVudGF0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wcm92aWRlci0+b3JpZW50YXRpb24o
KTsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpkZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXJEZXN0cm95ZWQoKQotewotICAgIGRlbGV0ZSB0aGlzOwotfQotCi12b2lkIERl
dmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OmNoYW5nZURldmljZU9yaWVudGF0aW9uKERldmljZU9y
aWVudGF0aW9uKiBvcmllbnRhdGlvbikKLXsKLSAgICBpZiAoIW1fY29udHJvbGxlcikKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgbV9jb250cm9sbGVyLT5kaWRDaGFuZ2VEZXZpY2VPcmllbnRhdGlv
bihvcmllbnRhdGlvbik7CisgICAgcmV0dXJuIChtX3Byb3ZpZGVyKSA/IG1fcHJvdmlkZXItPmxh
c3RPcmllbnRhdGlvbigpIDogMDsKIH0KIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKLSNpbmNsdWRlICJtb2NfRGV2aWNlT3JpZW50YXRpb25DbGllbnRR
dC5jcHAiCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRR
dC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNs
aWVudFF0LmgKaW5kZXggNjE5NjhjNC4uNzQxMWEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgKKysrIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgK
QEAgLTIwLDM4ICsyMCwzNiBAQAogI2lmbmRlZiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0X2gK
ICNkZWZpbmUgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdF9oCiAKKyNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQorCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb24uaCIKICNpbmNsdWRl
ICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgotCi0jaW5jbHVkZSA8UU9iamVjdD4KLQotY2xh
c3MgUVdlYlBhZ2U7CisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCisj
aW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgiCisjaW5jbHVkZSA8d3RmL093
blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERldmljZU9yaWVudGF0aW9u
UHJvdmlkZXJRdDsKLQotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCA6IHB1YmxpYyBR
T2JqZWN0LCBwdWJsaWMgRGV2aWNlT3JpZW50YXRpb25DbGllbnQgewotICAgIFFfT0JKRUNUCitj
bGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0IDogcHVibGljIFdlYkNvcmU6OkRldmljZU9y
aWVudGF0aW9uQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0
KFFXZWJQYWdlKik7CisgICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCgpIHsgfQogICAgIHZp
cnR1YWwgfkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopOworcHJpdmF0ZToKKyAg
ICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCk7CisK
ICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZpcnR1YWwgdm9pZCBzdG9w
VXBkYXRpbmcoKTsKLSAgICB2aXJ0dWFsIERldmljZU9yaWVudGF0aW9uKiBsYXN0T3JpZW50YXRp
b24oKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
RGVzdHJveWVkKCk7CiAKLXB1YmxpYyBRX1NMT1RTOgotICAgIHZvaWQgY2hhbmdlRGV2aWNlT3Jp
ZW50YXRpb24oRGV2aWNlT3JpZW50YXRpb24qKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkRldmlj
ZU9yaWVudGF0aW9uKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdDsKIAotcHJpdmF0ZToKLSAgICBR
V2ViUGFnZSogbV9wYWdlOwotICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogbV9jb250
cm9sbGVyOwotICAgIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCogbV9wcm92aWRlcjsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIqKTsKKworICAgIE93blB0cjxXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQ+IG1fcHJvdmlkZXI7CiB9OwogCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAK
ICNlbmRpZiAvLyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjZTUw
YTAzLi45ZTczY2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAKIDIwMTEtMDctMTUgIEtl
bm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCisgICAgICAg
IFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBX
ZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NDU5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCB0aGUgY2xpZW50cyB3aGVuIGNyZWF0aW5nIHRoZSBwYWdlLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorCisyMDExLTA3LTE1ICBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKwogICAgICAgICBVcHN0cmVhbSBRdFdl
YktpdC9OOSBjaGFuZ2VzIHJlbGF0ZWQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0CiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU4OQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNjU0NDNhYi4uYzI3
N2UyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cApAQCAtMTIzLDYgKzEyMyw4IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFFUKQorI2luY2x1
ZGUgIkRldmljZU1vdGlvbkNsaWVudFF0LmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNlbmRpZgogCkBAIC0yMTEs
NiArMjEzLDEwIEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogI2lmIEVOQUJMRShJTlNQRUNUT1Ip
CiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVu
dCh0aGlzKTsKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRG
T1JNKFFUKQorICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IERl
dmljZU9yaWVudGF0aW9uQ2xpZW50UXQ7CisgICAgcGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xp
ZW50ID0gbmV3IERldmljZU1vdGlvbkNsaWVudFF0OworI2VuZGlmCiAgICAgbV9wYWdlID0gYWRv
cHRQdHIobmV3IFBhZ2UocGFnZUNsaWVudHMpKTsKIAogICAgIC8vIFF0IGRvZXMgbm90IHlldCBj
YWxsIHNldElzSW5XaW5kb3cuIFVudGlsIGl0IGRvZXMsIGp1c3QgbGVhdmUKLS0gCjEuNy4xCgo=
</data>
<flag name="commit-queue"
          id="95770"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100990</attachid>
            <date>2011-07-15 09:15:47 -0700</date>
            <delta_ts>2011-07-15 09:50:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Qt-Make-DeviceMotion-and-DeviceOrientation-work-with.patch</filename>
            <type>text/plain</type>
            <size>36452</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSAxMWQwZDU3ODM3NDZiOWRiODM3NThlNDc5NmU0NDFiN2FmNWNjMWM0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aEB3
ZWJraXQub3JnPgpEYXRlOiBGcmksIDE1IEp1bCAyMDExIDE1OjAzOjUzICswMjAwClN1YmplY3Q6
IFtQQVRDSF0gW1F0XSBNYWtlIERldmljZU1vdGlvbiBhbmQgRGV2aWNlT3JpZW50YXRpb24gd29y
ayB3aXRoIFdlYktpdDIKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NDU5NQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpTb3VyY2UvV2ViQ29yZToKClRoZSBw
cm92aWRlciBpcyBzaGFyZWQgYmV0d2VlbiBXZWJLaXQxIGFuZCBXZWJLaXQyIGFzIGEgcGFydCBv
ZiBXZWJDb3JlCmFuZCBtb2RpZmllZCB0byBub3QgcmVseSBvbiBRT2JqZWN0ICsgc2lnbmFscy4K
ClRoZSBjbGllbnQgaXMgaW1wbGVtZW50ZWQgaW4gV2ViS2l0MSBsYXllciBhbmQgY29tcGlsZWQg
aW50byBXZWJDb3JlLApzbyB0aGF0IGlzIGNhbiBiZSB1c2VkIGJ5IGJvdGggV2ViS2l0MSBhbmQg
V2ViS2l0MiB1bnRpbCB3ZSB0dXJuCldlYkNvcmUgaW50byBpdHMgb3duIGxpYnJhcnkuCgoqIHBs
YXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcC4KKFdl
YkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OkRldmljZU1vdGlvblByb3ZpZGVyUXQpOgoo
V2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6fkRldmljZU1vdGlvblByb3ZpZGVyUXQp
OgooV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcik6CihXZWJD
b3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdGFydCk6CihXZWJDb3JlOjpEZXZpY2VNb3Rp
b25Qcm92aWRlclF0OjpzdG9wKToKKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OmZp
bHRlcik6CiogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0
LmguCihXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpjdXJyZW50RGV2aWNlTW90aW9u
KToKKiBwbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwOiBBZGRlZC4K
KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6RGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0KToKKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6fkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdCk6CihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQ6OnNldENvbnRyb2xsZXIpOgooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
clF0OjpzdGFydCk6CihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0b3Ap
OgooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpmaWx0ZXIpOgoqIHBsYXRm
b3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaC4KKFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6aXNBY3RpdmUpOgooV2ViQ29yZTo6
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpsYXN0T3JpZW50YXRpb24pOgooV2ViQ29yZTo6
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpoYXNBbHBoYSk6CgpTb3VyY2UvV2ViS2l0L3F0
OgoKVGhlIHByb3ZpZGVyIGlzIHNoYXJlZCBiZXR3ZWVuIFdlYktpdDEgYW5kIFdlYktpdDIgYXMg
YSBwYXJ0IG9mIFdlYkNvcmUKYW5kIG1vZGlmaWVkIHRvIG5vdCByZWx5IG9uIFFPYmplY3QgKyBz
aWduYWxzLgoKVGhlIGNsaWVudCBpcyBpbXBsZW1lbnRlZCBpbiBXZWJLaXQxIGxheWVyIGFuZCBj
b21waWxlZCBpbnRvIFdlYkNvcmUsCnNvIHRoYXQgaXMgY2FuIGJlIHVzZWQgYnkgYm90aCBXZWJL
aXQxIGFuZCBXZWJLaXQyIHVudGlsIHdlIHR1cm4KV2ViQ29yZSBpbnRvIGl0cyBvd24gbGlicmFy
eS4KCiogQXBpL3F3ZWJwYWdlLmNwcDoKKFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRl
KToKKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHA6CihXZWJLaXQ6OkRl
dmljZU1vdGlvbkNsaWVudFF0Ojp+RGV2aWNlTW90aW9uQ2xpZW50UXQpOgooV2ViS2l0OjpEZXZp
Y2VNb3Rpb25DbGllbnRRdDo6ZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCk6CihXZWJL
aXQ6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzZXRDb250cm9sbGVyKToKKFdlYktpdDo6RGV2aWNl
TW90aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmcpOgooV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGll
bnRRdDo6c3RvcFVwZGF0aW5nKToKKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRR
dC5oOgooV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQp
OgoqIFdlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwOgooV2ViS2l0
OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Ojp+RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCk6
CihXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OmRldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlckRlc3Ryb3llZCk6CihXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnNl
dENvbnRyb2xsZXIpOgooV2ViS2l0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzdGFydFVw
ZGF0aW5nKToKKFdlYktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5n
KToKKFdlYktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVudGF0aW9uKToK
KiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Lmg6CihXZWJLaXQ6OkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQpOgoKU291
cmNlL1dlYktpdDI6CgpBZGQgdGhlIGNsaWVudHMgd2hlbiBjcmVhdGluZyB0aGUgcGFnZS4KCiog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNSArKysrKysrKwogU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcm8gICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICsrKwogLi4u
L1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgfCAgIDg1ICsr
KysrKysrKysrKysrKysrKysrCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Q
cm92aWRlclF0LmggICB8ICAgNTkgKysrKysrKysrKysrKysKIC4uLi9wbGF0Zm9ybS9xdC9EZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwICAgIHwgICA3OSArKysrKysrKysrKysrKysrKysK
IC4uLi9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCAgICAgIHwgICA1
NSArKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAgICAgICAg
ICAgICAgICAgICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAzNCArKysrKysrKwogU291cmNlL1dlYktpdC9xdC9RdFdlYktp
dC5wcm8gICAgICAgICAgICAgICAgICAgICAgfCAgICAyIC0KIC4uLi9xdC9XZWJDb3JlU3VwcG9y
dC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAgICAgIHwgICA0NSArKysrLS0tLS0tLQogLi4uL3F0
L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmggICAgICAgfCAgIDM0ICsrKyst
LS0tCiAuLi4vcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgICB8
ICAgNzUgLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rp
b25Qcm92aWRlclF0LmggICAgIHwgICA1NyAtLS0tLS0tLS0tLS0tCiAuLi4vV2ViQ29yZVN1cHBv
cnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAgICB8ICAgNDYgKysrKy0tLS0tLS0KIC4u
Li9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmggIHwgICAzNiAr
KysrLS0tLS0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAxMSArKysKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCAgICAgIHwgICAgNiArKwogMTcgZmlsZXMgY2hhbmdlZCwgNDQyIGluc2VydGlvbnMoKyks
IDIzMSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9u
UHJvdmlkZXJRdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAK
IGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Rldmlj
ZU1vdGlvblByb3ZpZGVyUXQuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YTNlNmViLi4zNTI5MDViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsNDAgQEAKIDIwMTEtMDctMTUgIEtlbm5ldGggUm9oZGUgQ2hyaXN0
aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFtRdF0gTWFrZSBEZXZpY2VN
b3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcm92aWRlciBpcyBzaGFy
ZWQgYmV0d2VlbiBXZWJLaXQxIGFuZCBXZWJLaXQyIGFzIGEgcGFydCBvZiBXZWJDb3JlCisgICAg
ICAgIGFuZCBtb2RpZmllZCB0byBub3QgcmVseSBvbiBRT2JqZWN0ICsgc2lnbmFscy4KKworICAg
ICAgICBUaGUgY2xpZW50IGlzIGltcGxlbWVudGVkIGluIFdlYktpdDEgbGF5ZXIgYW5kIGNvbXBp
bGVkIGludG8gV2ViQ29yZSwKKyAgICAgICAgc28gdGhhdCBpcyBjYW4gYmUgdXNlZCBieSBib3Ro
IFdlYktpdDEgYW5kIFdlYktpdDIgdW50aWwgd2UgdHVybgorICAgICAgICBXZWJDb3JlIGludG8g
aXRzIG93biBsaWJyYXJ5LgorCisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJv
dmlkZXJRdC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwLgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90
aW9uUHJvdmlkZXJRdDo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0Ojp+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCk6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzZXRDb250cm9sbGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0b3ApOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9x
dC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OmN1cnJlbnREZXZpY2VNb3Rpb24pOgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpEZXZpY2VPcmll
bnRhdGlvblByb3ZpZGVyUXQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0Ojp+RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcik6CisgICAgICAg
IChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c3RvcCk6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OmZpbHRlcik6CisgICAgICAgICog
cGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Lmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5o
LgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojppc0FjdGl2
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6Omxhc3RP
cmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVy
UXQ6Omhhc0FscGhhKToKKworMjAxMS0wNy0xNSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4g
IDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKICAgICAgICAgVXBzdHJlYW0gUXRXZWJLaXQvTjkgY2hh
bmdlcyByZWxhdGVkIHRvIHZpc2libGVDb250ZW50UmVjdAogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1ODkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA5ZDM0
NDhkLi5iNThlMDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMzIxMCw2ICszMjEwLDE2IEBAIGNvbnRh
aW5zKERFRklORVMsIFdURl9VU0VfUVRfQkVBUkVSPTEpIHsKICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmgKIH0KIAorY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTj0xKSB7CisgICAgSEVBREVSUyArPSBcCisg
ICAgICAgIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaCBcCisgICAgICAgIHBs
YXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oCisKKyAgICBTT1VSQ0VTICs9
IFwKKyAgICAgICAgcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgXAorICAg
ICAgICBwbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwCit9CisKIGNv
bnRhaW5zKERFRklORVMsIEVOQUJMRV9HRU9MT0NBVElPTj0xKSB7CiAgICAgdjggewogICAgICAg
ICBTT1VSQ0VTICs9IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0Rl
dmljZU1vdGlvblByb3ZpZGVyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2
aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYWVkMTAxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoK
KyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZU1vdGlvblByb3ZpZGVy
UXQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpE
ZXZpY2VNb3Rpb25Qcm92aWRlclF0KCkKKyAgICA6IG1fY29udHJvbGxlcigwKQorICAgICwgbV9v
cmllbnRhdGlvblByb3ZpZGVyKGFkb3B0UHRyKG5ldyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVy
UXQoKSkpCit7CisgICAgbV9zZW5zb3IuYWRkRmlsdGVyKHRoaXMpOworICAgIG1fbGFzdE1vdGlv
biA9IERldmljZU1vdGlvbkRhdGE6OmNyZWF0ZSgpOworfQorCitEZXZpY2VNb3Rpb25Qcm92aWRl
clF0Ojp+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpCit7CisgICAgLy8gVGhlIHNlbnNvciBpcyBh
dXRvbWF0aWNhbGx5IHN0b3BwZWQuCit9CisKK3ZvaWQgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6
c2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyKQoreworICAg
IGlmICghY29udHJvbGxlcikKKyAgICAgICAgc3RvcCgpOworCisgICAgbV9jb250cm9sbGVyID0g
Y29udHJvbGxlcjsKK30KKwordm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdGFydCgpCit7
CisgICAgbV9zZW5zb3Iuc3RhcnQoKTsKKyAgICBtX29yaWVudGF0aW9uUHJvdmlkZXItPnN0YXJ0
KCk7Cit9CisKK3ZvaWQgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RvcCgpCit7CisgICAgbV9z
ZW5zb3Iuc3RvcCgpOworICAgIG1fb3JpZW50YXRpb25Qcm92aWRlci0+c3RvcCgpOworfQorCiti
b29sIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OmZpbHRlcihRQWNjZWxlcm9tZXRlclJlYWRpbmcq
IHJlYWRpbmcpCit7CisgICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbj4g
YWNjZWwgPSBEZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRpb246OmNyZWF0ZSgKKyAgICAgICAg
ICAgIC8qIHggYXZhaWxhYmxlICovIHRydWUsIC0gcmVhZGluZy0+eCgpLAorICAgICAgICAgICAg
LyogeSBhdmFpbGFibGUgKi8gdHJ1ZSwgLSByZWFkaW5nLT55KCksCisgICAgICAgICAgICAvKiB6
IGF2YWlsYWJsZSAqLyB0cnVlLCAtIHJlYWRpbmctPnooKSk7CisKKyAgICBib29sIGhhc0FscGhh
ID0gbV9vcmllbnRhdGlvblByb3ZpZGVyLT5oYXNBbHBoYSgpOworICAgIERldmljZU9yaWVudGF0
aW9uKiBvcmllbnQgPSBtX29yaWVudGF0aW9uUHJvdmlkZXItPmxhc3RPcmllbnRhdGlvbigpOwor
CisgICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE6OlJvdGF0aW9uUmF0ZT4gcm90YXRpb24gPSBE
ZXZpY2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGU6OmNyZWF0ZSgKKyAgICAgICAgICAgIC8qIGFs
cGhhIGF2YWlsYWJsZSAqLyBoYXNBbHBoYSwgb3JpZW50LT5hbHBoYSgpLAorICAgICAgICAgICAg
LyogYmV0YSAgYXZhaWxhYmxlICovIHRydWUsIG9yaWVudC0+YmV0YSgpLAorICAgICAgICAgICAg
LyogZ2FtbWEgYXZhaWxhYmxlICovIHRydWUsIG9yaWVudC0+Z2FtbWEoKSk7CisKKyAgICBtX2xh
c3RNb3Rpb24gPSBEZXZpY2VNb3Rpb25EYXRhOjpjcmVhdGUoYWNjZWwsCisgICAgICAgICAgICBh
Y2NlbCwgLyogRklYTUU6IE5lZWRzIHRvIHByb3ZpZGUgYWNjZWxlcmF0aW9uIGluY2x1ZGUgZ3Jh
dml0eS4gKi8KKyAgICAgICAgICAgIHJvdGF0aW9uLAorICAgICAgICAgICAgZmFsc2UsIDAgLyog
VGhlIGludGVydmFsIGlzIHRyZWF0ZWQgaW50ZXJuYWxseSBieSBRdCBtb2JpbGl0eSAqLyk7CisK
KyAgICBpZiAobV9jb250cm9sbGVyKQorICAgICAgICBtX2NvbnRyb2xsZXItPmRpZENoYW5nZURl
dmljZU1vdGlvbihtX2xhc3RNb3Rpb24uZ2V0KCkpOworCisgICAgLy8gV2UgYXJlIHRoZSBvbmx5
IGZpbHRlciwgc28gbm90IG5lZWQgdG8gYWxsb3cgcHJvcGFnYXRpb24uCisgICAgcmV0dXJuIGZh
bHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uN2ZjZWMwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaApAQCAtMCwwICsxLDU5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqCisgKi8KKyNpZm5kZWYgRGV2aWNlTW90aW9uUHJvdmlkZXJRdF9oCisjZGVm
aW5lIERldmljZU1vdGlvblByb3ZpZGVyUXRfaAorCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29u
dHJvbGxlci5oIgorI2luY2x1ZGUgIkRldmljZU1vdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJEZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNpbmNs
dWRlIDxRQWNjZWxlcm9tZXRlckZpbHRlcj4KKworUVRNX1VTRV9OQU1FU1BBQ0UKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0IDogcHVibGljIFFB
Y2NlbGVyb21ldGVyRmlsdGVyIHsKK3B1YmxpYzoKKyAgICBEZXZpY2VNb3Rpb25Qcm92aWRlclF0
KCk7CisgICAgfkRldmljZU1vdGlvblByb3ZpZGVyUXQoKTsKKworICAgIHZvaWQgc2V0Q29udHJv
bGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKik7CisKKyAgICBib29sIGZpbHRlcihRQWNjZWxl
cm9tZXRlclJlYWRpbmcqKTsKKyAgICB2b2lkIHN0YXJ0KCk7CisgICAgdm9pZCBzdG9wKCk7Cisg
ICAgRGV2aWNlTW90aW9uRGF0YSogY3VycmVudERldmljZU1vdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fbGFzdE1vdGlvbi5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxEZXZpY2VNb3Rp
b25EYXRhPiBtX2xhc3RNb3Rpb247CisKKyAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBtX2Nv
bnRyb2xsZXI7CisgICAgUUFjY2VsZXJvbWV0ZXIgbV9zZW5zb3I7CisKKyAgICBPd25QdHI8RGV2
aWNlT3JpZW50YXRpb25Qcm92aWRlclF0PiBtX29yaWVudGF0aW9uUHJvdmlkZXI7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmll
bnRhdGlvblByb3ZpZGVyUXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjYwN2FjYmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9E
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICoKKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9u
UHJvdmlkZXJRdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RldmljZU9yaWVudGF0aW9u
UHJvdmlkZXJRdDo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KCkKKyAgICA6IG1fY29udHJv
bGxlcigwKQoreworICAgIG1fc2Vuc29yLmFkZEZpbHRlcih0aGlzKTsKKyAgICBtX2xhc3RPcmll
bnRhdGlvbiA9IERldmljZU9yaWVudGF0aW9uOjpjcmVhdGUoKTsKK30KKworRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0Ojp+RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KCkKK3sKKyAgICAv
LyBUaGUgc2Vuc29yIGlzIGF1dG9tYXRpY2FsbHkgc3RvcHBlZC4KK30KKwordm9pZCBEZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyUXQ6OnNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyKiBjb250cm9sbGVyKQoreworICAgIGlmICghY29udHJvbGxlcikKKyAgICAgICAgc3Rv
cCgpOworCisgICAgbV9jb250cm9sbGVyID0gY29udHJvbGxlcjsKK30KKwordm9pZCBEZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0YXJ0KCkKK3sKKyAgICBtX3NlbnNvci5zdGFydCgpOwor
fQorCit2b2lkIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c3RvcCgpCit7CisgICAgbV9z
ZW5zb3Iuc3RvcCgpOworfQorCitib29sIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6Zmls
dGVyKFFSb3RhdGlvblJlYWRpbmcqIHJlYWRpbmcpCit7CisgICAgLy8gUHJvdmlkZSBkZXZpY2Ug
b3JpZW50YXRpb24gZGF0YSBhY2NvcmRpbmcgVzNDIHNwZWM6CisgICAgLy8gaHR0cDovL2Rldi53
My5vcmcvZ2VvL2FwaS9zcGVjLXNvdXJjZS1vcmllbnRhdGlvbi5odG1sCisgICAgLy8gUXQgbW9i
aWxpdHkgcHJvdmlkZSB0aGVzZSBkYXRhIHZpYSBRUm90YXRpb25TZW5zb3IgdXNpbmcgdGhlCisg
ICAgLy8gUVJvdGF0aW9uUmVhZGluZyBjbGFzczoKKyAgICAvLyAgLSB0aGUgcm90YXRpb24gYXJv
dW5kIHogYXhpcyAoYWxwaGEpIGlzIGdpdmVuIGFzIHogaW4gUVJvdGF0aW9uUmVhZGluZzsKKyAg
ICAvLyAgLSB0aGUgcm90YXRpb24gYXJvdW5kIHggYXhpcyAoYmV0YSkgaXMgZ2l2ZW4gYXMgeCBp
biBRUm90YXRpb25SZWFkaW5nOworICAgIC8vICAtIHRoZSByb3RhdGlvbiBhcm91bmQgeSBheGlz
IChnYW1tYSkgaXMgZ2l2ZW4gYXMgeSBpbiBRUm90YXRpb25SZWFkaW5nOworICAgIC8vIFNlZTog
aHR0cDovL2RvYy5xdC5ub2tpYS5jb20vcXRtb2JpbGl0eS0xLjAvcXJvdGF0aW9ucmVhZGluZy5o
dG1sCisgICAgLy8gVGhlIFogKGFscGhhKSByb3RhdGlvbiBhbmdsZSBpcyBjaGVja2VkIHZpYSBo
YXNBbHBoYSgpIHByaXZhdGUgbWV0aG9kLAorICAgIC8vIGRlcGVuZGluZyBpZiB0aGUgZGV2aWNl
IGlzIGFibGUgZG8gZGV0ZWN0IHRoZSBhbHBoYSByb3RhdGlvbi4gWCAoYmV0YSkgYW5kCisgICAg
Ly8gWSAoZ2FtbWEpIGF4aXMgYXJlIGF2YWlsYmxlIGluIHRoaXMgY29udGV4dC4KKyAgICBtX2xh
c3RPcmllbnRhdGlvbiA9IERldmljZU9yaWVudGF0aW9uOjpjcmVhdGUoaGFzQWxwaGEoKSwgcmVh
ZGluZy0+eigpLAorICAgICAgICAgICAgLyogeCBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+
eCgpLAorICAgICAgICAgICAgLyogeSBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eSgpKTsK
KworICAgIGlmIChtX2NvbnRyb2xsZXIpCisgICAgICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdl
RGV2aWNlT3JpZW50YXRpb24obV9sYXN0T3JpZW50YXRpb24uZ2V0KCkpOworCisgICAgLy8gV2Ug
YXJlIHRoZSBvbmx5IGZpbHRlciwgc28gbm90IG5lZWQgdG8gYWxsb3cgcHJvcGFnYXRpb24uCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmZhOGI5NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaApAQCAtMCwwICsx
LDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
clF0X2gKKyNkZWZpbmUgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gKKworI2luY2x1ZGUg
IkRldmljZU9yaWVudGF0aW9uLmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyLmgiCisjaW5jbHVkZSA8UVJvdGF0aW9uRmlsdGVyPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KKworUVRNX1VTRV9OQU1FU1BBQ0UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBE
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQgOiBwdWJsaWMgUVJvdGF0aW9uRmlsdGVyIHsKK3B1
YmxpYzoKKyAgICBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQoKTsKKyAgICB+RGV2aWNlT3Jp
ZW50YXRpb25Qcm92aWRlclF0KCk7CisKKyAgICB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyKik7CisKKyAgICBib29sIGZpbHRlcihRUm90YXRpb25SZWFkaW5n
Kik7CisgICAgdm9pZCBzdGFydCgpOworICAgIHZvaWQgc3RvcCgpOworICAgIGJvb2wgaXNBY3Rp
dmUoKSBjb25zdCB7IHJldHVybiBtX3NlbnNvci5pc0FjdGl2ZSgpOyB9CisgICAgRGV2aWNlT3Jp
ZW50YXRpb24qIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE9yaWVudGF0
aW9uLmdldCgpOyB9CisgICAgYm9vbCBoYXNBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vuc29y
LnByb3BlcnR5KCJoYXNaIikudG9Cb29sKCk7IH0KKworcHJpdmF0ZToKKyAgICBSZWZQdHI8RGV2
aWNlT3JpZW50YXRpb24+IG1fbGFzdE9yaWVudGF0aW9uOworCisgICAgRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CisgICAgUVJvdGF0aW9uU2Vuc29yIG1fc2Vuc29y
OworfTsKKworfQorCisjZW5kaWYgLy8gRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAppbmRleCBmN2YyZGE4Li41YzFkNTRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9x
dC9BcGkvcXdlYnBhZ2UuY3BwCkBAIC0zMzcsOCArMzM3LDggQEAgUVdlYlBhZ2VQcml2YXRlOjpR
V2ViUGFnZVByaXZhdGUoUVdlYlBhZ2UgKnFxKQogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQg
PSBuZXcgRHJhZ0NsaWVudFF0KHEpOwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9
IG5ldyBJbnNwZWN0b3JDbGllbnRRdChxKTsKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KQotICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IERldmljZU9y
aWVudGF0aW9uQ2xpZW50UXQocSk7Ci0gICAgcGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xpZW50
ID0gbmV3IERldmljZU1vdGlvbkNsaWVudFF0KHEpOworICAgIHBhZ2VDbGllbnRzLmRldmljZU9y
aWVudGF0aW9uQ2xpZW50ID0gbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ7CisgICAgcGFn
ZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xpZW50ID0gbmV3IERldmljZU1vdGlvbkNsaWVudFF0Owog
I2VuZGlmCiAjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBpZiAoUVdl
YlBhZ2VQcml2YXRlOjpkcnRSdW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGVmMjA2MjkuLjQ0ZDhhYWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzkgQEAKIDIwMTEtMDctMTUgIEtlbm5ldGggUm9o
ZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFtRdF0gTWFr
ZSBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcm92aWRl
ciBpcyBzaGFyZWQgYmV0d2VlbiBXZWJLaXQxIGFuZCBXZWJLaXQyIGFzIGEgcGFydCBvZiBXZWJD
b3JlCisgICAgICAgIGFuZCBtb2RpZmllZCB0byBub3QgcmVseSBvbiBRT2JqZWN0ICsgc2lnbmFs
cy4KKworICAgICAgICBUaGUgY2xpZW50IGlzIGltcGxlbWVudGVkIGluIFdlYktpdDEgbGF5ZXIg
YW5kIGNvbXBpbGVkIGludG8gV2ViQ29yZSwKKyAgICAgICAgc28gdGhhdCBpcyBjYW4gYmUgdXNl
ZCBieSBib3RoIFdlYktpdDEgYW5kIFdlYktpdDIgdW50aWwgd2UgdHVybgorICAgICAgICBXZWJD
b3JlIGludG8gaXRzIG93biBsaWJyYXJ5LgorCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNwcDoK
KyAgICAgICAgKFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkRldmljZU1vdGlvbkNsaWVudFF0Ojp+RGV2aWNlTW90aW9uQ2xpZW50UXQpOgorICAgICAgICAo
V2ViS2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6ZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ry
b3llZCk6CisgICAgICAgIChXZWJLaXQ6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzZXRDb250cm9s
bGVyKToKKyAgICAgICAgKFdlYktpdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRp
bmcpOgorICAgICAgICAoV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5n
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oOgorICAg
ICAgICAoV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQp
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Ojp+RGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRRdCk6CisgICAgICAgIChXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xp
ZW50UXQ6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCk6CisgICAgICAgIChX
ZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnNldENvbnRyb2xsZXIpOgorICAgICAg
ICAoV2ViS2l0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0aW5nKToKKyAg
ICAgICAgKFdlYktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKToK
KyAgICAgICAgKFdlYktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVudGF0
aW9uKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0
Lmg6CisgICAgICAgIChXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OkRldmljZU9y
aWVudGF0aW9uQ2xpZW50UXQpOgorCisyMDExLTA3LTE1ICBLZW5uZXRoIFJvaGRlIENocmlzdGlh
bnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKwogICAgICAgICBVcHN0cmVhbSBRdFdlYktpdC9O
OSBjaGFuZ2VzIHJlbGF0ZWQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0CiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU4OQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1F0V2ViS2l0LnBybyBiL1NvdXJjZS9XZWJLaXQvcXQvUXRXZWJLaXQucHJv
CmluZGV4IDZjMGQ0ODcuLmI1NmQ0NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvUXRX
ZWJLaXQucHJvCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvUXRXZWJLaXQucHJvCkBAIC0yNzQsMTQg
KzI3NCwxMiBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSUNPTkRBVEFCQVNFPTEpIHsKIGNv
bnRhaW5zKERFRklORVMsIEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT049MSkgewogICAgIEhFQURF
UlMgKz0gXAogICAgICAgICAkJFBXRC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRR
dC5oIFwKLSAgICAgICAgJCRQV0QvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJR
dC5oIFwKICAgICAgICAgJCRQV0QvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGll
bnRRdC5oIFwKICAgICAgICAgJCRQV0QvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25D
bGllbnRNb2NrUXQuaCBcCiAgICAgICAgICQkUFdEL1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJRdC5oCiAKICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgJCRQV0QvV2Vi
Q29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwIFwKLSAgICAgICAgJCRQV0QvV2Vi
Q29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgXAogICAgICAgICAkJFBXRC9X
ZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcCBcCiAgICAgICAgICQk
UFdEL1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9ja1F0LmNwcCBcCiAg
ICAgICAgICQkUFdEL1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90
aW9uQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VN
b3Rpb25DbGllbnRRdC5jcHAKaW5kZXggNDc2MTUxNC4uM2ZmMjY4YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5j
cHAKQEAgLTIwLDQxICsyMCw0MSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRl
dmljZU1vdGlvbkNsaWVudFF0LmgiCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQor
CiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRldmljZU1v
dGlvblByb3ZpZGVyUXQuaCIKIAotI2luY2x1ZGUgInF3ZWJwYWdlLmgiCi0KIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotRGV2aWNlTW90aW9uQ2xpZW50UXQ6OkRldmljZU1vdGlvbkNsaWVudFF0KFFX
ZWJQYWdlKiBwYWdlKQotICAgIDogbV9wYWdlKHBhZ2UpCi0gICAgLCBtX2NvbnRyb2xsZXIoMCkK
LSAgICAsIG1fcHJvdmlkZXIobmV3IERldmljZU1vdGlvblByb3ZpZGVyUXQoKSkKK0RldmljZU1v
dGlvbkNsaWVudFF0Ojp+RGV2aWNlTW90aW9uQ2xpZW50UXQoKQogewotCi0gICAgY29ubmVjdCht
X3Byb3ZpZGVyLCBTSUdOQUwoZGV2aWNlTW90aW9uQ2hhbmdlZCgpKSwgU0xPVChjaGFuZ2VEZXZp
Y2VNb3Rpb24oKSkpOwogfQogCi1EZXZpY2VNb3Rpb25DbGllbnRRdDo6fkRldmljZU1vdGlvbkNs
aWVudFF0KCkKK3ZvaWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6OmRldmljZU1vdGlvbkNvbnRyb2xs
ZXJEZXN0cm95ZWQoKQogewotICAgIGRpc2Nvbm5lY3QoKTsKLSAgICBkZWxldGUgbV9wcm92aWRl
cjsKKyAgICBkZWxldGUgdGhpczsKIH0KIAogdm9pZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6c2V0
Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyKQogewotICAgIG1f
Y29udHJvbGxlciA9IGNvbnRyb2xsZXI7CisgICAgLy8gSW5pdGlhbGl6ZSBsYXppbHkuCisgICAg
aWYgKCFtX3Byb3ZpZGVyICYmIGNvbnRyb2xsZXIpCisgICAgICAgIG1fcHJvdmlkZXIgPSBhZG9w
dFB0cihuZXcgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCk7CisKKyAgICBtX3Byb3ZpZGVyLT5zZXRD
b250cm9sbGVyKGNvbnRyb2xsZXIpOwogfQogCiB2b2lkIERldmljZU1vdGlvbkNsaWVudFF0Ojpz
dGFydFVwZGF0aW5nKCkKIHsKLSAgICBtX3Byb3ZpZGVyLT5zdGFydCgpOworICAgIGlmIChtX3By
b3ZpZGVyKQorICAgICAgICBtX3Byb3ZpZGVyLT5zdGFydCgpOwogfQogCiB2b2lkIERldmljZU1v
dGlvbkNsaWVudFF0OjpzdG9wVXBkYXRpbmcoKQogewotICAgIG1fcHJvdmlkZXItPnN0b3AoKTsK
KyAgICBpZiAobV9wcm92aWRlcikKKyAgICAgICAgbV9wcm92aWRlci0+c3RvcCgpOwogfQogCiBE
ZXZpY2VNb3Rpb25EYXRhKiBEZXZpY2VNb3Rpb25DbGllbnRRdDo6Y3VycmVudERldmljZU1vdGlv
bigpIGNvbnN0CkBAIC02MiwxOSArNjIsNiBAQCBEZXZpY2VNb3Rpb25EYXRhKiBEZXZpY2VNb3Rp
b25DbGllbnRRdDo6Y3VycmVudERldmljZU1vdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcHJv
dmlkZXItPmN1cnJlbnREZXZpY2VNb3Rpb24oKTsKIH0KIAotdm9pZCBEZXZpY2VNb3Rpb25DbGll
bnRRdDo6ZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCi17Ci0gICAgZGVsZXRlIHRo
aXM7Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6OmNoYW5nZURldmljZU1vdGlvbigp
Ci17Ci0gICAgaWYgKCFtX2NvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fY29u
dHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlTW90aW9uKGN1cnJlbnREZXZpY2VNb3Rpb24oKSk7Ci19
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKK30gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jaW5j
bHVkZSAibW9jX0RldmljZU1vdGlvbkNsaWVudFF0LmNwcCIKKyNlbmRpZiAvLyBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oCmluZGV4IGVhODQzZTIuLjk5YmQ4OGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50
UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNs
aWVudFF0LmgKQEAgLTIwLDM4ICsyMCwzNiBAQAogI2lmbmRlZiBEZXZpY2VNb3Rpb25DbGllbnRR
dF9oCiAjZGVmaW5lIERldmljZU1vdGlvbkNsaWVudFF0X2gKIAorI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25DbGllbnQuaCIKKyNpbmNsdWRl
ICJEZXZpY2VNb3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0YS5o
IgotCi0jaW5jbHVkZSA8UU9iamVjdD4KLQotY2xhc3MgUVdlYlBhZ2U7CisjaW5jbHVkZSAiRGV2
aWNlTW90aW9uUHJvdmlkZXJRdC5oIgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jbGFzcyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OwotCi1jbGFzcyBE
ZXZpY2VNb3Rpb25DbGllbnRRdCA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMgRGV2aWNlTW90aW9u
Q2xpZW50IHsKLSAgICBRX09CSkVDVAorY2xhc3MgRGV2aWNlTW90aW9uQ2xpZW50UXQgOiBwdWJs
aWMgV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBEZXZpY2VNb3Rp
b25DbGllbnRRdChRV2ViUGFnZSopOworICAgIERldmljZU1vdGlvbkNsaWVudFF0KCkgeyB9Owog
ICAgIHZpcnR1YWwgfkRldmljZU1vdGlvbkNsaWVudFF0KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKik7Citwcml2YXRlOgorICAgIHZp
cnR1YWwgdm9pZCBkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVzdHJveWVkKCk7CisKICAgICB2aXJ0
dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmco
KTsKLSAgICB2aXJ0dWFsIERldmljZU1vdGlvbkRhdGEqIGN1cnJlbnREZXZpY2VNb3Rpb24oKSBj
b25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCgp
OwogCi1wdWJsaWMgUV9TTE9UUzoKLSAgICB2b2lkIGNoYW5nZURldmljZU1vdGlvbigpOworICAg
IHZpcnR1YWwgV2ViQ29yZTo6RGV2aWNlTW90aW9uRGF0YSogY3VycmVudERldmljZU1vdGlvbigp
IGNvbnN0OwogCi1wcml2YXRlOgotICAgIFFXZWJQYWdlKiBtX3BhZ2U7Ci0gICAgRGV2aWNlTW90
aW9uQ29udHJvbGxlciogbV9jb250cm9sbGVyOwotICAgIERldmljZU1vdGlvblByb3ZpZGVyUXQq
IG1fcHJvdmlkZXI7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIoV2ViQ29yZTo6RGV2
aWNlTW90aW9uQ29udHJvbGxlciopOworCisgICAgT3duUHRyPFdlYkNvcmU6OkRldmljZU1vdGlv
blByb3ZpZGVyUXQ+IG1fcHJvdmlkZXI7CiB9OwogCiB9IC8vIG5hbWVzcGVjZSBXZWJDb3JlCiAK
KyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCiAjZW5kaWYgLy8gRGV2aWNl
TW90aW9uQ2xpZW50UXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGNjZjc2OTcuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc1
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IkRldmljZU1vdGlvblByb3ZpZGVyUXQuaCIKLQotI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9u
UHJvdmlkZXJRdC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLURldmljZU1vdGlvblByb3Zp
ZGVyUXQ6OkRldmljZU1vdGlvblByb3ZpZGVyUXQoKQotewotICAgIG1fYWNjZWxlcmF0aW9uLmFk
ZEZpbHRlcih0aGlzKTsKLSAgICBtX21vdGlvbiA9IERldmljZU1vdGlvbkRhdGE6OmNyZWF0ZSgp
OwotICAgIG1fZGV2aWNlT3JpZW50YXRpb24gPSBuZXcgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
clF0KCk7Ci19Ci0KLURldmljZU1vdGlvblByb3ZpZGVyUXQ6On5EZXZpY2VNb3Rpb25Qcm92aWRl
clF0KCkKLXsKLSAgICBkZWxldGUgbV9kZXZpY2VPcmllbnRhdGlvbjsKLX0KLQotdm9pZCBEZXZp
Y2VNb3Rpb25Qcm92aWRlclF0OjpzdGFydCgpCi17Ci0gICAgbV9hY2NlbGVyYXRpb24uc3RhcnQo
KTsKLSAgICBtX2RldmljZU9yaWVudGF0aW9uLT5zdGFydCgpOwotfQotCi12b2lkIERldmljZU1v
dGlvblByb3ZpZGVyUXQ6OnN0b3AoKQotewotICAgIG1fYWNjZWxlcmF0aW9uLnN0b3AoKTsKLSAg
ICBtX2RldmljZU9yaWVudGF0aW9uLT5zdG9wKCk7Ci19Ci0KLWJvb2wgRGV2aWNlTW90aW9uUHJv
dmlkZXJRdDo6ZmlsdGVyKFFBY2NlbGVyb21ldGVyUmVhZGluZyogcmVhZGluZykKLXsKLSAgICBS
ZWZQdHI8RGV2aWNlTW90aW9uRGF0YTo6QWNjZWxlcmF0aW9uPiBhY2NlbCA9IERldmljZU1vdGlv
bkRhdGE6OkFjY2VsZXJhdGlvbjo6Y3JlYXRlKAotICAgICAgICAgICAgLyogeCBhdmFpbGFibGUg
Ki8gdHJ1ZSwgcmVhZGluZy0+eCgpLAotICAgICAgICAgICAgLyogeSBhdmFpbGFibGUgKi8gdHJ1
ZSwgcmVhZGluZy0+eSgpLAotICAgICAgICAgICAgLyogeiBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVh
ZGluZy0+eigpKTsKLQotICAgIFJlZlB0cjxEZXZpY2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGU+
IHJvdGF0aW9uID0gRGV2aWNlTW90aW9uRGF0YTo6Um90YXRpb25SYXRlOjpjcmVhdGUoCi0gICAg
ICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uLT5oYXNBbHBoYSgpLCBtX2RldmljZU9yaWVudGF0
aW9uLT5vcmllbnRhdGlvbigpLT5hbHBoYSgpLAotICAgICAgICAgICAgLyogYmV0YSBhdmFpbGFi
bGUgKi8gdHJ1ZSwgbV9kZXZpY2VPcmllbnRhdGlvbi0+b3JpZW50YXRpb24oKS0+YmV0YSgpLAot
ICAgICAgICAgICAgLyogZ2FtbWEgYXZhaWxhYmxlICovIHRydWUsIG1fZGV2aWNlT3JpZW50YXRp
b24tPm9yaWVudGF0aW9uKCktPmdhbW1hKCkpOwotCi0gICAgbV9tb3Rpb24gPSBEZXZpY2VNb3Rp
b25EYXRhOjpjcmVhdGUoYWNjZWwsCi0gICAgICAgICAgICBhY2NlbCwgLyogRklYTUU6IE5lZWRz
IHRvIHByb3ZpZGUgYWNjZWxlcmF0aW9uIGluY2x1ZGUgZ3Jhdml0eS4gKi8KLSAgICAgICAgICAg
IHJvdGF0aW9uLAotICAgICAgICAgICAgZmFsc2UsIDAgLyogVGhlIGludGVydmFsIGlzIHRyZWF0
ZWQgaW50ZXJuYWxseSBieSBRdCBtb2JpbGl0eSAqLyk7Ci0KLSAgICBlbWl0IGRldmljZU1vdGlv
bkNoYW5nZWQoKTsKLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCi0jaW5jbHVkZSAibW9jX0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRl
clF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3Zp
ZGVyUXQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjMyMDBkNS4uMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVy
UXQuaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgot
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotI2lm
bmRlZiBEZXZpY2VNb3Rpb25Qcm92aWRlclF0X2gKLSNkZWZpbmUgRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdF9oCi0KLSNpbmNsdWRlICJEZXZpY2VNb3Rpb25EYXRhLmgiCi0jaW5jbHVkZSAiUmVmUHRy
LmgiCi0KLSNpbmNsdWRlIDxRQWNjZWxlcm9tZXRlckZpbHRlcj4KLSNpbmNsdWRlIDxRT2JqZWN0
PgotCi1RVE1fVVNFX05BTUVTUEFDRQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERl
dmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDsKLQotY2xhc3MgRGV2aWNlTW90aW9uUHJvdmlkZXJR
dCA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMgUUFjY2VsZXJvbWV0ZXJGaWx0ZXIgewotICAgIFFf
T0JKRUNUCi1wdWJsaWM6Ci0gICAgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpOwotICAgIH5EZXZp
Y2VNb3Rpb25Qcm92aWRlclF0KCk7Ci0KLSAgICBib29sIGZpbHRlcihRQWNjZWxlcm9tZXRlclJl
YWRpbmcqKTsKLSAgICB2b2lkIHN0YXJ0KCk7Ci0gICAgdm9pZCBzdG9wKCk7Ci0gICAgRGV2aWNl
TW90aW9uRGF0YSogY3VycmVudERldmljZU1vdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbW90aW9u
LmdldCgpOyB9Ci0KLVFfU0lHTkFMUzoKLSAgICB2b2lkIGRldmljZU1vdGlvbkNoYW5nZWQoKTsK
LQotcHJpdmF0ZToKLSAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YT4gbV9tb3Rpb247Ci0gICAg
UUFjY2VsZXJvbWV0ZXIgbV9hY2NlbGVyYXRpb247Ci0gICAgRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0KiBtX2RldmljZU9yaWVudGF0aW9uOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi0jZW5kaWYgLy8gRGV2aWNlTW90aW9uUHJvdmlkZXJRdF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3Bw
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVu
dFF0LmNwcAppbmRleCAwMWNiZTczLi43MDM4YWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5j
cHAKQEAgLTIxLDU5ICsyMSw0NyBAQAogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50
UXQuaCIKIAogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9ja1F0LmgiCi0jaW5j
bHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCisjaWYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKKwogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oIgot
I2luY2x1ZGUgInF3ZWJwYWdlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRRdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdChRV2ViUGFnZSogcGFn
ZSkKLSAgICA6IG1fcGFnZShwYWdlKQotICAgICwgbV9jb250cm9sbGVyKDApCi0gICAgLCBtX3By
b3ZpZGVyKG5ldyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQoKSkKK0RldmljZU9yaWVudGF0
aW9uQ2xpZW50UXQ6On5EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0KCkKIHsKLSAgICBjb25uZWN0
KG1fcHJvdmlkZXIsIFNJR05BTChkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoRGV2aWNlT3JpZW50
YXRpb24qKSksIFNMT1QoY2hhbmdlRGV2aWNlT3JpZW50YXRpb24oRGV2aWNlT3JpZW50YXRpb24q
KSkpOwogfQogCi1EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Ojp+RGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdCgpCit2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OmRldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCiB7Ci0gICAgZGlzY29ubmVjdCgpOwotICAgIGRlbGV0
ZSBtX3Byb3ZpZGVyOworICAgIGRlbGV0ZSB0aGlzOwogfQogCiB2b2lkIERldmljZU9yaWVudGF0
aW9uQ2xpZW50UXQ6OnNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBj
b250cm9sbGVyKQogewotICAgIG1fY29udHJvbGxlciA9IGNvbnRyb2xsZXI7CisgICAgLy8gSW5p
dGlhbGl6ZSBsYXppbHkuCisgICAgaWYgKCFtX3Byb3ZpZGVyICYmIGNvbnRyb2xsZXIpCisgICAg
ICAgIG1fcHJvdmlkZXIgPSBhZG9wdFB0cihuZXcgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0
KTsKKworICAgIG1fcHJvdmlkZXItPnNldENvbnRyb2xsZXIoY29udHJvbGxlcik7CiB9CiAKIHZv
aWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RhcnRVcGRhdGluZygpCiB7Ci0gICAgbV9w
cm92aWRlci0+c3RhcnQoKTsKKyAgICBpZiAobV9wcm92aWRlcikKKyAgICAgICAgbV9wcm92aWRl
ci0+c3RhcnQoKTsKIH0KIAogdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzdG9wVXBk
YXRpbmcoKQogewotICAgIG1fcHJvdmlkZXItPnN0b3AoKTsKKyAgICBpZiAobV9wcm92aWRlcikK
KyAgICAgICAgbV9wcm92aWRlci0+c3RvcCgpOwogfQogCiBEZXZpY2VPcmllbnRhdGlvbiogRGV2
aWNlT3JpZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVudGF0aW9uKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gbV9wcm92aWRlci0+b3JpZW50YXRpb24oKTsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRh
dGlvbkNsaWVudFF0OjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQotewot
ICAgIGRlbGV0ZSB0aGlzOwotfQotCi12b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OmNo
YW5nZURldmljZU9yaWVudGF0aW9uKERldmljZU9yaWVudGF0aW9uKiBvcmllbnRhdGlvbikKLXsK
LSAgICBpZiAoIW1fY29udHJvbGxlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jb250cm9s
bGVyLT5kaWRDaGFuZ2VEZXZpY2VPcmllbnRhdGlvbihvcmllbnRhdGlvbik7CisgICAgcmV0dXJu
IChtX3Byb3ZpZGVyKSA/IG1fcHJvdmlkZXItPmxhc3RPcmllbnRhdGlvbigpIDogMDsKIH0KIAot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNpbmNsdWRl
ICJtb2NfRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAiCisjZW5kaWYgLy8gRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgKaW5kZXggNjE5NjhjNC4uNzQx
MWEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgKQEAgLTIwLDM4ICsyMCwzNiBAQAogI2lmbmRl
ZiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0X2gKICNkZWZpbmUgRGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdF9oCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCiAjaW5jbHVkZSAi
RGV2aWNlT3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5o
IgotCi0jaW5jbHVkZSA8UU9iamVjdD4KLQotY2xhc3MgUVdlYlBhZ2U7CisjaW5jbHVkZSAiRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0LmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDsKLQotY2xhc3MgRGV2aWNl
T3JpZW50YXRpb25DbGllbnRRdCA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMgRGV2aWNlT3JpZW50
YXRpb25DbGllbnQgewotICAgIFFfT0JKRUNUCitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dFF0IDogcHVibGljIFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50IHsKIHB1YmxpYzoK
LSAgICBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0KFFXZWJQYWdlKik7CisgICAgRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRRdCgpIHsgfQogICAgIHZpcnR1YWwgfkRldmljZU9yaWVudGF0aW9uQ2xp
ZW50UXQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlciopOworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCk7CisKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRh
dGluZygpOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKLSAgICB2aXJ0dWFsIERl
dmljZU9yaWVudGF0aW9uKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZv
aWQgZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCk7CiAKLXB1YmxpYyBRX1NM
T1RTOgotICAgIHZvaWQgY2hhbmdlRGV2aWNlT3JpZW50YXRpb24oRGV2aWNlT3JpZW50YXRpb24q
KTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uKiBsYXN0T3JpZW50YXRp
b24oKSBjb25zdDsKIAotcHJpdmF0ZToKLSAgICBRV2ViUGFnZSogbV9wYWdlOwotICAgIERldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlciogbV9jb250cm9sbGVyOwotICAgIERldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdCogbV9wcm92aWRlcjsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxl
cihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqKTsKKworICAgIE93blB0cjxX
ZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ+IG1fcHJvdmlkZXI7CiB9OwogCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAKICNlbmRpZiAvLyBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudFF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjZTUwYTAzLi45ZTczY2FjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMTYgQEAKIDIwMTEtMDctMTUgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8
a2VubmV0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24gYW5k
IERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0aGUgY2xpZW50cyB3aGVuIGNyZWF0aW5n
IHRoZSBwYWdlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgor
CisyMDExLTA3LTE1ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0
Lm9yZz4KKwogICAgICAgICBVcHN0cmVhbSBRdFdlYktpdC9OOSBjaGFuZ2VzIHJlbGF0ZWQgdG8g
dmlzaWJsZUNvbnRlbnRSZWN0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NDU4OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggNjU0NDNhYi4uYzI3N2UyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTIzLDYgKzEyMyw4IEBACiAjZW5k
aWYKIAogI2lmIFBMQVRGT1JNKFFUKQorI2luY2x1ZGUgIkRldmljZU1vdGlvbkNsaWVudFF0Lmgi
CisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oIgogI2luY2x1ZGUgIkhpdFRl
c3RSZXN1bHQuaCIKICNlbmRpZgogCkBAIC0yMTEsNiArMjEzLDEwIEBAIFdlYlBhZ2U6OldlYlBh
Z2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzKQogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9y
Q2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVudCh0aGlzKTsKICNlbmRpZgorI2lmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKFFUKQorICAgIHBhZ2VDbGllbnRzLmRl
dmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ7Cisg
ICAgcGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xpZW50ID0gbmV3IERldmljZU1vdGlvbkNsaWVu
dFF0OworI2VuZGlmCiAgICAgbV9wYWdlID0gYWRvcHRQdHIobmV3IFBhZ2UocGFnZUNsaWVudHMp
KTsKIAogICAgIC8vIFF0IGRvZXMgbm90IHlldCBjYWxsIHNldElzSW5XaW5kb3cuIFVudGlsIGl0
IGRvZXMsIGp1c3QgbGVhdmUKLS0gCjEuNy4xCgo=
</data>
<flag name="commit-queue"
          id="95789"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100996</attachid>
            <date>2011-07-15 09:50:01 -0700</date>
            <delta_ts>2011-07-15 10:01:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Qt-Make-DeviceMotion-and-DeviceOrientation-work-with.patch</filename>
            <type>text/plain</type>
            <size>36308</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSBiNWNlYjJjMzJiMjI1ZTJjMzc4ZjA4YzcxNWM2MzRiODcxMDdhMjQ1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aEB3
ZWJraXQub3JnPgpEYXRlOiBGcmksIDE1IEp1bCAyMDExIDE1OjAzOjUzICswMjAwClN1YmplY3Q6
IFtQQVRDSCAxLzJdIFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9u
IHdvcmsgd2l0aCBXZWJLaXQyCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjQ1OTUKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKU291cmNlL1dlYkNvcmU6CgpU
aGUgcHJvdmlkZXIgaXMgc2hhcmVkIGJldHdlZW4gV2ViS2l0MSBhbmQgV2ViS2l0MiBhcyBhIHBh
cnQgb2YgV2ViQ29yZQphbmQgbW9kaWZpZWQgdG8gbm90IHJlbHkgb24gUU9iamVjdCArIHNpZ25h
bHMuCgpUaGUgY2xpZW50IGlzIGltcGxlbWVudGVkIGluIFdlYktpdDEgbGF5ZXIgYW5kIGNvbXBp
bGVkIGludG8gV2ViQ29yZSwKc28gdGhhdCBpcyBjYW4gYmUgdXNlZCBieSBib3RoIFdlYktpdDEg
YW5kIFdlYktpdDIgdW50aWwgd2UgdHVybgpXZWJDb3JlIGludG8gaXRzIG93biBsaWJyYXJ5LgoK
KiBwbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcDogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAu
CihXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0
KToKKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6On5EZXZpY2VNb3Rpb25Qcm92aWRl
clF0KToKKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnNldENvbnRyb2xsZXIpOgoo
V2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RhcnQpOgooV2ViQ29yZTo6RGV2aWNl
TW90aW9uUHJvdmlkZXJRdDo6c3RvcCk6CihXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0
OjpmaWx0ZXIpOgoqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdC5oLgooV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6Y3VycmVudERldmljZU1v
dGlvbik6CiogcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcDogQWRk
ZWQuCihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OkRldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdCk6CihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6On5E
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQpOgooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0OjpzZXRDb250cm9sbGVyKToKKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdDo6c3RhcnQpOgooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojpz
dG9wKToKKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKToKKiBw
bGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Lmgu
CihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OmlzQWN0aXZlKToKKFdlYkNv
cmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6bGFzdE9yaWVudGF0aW9uKToKKFdlYkNv
cmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6aGFzQWxwaGEpOgoKU291cmNlL1dlYktp
dC9xdDoKClRoZSBwcm92aWRlciBpcyBzaGFyZWQgYmV0d2VlbiBXZWJLaXQxIGFuZCBXZWJLaXQy
IGFzIGEgcGFydCBvZiBXZWJDb3JlCmFuZCBtb2RpZmllZCB0byBub3QgcmVseSBvbiBRT2JqZWN0
ICsgc2lnbmFscy4KClRoZSBjbGllbnQgaXMgaW1wbGVtZW50ZWQgaW4gV2ViS2l0MSBsYXllciBh
bmQgY29tcGlsZWQgaW50byBXZWJDb3JlLApzbyB0aGF0IGlzIGNhbiBiZSB1c2VkIGJ5IGJvdGgg
V2ViS2l0MSBhbmQgV2ViS2l0MiB1bnRpbCB3ZSB0dXJuCldlYkNvcmUgaW50byBpdHMgb3duIGxp
YnJhcnkuCgoqIEFwaS9xd2VicGFnZS5jcHA6CihRV2ViUGFnZVByaXZhdGU6OlFXZWJQYWdlUHJp
dmF0ZSk6CiogV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwOgooV2ViS2l0
OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6fkRldmljZU1vdGlvbkNsaWVudFF0KToKKFdlYktpdDo6
RGV2aWNlTW90aW9uQ2xpZW50UXQ6OmRldmljZU1vdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQpOgoo
V2ViS2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6c2V0Q29udHJvbGxlcik6CihXZWJLaXQ6OkRl
dmljZU1vdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0aW5nKToKKFdlYktpdDo6RGV2aWNlTW90aW9u
Q2xpZW50UXQ6OnN0b3BVcGRhdGluZyk6CiogV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xp
ZW50UXQuaDoKKFdlYktpdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OkRldmljZU1vdGlvbkNsaWVu
dFF0KToKKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcDoKKFdl
YktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6fkRldmljZU9yaWVudGF0aW9uQ2xpZW50
UXQpOgooV2ViS2l0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpkZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXJEZXN0cm95ZWQpOgooV2ViS2l0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0
OjpzZXRDb250cm9sbGVyKToKKFdlYktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3Rh
cnRVcGRhdGluZyk6CihXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnN0b3BVcGRh
dGluZyk6CihXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6Omxhc3RPcmllbnRhdGlv
bik6CiogV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oOgooV2ViS2l0
OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0KToK
ClNvdXJjZS9XZWJLaXQyOgoKQWRkIHRoZSBjbGllbnRzIHdoZW4gY3JlYXRpbmcgdGhlIHBhZ2Uu
CgoqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKLS0tCiBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzUgKysrKysrKysKIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArKysK
IC4uLi9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwIHwgICA4
NSArKysrKysrKysrKysrKysrKysrKwogLi4uL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90
aW9uUHJvdmlkZXJRdC5oICAgfCAgIDU5ICsrKysrKysrKysrKysrCiAuLi4vcGxhdGZvcm0vcXQv
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcCAgICB8ICAgNzkgKysrKysrKysrKysrKysr
KysrCiAuLi4vcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmggICAgICB8
ICAgNTUgKysrKysrKysrKysrKwogU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwICAg
ICAgICAgICAgICAgICAgfCAgICA0ICstCiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMzQgKysrKysrKysKIFNvdXJjZS9XZWJLaXQvcXQvUXRX
ZWJLaXQucHJvICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiAtCiAuLi4vcXQvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwICAgICB8ICAgNDMgKysrKy0tLS0tLS0KIC4u
Li9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oICAgICAgIHwgICAzMiAr
KysrLS0tLQogLi4uL3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3Bw
ICAgfCAgIDc1IC0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNl
TW90aW9uUHJvdmlkZXJRdC5oICAgICB8ICAgNTcgLS0tLS0tLS0tLS0tLQogLi4uL1dlYkNvcmVT
dXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwICAgfCAgIDQ2ICsrKystLS0tLS0t
CiAuLi4vcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oICB8ICAg
MzUgKysrKy0tLS0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxMSArKysKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcCAgICAgIHwgICAgNiArKwogMTcgZmlsZXMgY2hhbmdlZCwgNDQwIGluc2VydGlvbnMo
KyksIDIyOCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaAogZGVsZXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5j
cHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Rl
dmljZU1vdGlvblByb3ZpZGVyUXQuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YTNlNmViLi4zNTI5MDViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsNDAgQEAKIDIwMTEtMDctMTUgIEtlbm5ldGggUm9oZGUgQ2hy
aXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFtRdF0gTWFrZSBEZXZp
Y2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcm92aWRlciBpcyBz
aGFyZWQgYmV0d2VlbiBXZWJLaXQxIGFuZCBXZWJLaXQyIGFzIGEgcGFydCBvZiBXZWJDb3JlCisg
ICAgICAgIGFuZCBtb2RpZmllZCB0byBub3QgcmVseSBvbiBRT2JqZWN0ICsgc2lnbmFscy4KKwor
ICAgICAgICBUaGUgY2xpZW50IGlzIGltcGxlbWVudGVkIGluIFdlYktpdDEgbGF5ZXIgYW5kIGNv
bXBpbGVkIGludG8gV2ViQ29yZSwKKyAgICAgICAgc28gdGhhdCBpcyBjYW4gYmUgdXNlZCBieSBi
b3RoIFdlYktpdDEgYW5kIFdlYktpdDIgdW50aWwgd2UgdHVybgorICAgICAgICBXZWJDb3JlIGlu
dG8gaXRzIG93biBsaWJyYXJ5LgorCisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9u
UHJvdmlkZXJRdC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwLgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
TW90aW9uUHJvdmlkZXJRdDo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdCk6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0Ojp+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzZXRDb250cm9sbGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0b3ApOgorICAgICAgICAoV2Vi
Q29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaC4KKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OmN1cnJlbnREZXZpY2VNb3Rpb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpEZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyUXQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRp
b25Qcm92aWRlclF0Ojp+RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcik6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OmZpbHRlcik6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Lmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRR
dC5oLgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojppc0Fj
dGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6Omxh
c3RPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQ6Omhhc0FscGhhKToKKworMjAxMS0wNy0xNSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5z
ZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKICAgICAgICAgVXBzdHJlYW0gUXRXZWJLaXQvTjkg
Y2hhbmdlcyByZWxhdGVkIHRvIHZpc2libGVDb250ZW50UmVjdAogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1ODkKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA5
ZDM0NDhkLi5iNThlMDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMzIxMCw2ICszMjEwLDE2IEBAIGNv
bnRhaW5zKERFRklORVMsIFdURl9VU0VfUVRfQkVBUkVSPTEpIHsKICAgICAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmgKIH0KIAorY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTj0xKSB7CisgICAgSEVBREVSUyArPSBc
CisgICAgICAgIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaCBcCisgICAgICAg
IHBsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oCisKKyAgICBTT1VSQ0VT
ICs9IFwKKyAgICAgICAgcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgXAor
ICAgICAgICBwbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwCit9CisK
IGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9HRU9MT0NBVElPTj0xKSB7CiAgICAgdjggewogICAg
ICAgICBTT1VSQ0VTICs9IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQv
RGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYWVkMTAxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICoKKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZU1vdGlvblByb3Zp
ZGVyUXQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEZXZpY2VNb3Rpb25Qcm92aWRlclF0
OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0KCkKKyAgICA6IG1fY29udHJvbGxlcigwKQorICAgICwg
bV9vcmllbnRhdGlvblByb3ZpZGVyKGFkb3B0UHRyKG5ldyBEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQoKSkpCit7CisgICAgbV9zZW5zb3IuYWRkRmlsdGVyKHRoaXMpOworICAgIG1fbGFzdE1v
dGlvbiA9IERldmljZU1vdGlvbkRhdGE6OmNyZWF0ZSgpOworfQorCitEZXZpY2VNb3Rpb25Qcm92
aWRlclF0Ojp+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpCit7CisgICAgLy8gVGhlIHNlbnNvciBp
cyBhdXRvbWF0aWNhbGx5IHN0b3BwZWQuCit9CisKK3ZvaWQgRGV2aWNlTW90aW9uUHJvdmlkZXJR
dDo6c2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyKQorewor
ICAgIGlmICghY29udHJvbGxlcikKKyAgICAgICAgc3RvcCgpOworCisgICAgbV9jb250cm9sbGVy
ID0gY29udHJvbGxlcjsKK30KKwordm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdGFydCgp
Cit7CisgICAgbV9zZW5zb3Iuc3RhcnQoKTsKKyAgICBtX29yaWVudGF0aW9uUHJvdmlkZXItPnN0
YXJ0KCk7Cit9CisKK3ZvaWQgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RvcCgpCit7CisgICAg
bV9zZW5zb3Iuc3RvcCgpOworICAgIG1fb3JpZW50YXRpb25Qcm92aWRlci0+c3RvcCgpOworfQor
Citib29sIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OmZpbHRlcihRQWNjZWxlcm9tZXRlclJlYWRp
bmcqIHJlYWRpbmcpCit7CisgICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlv
bj4gYWNjZWwgPSBEZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRpb246OmNyZWF0ZSgKKyAgICAg
ICAgICAgIC8qIHggYXZhaWxhYmxlICovIHRydWUsIC0gcmVhZGluZy0+eCgpLAorICAgICAgICAg
ICAgLyogeSBhdmFpbGFibGUgKi8gdHJ1ZSwgLSByZWFkaW5nLT55KCksCisgICAgICAgICAgICAv
KiB6IGF2YWlsYWJsZSAqLyB0cnVlLCAtIHJlYWRpbmctPnooKSk7CisKKyAgICBib29sIGhhc0Fs
cGhhID0gbV9vcmllbnRhdGlvblByb3ZpZGVyLT5oYXNBbHBoYSgpOworICAgIERldmljZU9yaWVu
dGF0aW9uKiBvcmllbnQgPSBtX29yaWVudGF0aW9uUHJvdmlkZXItPmxhc3RPcmllbnRhdGlvbigp
OworCisgICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE6OlJvdGF0aW9uUmF0ZT4gcm90YXRpb24g
PSBEZXZpY2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGU6OmNyZWF0ZSgKKyAgICAgICAgICAgIC8q
IGFscGhhIGF2YWlsYWJsZSAqLyBoYXNBbHBoYSwgb3JpZW50LT5hbHBoYSgpLAorICAgICAgICAg
ICAgLyogYmV0YSAgYXZhaWxhYmxlICovIHRydWUsIG9yaWVudC0+YmV0YSgpLAorICAgICAgICAg
ICAgLyogZ2FtbWEgYXZhaWxhYmxlICovIHRydWUsIG9yaWVudC0+Z2FtbWEoKSk7CisKKyAgICBt
X2xhc3RNb3Rpb24gPSBEZXZpY2VNb3Rpb25EYXRhOjpjcmVhdGUoYWNjZWwsCisgICAgICAgICAg
ICBhY2NlbCwgLyogRklYTUU6IE5lZWRzIHRvIHByb3ZpZGUgYWNjZWxlcmF0aW9uIGluY2x1ZGUg
Z3Jhdml0eS4gKi8KKyAgICAgICAgICAgIHJvdGF0aW9uLAorICAgICAgICAgICAgZmFsc2UsIDAg
LyogVGhlIGludGVydmFsIGlzIHRyZWF0ZWQgaW50ZXJuYWxseSBieSBRdCBtb2JpbGl0eSAqLyk7
CisKKyAgICBpZiAobV9jb250cm9sbGVyKQorICAgICAgICBtX2NvbnRyb2xsZXItPmRpZENoYW5n
ZURldmljZU1vdGlvbihtX2xhc3RNb3Rpb24uZ2V0KCkpOworCisgICAgLy8gV2UgYXJlIHRoZSBv
bmx5IGZpbHRlciwgc28gbm90IG5lZWQgdG8gYWxsb3cgcHJvcGFnYXRpb24uCisgICAgcmV0dXJu
IGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uN2ZjZWMwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaApAQCAtMCwwICsxLDU5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpZm5kZWYgRGV2aWNlTW90aW9uUHJvdmlkZXJRdF9oCisj
ZGVmaW5lIERldmljZU1vdGlvblByb3ZpZGVyUXRfaAorCisjaW5jbHVkZSAiRGV2aWNlTW90aW9u
Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIkRldmljZU1vdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJE
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNp
bmNsdWRlIDxRQWNjZWxlcm9tZXRlckZpbHRlcj4KKworUVRNX1VTRV9OQU1FU1BBQ0UKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0IDogcHVibGlj
IFFBY2NlbGVyb21ldGVyRmlsdGVyIHsKK3B1YmxpYzoKKyAgICBEZXZpY2VNb3Rpb25Qcm92aWRl
clF0KCk7CisgICAgfkRldmljZU1vdGlvblByb3ZpZGVyUXQoKTsKKworICAgIHZvaWQgc2V0Q29u
dHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKik7CisKKyAgICBib29sIGZpbHRlcihRQWNj
ZWxlcm9tZXRlclJlYWRpbmcqKTsKKyAgICB2b2lkIHN0YXJ0KCk7CisgICAgdm9pZCBzdG9wKCk7
CisgICAgRGV2aWNlTW90aW9uRGF0YSogY3VycmVudERldmljZU1vdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fbGFzdE1vdGlvbi5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxEZXZpY2VN
b3Rpb25EYXRhPiBtX2xhc3RNb3Rpb247CisKKyAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBt
X2NvbnRyb2xsZXI7CisgICAgUUFjY2VsZXJvbWV0ZXIgbV9zZW5zb3I7CisKKyAgICBPd25QdHI8
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0PiBtX29yaWVudGF0aW9uUHJvdmlkZXI7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEZXZpY2VNb3Rpb25Qcm92aWRl
clF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyUXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjYwN2FjYmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICoKKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdDo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KCkKKyAgICA6IG1fY29u
dHJvbGxlcigwKQoreworICAgIG1fc2Vuc29yLmFkZEZpbHRlcih0aGlzKTsKKyAgICBtX2xhc3RP
cmllbnRhdGlvbiA9IERldmljZU9yaWVudGF0aW9uOjpjcmVhdGUoKTsKK30KKworRGV2aWNlT3Jp
ZW50YXRpb25Qcm92aWRlclF0Ojp+RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KCkKK3sKKyAg
ICAvLyBUaGUgc2Vuc29yIGlzIGF1dG9tYXRpY2FsbHkgc3RvcHBlZC4KK30KKwordm9pZCBEZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyKiBjb250cm9sbGVyKQoreworICAgIGlmICghY29udHJvbGxlcikKKyAgICAgICAg
c3RvcCgpOworCisgICAgbV9jb250cm9sbGVyID0gY29udHJvbGxlcjsKK30KKwordm9pZCBEZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0YXJ0KCkKK3sKKyAgICBtX3NlbnNvci5zdGFydCgp
OworfQorCit2b2lkIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c3RvcCgpCit7CisgICAg
bV9zZW5zb3Iuc3RvcCgpOworfQorCitib29sIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6
ZmlsdGVyKFFSb3RhdGlvblJlYWRpbmcqIHJlYWRpbmcpCit7CisgICAgLy8gUHJvdmlkZSBkZXZp
Y2Ugb3JpZW50YXRpb24gZGF0YSBhY2NvcmRpbmcgVzNDIHNwZWM6CisgICAgLy8gaHR0cDovL2Rl
di53My5vcmcvZ2VvL2FwaS9zcGVjLXNvdXJjZS1vcmllbnRhdGlvbi5odG1sCisgICAgLy8gUXQg
bW9iaWxpdHkgcHJvdmlkZSB0aGVzZSBkYXRhIHZpYSBRUm90YXRpb25TZW5zb3IgdXNpbmcgdGhl
CisgICAgLy8gUVJvdGF0aW9uUmVhZGluZyBjbGFzczoKKyAgICAvLyAgLSB0aGUgcm90YXRpb24g
YXJvdW5kIHogYXhpcyAoYWxwaGEpIGlzIGdpdmVuIGFzIHogaW4gUVJvdGF0aW9uUmVhZGluZzsK
KyAgICAvLyAgLSB0aGUgcm90YXRpb24gYXJvdW5kIHggYXhpcyAoYmV0YSkgaXMgZ2l2ZW4gYXMg
eCBpbiBRUm90YXRpb25SZWFkaW5nOworICAgIC8vICAtIHRoZSByb3RhdGlvbiBhcm91bmQgeSBh
eGlzIChnYW1tYSkgaXMgZ2l2ZW4gYXMgeSBpbiBRUm90YXRpb25SZWFkaW5nOworICAgIC8vIFNl
ZTogaHR0cDovL2RvYy5xdC5ub2tpYS5jb20vcXRtb2JpbGl0eS0xLjAvcXJvdGF0aW9ucmVhZGlu
Zy5odG1sCisgICAgLy8gVGhlIFogKGFscGhhKSByb3RhdGlvbiBhbmdsZSBpcyBjaGVja2VkIHZp
YSBoYXNBbHBoYSgpIHByaXZhdGUgbWV0aG9kLAorICAgIC8vIGRlcGVuZGluZyBpZiB0aGUgZGV2
aWNlIGlzIGFibGUgZG8gZGV0ZWN0IHRoZSBhbHBoYSByb3RhdGlvbi4gWCAoYmV0YSkgYW5kCisg
ICAgLy8gWSAoZ2FtbWEpIGF4aXMgYXJlIGF2YWlsYmxlIGluIHRoaXMgY29udGV4dC4KKyAgICBt
X2xhc3RPcmllbnRhdGlvbiA9IERldmljZU9yaWVudGF0aW9uOjpjcmVhdGUoaGFzQWxwaGEoKSwg
cmVhZGluZy0+eigpLAorICAgICAgICAgICAgLyogeCBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGlu
Zy0+eCgpLAorICAgICAgICAgICAgLyogeSBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eSgp
KTsKKworICAgIGlmIChtX2NvbnRyb2xsZXIpCisgICAgICAgIG1fY29udHJvbGxlci0+ZGlkQ2hh
bmdlRGV2aWNlT3JpZW50YXRpb24obV9sYXN0T3JpZW50YXRpb24uZ2V0KCkpOworCisgICAgLy8g
V2UgYXJlIHRoZSBvbmx5IGZpbHRlciwgc28gbm90IG5lZWQgdG8gYWxsb3cgcHJvcGFnYXRpb24u
CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhOGI5NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaApAQCAtMCww
ICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0X2gKKyNkZWZpbmUgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gKKworI2luY2x1
ZGUgIkRldmljZU9yaWVudGF0aW9uLmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyLmgiCisjaW5jbHVkZSA8UVJvdGF0aW9uRmlsdGVyPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKworUVRNX1VTRV9OQU1FU1BBQ0UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQgOiBwdWJsaWMgUVJvdGF0aW9uRmlsdGVyIHsK
K3B1YmxpYzoKKyAgICBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQoKTsKKyAgICB+RGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0KCk7CisKKyAgICB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyKik7CisKKyAgICBib29sIGZpbHRlcihRUm90YXRpb25SZWFk
aW5nKik7CisgICAgdm9pZCBzdGFydCgpOworICAgIHZvaWQgc3RvcCgpOworICAgIGJvb2wgaXNB
Y3RpdmUoKSBjb25zdCB7IHJldHVybiBtX3NlbnNvci5pc0FjdGl2ZSgpOyB9CisgICAgRGV2aWNl
T3JpZW50YXRpb24qIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE9yaWVu
dGF0aW9uLmdldCgpOyB9CisgICAgYm9vbCBoYXNBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vu
c29yLnByb3BlcnR5KCJoYXNaIikudG9Cb29sKCk7IH0KKworcHJpdmF0ZToKKyAgICBSZWZQdHI8
RGV2aWNlT3JpZW50YXRpb24+IG1fbGFzdE9yaWVudGF0aW9uOworCisgICAgRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CisgICAgUVJvdGF0aW9uU2Vuc29yIG1fc2Vu
c29yOworfTsKKworfQorCisjZW5kaWYgLy8gRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAppbmRleCBmN2YyZGE4Li41YzFkNTRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9xdC9BcGkvcXdlYnBhZ2UuY3BwCkBAIC0zMzcsOCArMzM3LDggQEAgUVdlYlBhZ2VQcml2YXRl
OjpRV2ViUGFnZVByaXZhdGUoUVdlYlBhZ2UgKnFxKQogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGll
bnQgPSBuZXcgRHJhZ0NsaWVudFF0KHEpOwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVu
dCA9IG5ldyBJbnNwZWN0b3JDbGllbnRRdChxKTsKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQotICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50UXQocSk7Ci0gICAgcGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xp
ZW50ID0gbmV3IERldmljZU1vdGlvbkNsaWVudFF0KHEpOworICAgIHBhZ2VDbGllbnRzLmRldmlj
ZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ7CisgICAg
cGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xpZW50ID0gbmV3IERldmljZU1vdGlvbkNsaWVudFF0
OwogI2VuZGlmCiAjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBpZiAo
UVdlYlBhZ2VQcml2YXRlOjpkcnRSdW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGVmMjA2MjkuLjQ0ZDhh
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzkgQEAKIDIwMTEtMDctMTUgIEtlbm5ldGgg
Um9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFtRdF0g
TWFrZSBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcm92
aWRlciBpcyBzaGFyZWQgYmV0d2VlbiBXZWJLaXQxIGFuZCBXZWJLaXQyIGFzIGEgcGFydCBvZiBX
ZWJDb3JlCisgICAgICAgIGFuZCBtb2RpZmllZCB0byBub3QgcmVseSBvbiBRT2JqZWN0ICsgc2ln
bmFscy4KKworICAgICAgICBUaGUgY2xpZW50IGlzIGltcGxlbWVudGVkIGluIFdlYktpdDEgbGF5
ZXIgYW5kIGNvbXBpbGVkIGludG8gV2ViQ29yZSwKKyAgICAgICAgc28gdGhhdCBpcyBjYW4gYmUg
dXNlZCBieSBib3RoIFdlYktpdDEgYW5kIFdlYktpdDIgdW50aWwgd2UgdHVybgorICAgICAgICBX
ZWJDb3JlIGludG8gaXRzIG93biBsaWJyYXJ5LgorCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNw
cDoKKyAgICAgICAgKFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkRldmljZU1vdGlvbkNsaWVudFF0Ojp+RGV2aWNlTW90aW9uQ2xpZW50UXQpOgorICAgICAg
ICAoV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6ZGV2aWNlTW90aW9uQ29udHJvbGxlckRl
c3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzZXRDb250
cm9sbGVyKToKKyAgICAgICAgKFdlYktpdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OnN0YXJ0VXBk
YXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6c3RvcFVwZGF0
aW5nKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oOgor
ICAgICAgICAoV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6RGV2aWNlTW90aW9uQ2xpZW50
UXQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Ojp+RGV2aWNl
T3JpZW50YXRpb25DbGllbnRRdCk6CisgICAgICAgIChXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9u
Q2xpZW50UXQ6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCk6CisgICAgICAg
IChXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnNldENvbnRyb2xsZXIpOgorICAg
ICAgICAoV2ViS2l0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0aW5nKToK
KyAgICAgICAgKFdlYktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5n
KToKKyAgICAgICAgKFdlYktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVu
dGF0aW9uKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVu
dFF0Lmg6CisgICAgICAgIChXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OkRldmlj
ZU9yaWVudGF0aW9uQ2xpZW50UXQpOgorCisyMDExLTA3LTE1ICBLZW5uZXRoIFJvaGRlIENocmlz
dGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKwogICAgICAgICBVcHN0cmVhbSBRdFdlYktp
dC9OOSBjaGFuZ2VzIHJlbGF0ZWQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0CiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU4OQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L1F0V2ViS2l0LnBybyBiL1NvdXJjZS9XZWJLaXQvcXQvUXRXZWJLaXQu
cHJvCmluZGV4IDZjMGQ0ODcuLmI1NmQ0NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQv
UXRXZWJLaXQucHJvCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvUXRXZWJLaXQucHJvCkBAIC0yNzQs
MTQgKzI3NCwxMiBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSUNPTkRBVEFCQVNFPTEpIHsK
IGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT049MSkgewogICAgIEhF
QURFUlMgKz0gXAogICAgICAgICAkJFBXRC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGll
bnRRdC5oIFwKLSAgICAgICAgJCRQV0QvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdC5oIFwKICAgICAgICAgJCRQV0QvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdC5oIFwKICAgICAgICAgJCRQV0QvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRp
b25DbGllbnRNb2NrUXQuaCBcCiAgICAgICAgICQkUFdEL1dlYkNvcmVTdXBwb3J0L0RldmljZU9y
aWVudGF0aW9uUHJvdmlkZXJRdC5oCiAKICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgJCRQV0Qv
V2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwIFwKLSAgICAgICAgJCRQV0Qv
V2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgXAogICAgICAgICAkJFBX
RC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcCBcCiAgICAgICAg
ICQkUFdEL1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9ja1F0LmNwcCBc
CiAgICAgICAgICQkUFdEL1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJR
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNl
TW90aW9uQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZp
Y2VNb3Rpb25DbGllbnRRdC5jcHAKaW5kZXggNDc2MTUxNC4uMWVjMzljNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRR
dC5jcHAKQEAgLTIwLDQxICsyMCw0MSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkRldmljZU1vdGlvbkNsaWVudFF0LmgiCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KQorCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRldmlj
ZU1vdGlvblByb3ZpZGVyUXQuaCIKIAotI2luY2x1ZGUgInF3ZWJwYWdlLmgiCi0KIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotRGV2aWNlTW90aW9uQ2xpZW50UXQ6OkRldmljZU1vdGlvbkNsaWVudFF0
KFFXZWJQYWdlKiBwYWdlKQotICAgIDogbV9wYWdlKHBhZ2UpCi0gICAgLCBtX2NvbnRyb2xsZXIo
MCkKLSAgICAsIG1fcHJvdmlkZXIobmV3IERldmljZU1vdGlvblByb3ZpZGVyUXQoKSkKK0Rldmlj
ZU1vdGlvbkNsaWVudFF0Ojp+RGV2aWNlTW90aW9uQ2xpZW50UXQoKQogewotCi0gICAgY29ubmVj
dChtX3Byb3ZpZGVyLCBTSUdOQUwoZGV2aWNlTW90aW9uQ2hhbmdlZCgpKSwgU0xPVChjaGFuZ2VE
ZXZpY2VNb3Rpb24oKSkpOwogfQogCi1EZXZpY2VNb3Rpb25DbGllbnRRdDo6fkRldmljZU1vdGlv
bkNsaWVudFF0KCkKK3ZvaWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6OmRldmljZU1vdGlvbkNvbnRy
b2xsZXJEZXN0cm95ZWQoKQogewotICAgIGRpc2Nvbm5lY3QoKTsKLSAgICBkZWxldGUgbV9wcm92
aWRlcjsKKyAgICBkZWxldGUgdGhpczsKIH0KIAogdm9pZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6
c2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyKQogewotICAg
IG1fY29udHJvbGxlciA9IGNvbnRyb2xsZXI7CisgICAgLy8gSW5pdGlhbGl6ZSBsYXppbHkuCisg
ICAgaWYgKCFtX3Byb3ZpZGVyICYmIGNvbnRyb2xsZXIpCisgICAgICAgIG1fcHJvdmlkZXIgPSBh
ZG9wdFB0cihuZXcgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCk7CisKKyAgICBtX3Byb3ZpZGVyLT5z
ZXRDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogfQogCiB2b2lkIERldmljZU1vdGlvbkNsaWVudFF0
OjpzdGFydFVwZGF0aW5nKCkKIHsKLSAgICBtX3Byb3ZpZGVyLT5zdGFydCgpOworICAgIGlmICht
X3Byb3ZpZGVyKQorICAgICAgICBtX3Byb3ZpZGVyLT5zdGFydCgpOwogfQogCiB2b2lkIERldmlj
ZU1vdGlvbkNsaWVudFF0OjpzdG9wVXBkYXRpbmcoKQogewotICAgIG1fcHJvdmlkZXItPnN0b3Ao
KTsKKyAgICBpZiAobV9wcm92aWRlcikKKyAgICAgICAgbV9wcm92aWRlci0+c3RvcCgpOwogfQog
CiBEZXZpY2VNb3Rpb25EYXRhKiBEZXZpY2VNb3Rpb25DbGllbnRRdDo6Y3VycmVudERldmljZU1v
dGlvbigpIGNvbnN0CkBAIC02MiwxOSArNjIsNiBAQCBEZXZpY2VNb3Rpb25EYXRhKiBEZXZpY2VN
b3Rpb25DbGllbnRRdDo6Y3VycmVudERldmljZU1vdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cHJvdmlkZXItPmN1cnJlbnREZXZpY2VNb3Rpb24oKTsKIH0KIAotdm9pZCBEZXZpY2VNb3Rpb25D
bGllbnRRdDo6ZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCi17Ci0gICAgZGVsZXRl
IHRoaXM7Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6OmNoYW5nZURldmljZU1vdGlv
bigpCi17Ci0gICAgaWYgKCFtX2NvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1f
Y29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlTW90aW9uKGN1cnJlbnREZXZpY2VNb3Rpb24oKSk7
Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2luY2x1ZGUgIm1vY19EZXZpY2VNb3Rp
b25DbGllbnRRdC5jcHAiCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xp
ZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xp
ZW50UXQuaAppbmRleCBlYTg0M2UyLi5jYzVlZGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmgKKysrIGIvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oCkBAIC0yMCwzOCAr
MjAsMzYgQEAKICNpZm5kZWYgRGV2aWNlTW90aW9uQ2xpZW50UXRfaAogI2RlZmluZSBEZXZpY2VN
b3Rpb25DbGllbnRRdF9oCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCiAjaW5j
bHVkZSAiRGV2aWNlTW90aW9uQ2xpZW50LmgiCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIkRldmljZU1vdGlvbkRhdGEuaCIKLQotI2luY2x1ZGUgPFFPYmpl
Y3Q+Ci0KLWNsYXNzIFFXZWJQYWdlOworI2luY2x1ZGUgIkRldmljZU1vdGlvblByb3ZpZGVyUXQu
aCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDsKLQotY2xhc3MgRGV2aWNlTW90aW9uQ2xpZW50UXQg
OiBwdWJsaWMgUU9iamVjdCwgcHVibGljIERldmljZU1vdGlvbkNsaWVudCB7Ci0gICAgUV9PQkpF
Q1QKK2NsYXNzIERldmljZU1vdGlvbkNsaWVudFF0IDogcHVibGljIFdlYkNvcmU6OkRldmljZU1v
dGlvbkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgRGV2aWNlTW90aW9uQ2xpZW50UXQoUVdlYlBhZ2Uq
KTsKKyAgICBEZXZpY2VNb3Rpb25DbGllbnRRdCgpIHsgfTsKICAgICB2aXJ0dWFsIH5EZXZpY2VN
b3Rpb25DbGllbnRRdCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNl
TW90aW9uQ29udHJvbGxlciopOworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlTW90
aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpOworCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRp
bmcoKTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCk7CisKICAgICB2aXJ0dWFsIERl
dmljZU1vdGlvbkRhdGEqIGN1cnJlbnREZXZpY2VNb3Rpb24oKSBjb25zdDsKLSAgICB2aXJ0dWFs
IHZvaWQgZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpOwogCi1wdWJsaWMgUV9TTE9U
UzoKLSAgICB2b2lkIGNoYW5nZURldmljZU1vdGlvbigpOworICAgIHZpcnR1YWwgdm9pZCBzZXRD
b250cm9sbGVyKFdlYkNvcmU6OkRldmljZU1vdGlvbkNvbnRyb2xsZXIqKTsKIAotcHJpdmF0ZToK
LSAgICBRV2ViUGFnZSogbV9wYWdlOwotICAgIERldmljZU1vdGlvbkNvbnRyb2xsZXIqIG1fY29u
dHJvbGxlcjsKLSAgICBEZXZpY2VNb3Rpb25Qcm92aWRlclF0KiBtX3Byb3ZpZGVyOworICAgIE93
blB0cjxEZXZpY2VNb3Rpb25Qcm92aWRlclF0PiBtX3Byb3ZpZGVyOwogfTsKIAogfSAvLyBuYW1l
c3BlY2UgV2ViQ29yZQogCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKwog
I2VuZGlmIC8vIERldmljZU1vdGlvbkNsaWVudFF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjY2Y3Njk3Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
Ci0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
Ci0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJEZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgiCi0KLSNpbmNsdWRlICJE
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1E
ZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0KCkKLXsKLSAgICBt
X2FjY2VsZXJhdGlvbi5hZGRGaWx0ZXIodGhpcyk7Ci0gICAgbV9tb3Rpb24gPSBEZXZpY2VNb3Rp
b25EYXRhOjpjcmVhdGUoKTsKLSAgICBtX2RldmljZU9yaWVudGF0aW9uID0gbmV3IERldmljZU9y
aWVudGF0aW9uUHJvdmlkZXJRdCgpOwotfQotCi1EZXZpY2VNb3Rpb25Qcm92aWRlclF0Ojp+RGV2
aWNlTW90aW9uUHJvdmlkZXJRdCgpCi17Ci0gICAgZGVsZXRlIG1fZGV2aWNlT3JpZW50YXRpb247
Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RhcnQoKQotewotICAgIG1fYWNj
ZWxlcmF0aW9uLnN0YXJ0KCk7Ci0gICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+c3RhcnQoKTsKLX0K
LQotdm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdG9wKCkKLXsKLSAgICBtX2FjY2VsZXJh
dGlvbi5zdG9wKCk7Ci0gICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+c3RvcCgpOwotfQotCi1ib29s
IERldmljZU1vdGlvblByb3ZpZGVyUXQ6OmZpbHRlcihRQWNjZWxlcm9tZXRlclJlYWRpbmcqIHJl
YWRpbmcpCi17Ci0gICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbj4gYWNj
ZWwgPSBEZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRpb246OmNyZWF0ZSgKLSAgICAgICAgICAg
IC8qIHggYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPngoKSwKLSAgICAgICAgICAgIC8qIHkg
YXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPnkoKSwKLSAgICAgICAgICAgIC8qIHogYXZhaWxh
YmxlICovIHRydWUsIHJlYWRpbmctPnooKSk7Ci0KLSAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0
YTo6Um90YXRpb25SYXRlPiByb3RhdGlvbiA9IERldmljZU1vdGlvbkRhdGE6OlJvdGF0aW9uUmF0
ZTo6Y3JlYXRlKAotICAgICAgICAgICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+aGFzQWxwaGEoKSwg
bV9kZXZpY2VPcmllbnRhdGlvbi0+b3JpZW50YXRpb24oKS0+YWxwaGEoKSwKLSAgICAgICAgICAg
IC8qIGJldGEgYXZhaWxhYmxlICovIHRydWUsIG1fZGV2aWNlT3JpZW50YXRpb24tPm9yaWVudGF0
aW9uKCktPmJldGEoKSwKLSAgICAgICAgICAgIC8qIGdhbW1hIGF2YWlsYWJsZSAqLyB0cnVlLCBt
X2RldmljZU9yaWVudGF0aW9uLT5vcmllbnRhdGlvbigpLT5nYW1tYSgpKTsKLQotICAgIG1fbW90
aW9uID0gRGV2aWNlTW90aW9uRGF0YTo6Y3JlYXRlKGFjY2VsLAotICAgICAgICAgICAgYWNjZWws
IC8qIEZJWE1FOiBOZWVkcyB0byBwcm92aWRlIGFjY2VsZXJhdGlvbiBpbmNsdWRlIGdyYXZpdHku
ICovCi0gICAgICAgICAgICByb3RhdGlvbiwKLSAgICAgICAgICAgIGZhbHNlLCAwIC8qIFRoZSBp
bnRlcnZhbCBpcyB0cmVhdGVkIGludGVybmFsbHkgYnkgUXQgbW9iaWxpdHkgKi8pOwotCi0gICAg
ZW1pdCBkZXZpY2VNb3Rpb25DaGFuZ2VkKCk7Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2luY2x1ZGUgIm1vY19EZXZpY2VNb3Rpb25Qcm92aWRl
clF0LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2
aWNlTW90aW9uUHJvdmlkZXJRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
ZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYz
MjAwZDUuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZp
Y2VNb3Rpb25Qcm92aWRlclF0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0g
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KLSAqCi0gKi8KLSNpZm5kZWYgRGV2aWNlTW90aW9uUHJvdmlkZXJRdF9oCi0jZGVmaW5lIERl
dmljZU1vdGlvblByb3ZpZGVyUXRfaAotCi0jaW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0YS5oIgot
I2luY2x1ZGUgIlJlZlB0ci5oIgotCi0jaW5jbHVkZSA8UUFjY2VsZXJvbWV0ZXJGaWx0ZXI+Ci0j
aW5jbHVkZSA8UU9iamVjdD4KLQotUVRNX1VTRV9OQU1FU1BBQ0UKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ7Ci0KLWNsYXNzIERldmlj
ZU1vdGlvblByb3ZpZGVyUXQgOiBwdWJsaWMgUU9iamVjdCwgcHVibGljIFFBY2NlbGVyb21ldGVy
RmlsdGVyIHsKLSAgICBRX09CSkVDVAotcHVibGljOgotICAgIERldmljZU1vdGlvblByb3ZpZGVy
UXQoKTsKLSAgICB+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpOwotCi0gICAgYm9vbCBmaWx0ZXIo
UUFjY2VsZXJvbWV0ZXJSZWFkaW5nKik7Ci0gICAgdm9pZCBzdGFydCgpOwotICAgIHZvaWQgc3Rv
cCgpOwotICAgIERldmljZU1vdGlvbkRhdGEqIGN1cnJlbnREZXZpY2VNb3Rpb24oKSBjb25zdCB7
IHJldHVybiBtX21vdGlvbi5nZXQoKTsgfQotCi1RX1NJR05BTFM6Ci0gICAgdm9pZCBkZXZpY2VN
b3Rpb25DaGFuZ2VkKCk7Ci0KLXByaXZhdGU6Ci0gICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE+
IG1fbW90aW9uOwotICAgIFFBY2NlbGVyb21ldGVyIG1fYWNjZWxlcmF0aW9uOwotICAgIERldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdCogbV9kZXZpY2VPcmllbnRhdGlvbjsKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIERldmljZU1vdGlvblByb3ZpZGVyUXRfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRh
dGlvbkNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNl
T3JpZW50YXRpb25DbGllbnRRdC5jcHAKaW5kZXggMDFjYmU3My4uNzAzOGFkOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVu
dFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVu
dGF0aW9uQ2xpZW50UXQuY3BwCkBAIC0yMSw1OSArMjEsNDcgQEAKICNpbmNsdWRlICJEZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0LmgiCiAKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dE1vY2tRdC5oIgotI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgorI2lm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyUXQuaCIKLSNpbmNsdWRlICJxd2VicGFnZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLURldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50
UXQoUVdlYlBhZ2UqIHBhZ2UpCi0gICAgOiBtX3BhZ2UocGFnZSkKLSAgICAsIG1fY29udHJvbGxl
cigwKQotICAgICwgbV9wcm92aWRlcihuZXcgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KCkp
CitEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Ojp+RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCgp
CiB7Ci0gICAgY29ubmVjdChtX3Byb3ZpZGVyLCBTSUdOQUwoZGV2aWNlT3JpZW50YXRpb25DaGFu
Z2VkKERldmljZU9yaWVudGF0aW9uKikpLCBTTE9UKGNoYW5nZURldmljZU9yaWVudGF0aW9uKERl
dmljZU9yaWVudGF0aW9uKikpKTsKIH0KIAotRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6fkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50UXQoKQordm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0
OjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQogewotICAgIGRpc2Nvbm5l
Y3QoKTsKLSAgICBkZWxldGUgbV9wcm92aWRlcjsKKyAgICBkZWxldGUgdGhpczsKIH0KIAogdm9p
ZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKIHsKLSAgICBtX2NvbnRyb2xsZXIgPSBjb250cm9s
bGVyOworICAgIC8vIEluaXRpYWxpemUgbGF6aWx5LgorICAgIGlmICghbV9wcm92aWRlciAmJiBj
b250cm9sbGVyKQorICAgICAgICBtX3Byb3ZpZGVyID0gYWRvcHRQdHIobmV3IERldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJRdCk7CisKKyAgICBtX3Byb3ZpZGVyLT5zZXRDb250cm9sbGVyKGNvbnRy
b2xsZXIpOwogfQogCiB2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRp
bmcoKQogewotICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7CisgICAgaWYgKG1fcHJvdmlkZXIpCisg
ICAgICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7CiB9CiAKIHZvaWQgRGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdDo6c3RvcFVwZGF0aW5nKCkKIHsKLSAgICBtX3Byb3ZpZGVyLT5zdG9wKCk7CisgICAg
aWYgKG1fcHJvdmlkZXIpCisgICAgICAgIG1fcHJvdmlkZXItPnN0b3AoKTsKIH0KIAogRGV2aWNl
T3JpZW50YXRpb24qIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6Omxhc3RPcmllbnRhdGlvbigp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJvdmlkZXItPm9yaWVudGF0aW9uKCk7Ci19Ci0KLXZv
aWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
RGVzdHJveWVkKCkKLXsKLSAgICBkZWxldGUgdGhpczsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRh
dGlvbkNsaWVudFF0OjpjaGFuZ2VEZXZpY2VPcmllbnRhdGlvbihEZXZpY2VPcmllbnRhdGlvbiog
b3JpZW50YXRpb24pCi17Ci0gICAgaWYgKCFtX2NvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybjsK
LQotICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24ob3JpZW50YXRp
b24pOworICAgIHJldHVybiAobV9wcm92aWRlcikgPyBtX3Byb3ZpZGVyLT5sYXN0T3JpZW50YXRp
b24oKSA6IDA7CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAogCi0jaW5jbHVkZSAibW9jX0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwIgorI2Vu
ZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCBiL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oCmlu
ZGV4IDYxOTY4YzQuLmRmMWRjMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oCkBAIC0yMCwzOCAr
MjAsMzcgQEAKICNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdF9oCiAjZGVmaW5lIERl
dmljZU9yaWVudGF0aW9uQ2xpZW50UXRfaAogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKKwogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQuaCIKLQotI2luY2x1ZGUgPFFPYmplY3Q+Ci0KLWNsYXNzIFFXZWJQYWdl
OworI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkRl
dmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oIgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDsKLQotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdCA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMgRGV2aWNlT3JpZW50YXRpb25DbGllbnQg
ewotICAgIFFfT0JKRUNUCitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0IDogcHVibGlj
IFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBEZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0KFFXZWJQYWdlKik7CisgICAgRGV2aWNlT3JpZW50YXRpb25DbGll
bnRRdCgpIHsgfQogICAgIHZpcnR1YWwgfkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQoKTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciopOworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyRGVzdHJveWVkKCk7CisKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAg
IHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKKwogICAgIHZpcnR1YWwgRGV2aWNlT3JpZW50
YXRpb24qIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKIAotcHVibGljIFFfU0xPVFM6Ci0gICAg
dm9pZCBjaGFuZ2VEZXZpY2VPcmllbnRhdGlvbihEZXZpY2VPcmllbnRhdGlvbiopOworICAgIHZp
cnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlciopOwogCi1wcml2YXRlOgotICAgIFFXZWJQYWdlKiBtX3BhZ2U7Ci0gICAgRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7Ci0gICAgRGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0KiBtX3Byb3ZpZGVyOworICAgIE93blB0cjxEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQ+IG1fcHJvdmlkZXI7CiB9OwogCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAK
ICNlbmRpZiAvLyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjZTUw
YTAzLi45ZTczY2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAKIDIwMTEtMDctMTUgIEtl
bm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCisgICAgICAg
IFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBX
ZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NDU5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCB0aGUgY2xpZW50cyB3aGVuIGNyZWF0aW5nIHRoZSBwYWdlLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorCisyMDExLTA3LTE1ICBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKwogICAgICAgICBVcHN0cmVhbSBRdFdl
YktpdC9OOSBjaGFuZ2VzIHJlbGF0ZWQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0CiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU4OQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNjU0NDNhYi4uYzI3
N2UyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cApAQCAtMTIzLDYgKzEyMyw4IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFFUKQorI2luY2x1
ZGUgIkRldmljZU1vdGlvbkNsaWVudFF0LmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNlbmRpZgogCkBAIC0yMTEs
NiArMjEzLDEwIEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogI2lmIEVOQUJMRShJTlNQRUNUT1Ip
CiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVu
dCh0aGlzKTsKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRG
T1JNKFFUKQorICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IERl
dmljZU9yaWVudGF0aW9uQ2xpZW50UXQ7CisgICAgcGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xp
ZW50ID0gbmV3IERldmljZU1vdGlvbkNsaWVudFF0OworI2VuZGlmCiAgICAgbV9wYWdlID0gYWRv
cHRQdHIobmV3IFBhZ2UocGFnZUNsaWVudHMpKTsKIAogICAgIC8vIFF0IGRvZXMgbm90IHlldCBj
YWxsIHNldElzSW5XaW5kb3cuIFVudGlsIGl0IGRvZXMsIGp1c3QgbGVhdmUKLS0gCjEuNy4xCgo=
</data>
<flag name="commit-queue"
          id="95797"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100999</attachid>
            <date>2011-07-15 10:01:12 -0700</date>
            <delta_ts>2011-07-27 18:22:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Qt-Make-DeviceMotion-and-DeviceOrientation-work-with.patch</filename>
            <type>text/plain</type>
            <size>36226</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSA4ZWI5ZGU1ZjlkZDBmZWJhYjcwNTE0MTM0MGFkNTEwOGQ3ZDQ3YzA1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aEB3
ZWJraXQub3JnPgpEYXRlOiBGcmksIDE1IEp1bCAyMDExIDE1OjAzOjUzICswMjAwClN1YmplY3Q6
IFtQQVRDSCAxLzJdIFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9u
IHdvcmsgd2l0aCBXZWJLaXQyCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjQ1OTUKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKU291cmNlL1dlYkNvcmU6CgpU
aGUgcHJvdmlkZXIgaXMgc2hhcmVkIGJldHdlZW4gV2ViS2l0MSBhbmQgV2ViS2l0MiBhcyBhIHBh
cnQgb2YgV2ViQ29yZQphbmQgbW9kaWZpZWQgdG8gbm90IHJlbHkgb24gUU9iamVjdCArIHNpZ25h
bHMuCgpUaGUgY2xpZW50IGlzIGltcGxlbWVudGVkIGluIFdlYktpdDEgbGF5ZXIgYW5kIGNvbXBp
bGVkIGludG8gV2ViQ29yZSwKc28gdGhhdCBpcyBjYW4gYmUgdXNlZCBieSBib3RoIFdlYktpdDEg
YW5kIFdlYktpdDIgdW50aWwgd2UgdHVybgpXZWJDb3JlIGludG8gaXRzIG93biBsaWJyYXJ5LgoK
KiBwbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcDogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAu
CihXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0
KToKKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6On5EZXZpY2VNb3Rpb25Qcm92aWRl
clF0KToKKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnNldENvbnRyb2xsZXIpOgoo
V2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RhcnQpOgooV2ViQ29yZTo6RGV2aWNl
TW90aW9uUHJvdmlkZXJRdDo6c3RvcCk6CihXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0
OjpmaWx0ZXIpOgoqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdC5oLgooV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6Y3VycmVudERldmljZU1v
dGlvbik6CiogcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcDogQWRk
ZWQuCihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OkRldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdCk6CihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6On5E
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQpOgooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0OjpzZXRDb250cm9sbGVyKToKKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdDo6c3RhcnQpOgooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojpz
dG9wKToKKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKToKKiBw
bGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Lmgu
CihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OmlzQWN0aXZlKToKKFdlYkNv
cmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6bGFzdE9yaWVudGF0aW9uKToKKFdlYkNv
cmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6aGFzQWxwaGEpOgoKU291cmNlL1dlYktp
dC9xdDoKClRoZSBwcm92aWRlciBpcyBzaGFyZWQgYmV0d2VlbiBXZWJLaXQxIGFuZCBXZWJLaXQy
IGFzIGEgcGFydCBvZiBXZWJDb3JlCmFuZCBtb2RpZmllZCB0byBub3QgcmVseSBvbiBRT2JqZWN0
ICsgc2lnbmFscy4KClRoZSBjbGllbnQgaXMgaW1wbGVtZW50ZWQgaW4gV2ViS2l0MSBsYXllciBh
bmQgY29tcGlsZWQgaW50byBXZWJDb3JlLApzbyB0aGF0IGlzIGNhbiBiZSB1c2VkIGJ5IGJvdGgg
V2ViS2l0MSBhbmQgV2ViS2l0MiB1bnRpbCB3ZSB0dXJuCldlYkNvcmUgaW50byBpdHMgb3duIGxp
YnJhcnkuCgoqIEFwaS9xd2VicGFnZS5jcHA6CihRV2ViUGFnZVByaXZhdGU6OlFXZWJQYWdlUHJp
dmF0ZSk6CiogV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwOgooV2ViS2l0
OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6fkRldmljZU1vdGlvbkNsaWVudFF0KToKKFdlYktpdDo6
RGV2aWNlTW90aW9uQ2xpZW50UXQ6OmRldmljZU1vdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQpOgoo
V2ViS2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6c2V0Q29udHJvbGxlcik6CihXZWJLaXQ6OkRl
dmljZU1vdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0aW5nKToKKFdlYktpdDo6RGV2aWNlTW90aW9u
Q2xpZW50UXQ6OnN0b3BVcGRhdGluZyk6CiogV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xp
ZW50UXQuaDoKKFdlYktpdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OkRldmljZU1vdGlvbkNsaWVu
dFF0KToKKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcDoKKFdl
YktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6fkRldmljZU9yaWVudGF0aW9uQ2xpZW50
UXQpOgooV2ViS2l0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpkZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXJEZXN0cm95ZWQpOgooV2ViS2l0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0
OjpzZXRDb250cm9sbGVyKToKKFdlYktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3Rh
cnRVcGRhdGluZyk6CihXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnN0b3BVcGRh
dGluZyk6CihXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6Omxhc3RPcmllbnRhdGlv
bik6CiogV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oOgooV2ViS2l0
OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0KToK
ClNvdXJjZS9XZWJLaXQyOgoKQWRkIHRoZSBjbGllbnRzIHdoZW4gY3JlYXRpbmcgdGhlIHBhZ2Uu
CgoqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKLS0tCiBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzUgKysrKysrKysKIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArKysK
IC4uLi9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwIHwgICA4
NSArKysrKysrKysrKysrKysrKysrKwogLi4uL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90
aW9uUHJvdmlkZXJRdC5oICAgfCAgIDU5ICsrKysrKysrKysrKysrCiAuLi4vcGxhdGZvcm0vcXQv
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcCAgICB8ICAgNzkgKysrKysrKysrKysrKysr
KysrCiAuLi4vcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmggICAgICB8
ICAgNTUgKysrKysrKysrKysrKwogU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwICAg
ICAgICAgICAgICAgICAgfCAgICA0ICstCiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMzQgKysrKysrKysKIFNvdXJjZS9XZWJLaXQvcXQvUXRX
ZWJLaXQucHJvICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiAtCiAuLi4vcXQvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwICAgICB8ICAgNDMgKysrKy0tLS0tLS0KIC4u
Li9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oICAgICAgIHwgICAzMiAr
KysrLS0tLQogLi4uL3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3Bw
ICAgfCAgIDc1IC0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNl
TW90aW9uUHJvdmlkZXJRdC5oICAgICB8ICAgNTcgLS0tLS0tLS0tLS0tLQogLi4uL1dlYkNvcmVT
dXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwICAgfCAgIDQ0ICsrKystLS0tLS0t
CiAuLi4vcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oICB8ICAg
MzMgKysrKy0tLS0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxMSArKysKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcCAgICAgIHwgICAgNiArKwogMTcgZmlsZXMgY2hhbmdlZCwgNDM4IGluc2VydGlvbnMo
KyksIDIyNiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaAogZGVsZXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5j
cHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Rl
dmljZU1vdGlvblByb3ZpZGVyUXQuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YTNlNmViLi4zNTI5MDViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsNDAgQEAKIDIwMTEtMDctMTUgIEtlbm5ldGggUm9oZGUgQ2hy
aXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFtRdF0gTWFrZSBEZXZp
Y2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcm92aWRlciBpcyBz
aGFyZWQgYmV0d2VlbiBXZWJLaXQxIGFuZCBXZWJLaXQyIGFzIGEgcGFydCBvZiBXZWJDb3JlCisg
ICAgICAgIGFuZCBtb2RpZmllZCB0byBub3QgcmVseSBvbiBRT2JqZWN0ICsgc2lnbmFscy4KKwor
ICAgICAgICBUaGUgY2xpZW50IGlzIGltcGxlbWVudGVkIGluIFdlYktpdDEgbGF5ZXIgYW5kIGNv
bXBpbGVkIGludG8gV2ViQ29yZSwKKyAgICAgICAgc28gdGhhdCBpcyBjYW4gYmUgdXNlZCBieSBi
b3RoIFdlYktpdDEgYW5kIFdlYktpdDIgdW50aWwgd2UgdHVybgorICAgICAgICBXZWJDb3JlIGlu
dG8gaXRzIG93biBsaWJyYXJ5LgorCisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9u
UHJvdmlkZXJRdC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwLgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
TW90aW9uUHJvdmlkZXJRdDo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdCk6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0Ojp+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzZXRDb250cm9sbGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0b3ApOgorICAgICAgICAoV2Vi
Q29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaC4KKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OmN1cnJlbnREZXZpY2VNb3Rpb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpEZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyUXQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRp
b25Qcm92aWRlclF0Ojp+RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcik6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OmZpbHRlcik6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Lmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRR
dC5oLgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojppc0Fj
dGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6Omxh
c3RPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQ6Omhhc0FscGhhKToKKworMjAxMS0wNy0xNSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5z
ZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKICAgICAgICAgVXBzdHJlYW0gUXRXZWJLaXQvTjkg
Y2hhbmdlcyByZWxhdGVkIHRvIHZpc2libGVDb250ZW50UmVjdAogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1ODkKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA5
ZDM0NDhkLi5iNThlMDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMzIxMCw2ICszMjEwLDE2IEBAIGNv
bnRhaW5zKERFRklORVMsIFdURl9VU0VfUVRfQkVBUkVSPTEpIHsKICAgICAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmgKIH0KIAorY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTj0xKSB7CisgICAgSEVBREVSUyArPSBc
CisgICAgICAgIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaCBcCisgICAgICAg
IHBsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oCisKKyAgICBTT1VSQ0VT
ICs9IFwKKyAgICAgICAgcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgXAor
ICAgICAgICBwbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwCit9CisK
IGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9HRU9MT0NBVElPTj0xKSB7CiAgICAgdjggewogICAg
ICAgICBTT1VSQ0VTICs9IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQv
RGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYWVkMTAxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICoKKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZU1vdGlvblByb3Zp
ZGVyUXQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEZXZpY2VNb3Rpb25Qcm92aWRlclF0
OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0KCkKKyAgICA6IG1fY29udHJvbGxlcigwKQorICAgICwg
bV9vcmllbnRhdGlvblByb3ZpZGVyKGFkb3B0UHRyKG5ldyBEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQoKSkpCit7CisgICAgbV9zZW5zb3IuYWRkRmlsdGVyKHRoaXMpOworICAgIG1fbGFzdE1v
dGlvbiA9IERldmljZU1vdGlvbkRhdGE6OmNyZWF0ZSgpOworfQorCitEZXZpY2VNb3Rpb25Qcm92
aWRlclF0Ojp+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpCit7CisgICAgLy8gVGhlIHNlbnNvciBp
cyBhdXRvbWF0aWNhbGx5IHN0b3BwZWQuCit9CisKK3ZvaWQgRGV2aWNlTW90aW9uUHJvdmlkZXJR
dDo6c2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyKQorewor
ICAgIGlmICghY29udHJvbGxlcikKKyAgICAgICAgc3RvcCgpOworCisgICAgbV9jb250cm9sbGVy
ID0gY29udHJvbGxlcjsKK30KKwordm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdGFydCgp
Cit7CisgICAgbV9zZW5zb3Iuc3RhcnQoKTsKKyAgICBtX29yaWVudGF0aW9uUHJvdmlkZXItPnN0
YXJ0KCk7Cit9CisKK3ZvaWQgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RvcCgpCit7CisgICAg
bV9zZW5zb3Iuc3RvcCgpOworICAgIG1fb3JpZW50YXRpb25Qcm92aWRlci0+c3RvcCgpOworfQor
Citib29sIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OmZpbHRlcihRQWNjZWxlcm9tZXRlclJlYWRp
bmcqIHJlYWRpbmcpCit7CisgICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlv
bj4gYWNjZWwgPSBEZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRpb246OmNyZWF0ZSgKKyAgICAg
ICAgICAgIC8qIHggYXZhaWxhYmxlICovIHRydWUsIC0gcmVhZGluZy0+eCgpLAorICAgICAgICAg
ICAgLyogeSBhdmFpbGFibGUgKi8gdHJ1ZSwgLSByZWFkaW5nLT55KCksCisgICAgICAgICAgICAv
KiB6IGF2YWlsYWJsZSAqLyB0cnVlLCAtIHJlYWRpbmctPnooKSk7CisKKyAgICBib29sIGhhc0Fs
cGhhID0gbV9vcmllbnRhdGlvblByb3ZpZGVyLT5oYXNBbHBoYSgpOworICAgIERldmljZU9yaWVu
dGF0aW9uKiBvcmllbnQgPSBtX29yaWVudGF0aW9uUHJvdmlkZXItPmxhc3RPcmllbnRhdGlvbigp
OworCisgICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE6OlJvdGF0aW9uUmF0ZT4gcm90YXRpb24g
PSBEZXZpY2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGU6OmNyZWF0ZSgKKyAgICAgICAgICAgIC8q
IGFscGhhIGF2YWlsYWJsZSAqLyBoYXNBbHBoYSwgb3JpZW50LT5hbHBoYSgpLAorICAgICAgICAg
ICAgLyogYmV0YSAgYXZhaWxhYmxlICovIHRydWUsIG9yaWVudC0+YmV0YSgpLAorICAgICAgICAg
ICAgLyogZ2FtbWEgYXZhaWxhYmxlICovIHRydWUsIG9yaWVudC0+Z2FtbWEoKSk7CisKKyAgICBt
X2xhc3RNb3Rpb24gPSBEZXZpY2VNb3Rpb25EYXRhOjpjcmVhdGUoYWNjZWwsCisgICAgICAgICAg
ICBhY2NlbCwgLyogRklYTUU6IE5lZWRzIHRvIHByb3ZpZGUgYWNjZWxlcmF0aW9uIGluY2x1ZGUg
Z3Jhdml0eS4gKi8KKyAgICAgICAgICAgIHJvdGF0aW9uLAorICAgICAgICAgICAgZmFsc2UsIDAg
LyogVGhlIGludGVydmFsIGlzIHRyZWF0ZWQgaW50ZXJuYWxseSBieSBRdCBtb2JpbGl0eSAqLyk7
CisKKyAgICBpZiAobV9jb250cm9sbGVyKQorICAgICAgICBtX2NvbnRyb2xsZXItPmRpZENoYW5n
ZURldmljZU1vdGlvbihtX2xhc3RNb3Rpb24uZ2V0KCkpOworCisgICAgLy8gV2UgYXJlIHRoZSBv
bmx5IGZpbHRlciwgc28gbm90IG5lZWQgdG8gYWxsb3cgcHJvcGFnYXRpb24uCisgICAgcmV0dXJu
IGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uN2ZjZWMwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaApAQCAtMCwwICsxLDU5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpZm5kZWYgRGV2aWNlTW90aW9uUHJvdmlkZXJRdF9oCisj
ZGVmaW5lIERldmljZU1vdGlvblByb3ZpZGVyUXRfaAorCisjaW5jbHVkZSAiRGV2aWNlTW90aW9u
Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIkRldmljZU1vdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJE
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNp
bmNsdWRlIDxRQWNjZWxlcm9tZXRlckZpbHRlcj4KKworUVRNX1VTRV9OQU1FU1BBQ0UKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0IDogcHVibGlj
IFFBY2NlbGVyb21ldGVyRmlsdGVyIHsKK3B1YmxpYzoKKyAgICBEZXZpY2VNb3Rpb25Qcm92aWRl
clF0KCk7CisgICAgfkRldmljZU1vdGlvblByb3ZpZGVyUXQoKTsKKworICAgIHZvaWQgc2V0Q29u
dHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKik7CisKKyAgICBib29sIGZpbHRlcihRQWNj
ZWxlcm9tZXRlclJlYWRpbmcqKTsKKyAgICB2b2lkIHN0YXJ0KCk7CisgICAgdm9pZCBzdG9wKCk7
CisgICAgRGV2aWNlTW90aW9uRGF0YSogY3VycmVudERldmljZU1vdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fbGFzdE1vdGlvbi5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxEZXZpY2VN
b3Rpb25EYXRhPiBtX2xhc3RNb3Rpb247CisKKyAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBt
X2NvbnRyb2xsZXI7CisgICAgUUFjY2VsZXJvbWV0ZXIgbV9zZW5zb3I7CisKKyAgICBPd25QdHI8
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0PiBtX29yaWVudGF0aW9uUHJvdmlkZXI7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEZXZpY2VNb3Rpb25Qcm92aWRl
clF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyUXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjYwN2FjYmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICoKKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdDo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KCkKKyAgICA6IG1fY29u
dHJvbGxlcigwKQoreworICAgIG1fc2Vuc29yLmFkZEZpbHRlcih0aGlzKTsKKyAgICBtX2xhc3RP
cmllbnRhdGlvbiA9IERldmljZU9yaWVudGF0aW9uOjpjcmVhdGUoKTsKK30KKworRGV2aWNlT3Jp
ZW50YXRpb25Qcm92aWRlclF0Ojp+RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KCkKK3sKKyAg
ICAvLyBUaGUgc2Vuc29yIGlzIGF1dG9tYXRpY2FsbHkgc3RvcHBlZC4KK30KKwordm9pZCBEZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyKiBjb250cm9sbGVyKQoreworICAgIGlmICghY29udHJvbGxlcikKKyAgICAgICAg
c3RvcCgpOworCisgICAgbV9jb250cm9sbGVyID0gY29udHJvbGxlcjsKK30KKwordm9pZCBEZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0YXJ0KCkKK3sKKyAgICBtX3NlbnNvci5zdGFydCgp
OworfQorCit2b2lkIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c3RvcCgpCit7CisgICAg
bV9zZW5zb3Iuc3RvcCgpOworfQorCitib29sIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6
ZmlsdGVyKFFSb3RhdGlvblJlYWRpbmcqIHJlYWRpbmcpCit7CisgICAgLy8gUHJvdmlkZSBkZXZp
Y2Ugb3JpZW50YXRpb24gZGF0YSBhY2NvcmRpbmcgVzNDIHNwZWM6CisgICAgLy8gaHR0cDovL2Rl
di53My5vcmcvZ2VvL2FwaS9zcGVjLXNvdXJjZS1vcmllbnRhdGlvbi5odG1sCisgICAgLy8gUXQg
bW9iaWxpdHkgcHJvdmlkZSB0aGVzZSBkYXRhIHZpYSBRUm90YXRpb25TZW5zb3IgdXNpbmcgdGhl
CisgICAgLy8gUVJvdGF0aW9uUmVhZGluZyBjbGFzczoKKyAgICAvLyAgLSB0aGUgcm90YXRpb24g
YXJvdW5kIHogYXhpcyAoYWxwaGEpIGlzIGdpdmVuIGFzIHogaW4gUVJvdGF0aW9uUmVhZGluZzsK
KyAgICAvLyAgLSB0aGUgcm90YXRpb24gYXJvdW5kIHggYXhpcyAoYmV0YSkgaXMgZ2l2ZW4gYXMg
eCBpbiBRUm90YXRpb25SZWFkaW5nOworICAgIC8vICAtIHRoZSByb3RhdGlvbiBhcm91bmQgeSBh
eGlzIChnYW1tYSkgaXMgZ2l2ZW4gYXMgeSBpbiBRUm90YXRpb25SZWFkaW5nOworICAgIC8vIFNl
ZTogaHR0cDovL2RvYy5xdC5ub2tpYS5jb20vcXRtb2JpbGl0eS0xLjAvcXJvdGF0aW9ucmVhZGlu
Zy5odG1sCisgICAgLy8gVGhlIFogKGFscGhhKSByb3RhdGlvbiBhbmdsZSBpcyBjaGVja2VkIHZp
YSBoYXNBbHBoYSgpIHByaXZhdGUgbWV0aG9kLAorICAgIC8vIGRlcGVuZGluZyBpZiB0aGUgZGV2
aWNlIGlzIGFibGUgZG8gZGV0ZWN0IHRoZSBhbHBoYSByb3RhdGlvbi4gWCAoYmV0YSkgYW5kCisg
ICAgLy8gWSAoZ2FtbWEpIGF4aXMgYXJlIGF2YWlsYmxlIGluIHRoaXMgY29udGV4dC4KKyAgICBt
X2xhc3RPcmllbnRhdGlvbiA9IERldmljZU9yaWVudGF0aW9uOjpjcmVhdGUoaGFzQWxwaGEoKSwg
cmVhZGluZy0+eigpLAorICAgICAgICAgICAgLyogeCBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGlu
Zy0+eCgpLAorICAgICAgICAgICAgLyogeSBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eSgp
KTsKKworICAgIGlmIChtX2NvbnRyb2xsZXIpCisgICAgICAgIG1fY29udHJvbGxlci0+ZGlkQ2hh
bmdlRGV2aWNlT3JpZW50YXRpb24obV9sYXN0T3JpZW50YXRpb24uZ2V0KCkpOworCisgICAgLy8g
V2UgYXJlIHRoZSBvbmx5IGZpbHRlciwgc28gbm90IG5lZWQgdG8gYWxsb3cgcHJvcGFnYXRpb24u
CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhOGI5NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaApAQCAtMCww
ICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0X2gKKyNkZWZpbmUgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gKKworI2luY2x1
ZGUgIkRldmljZU9yaWVudGF0aW9uLmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyLmgiCisjaW5jbHVkZSA8UVJvdGF0aW9uRmlsdGVyPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKworUVRNX1VTRV9OQU1FU1BBQ0UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQgOiBwdWJsaWMgUVJvdGF0aW9uRmlsdGVyIHsK
K3B1YmxpYzoKKyAgICBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQoKTsKKyAgICB+RGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0KCk7CisKKyAgICB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyKik7CisKKyAgICBib29sIGZpbHRlcihRUm90YXRpb25SZWFk
aW5nKik7CisgICAgdm9pZCBzdGFydCgpOworICAgIHZvaWQgc3RvcCgpOworICAgIGJvb2wgaXNB
Y3RpdmUoKSBjb25zdCB7IHJldHVybiBtX3NlbnNvci5pc0FjdGl2ZSgpOyB9CisgICAgRGV2aWNl
T3JpZW50YXRpb24qIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE9yaWVu
dGF0aW9uLmdldCgpOyB9CisgICAgYm9vbCBoYXNBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vu
c29yLnByb3BlcnR5KCJoYXNaIikudG9Cb29sKCk7IH0KKworcHJpdmF0ZToKKyAgICBSZWZQdHI8
RGV2aWNlT3JpZW50YXRpb24+IG1fbGFzdE9yaWVudGF0aW9uOworCisgICAgRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CisgICAgUVJvdGF0aW9uU2Vuc29yIG1fc2Vu
c29yOworfTsKKworfQorCisjZW5kaWYgLy8gRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAppbmRleCBmN2YyZGE4Li41YzFkNTRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9xdC9BcGkvcXdlYnBhZ2UuY3BwCkBAIC0zMzcsOCArMzM3LDggQEAgUVdlYlBhZ2VQcml2YXRl
OjpRV2ViUGFnZVByaXZhdGUoUVdlYlBhZ2UgKnFxKQogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGll
bnQgPSBuZXcgRHJhZ0NsaWVudFF0KHEpOwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVu
dCA9IG5ldyBJbnNwZWN0b3JDbGllbnRRdChxKTsKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQotICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50UXQocSk7Ci0gICAgcGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xp
ZW50ID0gbmV3IERldmljZU1vdGlvbkNsaWVudFF0KHEpOworICAgIHBhZ2VDbGllbnRzLmRldmlj
ZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ7CisgICAg
cGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xpZW50ID0gbmV3IERldmljZU1vdGlvbkNsaWVudFF0
OwogI2VuZGlmCiAjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBpZiAo
UVdlYlBhZ2VQcml2YXRlOjpkcnRSdW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGVmMjA2MjkuLjQ0ZDhh
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzkgQEAKIDIwMTEtMDctMTUgIEtlbm5ldGgg
Um9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFtRdF0g
TWFrZSBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcm92
aWRlciBpcyBzaGFyZWQgYmV0d2VlbiBXZWJLaXQxIGFuZCBXZWJLaXQyIGFzIGEgcGFydCBvZiBX
ZWJDb3JlCisgICAgICAgIGFuZCBtb2RpZmllZCB0byBub3QgcmVseSBvbiBRT2JqZWN0ICsgc2ln
bmFscy4KKworICAgICAgICBUaGUgY2xpZW50IGlzIGltcGxlbWVudGVkIGluIFdlYktpdDEgbGF5
ZXIgYW5kIGNvbXBpbGVkIGludG8gV2ViQ29yZSwKKyAgICAgICAgc28gdGhhdCBpcyBjYW4gYmUg
dXNlZCBieSBib3RoIFdlYktpdDEgYW5kIFdlYktpdDIgdW50aWwgd2UgdHVybgorICAgICAgICBX
ZWJDb3JlIGludG8gaXRzIG93biBsaWJyYXJ5LgorCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNw
cDoKKyAgICAgICAgKFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkRldmljZU1vdGlvbkNsaWVudFF0Ojp+RGV2aWNlTW90aW9uQ2xpZW50UXQpOgorICAgICAg
ICAoV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6ZGV2aWNlTW90aW9uQ29udHJvbGxlckRl
c3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzZXRDb250
cm9sbGVyKToKKyAgICAgICAgKFdlYktpdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OnN0YXJ0VXBk
YXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6c3RvcFVwZGF0
aW5nKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oOgor
ICAgICAgICAoV2ViS2l0OjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6RGV2aWNlTW90aW9uQ2xpZW50
UXQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Ojp+RGV2aWNl
T3JpZW50YXRpb25DbGllbnRRdCk6CisgICAgICAgIChXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9u
Q2xpZW50UXQ6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCk6CisgICAgICAg
IChXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnNldENvbnRyb2xsZXIpOgorICAg
ICAgICAoV2ViS2l0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0aW5nKToK
KyAgICAgICAgKFdlYktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5n
KToKKyAgICAgICAgKFdlYktpdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVu
dGF0aW9uKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVu
dFF0Lmg6CisgICAgICAgIChXZWJLaXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OkRldmlj
ZU9yaWVudGF0aW9uQ2xpZW50UXQpOgorCisyMDExLTA3LTE1ICBLZW5uZXRoIFJvaGRlIENocmlz
dGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKwogICAgICAgICBVcHN0cmVhbSBRdFdlYktp
dC9OOSBjaGFuZ2VzIHJlbGF0ZWQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0CiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU4OQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L1F0V2ViS2l0LnBybyBiL1NvdXJjZS9XZWJLaXQvcXQvUXRXZWJLaXQu
cHJvCmluZGV4IDZjMGQ0ODcuLmI1NmQ0NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQv
UXRXZWJLaXQucHJvCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvUXRXZWJLaXQucHJvCkBAIC0yNzQs
MTQgKzI3NCwxMiBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSUNPTkRBVEFCQVNFPTEpIHsK
IGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT049MSkgewogICAgIEhF
QURFUlMgKz0gXAogICAgICAgICAkJFBXRC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGll
bnRRdC5oIFwKLSAgICAgICAgJCRQV0QvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdC5oIFwKICAgICAgICAgJCRQV0QvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdC5oIFwKICAgICAgICAgJCRQV0QvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRp
b25DbGllbnRNb2NrUXQuaCBcCiAgICAgICAgICQkUFdEL1dlYkNvcmVTdXBwb3J0L0RldmljZU9y
aWVudGF0aW9uUHJvdmlkZXJRdC5oCiAKICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgJCRQV0Qv
V2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwIFwKLSAgICAgICAgJCRQV0Qv
V2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgXAogICAgICAgICAkJFBX
RC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcCBcCiAgICAgICAg
ICQkUFdEL1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9ja1F0LmNwcCBc
CiAgICAgICAgICQkUFdEL1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJR
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNl
TW90aW9uQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZp
Y2VNb3Rpb25DbGllbnRRdC5jcHAKaW5kZXggNDc2MTUxNC4uMWVjMzljNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRR
dC5jcHAKQEAgLTIwLDQxICsyMCw0MSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkRldmljZU1vdGlvbkNsaWVudFF0LmgiCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KQorCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRldmlj
ZU1vdGlvblByb3ZpZGVyUXQuaCIKIAotI2luY2x1ZGUgInF3ZWJwYWdlLmgiCi0KIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotRGV2aWNlTW90aW9uQ2xpZW50UXQ6OkRldmljZU1vdGlvbkNsaWVudFF0
KFFXZWJQYWdlKiBwYWdlKQotICAgIDogbV9wYWdlKHBhZ2UpCi0gICAgLCBtX2NvbnRyb2xsZXIo
MCkKLSAgICAsIG1fcHJvdmlkZXIobmV3IERldmljZU1vdGlvblByb3ZpZGVyUXQoKSkKK0Rldmlj
ZU1vdGlvbkNsaWVudFF0Ojp+RGV2aWNlTW90aW9uQ2xpZW50UXQoKQogewotCi0gICAgY29ubmVj
dChtX3Byb3ZpZGVyLCBTSUdOQUwoZGV2aWNlTW90aW9uQ2hhbmdlZCgpKSwgU0xPVChjaGFuZ2VE
ZXZpY2VNb3Rpb24oKSkpOwogfQogCi1EZXZpY2VNb3Rpb25DbGllbnRRdDo6fkRldmljZU1vdGlv
bkNsaWVudFF0KCkKK3ZvaWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6OmRldmljZU1vdGlvbkNvbnRy
b2xsZXJEZXN0cm95ZWQoKQogewotICAgIGRpc2Nvbm5lY3QoKTsKLSAgICBkZWxldGUgbV9wcm92
aWRlcjsKKyAgICBkZWxldGUgdGhpczsKIH0KIAogdm9pZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6
c2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyKQogewotICAg
IG1fY29udHJvbGxlciA9IGNvbnRyb2xsZXI7CisgICAgLy8gSW5pdGlhbGl6ZSBsYXppbHkuCisg
ICAgaWYgKCFtX3Byb3ZpZGVyICYmIGNvbnRyb2xsZXIpCisgICAgICAgIG1fcHJvdmlkZXIgPSBh
ZG9wdFB0cihuZXcgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCk7CisKKyAgICBtX3Byb3ZpZGVyLT5z
ZXRDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogfQogCiB2b2lkIERldmljZU1vdGlvbkNsaWVudFF0
OjpzdGFydFVwZGF0aW5nKCkKIHsKLSAgICBtX3Byb3ZpZGVyLT5zdGFydCgpOworICAgIGlmICht
X3Byb3ZpZGVyKQorICAgICAgICBtX3Byb3ZpZGVyLT5zdGFydCgpOwogfQogCiB2b2lkIERldmlj
ZU1vdGlvbkNsaWVudFF0OjpzdG9wVXBkYXRpbmcoKQogewotICAgIG1fcHJvdmlkZXItPnN0b3Ao
KTsKKyAgICBpZiAobV9wcm92aWRlcikKKyAgICAgICAgbV9wcm92aWRlci0+c3RvcCgpOwogfQog
CiBEZXZpY2VNb3Rpb25EYXRhKiBEZXZpY2VNb3Rpb25DbGllbnRRdDo6Y3VycmVudERldmljZU1v
dGlvbigpIGNvbnN0CkBAIC02MiwxOSArNjIsNiBAQCBEZXZpY2VNb3Rpb25EYXRhKiBEZXZpY2VN
b3Rpb25DbGllbnRRdDo6Y3VycmVudERldmljZU1vdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cHJvdmlkZXItPmN1cnJlbnREZXZpY2VNb3Rpb24oKTsKIH0KIAotdm9pZCBEZXZpY2VNb3Rpb25D
bGllbnRRdDo6ZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCi17Ci0gICAgZGVsZXRl
IHRoaXM7Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6OmNoYW5nZURldmljZU1vdGlv
bigpCi17Ci0gICAgaWYgKCFtX2NvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1f
Y29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlTW90aW9uKGN1cnJlbnREZXZpY2VNb3Rpb24oKSk7
Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2luY2x1ZGUgIm1vY19EZXZpY2VNb3Rp
b25DbGllbnRRdC5jcHAiCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xp
ZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xp
ZW50UXQuaAppbmRleCBlYTg0M2UyLi45YTFiMTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmgKKysrIGIvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oCkBAIC0yMCwzOCAr
MjAsMzYgQEAKICNpZm5kZWYgRGV2aWNlTW90aW9uQ2xpZW50UXRfaAogI2RlZmluZSBEZXZpY2VN
b3Rpb25DbGllbnRRdF9oCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCiAjaW5j
bHVkZSAiRGV2aWNlTW90aW9uQ2xpZW50LmgiCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIkRldmljZU1vdGlvbkRhdGEuaCIKLQotI2luY2x1ZGUgPFFPYmpl
Y3Q+Ci0KLWNsYXNzIFFXZWJQYWdlOworI2luY2x1ZGUgIkRldmljZU1vdGlvblByb3ZpZGVyUXQu
aCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDsKLQotY2xhc3MgRGV2aWNlTW90aW9uQ2xpZW50UXQg
OiBwdWJsaWMgUU9iamVjdCwgcHVibGljIERldmljZU1vdGlvbkNsaWVudCB7Ci0gICAgUV9PQkpF
Q1QKK2NsYXNzIERldmljZU1vdGlvbkNsaWVudFF0IDogcHVibGljIERldmljZU1vdGlvbkNsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgRGV2aWNlTW90aW9uQ2xpZW50UXQoUVdlYlBhZ2UqKTsKKyAgICBE
ZXZpY2VNb3Rpb25DbGllbnRRdCgpIHsgfTsKICAgICB2aXJ0dWFsIH5EZXZpY2VNb3Rpb25DbGll
bnRRdCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29u
dHJvbGxlciopOworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlTW90aW9uQ29udHJv
bGxlckRlc3Ryb3llZCgpOworCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCk7CisKICAgICB2aXJ0dWFsIERldmljZU1vdGlv
bkRhdGEqIGN1cnJlbnREZXZpY2VNb3Rpb24oKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgZGV2
aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpOwogCi1wdWJsaWMgUV9TTE9UUzoKLSAgICB2
b2lkIGNoYW5nZURldmljZU1vdGlvbigpOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVy
KERldmljZU1vdGlvbkNvbnRyb2xsZXIqKTsKIAotcHJpdmF0ZToKLSAgICBRV2ViUGFnZSogbV9w
YWdlOwotICAgIERldmljZU1vdGlvbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKLSAgICBEZXZp
Y2VNb3Rpb25Qcm92aWRlclF0KiBtX3Byb3ZpZGVyOworICAgIE93blB0cjxEZXZpY2VNb3Rpb25Q
cm92aWRlclF0PiBtX3Byb3ZpZGVyOwogfTsKIAogfSAvLyBuYW1lc3BlY2UgV2ViQ29yZQogCisj
ZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKwogI2VuZGlmIC8vIERldmljZU1v
dGlvbkNsaWVudFF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjY2Y3Njk3Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3NSAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJE
ZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgiCi0KLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyUXQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1EZXZpY2VNb3Rpb25Qcm92aWRl
clF0OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0KCkKLXsKLSAgICBtX2FjY2VsZXJhdGlvbi5hZGRG
aWx0ZXIodGhpcyk7Ci0gICAgbV9tb3Rpb24gPSBEZXZpY2VNb3Rpb25EYXRhOjpjcmVhdGUoKTsK
LSAgICBtX2RldmljZU9yaWVudGF0aW9uID0gbmV3IERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJR
dCgpOwotfQotCi1EZXZpY2VNb3Rpb25Qcm92aWRlclF0Ojp+RGV2aWNlTW90aW9uUHJvdmlkZXJR
dCgpCi17Ci0gICAgZGVsZXRlIG1fZGV2aWNlT3JpZW50YXRpb247Ci19Ci0KLXZvaWQgRGV2aWNl
TW90aW9uUHJvdmlkZXJRdDo6c3RhcnQoKQotewotICAgIG1fYWNjZWxlcmF0aW9uLnN0YXJ0KCk7
Ci0gICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+c3RhcnQoKTsKLX0KLQotdm9pZCBEZXZpY2VNb3Rp
b25Qcm92aWRlclF0OjpzdG9wKCkKLXsKLSAgICBtX2FjY2VsZXJhdGlvbi5zdG9wKCk7Ci0gICAg
bV9kZXZpY2VPcmllbnRhdGlvbi0+c3RvcCgpOwotfQotCi1ib29sIERldmljZU1vdGlvblByb3Zp
ZGVyUXQ6OmZpbHRlcihRQWNjZWxlcm9tZXRlclJlYWRpbmcqIHJlYWRpbmcpCi17Ci0gICAgUmVm
UHRyPERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbj4gYWNjZWwgPSBEZXZpY2VNb3Rpb25E
YXRhOjpBY2NlbGVyYXRpb246OmNyZWF0ZSgKLSAgICAgICAgICAgIC8qIHggYXZhaWxhYmxlICov
IHRydWUsIHJlYWRpbmctPngoKSwKLSAgICAgICAgICAgIC8qIHkgYXZhaWxhYmxlICovIHRydWUs
IHJlYWRpbmctPnkoKSwKLSAgICAgICAgICAgIC8qIHogYXZhaWxhYmxlICovIHRydWUsIHJlYWRp
bmctPnooKSk7Ci0KLSAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YTo6Um90YXRpb25SYXRlPiBy
b3RhdGlvbiA9IERldmljZU1vdGlvbkRhdGE6OlJvdGF0aW9uUmF0ZTo6Y3JlYXRlKAotICAgICAg
ICAgICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+aGFzQWxwaGEoKSwgbV9kZXZpY2VPcmllbnRhdGlv
bi0+b3JpZW50YXRpb24oKS0+YWxwaGEoKSwKLSAgICAgICAgICAgIC8qIGJldGEgYXZhaWxhYmxl
ICovIHRydWUsIG1fZGV2aWNlT3JpZW50YXRpb24tPm9yaWVudGF0aW9uKCktPmJldGEoKSwKLSAg
ICAgICAgICAgIC8qIGdhbW1hIGF2YWlsYWJsZSAqLyB0cnVlLCBtX2RldmljZU9yaWVudGF0aW9u
LT5vcmllbnRhdGlvbigpLT5nYW1tYSgpKTsKLQotICAgIG1fbW90aW9uID0gRGV2aWNlTW90aW9u
RGF0YTo6Y3JlYXRlKGFjY2VsLAotICAgICAgICAgICAgYWNjZWwsIC8qIEZJWE1FOiBOZWVkcyB0
byBwcm92aWRlIGFjY2VsZXJhdGlvbiBpbmNsdWRlIGdyYXZpdHkuICovCi0gICAgICAgICAgICBy
b3RhdGlvbiwKLSAgICAgICAgICAgIGZhbHNlLCAwIC8qIFRoZSBpbnRlcnZhbCBpcyB0cmVhdGVk
IGludGVybmFsbHkgYnkgUXQgbW9iaWxpdHkgKi8pOwotCi0gICAgZW1pdCBkZXZpY2VNb3Rpb25D
aGFuZ2VkKCk7Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2luY2x1ZGUgIm1vY19EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJR
dC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRl
clF0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzMjAwZDUuLjAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
Ci0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLSNpZm5k
ZWYgRGV2aWNlTW90aW9uUHJvdmlkZXJRdF9oCi0jZGVmaW5lIERldmljZU1vdGlvblByb3ZpZGVy
UXRfaAotCi0jaW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0YS5oIgotI2luY2x1ZGUgIlJlZlB0ci5o
IgotCi0jaW5jbHVkZSA8UUFjY2VsZXJvbWV0ZXJGaWx0ZXI+Ci0jaW5jbHVkZSA8UU9iamVjdD4K
LQotUVRNX1VTRV9OQU1FU1BBQ0UKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQ7Ci0KLWNsYXNzIERldmljZU1vdGlvblByb3ZpZGVyUXQg
OiBwdWJsaWMgUU9iamVjdCwgcHVibGljIFFBY2NlbGVyb21ldGVyRmlsdGVyIHsKLSAgICBRX09C
SkVDVAotcHVibGljOgotICAgIERldmljZU1vdGlvblByb3ZpZGVyUXQoKTsKLSAgICB+RGV2aWNl
TW90aW9uUHJvdmlkZXJRdCgpOwotCi0gICAgYm9vbCBmaWx0ZXIoUUFjY2VsZXJvbWV0ZXJSZWFk
aW5nKik7Ci0gICAgdm9pZCBzdGFydCgpOwotICAgIHZvaWQgc3RvcCgpOwotICAgIERldmljZU1v
dGlvbkRhdGEqIGN1cnJlbnREZXZpY2VNb3Rpb24oKSBjb25zdCB7IHJldHVybiBtX21vdGlvbi5n
ZXQoKTsgfQotCi1RX1NJR05BTFM6Ci0gICAgdm9pZCBkZXZpY2VNb3Rpb25DaGFuZ2VkKCk7Ci0K
LXByaXZhdGU6Ci0gICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE+IG1fbW90aW9uOwotICAgIFFB
Y2NlbGVyb21ldGVyIG1fYWNjZWxlcmF0aW9uOwotICAgIERldmljZU9yaWVudGF0aW9uUHJvdmlk
ZXJRdCogbV9kZXZpY2VPcmllbnRhdGlvbjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LQotI2VuZGlmIC8vIERldmljZU1vdGlvblByb3ZpZGVyUXRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRR
dC5jcHAKaW5kZXggMDFjYmU3My4uYjUyNWQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3Bw
CkBAIC0yMSw1OSArMjEsNDcgQEAKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0
LmgiCiAKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2tRdC5oIgotI2luY2x1
ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgorI2lmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pCisKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKLSNp
bmNsdWRlICJxd2VicGFnZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLURldmljZU9yaWVu
dGF0aW9uQ2xpZW50UXQ6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQoUVdlYlBhZ2UqIHBhZ2Up
Ci0gICAgOiBtX3BhZ2UocGFnZSkKLSAgICAsIG1fY29udHJvbGxlcigwKQotICAgICwgbV9wcm92
aWRlcihuZXcgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KCkpCitEZXZpY2VPcmllbnRhdGlv
bkNsaWVudFF0Ojp+RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCgpCiB7Ci0gICAgY29ubmVjdCht
X3Byb3ZpZGVyLCBTSUdOQUwoZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKERldmljZU9yaWVudGF0
aW9uKikpLCBTTE9UKGNoYW5nZURldmljZU9yaWVudGF0aW9uKERldmljZU9yaWVudGF0aW9uKikp
KTsKIH0KIAotRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6fkRldmljZU9yaWVudGF0aW9uQ2xp
ZW50UXQoKQordm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpkZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXJEZXN0cm95ZWQoKQogewotICAgIGRpc2Nvbm5lY3QoKTsKLSAgICBkZWxldGUg
bV9wcm92aWRlcjsKKyAgICBkZWxldGUgdGhpczsKIH0KIAogdm9pZCBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudFF0OjpzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29u
dHJvbGxlcikKIHsKLSAgICBtX2NvbnRyb2xsZXIgPSBjb250cm9sbGVyOworICAgIC8vIEluaXRp
YWxpemUgbGF6aWx5LgorICAgIGlmICghbV9wcm92aWRlciAmJiBjb250cm9sbGVyKQorICAgICAg
ICBtX3Byb3ZpZGVyID0gYWRvcHRQdHIobmV3IERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCk7
CisKKyAgICBtX3Byb3ZpZGVyLT5zZXRDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogfQogCiB2b2lk
IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmcoKQogewotICAgIG1fcHJv
dmlkZXItPnN0YXJ0KCk7CisgICAgaWYgKG1fcHJvdmlkZXIpCisgICAgICAgIG1fcHJvdmlkZXIt
PnN0YXJ0KCk7CiB9CiAKIHZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RvcFVwZGF0
aW5nKCkKIHsKLSAgICBtX3Byb3ZpZGVyLT5zdG9wKCk7CisgICAgaWYgKG1fcHJvdmlkZXIpCisg
ICAgICAgIG1fcHJvdmlkZXItPnN0b3AoKTsKIH0KIAogRGV2aWNlT3JpZW50YXRpb24qIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50UXQ6Omxhc3RPcmllbnRhdGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG1fcHJvdmlkZXItPm9yaWVudGF0aW9uKCk7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRp
b25DbGllbnRRdDo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkKLXsKLSAg
ICBkZWxldGUgdGhpczsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpjaGFu
Z2VEZXZpY2VPcmllbnRhdGlvbihEZXZpY2VPcmllbnRhdGlvbiogb3JpZW50YXRpb24pCi17Ci0g
ICAgaWYgKCFtX2NvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fY29udHJvbGxl
ci0+ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24ob3JpZW50YXRpb24pOworICAgIHJldHVybiAo
bV9wcm92aWRlcikgPyBtX3Byb3ZpZGVyLT5sYXN0T3JpZW50YXRpb24oKSA6IDA7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2luY2x1ZGUgIm1vY19EZXZpY2VPcmllbnRhdGlvbkNs
aWVudFF0LmNwcCIKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNs
aWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0
aW9uQ2xpZW50UXQuaAppbmRleCA2MTk2OGM0Li43MmRlMmFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50
UXQuaApAQCAtMjAsMzggKzIwLDM3IEBACiAjaWZuZGVmIERldmljZU9yaWVudGF0aW9uQ2xpZW50
UXRfaAogI2RlZmluZSBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0X2gKIAorI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCisKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50LmgiCi0KLSNpbmNsdWRlIDxRT2JqZWN0Pgot
Ci1jbGFzcyBRV2ViUGFnZTsKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKKyNpbmNsdWRlIDx3
dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ7Ci0KLWNsYXNzIERl
dmljZU9yaWVudGF0aW9uQ2xpZW50UXQgOiBwdWJsaWMgUU9iamVjdCwgcHVibGljIERldmljZU9y
aWVudGF0aW9uQ2xpZW50IHsKLSAgICBRX09CSkVDVAorY2xhc3MgRGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdCA6IHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCB7CiBwdWJsaWM6Ci0gICAg
RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdChRV2ViUGFnZSopOworICAgIERldmljZU9yaWVudGF0
aW9uQ2xpZW50UXQoKSB7IH0KICAgICB2aXJ0dWFsIH5EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0
KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIqKTsKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlckRlc3Ryb3llZCgpOworCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmco
KTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCk7CisKICAgICB2aXJ0dWFsIERldmlj
ZU9yaWVudGF0aW9uKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCk7CiAKLXB1YmxpYyBRX1NMT1RT
OgotICAgIHZvaWQgY2hhbmdlRGV2aWNlT3JpZW50YXRpb24oRGV2aWNlT3JpZW50YXRpb24qKTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIqKTsKIAotcHJpdmF0ZToKLSAgICBRV2ViUGFnZSogbV9wYWdlOwotICAgIERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlciogbV9jb250cm9sbGVyOwotICAgIERldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdCogbV9wcm92aWRlcjsKKyAgICBPd25QdHI8RGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
clF0PiBtX3Byb3ZpZGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCisjZW5kaWYg
Ly8gRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKwogI2VuZGlmIC8vIERldmljZU9yaWVudGF0
aW9uQ2xpZW50UXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGNlNTBhMDMuLjllNzNjYWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsNSArMSwxNiBAQAogMjAxMS0wNy0xNSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4g
IDxrZW5uZXRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1F0XSBNYWtlIERldmljZU1vdGlvbiBh
bmQgRGV2aWNlT3JpZW50YXRpb24gd29yayB3aXRoIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTk1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBjbGllbnRzIHdoZW4gY3JlYXRp
bmcgdGhlIHBhZ2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisKKzIwMTEtMDctMTUgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJr
aXQub3JnPgorCiAgICAgICAgIFVwc3RyZWFtIFF0V2ViS2l0L045IGNoYW5nZXMgcmVsYXRlZCB0
byB2aXNpYmxlQ29udGVudFJlY3QKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY0NTg5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCA2NTQ0M2FiLi5jMjc3ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMjMsNiArMTIzLDggQEAKICNl
bmRpZgogCiAjaWYgUExBVEZPUk0oUVQpCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ2xpZW50UXQu
aCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgiCiAjaW5jbHVkZSAiSGl0
VGVzdFJlc3VsdC5oIgogI2VuZGlmCiAKQEAgLTIxMSw2ICsyMTMsMTAgQEAgV2ViUGFnZTo6V2Vi
UGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBwYWdlQ2xpZW50cy5pbnNwZWN0
b3JDbGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHRoaXMpOwogI2VuZGlmCisjaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oUVQpCisgICAgcGFnZUNsaWVudHMu
ZGV2aWNlT3JpZW50YXRpb25DbGllbnQgPSBuZXcgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDsK
KyAgICBwYWdlQ2xpZW50cy5kZXZpY2VNb3Rpb25DbGllbnQgPSBuZXcgRGV2aWNlTW90aW9uQ2xp
ZW50UXQ7CisjZW5kaWYKICAgICBtX3BhZ2UgPSBhZG9wdFB0cihuZXcgUGFnZShwYWdlQ2xpZW50
cykpOwogCiAgICAgLy8gUXQgZG9lcyBub3QgeWV0IGNhbGwgc2V0SXNJbldpbmRvdy4gVW50aWwg
aXQgZG9lcywganVzdCBsZWF2ZQotLSAKMS43LjEKCg==
</data>
<flag name="review"
          id="95799"
          type_id="1"
          status="-"
          setter="ossy"
    />
    <flag name="commit-queue"
          id="95800"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102211</attachid>
            <date>2011-07-27 18:22:38 -0700</date>
            <delta_ts>2012-05-01 05:43:03 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Qt-Make-DeviceMotion-and-DeviceOrientation-work-with.patch</filename>
            <type>text/plain</type>
            <size>41791</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSBjZTQ1MTRiODEyYmRhYTkyYmI2NzAxYmI0YmE1MWMwNjdjN2U4OGQ3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFdlZCwgMjcgSnVsIDIwMTEgMjI6MDA6MDQgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBbUXRdIE1ha2UgRGV2aWNlTW90aW9uIGFuZCBEZXZpY2VPcmllbnRhdGlvbiB3b3JrIHdp
dGggV2ViS2l0MgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTk1
CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCk9yaWdpbmFsIHBhdGNoIGJ5IEtlbm5ldGgg
Um9oZGUgQ2hyaXN0aWFuc2VuLgoKU291cmNlL1dlYkNvcmU6CgpUaGUgcHJvdmlkZXIgaXMgc2hh
cmVkIGJldHdlZW4gV2ViS2l0MSBhbmQgV2ViS2l0MiBhcyBhIHBhcnQgb2YgV2ViQ29yZQphbmQg
bW9kaWZpZWQgdG8gbm90IHJlbHkgb24gUU9iamVjdCArIHNpZ25hbHMuCgpUaGUgY2xpZW50IGlz
IGltcGxlbWVudGVkIGluIFdlYktpdDEgbGF5ZXIgYW5kIGNvbXBpbGVkIGludG8gV2ViQ29yZSwK
c28gdGhhdCBpcyBjYW4gYmUgdXNlZCBieSBib3RoIFdlYktpdDEgYW5kIFdlYktpdDIgdW50aWwg
d2UgdHVybgpXZWJDb3JlIGludG8gaXRzIG93biBsaWJyYXJ5LgoKKiBXZWJDb3JlLnBybzoKKiBw
bGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAuCihX
ZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0KToK
KFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6On5EZXZpY2VNb3Rpb25Qcm92aWRlclF0
KToKKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnNldENvbnRyb2xsZXIpOgooV2Vi
Q29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RhcnQpOgooV2ViQ29yZTo6RGV2aWNlTW90
aW9uUHJvdmlkZXJRdDo6c3RvcCk6CihXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0Ojpm
aWx0ZXIpOgoqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJR
dC5oLgooV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6Y3VycmVudERldmljZU1vdGlv
bik6CiogcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0LmNwcC4KKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6RGV2
aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KToKKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdDo6fkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCk6CihXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyUXQ6OnNldENvbnRyb2xsZXIpOgooV2ViQ29yZTo6RGV2aWNlT3Jp
ZW50YXRpb25Qcm92aWRlclF0OjpzdGFydCk6CihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyUXQ6OnN0b3ApOgooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojpm
aWx0ZXIpOgoqIHBsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyUXQuaC4KKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6aXNB
Y3RpdmUpOgooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpsYXN0T3JpZW50
YXRpb24pOgooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpoYXNBbHBoYSk6
CgpTb3VyY2UvV2ViS2l0L3F0OgoKVGhlIHByb3ZpZGVyIGlzIHNoYXJlZCBiZXR3ZWVuIFdlYktp
dDEgYW5kIFdlYktpdDIgYXMgYSBwYXJ0IG9mIFdlYkNvcmUKYW5kIG1vZGlmaWVkIHRvIG5vdCBy
ZWx5IG9uIFFPYmplY3QgKyBzaWduYWxzLgoKVGhlIGNsaWVudCBpcyBpbXBsZW1lbnRlZCBpbiBX
ZWJLaXQxIGxheWVyIGFuZCBjb21waWxlZCBpbnRvIFdlYkNvcmUsCnNvIHRoYXQgaXMgY2FuIGJl
IHVzZWQgYnkgYm90aCBXZWJLaXQxIGFuZCBXZWJLaXQyIHVudGlsIHdlIHR1cm4KV2ViQ29yZSBp
bnRvIGl0cyBvd24gbGlicmFyeS4KCiogQXBpL3F3ZWJwYWdlLmNwcDoKKFFXZWJQYWdlUHJpdmF0
ZTo6UVdlYlBhZ2VQcml2YXRlKToKKiBRdFdlYktpdC5wcm86CiogV2ViQ29yZVN1cHBvcnQvRGV2
aWNlTW90aW9uQ2xpZW50UXQuY3BwOgooV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6On5E
ZXZpY2VNb3Rpb25DbGllbnRRdCk6CihXZWJDb3JlOjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6ZGV2
aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCk6CihXZWJDb3JlOjpEZXZpY2VNb3Rpb25DbGll
bnRRdDo6c2V0Q29udHJvbGxlcik6CihXZWJDb3JlOjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6c3Rh
cnRVcGRhdGluZyk6CihXZWJDb3JlOjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5n
KToKKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oOgooV2ViQ29yZTo6RGV2
aWNlTW90aW9uQ2xpZW50UXQ6OkRldmljZU1vdGlvbkNsaWVudFF0KToKKiBXZWJDb3JlU3VwcG9y
dC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkRldmljZU9yaWVudGF0
aW9uQ2xpZW50UXQ6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCk6CihXZWJD
b3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzZXRDb250cm9sbGVyKToKKFdlYkNvcmU6
OkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmcpOgooV2ViQ29yZTo6RGV2
aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKToKKFdlYkNvcmU6OkRldmljZU9y
aWVudGF0aW9uQ2xpZW50UXQ6Omxhc3RPcmllbnRhdGlvbik6CiogV2ViQ29yZVN1cHBvcnQvRGV2
aWNlT3JpZW50YXRpb25DbGllbnRRdC5oOgoKU291cmNlL1dlYktpdDI6CgpBZGQgdGhlIGNsaWVu
dHMgd2hlbiBjcmVhdGluZyB0aGUgcGFnZS4KCiogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwOgooV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKToKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzggKysrKysrKysrCiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKysrCiAu
Li4vV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcCB8ICAgODUg
KysrKysrKysrKysrKysrKysrKysKIC4uLi9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlv
blByb3ZpZGVyUXQuaCAgIHwgICA1OSArKysrKysrKysrKysrKwogLi4uL3BsYXRmb3JtL3F0L0Rl
dmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAgICAgfCAgIDc5ICsrKysrKysrKysrKysrKysr
KwogLi4uL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oICAgICAgfCAg
IDU1ICsrKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCAgICAg
ICAgICAgICAgICAgIHwgICAgNiArLQogU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDM1ICsrKysrKysrCiBTb3VyY2UvV2ViS2l0L3F0L1F0V2Vi
S2l0LnBybyAgICAgICAgICAgICAgICAgICAgICB8ICAgIDggKy0tCiAuLi4vcXQvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwICAgICB8ICAgNDEgKysrLS0tLS0tLQogLi4u
L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmggICAgICAgfCAgIDI4ICsr
Ky0tLS0KIC4uLi9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcCAg
IHwgICA3NSAtLS0tLS0tLS0tLS0tLS0tLQogLi4uL3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1v
dGlvblByb3ZpZGVyUXQuaCAgICAgfCAgIDU3IC0tLS0tLS0tLS0tLS0KIC4uLi9XZWJDb3JlU3Vw
cG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcCAgIHwgICA0NCArKystLS0tLS0tLQog
Li4uL3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCAgfCAgIDIz
ICsrLS0tLQogLi4uL1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5j
cHAgfCAgIDg0IC0tLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9XZWJDb3JlU3VwcG9ydC9EZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyUXQuaCAgIHwgICA2MyAtLS0tLS0tLS0tLS0tLS0KIFNvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNCArKysKIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCAgICAgIHwgICAgOCAr
KwogMTkgZmlsZXMgY2hhbmdlZCwgNDMwIGluc2VydGlvbnMoKyksIDM4MiBkZWxldGlvbnMoLSkK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rp
b25Qcm92aWRlclF0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXQuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQu
aAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2
aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgKCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggOTkzMmEyNS4uNTljOTgxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBA
CisyMDExLTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3Jn
PgorCisgICAgICAgIFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9u
IHdvcmsgd2l0aCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NDU5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE9yaWdpbmFsIHBhdGNoIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgor
CisgICAgICAgIFRoZSBwcm92aWRlciBpcyBzaGFyZWQgYmV0d2VlbiBXZWJLaXQxIGFuZCBXZWJL
aXQyIGFzIGEgcGFydCBvZiBXZWJDb3JlCisgICAgICAgIGFuZCBtb2RpZmllZCB0byBub3QgcmVs
eSBvbiBRT2JqZWN0ICsgc2lnbmFscy4KKworICAgICAgICBUaGUgY2xpZW50IGlzIGltcGxlbWVu
dGVkIGluIFdlYktpdDEgbGF5ZXIgYW5kIGNvbXBpbGVkIGludG8gV2ViQ29yZSwKKyAgICAgICAg
c28gdGhhdCBpcyBjYW4gYmUgdXNlZCBieSBib3RoIFdlYktpdDEgYW5kIFdlYktpdDIgdW50aWwg
d2UgdHVybgorICAgICAgICBXZWJDb3JlIGludG8gaXRzIG93biBsaWJyYXJ5LgorCisgICAgICAg
ICogV2ViQ29yZS5wcm86CisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Rl
dmljZU1vdGlvblByb3ZpZGVyUXQuY3BwLgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9u
UHJvdmlkZXJRdDo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdCk6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VNb3Rpb25Qcm92aWRlclF0Ojp+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCk6CisgICAgICAg
IChXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzZXRDb250cm9sbGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6
RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9E
ZXZpY2VNb3Rpb25Qcm92aWRlclF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaC4KKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OmN1cnJlbnREZXZpY2VNb3Rpb24pOgorICAgICAgICAq
IHBsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHA6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJvdmlk
ZXJRdC5jcHAuCisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6
OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyUXQ6On5EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQpOgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpzZXRDb250cm9sbGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c3RhcnQp
OgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpzdG9wKToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRp
b25Qcm92aWRlclF0LmguCisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQ6OmlzQWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdDo6bGFzdE9yaWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJRdDo6aGFzQWxwaGEpOgorCiAyMDExLTA3LTI3ICBQcmF0aWsgU29sYW5r
aSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4KIAogICAgICAgICBJbmNvcnJlY3QgYXJndW1lbnRzIHBh
c3NlZCB0byBMT0cgc3RhdGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDczMGJiMGMuLjA5Njk5MWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCkBAIC0zMjI3LDYgKzMyMjcsMTYgQEAgY29udGFpbnMoREVGSU5FUywg
V1RGX1VTRV9RVF9CRUFSRVI9MSkgewogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9TdXJyb2dh
dGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuaAogfQogCitjb250YWlucyhERUZJTkVTLCBFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OPTEpIHsKKyAgICBIRUFERVJTICs9IFwKKyAgICAgICAgcGxhdGZv
cm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oIFwKKyAgICAgICAgcGxhdGZvcm0vcXQvRGV2
aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgKKworICAgIFNPVVJDRVMgKz0gXAorICAgICAgICBw
bGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcCBcCisgICAgICAgIHBsYXRmb3Jt
L3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAKK30KKwogY29udGFpbnMoREVGSU5F
UywgRU5BQkxFX0dFT0xPQ0FUSU9OPTEpIHsKICAgICB2OCB7CiAgICAgICAgIFNPVVJDRVMgKz0g
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJv
dmlkZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92
aWRlclF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzBmNzM3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9u
UHJvdmlkZXJRdC5jcHAKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0RldmljZU1vdGlvblByb3ZpZGVyUXQ6OkRldmljZU1vdGlvblBy
b3ZpZGVyUXQoKQorICAgIDogbV9jb250cm9sbGVyKDApCisgICAgLCBtX29yaWVudGF0aW9uUHJv
dmlkZXIoYWRvcHRQdHIobmV3IERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpKSkKK3sKKyAg
ICBtX3NlbnNvci5hZGRGaWx0ZXIodGhpcyk7CisgICAgbV9sYXN0TW90aW9uID0gRGV2aWNlTW90
aW9uRGF0YTo6Y3JlYXRlKCk7Cit9CisKK0RldmljZU1vdGlvblByb3ZpZGVyUXQ6On5EZXZpY2VN
b3Rpb25Qcm92aWRlclF0KCkKK3sKKyAgICAvLyBUaGUgc2Vuc29yIGlzIGF1dG9tYXRpY2FsbHkg
c3RvcHBlZC4KK30KKwordm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzZXRDb250cm9sbGVy
KERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCit7CisgICAgaWYgKCFjb250cm9s
bGVyKQorICAgICAgICBzdG9wKCk7CisKKyAgICBtX2NvbnRyb2xsZXIgPSBjb250cm9sbGVyOwor
fQorCit2b2lkIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0YXJ0KCkKK3sKKyAgICBtX3NlbnNv
ci5zdGFydCgpOworICAgIG1fb3JpZW50YXRpb25Qcm92aWRlci0+c3RhcnQoKTsKK30KKwordm9p
ZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdG9wKCkKK3sKKyAgICBtX3NlbnNvci5zdG9wKCk7
CisgICAgbV9vcmllbnRhdGlvblByb3ZpZGVyLT5zdG9wKCk7Cit9CisKK2Jvb2wgRGV2aWNlTW90
aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKFFBY2NlbGVyb21ldGVyUmVhZGluZyogcmVhZGluZykKK3sK
KyAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YTo6QWNjZWxlcmF0aW9uPiBhY2NlbCA9IERldmlj
ZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbjo6Y3JlYXRlKAorICAgICAgICAgICAgLyogeCBhdmFp
bGFibGUgKi8gdHJ1ZSwgLSByZWFkaW5nLT54KCksCisgICAgICAgICAgICAvKiB5IGF2YWlsYWJs
ZSAqLyB0cnVlLCAtIHJlYWRpbmctPnkoKSwKKyAgICAgICAgICAgIC8qIHogYXZhaWxhYmxlICov
IHRydWUsIC0gcmVhZGluZy0+eigpKTsKKworICAgIGJvb2wgaGFzQWxwaGEgPSBtX29yaWVudGF0
aW9uUHJvdmlkZXItPmhhc0FscGhhKCk7CisgICAgRGV2aWNlT3JpZW50YXRpb24qIG9yaWVudCA9
IG1fb3JpZW50YXRpb25Qcm92aWRlci0+bGFzdE9yaWVudGF0aW9uKCk7CisKKyAgICBSZWZQdHI8
RGV2aWNlTW90aW9uRGF0YTo6Um90YXRpb25SYXRlPiByb3RhdGlvbiA9IERldmljZU1vdGlvbkRh
dGE6OlJvdGF0aW9uUmF0ZTo6Y3JlYXRlKAorICAgICAgICAgICAgLyogYWxwaGEgYXZhaWxhYmxl
ICovIGhhc0FscGhhLCBvcmllbnQtPmFscGhhKCksCisgICAgICAgICAgICAvKiBiZXRhICBhdmFp
bGFibGUgKi8gdHJ1ZSwgb3JpZW50LT5iZXRhKCksCisgICAgICAgICAgICAvKiBnYW1tYSBhdmFp
bGFibGUgKi8gdHJ1ZSwgb3JpZW50LT5nYW1tYSgpKTsKKworICAgIG1fbGFzdE1vdGlvbiA9IERl
dmljZU1vdGlvbkRhdGE6OmNyZWF0ZShhY2NlbCwKKyAgICAgICAgICAgIGFjY2VsLCAvKiBGSVhN
RTogTmVlZHMgdG8gcHJvdmlkZSBhY2NlbGVyYXRpb24gaW5jbHVkZSBncmF2aXR5LiAqLworICAg
ICAgICAgICAgcm90YXRpb24sCisgICAgICAgICAgICBmYWxzZSwgMCAvKiBUaGUgaW50ZXJ2YWwg
aXMgdHJlYXRlZCBpbnRlcm5hbGx5IGJ5IFF0IG1vYmlsaXR5ICovKTsKKworICAgIGlmIChtX2Nv
bnRyb2xsZXIpCisgICAgICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlTW90aW9uKG1f
bGFzdE1vdGlvbi5nZXQoKSk7CisKKyAgICAvLyBXZSBhcmUgdGhlIG9ubHkgZmlsdGVyLCBzbyBu
b3QgbmVlZCB0byBhbGxvdyBwcm9wYWdhdGlvbi4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi44NTYwMTY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoK
KyAqLworI2lmbmRlZiBEZXZpY2VNb3Rpb25Qcm92aWRlclF0X2gKKyNkZWZpbmUgRGV2aWNlTW90
aW9uUHJvdmlkZXJRdF9oCisKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25Db250cm9sbGVyLmgiCisj
aW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0YS5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9u
UHJvdmlkZXJRdC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworI2luY2x1ZGUgPFFBY2NlbGVy
b21ldGVyRmlsdGVyPgorCitRVE1fVVNFX05BTUVTUEFDRQorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIERldmljZU1vdGlvblByb3ZpZGVyUXQgOiBwdWJsaWMgUUFjY2VsZXJvbWV0ZXJG
aWx0ZXIgeworcHVibGljOgorICAgIERldmljZU1vdGlvblByb3ZpZGVyUXQoKTsKKyAgICB+RGV2
aWNlTW90aW9uUHJvdmlkZXJRdCgpOworCisgICAgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU1v
dGlvbkNvbnRyb2xsZXIqKTsKKworICAgIGJvb2wgZmlsdGVyKFFBY2NlbGVyb21ldGVyUmVhZGlu
ZyopOworICAgIHZvaWQgc3RhcnQoKTsKKyAgICB2b2lkIHN0b3AoKTsKKyAgICBEZXZpY2VNb3Rp
b25EYXRhKiBjdXJyZW50RGV2aWNlTW90aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TW90aW9u
LmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE+IG1fbGFz
dE1vdGlvbjsKKworICAgIERldmljZU1vdGlvbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKKyAg
ICBRQWNjZWxlcm9tZXRlciBtX3NlbnNvcjsKKworICAgIE93blB0cjxEZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyUXQ+IG1fb3JpZW50YXRpb25Qcm92aWRlcjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIERldmljZU1vdGlvblByb3ZpZGVyUXRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlk
ZXJRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjA3YWNiYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdC5jcHAKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpE
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQoKQorICAgIDogbV9jb250cm9sbGVyKDApCit7Cisg
ICAgbV9zZW5zb3IuYWRkRmlsdGVyKHRoaXMpOworICAgIG1fbGFzdE9yaWVudGF0aW9uID0gRGV2
aWNlT3JpZW50YXRpb246OmNyZWF0ZSgpOworfQorCitEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVy
UXQ6On5EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQoKQoreworICAgIC8vIFRoZSBzZW5zb3Ig
aXMgYXV0b21hdGljYWxseSBzdG9wcGVkLgorfQorCit2b2lkIERldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdDo6c2V0Q29udHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRy
b2xsZXIpCit7CisgICAgaWYgKCFjb250cm9sbGVyKQorICAgICAgICBzdG9wKCk7CisKKyAgICBt
X2NvbnRyb2xsZXIgPSBjb250cm9sbGVyOworfQorCit2b2lkIERldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdDo6c3RhcnQoKQoreworICAgIG1fc2Vuc29yLnN0YXJ0KCk7Cit9CisKK3ZvaWQgRGV2
aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpzdG9wKCkKK3sKKyAgICBtX3NlbnNvci5zdG9wKCk7
Cit9CisKK2Jvb2wgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpmaWx0ZXIoUVJvdGF0aW9u
UmVhZGluZyogcmVhZGluZykKK3sKKyAgICAvLyBQcm92aWRlIGRldmljZSBvcmllbnRhdGlvbiBk
YXRhIGFjY29yZGluZyBXM0Mgc3BlYzoKKyAgICAvLyBodHRwOi8vZGV2LnczLm9yZy9nZW8vYXBp
L3NwZWMtc291cmNlLW9yaWVudGF0aW9uLmh0bWwKKyAgICAvLyBRdCBtb2JpbGl0eSBwcm92aWRl
IHRoZXNlIGRhdGEgdmlhIFFSb3RhdGlvblNlbnNvciB1c2luZyB0aGUKKyAgICAvLyBRUm90YXRp
b25SZWFkaW5nIGNsYXNzOgorICAgIC8vICAtIHRoZSByb3RhdGlvbiBhcm91bmQgeiBheGlzIChh
bHBoYSkgaXMgZ2l2ZW4gYXMgeiBpbiBRUm90YXRpb25SZWFkaW5nOworICAgIC8vICAtIHRoZSBy
b3RhdGlvbiBhcm91bmQgeCBheGlzIChiZXRhKSBpcyBnaXZlbiBhcyB4IGluIFFSb3RhdGlvblJl
YWRpbmc7CisgICAgLy8gIC0gdGhlIHJvdGF0aW9uIGFyb3VuZCB5IGF4aXMgKGdhbW1hKSBpcyBn
aXZlbiBhcyB5IGluIFFSb3RhdGlvblJlYWRpbmc7CisgICAgLy8gU2VlOiBodHRwOi8vZG9jLnF0
Lm5va2lhLmNvbS9xdG1vYmlsaXR5LTEuMC9xcm90YXRpb25yZWFkaW5nLmh0bWwKKyAgICAvLyBU
aGUgWiAoYWxwaGEpIHJvdGF0aW9uIGFuZ2xlIGlzIGNoZWNrZWQgdmlhIGhhc0FscGhhKCkgcHJp
dmF0ZSBtZXRob2QsCisgICAgLy8gZGVwZW5kaW5nIGlmIHRoZSBkZXZpY2UgaXMgYWJsZSBkbyBk
ZXRlY3QgdGhlIGFscGhhIHJvdGF0aW9uLiBYIChiZXRhKSBhbmQKKyAgICAvLyBZIChnYW1tYSkg
YXhpcyBhcmUgYXZhaWxibGUgaW4gdGhpcyBjb250ZXh0LgorICAgIG1fbGFzdE9yaWVudGF0aW9u
ID0gRGV2aWNlT3JpZW50YXRpb246OmNyZWF0ZShoYXNBbHBoYSgpLCByZWFkaW5nLT56KCksCisg
ICAgICAgICAgICAvKiB4IGF2YWlsYWJsZSAqLyB0cnVlLCByZWFkaW5nLT54KCksCisgICAgICAg
ICAgICAvKiB5IGF2YWlsYWJsZSAqLyB0cnVlLCByZWFkaW5nLT55KCkpOworCisgICAgaWYgKG1f
Y29udHJvbGxlcikKKyAgICAgICAgbV9jb250cm9sbGVyLT5kaWRDaGFuZ2VEZXZpY2VPcmllbnRh
dGlvbihtX2xhc3RPcmllbnRhdGlvbi5nZXQoKSk7CisKKyAgICAvLyBXZSBhcmUgdGhlIG9ubHkg
ZmlsdGVyLCBzbyBub3QgbmVlZCB0byBhbGxvdyBwcm9wYWdhdGlvbi4KKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0Rldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2
aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZmE4Yjk2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICoKKyAqLworI2lmbmRlZiBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXRfaAorI2RlZmlu
ZSBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXRfaAorCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50
YXRpb24uaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNs
dWRlIDxRUm90YXRpb25GaWx0ZXI+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCitRVE1fVVNF
X05BTUVTUEFDRQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdCA6IHB1YmxpYyBRUm90YXRpb25GaWx0ZXIgeworcHVibGljOgorICAgIERl
dmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpOworICAgIH5EZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQoKTsKKworICAgIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIqKTsKKworICAgIGJvb2wgZmlsdGVyKFFSb3RhdGlvblJlYWRpbmcqKTsKKyAgICB2b2lk
IHN0YXJ0KCk7CisgICAgdm9pZCBzdG9wKCk7CisgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2Vuc29yLmlzQWN0aXZlKCk7IH0KKyAgICBEZXZpY2VPcmllbnRhdGlvbiogbGFz
dE9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0T3JpZW50YXRpb24uZ2V0KCk7IH0K
KyAgICBib29sIGhhc0FscGhhKCkgY29uc3QgeyByZXR1cm4gbV9zZW5zb3IucHJvcGVydHkoImhh
c1oiKS50b0Jvb2woKTsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlv
bj4gbV9sYXN0T3JpZW50YXRpb247CisKKyAgICBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIq
IG1fY29udHJvbGxlcjsKKyAgICBRUm90YXRpb25TZW5zb3IgbV9zZW5zb3I7Cit9OworCit9CisK
KyNlbmRpZiAvLyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdl
YnBhZ2UuY3BwCmluZGV4IGY3ZjJkYTguLjYyMDI0MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFn
ZS5jcHAKQEAgLTQ1LDggKzQ1LDEwIEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKICNpbmNs
dWRlICJDb250ZXh0TWVudUNsaWVudFF0LmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250cm9s
bGVyLmgiCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKICNpbmNsdWRlICJEZXZpY2VN
b3Rpb25DbGllbnRRdC5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCIK
KyNlbmRpZgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRHJhZ0NsaWVu
dFF0LmgiCiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKQEAgLTMzNyw4ICszMzksOCBAQCBR
V2ViUGFnZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0ZShRV2ViUGFnZSAqcXEpCiAgICAgcGFnZUNs
aWVudHMuZHJhZ0NsaWVudCA9IG5ldyBEcmFnQ2xpZW50UXQocSk7CiAgICAgcGFnZUNsaWVudHMu
aW5zcGVjdG9yQ2xpZW50ID0gbmV3IEluc3BlY3RvckNsaWVudFF0KHEpOwogI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgcGFnZUNsaWVudHMuZGV2aWNlT3JpZW50YXRpb25DbGll
bnQgPSBuZXcgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdChxKTsKLSAgICBwYWdlQ2xpZW50cy5k
ZXZpY2VNb3Rpb25DbGllbnQgPSBuZXcgRGV2aWNlTW90aW9uQ2xpZW50UXQocSk7CisgICAgcGFn
ZUNsaWVudHMuZGV2aWNlT3JpZW50YXRpb25DbGllbnQgPSBuZXcgRGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdDsKKyAgICBwYWdlQ2xpZW50cy5kZXZpY2VNb3Rpb25DbGllbnQgPSBuZXcgRGV2aWNl
TW90aW9uQ2xpZW50UXQ7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FU
SU9OKQogICAgIGlmIChRV2ViUGFnZVByaXZhdGU6OmRydFJ1bikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXgg
NTY1NTRiOS4uNDFhZmUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMS0w
Ny0yNyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBbUXRdIE1ha2UgRGV2aWNlTW90aW9uIGFuZCBEZXZpY2VPcmllbnRhdGlvbiB3b3JrIHdp
dGggV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjQ1OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBPcmlnaW5hbCBwYXRjaCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KKworICAgICAg
ICBUaGUgcHJvdmlkZXIgaXMgc2hhcmVkIGJldHdlZW4gV2ViS2l0MSBhbmQgV2ViS2l0MiBhcyBh
IHBhcnQgb2YgV2ViQ29yZQorICAgICAgICBhbmQgbW9kaWZpZWQgdG8gbm90IHJlbHkgb24gUU9i
amVjdCArIHNpZ25hbHMuCisKKyAgICAgICAgVGhlIGNsaWVudCBpcyBpbXBsZW1lbnRlZCBpbiBX
ZWJLaXQxIGxheWVyIGFuZCBjb21waWxlZCBpbnRvIFdlYkNvcmUsCisgICAgICAgIHNvIHRoYXQg
aXMgY2FuIGJlIHVzZWQgYnkgYm90aCBXZWJLaXQxIGFuZCBXZWJLaXQyIHVudGlsIHdlIHR1cm4K
KyAgICAgICAgV2ViQ29yZSBpbnRvIGl0cyBvd24gbGlicmFyeS4KKworICAgICAgICAqIEFwaS9x
d2VicGFnZS5jcHA6CisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0ZSk6
CisgICAgICAgICogUXRXZWJLaXQucHJvOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Rldmlj
ZU1vdGlvbkNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVu
dFF0Ojp+RGV2aWNlTW90aW9uQ2xpZW50UXQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90
aW9uQ2xpZW50UXQ6OmRldmljZU1vdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQpOgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OnNldENvbnRyb2xsZXIpOgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OnN0b3BVcGRhdGluZyk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZU1vdGlvbkNsaWVudFF0OjpEZXZpY2VNb3Rpb25DbGllbnRRdCk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpkZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXJEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGll
bnRRdDo6c2V0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlv
bkNsaWVudFF0OjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50UXQ6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0OjpsYXN0T3JpZW50YXRpb24pOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaDoKKwogMjAxMS0wNy0yNyAgQmVuamFt
aW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dLMl1bUXRdIE1v
dmUgZnJvbSBRR3JhcGhpY3NWaWV3IHRvIFF0IFNjZW5lIEdyYXBoCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1F0V2ViS2l0LnBybyBiL1NvdXJjZS9XZWJLaXQvcXQvUXRXZWJLaXQucHJv
CmluZGV4IDNjNTgwODkuLjZmNDJiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvUXRX
ZWJLaXQucHJvCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvUXRXZWJLaXQucHJvCkBAIC0yNzYsMTcg
KzI3NiwxMyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSUNPTkRBVEFCQVNFPTEpIHsKIGNv
bnRhaW5zKERFRklORVMsIEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT049MSkgewogICAgIEhFQURF
UlMgKz0gXAogICAgICAgICAkJFBXRC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRR
dC5oIFwKLSAgICAgICAgJCRQV0QvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJR
dC5oIFwKICAgICAgICAgJCRQV0QvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGll
bnRRdC5oIFwKLSAgICAgICAgJCRQV0QvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25D
bGllbnRNb2NrUXQuaCBcCi0gICAgICAgICQkUFdEL1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJRdC5oCisgICAgICAgICQkUFdEL1dlYkNvcmVTdXBwb3J0L0RldmljZU9y
aWVudGF0aW9uQ2xpZW50TW9ja1F0LmgKIAogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICAkJFBX
RC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAgXAotICAgICAgICAkJFBX
RC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcCBcCiAgICAgICAgICQk
UFdEL1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwIFwKLSAgICAg
ICAgJCRQV0QvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrUXQuY3Bw
IFwKLSAgICAgICAgJCRQV0QvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
clF0LmNwcAorICAgICAgICAkJFBXRC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNs
aWVudE1vY2tRdC5jcHAKIH0KIAogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0dFT0xPQ0FUSU9O
PTEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNl
TW90aW9uQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZp
Y2VNb3Rpb25DbGllbnRRdC5jcHAKaW5kZXggNDc2MTUxNC4uNzMwZDVlOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRR
dC5jcHAKQEAgLTIzLDM4ICsyMywzNiBAQAogI2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgiCiAKLSNpbmNsdWRlICJx
d2VicGFnZS5oIgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLURldmljZU1vdGlvbkNsaWVudFF0
OjpEZXZpY2VNb3Rpb25DbGllbnRRdChRV2ViUGFnZSogcGFnZSkKLSAgICA6IG1fcGFnZShwYWdl
KQotICAgICwgbV9jb250cm9sbGVyKDApCi0gICAgLCBtX3Byb3ZpZGVyKG5ldyBEZXZpY2VNb3Rp
b25Qcm92aWRlclF0KCkpCitEZXZpY2VNb3Rpb25DbGllbnRRdDo6fkRldmljZU1vdGlvbkNsaWVu
dFF0KCkKIHsKLQotICAgIGNvbm5lY3QobV9wcm92aWRlciwgU0lHTkFMKGRldmljZU1vdGlvbkNo
YW5nZWQoKSksIFNMT1QoY2hhbmdlRGV2aWNlTW90aW9uKCkpKTsKIH0KIAotRGV2aWNlTW90aW9u
Q2xpZW50UXQ6On5EZXZpY2VNb3Rpb25DbGllbnRRdCgpCit2b2lkIERldmljZU1vdGlvbkNsaWVu
dFF0OjpkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVzdHJveWVkKCkKIHsKLSAgICBkaXNjb25uZWN0
KCk7Ci0gICAgZGVsZXRlIG1fcHJvdmlkZXI7CisgICAgZGVsZXRlIHRoaXM7CiB9CiAKIHZvaWQg
RGV2aWNlTW90aW9uQ2xpZW50UXQ6OnNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxl
ciogY29udHJvbGxlcikKIHsKLSAgICBtX2NvbnRyb2xsZXIgPSBjb250cm9sbGVyOworICAgIC8v
IEluaXRpYWxpemUgbGF6aWx5LgorICAgIGlmICghbV9wcm92aWRlciAmJiBjb250cm9sbGVyKQor
ICAgICAgICBtX3Byb3ZpZGVyID0gYWRvcHRQdHIobmV3IERldmljZU1vdGlvblByb3ZpZGVyUXQp
OworCisgICAgbV9wcm92aWRlci0+c2V0Q29udHJvbGxlcihjb250cm9sbGVyKTsKIH0KIAogdm9p
ZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6c3RhcnRVcGRhdGluZygpCiB7Ci0gICAgbV9wcm92aWRl
ci0+c3RhcnQoKTsKKyAgICBpZiAobV9wcm92aWRlcikKKyAgICAgICAgbV9wcm92aWRlci0+c3Rh
cnQoKTsKIH0KIAogdm9pZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKCkKIHsK
LSAgICBtX3Byb3ZpZGVyLT5zdG9wKCk7CisgICAgaWYgKG1fcHJvdmlkZXIpCisgICAgICAgIG1f
cHJvdmlkZXItPnN0b3AoKTsKIH0KIAogRGV2aWNlTW90aW9uRGF0YSogRGV2aWNlTW90aW9uQ2xp
ZW50UXQ6OmN1cnJlbnREZXZpY2VNb3Rpb24oKSBjb25zdApAQCAtNjIsMTkgKzYwLDQgQEAgRGV2
aWNlTW90aW9uRGF0YSogRGV2aWNlTW90aW9uQ2xpZW50UXQ6OmN1cnJlbnREZXZpY2VNb3Rpb24o
KSBjb25zdAogICAgIHJldHVybiBtX3Byb3ZpZGVyLT5jdXJyZW50RGV2aWNlTW90aW9uKCk7CiB9
CiAKLXZvaWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6OmRldmljZU1vdGlvbkNvbnRyb2xsZXJEZXN0
cm95ZWQoKQotewotICAgIGRlbGV0ZSB0aGlzOwotfQotCi12b2lkIERldmljZU1vdGlvbkNsaWVu
dFF0OjpjaGFuZ2VEZXZpY2VNb3Rpb24oKQotewotICAgIGlmICghbV9jb250cm9sbGVyKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBtX2NvbnRyb2xsZXItPmRpZENoYW5nZURldmljZU1vdGlvbihj
dXJyZW50RGV2aWNlTW90aW9uKCkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNp
bmNsdWRlICJtb2NfRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oCmluZGV4IGVh
ODQzZTIuLjY2MzJkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmgKQEAgLTIxLDM1ICsyMSwyOSBAQAogI2RlZmlu
ZSBEZXZpY2VNb3Rpb25DbGllbnRRdF9oCiAKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25DbGllbnQu
aCIKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNl
TW90aW9uRGF0YS5oIgotCi0jaW5jbHVkZSA8UU9iamVjdD4KLQotY2xhc3MgUVdlYlBhZ2U7Cisj
aW5jbHVkZSAiRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oIgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0
OwotCi1jbGFzcyBEZXZpY2VNb3Rpb25DbGllbnRRdCA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMg
RGV2aWNlTW90aW9uQ2xpZW50IHsKLSAgICBRX09CSkVDVAorY2xhc3MgRGV2aWNlTW90aW9uQ2xp
ZW50UXQgOiBwdWJsaWMgRGV2aWNlTW90aW9uQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBEZXZpY2VN
b3Rpb25DbGllbnRRdChRV2ViUGFnZSopOworICAgIERldmljZU1vdGlvbkNsaWVudFF0KCkgeyB9
OwogICAgIHZpcnR1YWwgfkRldmljZU1vdGlvbkNsaWVudFF0KCk7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKik7Citwcml2YXRlOgorICAg
IHZpcnR1YWwgdm9pZCBkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVzdHJveWVkKCk7CisKICAgICB2
aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRp
bmcoKTsKKwogICAgIHZpcnR1YWwgRGV2aWNlTW90aW9uRGF0YSogY3VycmVudERldmljZU1vdGlv
bigpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVzdHJv
eWVkKCk7CiAKLXB1YmxpYyBRX1NMT1RTOgotICAgIHZvaWQgY2hhbmdlRGV2aWNlTW90aW9uKCk7
CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciop
OwogCi1wcml2YXRlOgotICAgIFFXZWJQYWdlKiBtX3BhZ2U7Ci0gICAgRGV2aWNlTW90aW9uQ29u
dHJvbGxlciogbV9jb250cm9sbGVyOwotICAgIERldmljZU1vdGlvblByb3ZpZGVyUXQqIG1fcHJv
dmlkZXI7CisgICAgT3duUHRyPERldmljZU1vdGlvblByb3ZpZGVyUXQ+IG1fcHJvdmlkZXI7CiB9
OwogCiB9IC8vIG5hbWVzcGVjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggY2NmNzY5Ny4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsNzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqCi0gKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwot
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
LSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoK
LSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oIgotCi0jaW5jbHVkZSAiRGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotRGV2aWNl
TW90aW9uUHJvdmlkZXJRdDo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpCi17Ci0gICAgbV9hY2Nl
bGVyYXRpb24uYWRkRmlsdGVyKHRoaXMpOwotICAgIG1fbW90aW9uID0gRGV2aWNlTW90aW9uRGF0
YTo6Y3JlYXRlKCk7Ci0gICAgbV9kZXZpY2VPcmllbnRhdGlvbiA9IG5ldyBEZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXQoKTsKLX0KLQotRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6fkRldmljZU1v
dGlvblByb3ZpZGVyUXQoKQotewotICAgIGRlbGV0ZSBtX2RldmljZU9yaWVudGF0aW9uOwotfQot
Ci12b2lkIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0YXJ0KCkKLXsKLSAgICBtX2FjY2VsZXJh
dGlvbi5zdGFydCgpOwotICAgIG1fZGV2aWNlT3JpZW50YXRpb24tPnN0YXJ0KCk7Ci19Ci0KLXZv
aWQgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RvcCgpCi17Ci0gICAgbV9hY2NlbGVyYXRpb24u
c3RvcCgpOwotICAgIG1fZGV2aWNlT3JpZW50YXRpb24tPnN0b3AoKTsKLX0KLQotYm9vbCBEZXZp
Y2VNb3Rpb25Qcm92aWRlclF0OjpmaWx0ZXIoUUFjY2VsZXJvbWV0ZXJSZWFkaW5nKiByZWFkaW5n
KQotewotICAgIFJlZlB0cjxEZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRpb24+IGFjY2VsID0g
RGV2aWNlTW90aW9uRGF0YTo6QWNjZWxlcmF0aW9uOjpjcmVhdGUoCi0gICAgICAgICAgICAvKiB4
IGF2YWlsYWJsZSAqLyB0cnVlLCByZWFkaW5nLT54KCksCi0gICAgICAgICAgICAvKiB5IGF2YWls
YWJsZSAqLyB0cnVlLCByZWFkaW5nLT55KCksCi0gICAgICAgICAgICAvKiB6IGF2YWlsYWJsZSAq
LyB0cnVlLCByZWFkaW5nLT56KCkpOwotCi0gICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE6OlJv
dGF0aW9uUmF0ZT4gcm90YXRpb24gPSBEZXZpY2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGU6OmNy
ZWF0ZSgKLSAgICAgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb24tPmhhc0FscGhhKCksIG1fZGV2
aWNlT3JpZW50YXRpb24tPm9yaWVudGF0aW9uKCktPmFscGhhKCksCi0gICAgICAgICAgICAvKiBi
ZXRhIGF2YWlsYWJsZSAqLyB0cnVlLCBtX2RldmljZU9yaWVudGF0aW9uLT5vcmllbnRhdGlvbigp
LT5iZXRhKCksCi0gICAgICAgICAgICAvKiBnYW1tYSBhdmFpbGFibGUgKi8gdHJ1ZSwgbV9kZXZp
Y2VPcmllbnRhdGlvbi0+b3JpZW50YXRpb24oKS0+Z2FtbWEoKSk7Ci0KLSAgICBtX21vdGlvbiA9
IERldmljZU1vdGlvbkRhdGE6OmNyZWF0ZShhY2NlbCwKLSAgICAgICAgICAgIGFjY2VsLCAvKiBG
SVhNRTogTmVlZHMgdG8gcHJvdmlkZSBhY2NlbGVyYXRpb24gaW5jbHVkZSBncmF2aXR5LiAqLwot
ICAgICAgICAgICAgcm90YXRpb24sCi0gICAgICAgICAgICBmYWxzZSwgMCAvKiBUaGUgaW50ZXJ2
YWwgaXMgdHJlYXRlZCBpbnRlcm5hbGx5IGJ5IFF0IG1vYmlsaXR5ICovKTsKLQotICAgIGVtaXQg
ZGV2aWNlTW90aW9uQ2hhbmdlZCgpOwotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLSNpbmNsdWRlICJtb2NfRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5j
cHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1v
dGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNl
TW90aW9uUHJvdmlkZXJRdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMzIwMGQ1
Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90
aW9uUHJvdmlkZXJRdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0g
KgotICovCi0jaWZuZGVmIERldmljZU1vdGlvblByb3ZpZGVyUXRfaAotI2RlZmluZSBEZXZpY2VN
b3Rpb25Qcm92aWRlclF0X2gKLQotI2luY2x1ZGUgIkRldmljZU1vdGlvbkRhdGEuaCIKLSNpbmNs
dWRlICJSZWZQdHIuaCIKLQotI2luY2x1ZGUgPFFBY2NlbGVyb21ldGVyRmlsdGVyPgotI2luY2x1
ZGUgPFFPYmplY3Q+Ci0KLVFUTV9VU0VfTkFNRVNQQUNFCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OwotCi1jbGFzcyBEZXZpY2VNb3Rp
b25Qcm92aWRlclF0IDogcHVibGljIFFPYmplY3QsIHB1YmxpYyBRQWNjZWxlcm9tZXRlckZpbHRl
ciB7Ci0gICAgUV9PQkpFQ1QKLXB1YmxpYzoKLSAgICBEZXZpY2VNb3Rpb25Qcm92aWRlclF0KCk7
Ci0gICAgfkRldmljZU1vdGlvblByb3ZpZGVyUXQoKTsKLQotICAgIGJvb2wgZmlsdGVyKFFBY2Nl
bGVyb21ldGVyUmVhZGluZyopOwotICAgIHZvaWQgc3RhcnQoKTsKLSAgICB2b2lkIHN0b3AoKTsK
LSAgICBEZXZpY2VNb3Rpb25EYXRhKiBjdXJyZW50RGV2aWNlTW90aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9tb3Rpb24uZ2V0KCk7IH0KLQotUV9TSUdOQUxTOgotICAgIHZvaWQgZGV2aWNlTW90aW9u
Q2hhbmdlZCgpOwotCi1wcml2YXRlOgotICAgIFJlZlB0cjxEZXZpY2VNb3Rpb25EYXRhPiBtX21v
dGlvbjsKLSAgICBRQWNjZWxlcm9tZXRlciBtX2FjY2VsZXJhdGlvbjsKLSAgICBEZXZpY2VPcmll
bnRhdGlvblByb3ZpZGVyUXQqIG1fZGV2aWNlT3JpZW50YXRpb247Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVu
dGF0aW9uQ2xpZW50UXQuY3BwCmluZGV4IDAxY2JlNzMuLjcxYjdlNTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlv
bkNsaWVudFF0LmNwcApAQCAtMjEsNTkgKzIxLDM5IEBACiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50
YXRpb25DbGllbnRRdC5oIgogCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2Nr
UXQuaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKLSNpbmNsdWRlICJxd2VicGFnZS5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLURldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OkRldmlj
ZU9yaWVudGF0aW9uQ2xpZW50UXQoUVdlYlBhZ2UqIHBhZ2UpCi0gICAgOiBtX3BhZ2UocGFnZSkK
LSAgICAsIG1fY29udHJvbGxlcigwKQotICAgICwgbV9wcm92aWRlcihuZXcgRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0KCkpCi17Ci0gICAgY29ubmVjdChtX3Byb3ZpZGVyLCBTSUdOQUwoZGV2
aWNlT3JpZW50YXRpb25DaGFuZ2VkKERldmljZU9yaWVudGF0aW9uKikpLCBTTE9UKGNoYW5nZURl
dmljZU9yaWVudGF0aW9uKERldmljZU9yaWVudGF0aW9uKikpKTsKLX0KLQotRGV2aWNlT3JpZW50
YXRpb25DbGllbnRRdDo6fkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQoKQordm9pZCBEZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0OjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQo
KQogewotICAgIGRpc2Nvbm5lY3QoKTsKLSAgICBkZWxldGUgbV9wcm92aWRlcjsKKyAgICBkZWxl
dGUgdGhpczsKIH0KIAogdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzZXRDb250cm9s
bGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKIHsKLSAgICBtX2Nv
bnRyb2xsZXIgPSBjb250cm9sbGVyOworICAgIC8vIEluaXRpYWxpemUgbGF6aWx5LgorICAgIGlm
ICghbV9wcm92aWRlciAmJiBjb250cm9sbGVyKQorICAgICAgICBtX3Byb3ZpZGVyID0gYWRvcHRQ
dHIobmV3IERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCk7CisKKyAgICBtX3Byb3ZpZGVyLT5z
ZXRDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogfQogCiB2b2lkIERldmljZU9yaWVudGF0aW9uQ2xp
ZW50UXQ6OnN0YXJ0VXBkYXRpbmcoKQogewotICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7CisgICAg
aWYgKG1fcHJvdmlkZXIpCisgICAgICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7CiB9CiAKIHZvaWQg
RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKCkKIHsKLSAgICBtX3Byb3Zp
ZGVyLT5zdG9wKCk7CisgICAgaWYgKG1fcHJvdmlkZXIpCisgICAgICAgIG1fcHJvdmlkZXItPnN0
b3AoKTsKIH0KIAogRGV2aWNlT3JpZW50YXRpb24qIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6
Omxhc3RPcmllbnRhdGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJvdmlkZXItPm9yaWVu
dGF0aW9uKCk7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6ZGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkKLXsKLSAgICBkZWxldGUgdGhpczsKLX0KLQot
dm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpjaGFuZ2VEZXZpY2VPcmllbnRhdGlvbihE
ZXZpY2VPcmllbnRhdGlvbiogb3JpZW50YXRpb24pCi17Ci0gICAgaWYgKCFtX2NvbnRyb2xsZXIp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlT3Jp
ZW50YXRpb24ob3JpZW50YXRpb24pOworICAgIHJldHVybiAobV9wcm92aWRlcikgPyBtX3Byb3Zp
ZGVyLT5sYXN0T3JpZW50YXRpb24oKSA6IDA7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LQotI2luY2x1ZGUgIm1vY19EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGll
bnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlv
bkNsaWVudFF0LmgKaW5kZXggNjE5NjhjNC4uODIxYTlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgKKysrIGIv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0
LmgKQEAgLTIyLDM0ICsyMiwyMyBAQAogCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb24uaCIK
ICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgotCi0jaW5jbHVkZSA8UU9iamVj
dD4KLQotY2xhc3MgUVdlYlBhZ2U7CisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyLmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgiCisjaW5jbHVk
ZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OwotCi1jbGFz
cyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0IDogcHVibGljIFFPYmplY3QsIHB1YmxpYyBEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudCB7Ci0gICAgUV9PQkpFQ1QKK2NsYXNzIERldmljZU9yaWVudGF0
aW9uQ2xpZW50UXQgOiBwdWJsaWMgRGV2aWNlT3JpZW50YXRpb25DbGllbnQgewogcHVibGljOgot
ICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQoUVdlYlBhZ2UqKTsKLSAgICB2aXJ0dWFsIH5E
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0KCk7Ci0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJv
bGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc3Rh
cnRVcGRhdGluZygpOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKICAgICB2aXJ0
dWFsIERldmljZU9yaWVudGF0aW9uKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdDsKICAgICB2aXJ0
dWFsIHZvaWQgZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCk7CiAKLXB1Ymxp
YyBRX1NMT1RTOgotICAgIHZvaWQgY2hhbmdlRGV2aWNlT3JpZW50YXRpb24oRGV2aWNlT3JpZW50
YXRpb24qKTsKLQogcHJpdmF0ZToKLSAgICBRV2ViUGFnZSogbV9wYWdlOwotICAgIERldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlciogbV9jb250cm9sbGVyOwotICAgIERldmljZU9yaWVudGF0aW9u
UHJvdmlkZXJRdCogbV9wcm92aWRlcjsKKyAgICBPd25QdHI8RGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0PiBtX3Byb3ZpZGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyUXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmll
bnRhdGlvblByb3ZpZGVyUXQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMzE5
MzBkLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDg0ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgotICoKLSAqLwotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRldmljZU9y
aWVudGF0aW9uUHJvdmlkZXJRdC5oIgotCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGll
bnRNb2NrUXQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1EZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyUXQ6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpCi17Ci0gICAgbV9yb3RhdGlv
bi5hZGRGaWx0ZXIodGhpcyk7Ci0gICAgbV9vcmllbnRhdGlvbiA9IERldmljZU9yaWVudGF0aW9u
OjpjcmVhdGUoKTsKLQotICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2tRdDo6bW9j
a0lzQWN0aXZlKQotICAgICAgICBhY3RpdmVDbGllbnRNb2NrKCk7Ci19Ci0KLURldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJRdDo6fkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpCi17Ci0gICAg
ZGlzY29ubmVjdCgpOwotfQotCi12b2lkIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c3Rh
cnQoKQotewotICAgIG1fcm90YXRpb24uc3RhcnQoKTsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXQ6OnN0b3AoKQotewotICAgIG1fcm90YXRpb24uc3RvcCgpOwotfQotCi1i
b29sIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKFFSb3RhdGlvblJlYWRpbmcq
IHJlYWRpbmcpCi17Ci0gICAgLy8gUHJvdmlkZSBkZXZpY2Ugb3JpZW50YXRpb24gZGF0YSBhY2Nv
cmRpbmcgVzNDIHNwZWM6Ci0gICAgLy8gaHR0cDovL2Rldi53My5vcmcvZ2VvL2FwaS9zcGVjLXNv
dXJjZS1vcmllbnRhdGlvbi5odG1sCi0gICAgLy8gUXQgbW9iaWxpdHkgcHJvdmlkZSB0aGVzZSBk
YXRhIHZpYSBRUm90YXRpb25TZW5zb3IgdXNpbmcgdGhlCi0gICAgLy8gUVJvdGF0aW9uUmVhZGlu
ZyBjbGFzczoKLSAgICAvLyAgLSB0aGUgcm90YXRpb24gYXJvdW5kIHogYXhpcyAoYWxwaGEpIGlz
IGdpdmVuIGFzIHogaW4gUVJvdGF0aW9uUmVhZGluZzsKLSAgICAvLyAgLSB0aGUgcm90YXRpb24g
YXJvdW5kIHggYXhpcyAoYmV0YSkgaXMgZ2l2ZW4gYXMgeCBpbiBRUm90YXRpb25SZWFkaW5nOwot
ICAgIC8vICAtIHRoZSByb3RhdGlvbiBhcm91bmQgeSBheGlzIChnYW1tYSkgaXMgZ2l2ZW4gYXMg
eSBpbiBRUm90YXRpb25SZWFkaW5nOwotICAgIC8vIFNlZTogaHR0cDovL2RvYy5xdC5ub2tpYS5j
b20vcXRtb2JpbGl0eS0xLjAvcXJvdGF0aW9ucmVhZGluZy5odG1sCi0gICAgLy8gVGhlIFogKGFs
cGhhKSByb3RhdGlvbiBhbmdsZSBpcyBjaGVja2VkIHZpYSBoYXNBbHBoYSgpIHByaXZhdGUgbWV0
aG9kLAotICAgIC8vIGRlcGVuZGluZyBpZiB0aGUgZGV2aWNlIGlzIGFibGUgZG8gZGV0ZWN0IHRo
ZSBhbHBoYSByb3RhdGlvbi4gWCAoYmV0YSkgYW5kCi0gICAgLy8gWSAoZ2FtbWEpIGF4aXMgYXJl
IGF2YWlsYmxlIGluIHRoaXMgY29udGV4dC4KLSAgICBtX29yaWVudGF0aW9uID0gRGV2aWNlT3Jp
ZW50YXRpb246OmNyZWF0ZShoYXNBbHBoYSgpLCByZWFkaW5nLT56KCksCi0gICAgICAgICAgICAv
KiB4IGF2YWlsYWJsZSAqLyB0cnVlLCByZWFkaW5nLT54KCksCi0gICAgICAgICAgICAvKiB5IGF2
YWlsYWJsZSAqLyB0cnVlLCByZWFkaW5nLT55KCkpOwotICAgIGVtaXQgZGV2aWNlT3JpZW50YXRp
b25DaGFuZ2VkKG1fb3JpZW50YXRpb24uZ2V0KCkpOwotCi0gICAgcmV0dXJuIGZhbHNlOwotfQot
Ci12b2lkIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6Y2hhbmdlRGV2aWNlT3JpZW50YXRp
b24oRGV2aWNlT3JpZW50YXRpb24qIG9yaWVudGF0aW9uKQotewotICAgIG1fb3JpZW50YXRpb24g
PSBvcmllbnRhdGlvbjsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OmFj
dGl2ZUNsaWVudE1vY2soKQotewotICAgIGNvbm5lY3QoRGV2aWNlT3JpZW50YXRpb25DbGllbnRN
b2NrUXQ6OmNsaWVudCgpLCBTSUdOQUwobW9ja09yaWVudGF0aW9uQ2hhbmdlZChEZXZpY2VPcmll
bnRhdGlvbiopKSwgU0xPVChjaGFuZ2VEZXZpY2VPcmllbnRhdGlvbihEZXZpY2VPcmllbnRhdGlv
biopKSk7Ci19Ci0KLX0KLQotI2luY2x1ZGUgIm1vY19EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVy
UXQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGU4NzkzN2UuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaAorKysgL2Rldi9udWxsCkBAIC0xLDYz
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotI2lmbmRlZiBEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXRfaAotI2RlZmluZSBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXRfaAotCi0jaW5jbHVk
ZSAiRGV2aWNlT3JpZW50YXRpb24uaCIKLSNpbmNsdWRlICJSZWZQdHIuaCIKLQotI2luY2x1ZGUg
PFFPYmplY3Q+Ci0jaW5jbHVkZSA8UVJvdGF0aW9uRmlsdGVyPgotCi1RVE1fVVNFX05BTUVTUEFD
RQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50
UXQ7Ci0KLWNsYXNzIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCA6IHB1YmxpYyBRT2JqZWN0
LCBwdWJsaWMgUVJvdGF0aW9uRmlsdGVyIHsKLSAgICBRX09CSkVDVAotcHVibGljOgotICAgIERl
dmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpOwotICAgIH5EZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQoKTsKLQotICAgIGJvb2wgZmlsdGVyKFFSb3RhdGlvblJlYWRpbmcqKTsKLSAgICB2b2lk
IHN0YXJ0KCk7Ci0gICAgdm9pZCBzdG9wKCk7Ci0gICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fcm90YXRpb24uaXNBY3RpdmUoKTsgfQotICAgIERldmljZU9yaWVudGF0aW9uKiBv
cmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZW50YXRpb24uZ2V0KCk7IH0KLSAgICBi
b29sIGhhc0FscGhhKCkgY29uc3QgeyByZXR1cm4gbV9yb3RhdGlvbi5wcm9wZXJ0eSgiaGFzWiIp
LnRvQm9vbCgpOyB9Ci0KLVFfU0lHTkFMUzoKLSAgICB2b2lkIGRldmljZU9yaWVudGF0aW9uQ2hh
bmdlZChEZXZpY2VPcmllbnRhdGlvbiopOwotCi1wdWJsaWMgUV9TTE9UUzoKLSAgICB2b2lkIGNo
YW5nZURldmljZU9yaWVudGF0aW9uKERldmljZU9yaWVudGF0aW9uKik7Ci0KLXByaXZhdGU6Ci0g
ICAgdm9pZCBhY3RpdmVDbGllbnRNb2NrKCk7Ci0KLSAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRp
b24+IG1fb3JpZW50YXRpb247Ci0gICAgUVJvdGF0aW9uU2Vuc29yIG1fcm90YXRpb247Ci19Owot
Ci19Ci0KLSNlbmRpZiAvLyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDU5NjhlNTcuLjI1NDkzMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0w
Ny0yNyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBbUXRdIE1ha2UgRGV2aWNlTW90aW9uIGFuZCBEZXZpY2VPcmllbnRhdGlvbiB3b3JrIHdp
dGggV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjQ1OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBPcmlnaW5hbCBwYXRjaCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KKworICAgICAg
ICBBZGQgdGhlIGNsaWVudHMgd2hlbiBjcmVhdGluZyB0aGUgcGFnZS4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
V2ViUGFnZSk6CisKIDIwMTEtMDctMjcgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFtXSzJdW1F0XSBNb3ZlIGZyb20gUUdyYXBoaWNzVmlldyB0byBR
dCBTY2VuZSBHcmFwaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCmluZGV4IGMwZTI1MGEuLmViNGZlY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEyMyw2ICsxMjMsMTAgQEAKICNlbmRpZgog
CiAjaWYgUExBVEZPUk0oUVQpCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpbmNs
dWRlICJEZXZpY2VNb3Rpb25DbGllbnRRdC5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9u
Q2xpZW50UXQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNlbmRpZgog
CkBAIC0yMTEsNiArMjE1LDEwIEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBj
b25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3Bl
Y3RvckNsaWVudCh0aGlzKTsKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
ICYmIFBMQVRGT1JNKFFUKQorICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50
ID0gbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ7CisgICAgcGFnZUNsaWVudHMuZGV2aWNl
TW90aW9uQ2xpZW50ID0gbmV3IERldmljZU1vdGlvbkNsaWVudFF0OworI2VuZGlmCiAgICAgbV9w
YWdlID0gYWRvcHRQdHIobmV3IFBhZ2UocGFnZUNsaWVudHMpKTsKIAogICAgIC8vIFF0IGRvZXMg
bm90IHlldCBjYWxsIHNldElzSW5XaW5kb3cuIFVudGlsIGl0IGRvZXMsIGp1c3QgbGVhdmUKLS0g
CjEuNy40LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139614</attachid>
            <date>2012-05-01 05:43:12 -0700</date>
            <delta_ts>2012-05-01 05:47:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64595-20120501144812.patch</filename>
            <type>text/plain</type>
            <size>47224</size>
            <attacher name="Lars Knudsen">larsgk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWRkNDcyZTAxZGViOWZk
MjA1NjM1MzFkYzVmNDJiNGNhZjE4NmI1Ny4uZTMyMTc3ODIyNjhmNDU4M2I0MmNkYWUyNzRmY2Vi
ZTI3OTlkMjY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEyLTA1LTAxICBMYXJz
IEtudWRzZW4gIDxsYXJzLmtudWRzZW5Abm9raWEuY29tPgorCisgICAgICAgIFtRdF0gTWFrZSBE
ZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4g
KE9PUFMhKQorCisgICAgICAgIEFsc28gbW92aW5nIERldmljZU1vdGlvbiBhbmQgRGV2aWNlT3Jp
ZW50YXRpb24gY2xpZW50cyBhbmQKKyAgICAgICAgcHJvdmlkZXJzIHRvIFdlYkNvcmUuICBUaGlz
IGlzIGRvbmUgdG8gYWxsb3cgY2xlYW4gZGVwZW5kZW5jaWVzCisgICAgICAgIHdoZW4gc3RhdGlj
YWxseSBsaW5raW5nIFdLMi4KKworICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2Vi
Q29yZS5wcmk6CisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rp
b25DbGllbnRRdC5jcHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZU1vdGlvbkNsaWVudFF0Ojp+RGV2aWNlTW90aW9uQ2xpZW50UXQpOgorICAgICAgICAoV2Vi
Q29yZTo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OmRldmljZU1vdGlvbkNvbnRyb2xsZXJEZXN0cm95
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OnNldENvbnRyb2xs
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OnN0b3BVcGRhdGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25DbGllbnRRdDo6Y3VycmVudERldmlj
ZU1vdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uQ2xpZW50UXQuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9u
Q2xpZW50UXQuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRGV2aWNlTW90aW9uQ2xp
ZW50UXQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OkRldmljZU1v
dGlvbkNsaWVudFF0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRl
clF0LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2
aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OkRldmljZU1vdGlvblByb3ZpZGVyUXQpOgor
ICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6fkRldmljZU1vdGlvblBy
b3ZpZGVyUXQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c2V0
Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0Ojpz
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdG9wKToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OmZpbHRlcik6CisgICAg
ICAgICogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0Lmgu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERldmljZU1vdGlvblByb3ZpZGVyUXQpOgor
ICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6Y3VycmVudERldmljZU1v
dGlvbik6CisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9y
aWVudGF0aW9uQ2xpZW50UXQuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXJEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRR
dDo6c2V0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNs
aWVudFF0OjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0
aW9uQ2xpZW50UXQ6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmll
bnRhdGlvbkNsaWVudFF0OjpsYXN0T3JpZW50YXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3F0
L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyUXQ6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCk6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6On5EZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0OjpzZXRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRp
b25Qcm92aWRlclF0OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9u
UHJvdmlkZXJRdDo6ZmlsdGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmguCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OmlzQWN0aXZlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6bGFzdE9yaWVudGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6aGFzQWxwaGEpOgorCiAy
MDEyLTA0LTMwICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBQ
cm90ZWN0IGN1cnJlbnQgZWxlbWVudCBpbiBIVE1MTGlua0VsZW1lbnQ6OnNldENTU1N0eWxlU2hl
ZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCAwNjk3ZjE3NTg0NDg3Y2U3OWZkYjNjNGIwYjA4YjZmMmJiM2VhNTc4
Li44YmQ4NzkyZjg5OTc4ZTFmMDY1MzdkZDJhNmFhNWUyOWNiNmMyNTM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTItMDUtMDEgIExhcnMgS251ZHNlbiAgPGxhcnMua251ZHNlbkBu
b2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBNYWtlIERldmljZU1vdGlvbiBhbmQgRGV2aWNlT3Jp
ZW50YXRpb24gd29yayB3aXRoIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY0NTk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkaW5nIHN1cHBvcnQgZm9yIERldmljZU9yaWVudGF0aW9uIGlu
IFdLMiBXZWJQYWdlCisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFn
ZSk6CisKIDIwMTItMDQtMjggIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZC4gQWRkZWQgbmV3IGV4cG9ydGVkIHN5bWJvbHMgYWZ0ZXIg
cjExNTU1My4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDhlOGM3MTQ2MGFkYzE5ODE2NGFkY2FmY2M4MDkwNWYx
YjVjMWVhMmQuLmE4ZTMzMTc0NjM1OTczOTg5MDRhODUyYTIxMjJmNGQyZjRiMGFiNjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQpAQCAtMjMzOSw2ICsyMzM5LDEwIEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3Jt
L1JlZmVycmVyUG9saWN5LmggXAogICAgIHBsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmggXAogICAg
IHBsYXRmb3JtL3F0L0Nvb2tpZUphclF0LmggXAorICAgIHBsYXRmb3JtL3F0L0RldmljZU1vdGlv
bkNsaWVudFF0LmggXAorICAgIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaCBc
CisgICAgcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oIFwKKyAgICBwbGF0
Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCBcCiAgICAgcGxhdGZvcm0vcXQv
UVdlYlBhZ2VDbGllbnQuaCBcCiAgICAgcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5oIFwKICAg
ICBwbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0TW9iaWxlLmggXApAQCAtMjg3Myw2ICsyODc3LDEw
IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL3F0L0NvbnRleHRNZW51UXQuY3BwIFwKICAg
ICBwbGF0Zm9ybS9xdC9Db29raWVKYXJRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L0N1cnNvclF0
LmNwcCBcCisgICAgcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwIFwKKyAgICBw
bGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcCBcCisgICAgcGxhdGZvcm0vcXQv
RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAgXAorICAgIHBsYXRmb3JtL3F0L0RldmljZU9y
aWVudGF0aW9uUHJvdmlkZXJRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L0RyYWdEYXRhUXQuY3Bw
IFwKICAgICBwbGF0Zm9ybS9xdC9EcmFnSW1hZ2VRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L0V2
ZW50TG9vcFF0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaSBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IGI0MzBmY2IzZjg5ZTM3YTRiNzU1MzU1
ZWRlNGFiMmJjNDIyY2MyYTAuLjRiNDhiYTc3MWJlMGM0YjcyODZmNzQ2YTgwM2I1ZGI1YjkzNmY5
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJpCkBAIC0xNjAsOCArMTYwLDcgQEAgY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX0dFT0xPQ0FUSU9OPTEpIHsKIH0KIAogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTj0xKSB7Ci0gICAgQ09ORklHICo9IG1vYmlsaXR5Ci0gICAgTU9CSUxJ
VFkgKj0gc2Vuc29ycworICAgIGhhdmVRdCg1KTogUVQgKz0gc2Vuc29ycwogfQogCiBjb250YWlu
cyhERUZJTkVTLCBXVEZfVVNFX1FUX01PQklMSVRZX1NZU1RFTUlORk89MSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAwMTk5YzdiNWFhNDQ3ZjQwNjM0ZTM5YWYxNzdiNWUxOGYxZDlkNjkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25DbGllbnRR
dC5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25DbGllbnRRdC5oIgorCisjaW5jbHVkZSAiRGV2
aWNlTW90aW9uUHJvdmlkZXJRdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RldmljZU1v
dGlvbkNsaWVudFF0Ojp+RGV2aWNlTW90aW9uQ2xpZW50UXQoKQoreworfQorCit2b2lkIERldmlj
ZU1vdGlvbkNsaWVudFF0OjpkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVzdHJveWVkKCkKK3sKKyAg
ICBkZWxldGUgdGhpczsKK30KKwordm9pZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6c2V0Q29udHJv
bGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyKQoreworICAgIC8vIEluaXRp
YWxpemUgbGF6aWx5LgorICAgIGlmICghbV9wcm92aWRlciAmJiBjb250cm9sbGVyKQorICAgICAg
ICBtX3Byb3ZpZGVyID0gYWRvcHRQdHIobmV3IERldmljZU1vdGlvblByb3ZpZGVyUXQpOworCisg
ICAgbV9wcm92aWRlci0+c2V0Q29udHJvbGxlcihjb250cm9sbGVyKTsKK30KKwordm9pZCBEZXZp
Y2VNb3Rpb25DbGllbnRRdDo6c3RhcnRVcGRhdGluZygpCit7CisgICAgaWYgKG1fcHJvdmlkZXIp
CisgICAgICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7Cit9CisKK3ZvaWQgRGV2aWNlTW90aW9uQ2xp
ZW50UXQ6OnN0b3BVcGRhdGluZygpCit7CisgICAgaWYgKG1fcHJvdmlkZXIpCisgICAgICAgIG1f
cHJvdmlkZXItPnN0b3AoKTsKK30KKworRGV2aWNlTW90aW9uRGF0YSogRGV2aWNlTW90aW9uQ2xp
ZW50UXQ6OmN1cnJlbnREZXZpY2VNb3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX3Byb3Zp
ZGVyLT5jdXJyZW50RGV2aWNlTW90aW9uKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVu
dFF0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25DbGllbnRRdC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQxZTNlMjMwMDNmYWY3MjBmYTc4OGJlNWYxM2M1Mzg4ZTc5YzI0ZGUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25D
bGllbnRRdC5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIERl
dmljZU1vdGlvbkNsaWVudFF0X2gKKyNkZWZpbmUgRGV2aWNlTW90aW9uQ2xpZW50UXRfaAorCisj
aW5jbHVkZSAiRGV2aWNlTW90aW9uQ2xpZW50LmgiCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0
YS5oIgorCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oIgorI2luY2x1ZGUgPHd0
Zi9Pd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VNb3Rpb25D
b250cm9sbGVyOworY2xhc3MgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDsKKworY2xhc3MgRGV2aWNl
TW90aW9uQ2xpZW50UXQgOiBwdWJsaWMgRGV2aWNlTW90aW9uQ2xpZW50IHsKK3B1YmxpYzoKKyAg
ICBEZXZpY2VNb3Rpb25DbGllbnRRdCgpIHsgfQorICAgIHZpcnR1YWwgfkRldmljZU1vdGlvbkNs
aWVudFF0KCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIGRldmljZU1vdGlvbkNvbnRy
b2xsZXJEZXN0cm95ZWQoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCk7Cisg
ICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpOworCisgICAgdmlydHVhbCBEZXZpY2VNb3Rp
b25EYXRhKiBjdXJyZW50RGV2aWNlTW90aW9uKCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKik7CisKKyAgICBPd25QdHI8RGV2
aWNlTW90aW9uUHJvdmlkZXJRdD4gbV9wcm92aWRlcjsKK307CisKK30gLy8gbmFtZXNwZWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIERldmljZU1vdGlvbkNsaWVudFF0X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDMwZjczN2YxMWNmZDYzYzQ5MGY0NGZjYThjODQ2ZDE0YmIzYWU0MQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVy
UXQuY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkRldmljZU1vdGlvblByb3ZpZGVyUXQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0
KCkKKyAgICA6IG1fY29udHJvbGxlcigwKQorICAgICwgbV9vcmllbnRhdGlvblByb3ZpZGVyKGFk
b3B0UHRyKG5ldyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQoKSkpCit7CisgICAgbV9zZW5z
b3IuYWRkRmlsdGVyKHRoaXMpOworICAgIG1fbGFzdE1vdGlvbiA9IERldmljZU1vdGlvbkRhdGE6
OmNyZWF0ZSgpOworfQorCitEZXZpY2VNb3Rpb25Qcm92aWRlclF0Ojp+RGV2aWNlTW90aW9uUHJv
dmlkZXJRdCgpCit7CisgICAgLy8gVGhlIHNlbnNvciBpcyBhdXRvbWF0aWNhbGx5IHN0b3BwZWQu
Cit9CisKK3ZvaWQgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcihEZXZpY2VN
b3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyKQoreworICAgIGlmICghY29udHJvbGxlcikKKyAg
ICAgICAgc3RvcCgpOworCisgICAgbV9jb250cm9sbGVyID0gY29udHJvbGxlcjsKK30KKwordm9p
ZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdGFydCgpCit7CisgICAgbV9zZW5zb3Iuc3RhcnQo
KTsKKyAgICBtX29yaWVudGF0aW9uUHJvdmlkZXItPnN0YXJ0KCk7Cit9CisKK3ZvaWQgRGV2aWNl
TW90aW9uUHJvdmlkZXJRdDo6c3RvcCgpCit7CisgICAgbV9zZW5zb3Iuc3RvcCgpOworICAgIG1f
b3JpZW50YXRpb25Qcm92aWRlci0+c3RvcCgpOworfQorCitib29sIERldmljZU1vdGlvblByb3Zp
ZGVyUXQ6OmZpbHRlcihRQWNjZWxlcm9tZXRlclJlYWRpbmcqIHJlYWRpbmcpCit7CisgICAgUmVm
UHRyPERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbj4gYWNjZWwgPSBEZXZpY2VNb3Rpb25E
YXRhOjpBY2NlbGVyYXRpb246OmNyZWF0ZSgKKyAgICAgICAgICAgIC8qIHggYXZhaWxhYmxlICov
IHRydWUsIC0gcmVhZGluZy0+eCgpLAorICAgICAgICAgICAgLyogeSBhdmFpbGFibGUgKi8gdHJ1
ZSwgLSByZWFkaW5nLT55KCksCisgICAgICAgICAgICAvKiB6IGF2YWlsYWJsZSAqLyB0cnVlLCAt
IHJlYWRpbmctPnooKSk7CisKKyAgICBib29sIGhhc0FscGhhID0gbV9vcmllbnRhdGlvblByb3Zp
ZGVyLT5oYXNBbHBoYSgpOworICAgIERldmljZU9yaWVudGF0aW9uKiBvcmllbnQgPSBtX29yaWVu
dGF0aW9uUHJvdmlkZXItPmxhc3RPcmllbnRhdGlvbigpOworCisgICAgUmVmUHRyPERldmljZU1v
dGlvbkRhdGE6OlJvdGF0aW9uUmF0ZT4gcm90YXRpb24gPSBEZXZpY2VNb3Rpb25EYXRhOjpSb3Rh
dGlvblJhdGU6OmNyZWF0ZSgKKyAgICAgICAgICAgIC8qIGFscGhhIGF2YWlsYWJsZSAqLyBoYXNB
bHBoYSwgb3JpZW50LT5hbHBoYSgpLAorICAgICAgICAgICAgLyogYmV0YSAgYXZhaWxhYmxlICov
IHRydWUsIG9yaWVudC0+YmV0YSgpLAorICAgICAgICAgICAgLyogZ2FtbWEgYXZhaWxhYmxlICov
IHRydWUsIG9yaWVudC0+Z2FtbWEoKSk7CisKKyAgICBtX2xhc3RNb3Rpb24gPSBEZXZpY2VNb3Rp
b25EYXRhOjpjcmVhdGUoYWNjZWwsCisgICAgICAgICAgICBhY2NlbCwgLyogRklYTUU6IE5lZWRz
IHRvIHByb3ZpZGUgYWNjZWxlcmF0aW9uIGluY2x1ZGUgZ3Jhdml0eS4gKi8KKyAgICAgICAgICAg
IHJvdGF0aW9uLAorICAgICAgICAgICAgZmFsc2UsIDAgLyogVGhlIGludGVydmFsIGlzIHRyZWF0
ZWQgaW50ZXJuYWxseSBieSBRdCBtb2JpbGl0eSAqLyk7CisKKyAgICBpZiAobV9jb250cm9sbGVy
KQorICAgICAgICBtX2NvbnRyb2xsZXItPmRpZENoYW5nZURldmljZU1vdGlvbihtX2xhc3RNb3Rp
b24uZ2V0KCkpOworCisgICAgLy8gV2UgYXJlIHRoZSBvbmx5IGZpbHRlciwgc28gbm90IG5lZWQg
dG8gYWxsb3cgcHJvcGFnYXRpb24uCisgICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZp
Y2VNb3Rpb25Qcm92aWRlclF0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VN
b3Rpb25Qcm92aWRlclF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmE0ZDZkY2VhODkwMjJhMTZlMjRkZWIxYWY4
ZWQ2ZjNlYzNkNzdhNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
CisgKi8KKyNpZm5kZWYgRGV2aWNlTW90aW9uUHJvdmlkZXJRdF9oCisjZGVmaW5lIERldmljZU1v
dGlvblByb3ZpZGVyUXRfaAorCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIgor
I2luY2x1ZGUgIkRldmljZU1vdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyUXQuaCIKKyNpbmNsdWRlIDxRQWNjZWxlcm9tZXRlckZpbHRlcj4KKyNpbmNsdWRl
IDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CisKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VNb3Rp
b25Qcm92aWRlclF0IDogcHVibGljIFFBY2NlbGVyb21ldGVyRmlsdGVyIHsKK3B1YmxpYzoKKyAg
ICBEZXZpY2VNb3Rpb25Qcm92aWRlclF0KCk7CisgICAgfkRldmljZU1vdGlvblByb3ZpZGVyUXQo
KTsKKworICAgIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKik7CisK
KyAgICBib29sIGZpbHRlcihRQWNjZWxlcm9tZXRlclJlYWRpbmcqKTsKKyAgICB2b2lkIHN0YXJ0
KCk7CisgICAgdm9pZCBzdG9wKCk7CisgICAgRGV2aWNlTW90aW9uRGF0YSogY3VycmVudERldmlj
ZU1vdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE1vdGlvbi5nZXQoKTsgfQorCitwcml2YXRl
OgorICAgIFJlZlB0cjxEZXZpY2VNb3Rpb25EYXRhPiBtX2xhc3RNb3Rpb247CisKKyAgICBEZXZp
Y2VNb3Rpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CisgICAgUUFjY2VsZXJvbWV0ZXIgbV9z
ZW5zb3I7CisKKyAgICBPd25QdHI8RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0PiBtX29yaWVu
dGF0aW9uUHJvdmlkZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzRm
Y2YzYTE3MzEzZWQ1YTA2Y2YxNDVlMmY0MjhiMmYxYzYzYTI4NgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3Bw
CkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCIKKworI2luY2x1ZGUgIkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQg
RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVz
dHJveWVkKCkKK3sKKyAgICBkZWxldGUgdGhpczsKK30KKwordm9pZCBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudFF0OjpzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29u
dHJvbGxlcikKK3sKKyAgICAvLyBJbml0aWFsaXplIGxhemlseS4KKyAgICBpZiAoIW1fcHJvdmlk
ZXIgJiYgY29udHJvbGxlcikKKyAgICAgICAgbV9wcm92aWRlciA9IGFkb3B0UHRyKG5ldyBEZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQpOworCisgICAgbV9wcm92aWRlci0+c2V0Q29udHJvbGxl
cihjb250cm9sbGVyKTsKK30KKwordm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzdGFy
dFVwZGF0aW5nKCkKK3sKKyAgICBpZiAobV9wcm92aWRlcikKKyAgICAgICAgbV9wcm92aWRlci0+
c3RhcnQoKTsKK30KKwordm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzdG9wVXBkYXRp
bmcoKQoreworICAgIGlmIChtX3Byb3ZpZGVyKQorICAgICAgICBtX3Byb3ZpZGVyLT5zdG9wKCk7
Cit9CisKK0RldmljZU9yaWVudGF0aW9uKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpsYXN0
T3JpZW50YXRpb24oKSBjb25zdAoreworICAgIHJldHVybiAobV9wcm92aWRlcikgPyBtX3Byb3Zp
ZGVyLT5sYXN0T3JpZW50YXRpb24oKSA6IDA7Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRp
b25DbGllbnRRdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRp
b25DbGllbnRRdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4NDAwYjU3NWI3NjgxNjg2MDBhY2ZkYWYxMmU3MDRl
YzU5ZThmNGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9E
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgor
ICovCisjaWZuZGVmIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXRfaAorI2RlZmluZSBEZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0X2gKKworI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uLmgiCisj
aW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCIKKworI2luY2x1ZGUgIkRldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uUHJvdmlk
ZXJRdC5oIgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdDsKKworY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCA6IHB1YmxpYyBEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRy
b2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKik7CisgICAgdmlydHVhbCB2b2lkIHN0
YXJ0VXBkYXRpbmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCk7CisgICAgdmly
dHVhbCBEZXZpY2VPcmllbnRhdGlvbiogbGFzdE9yaWVudGF0aW9uKCkgY29uc3Q7CisgICAgdmly
dHVhbCB2b2lkIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpOworCitwcml2
YXRlOgorICAgIE93blB0cjxEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ+IG1fcHJvdmlkZXI7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEZXZpY2VPcmllbnRh
dGlvbkNsaWVudFF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0Rl
dmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwN2FjYmE1N2Yy
ZDE2ZGMzMTk1YjQ0ODYxNDcwM2Q2OTgyMzVkOWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwCkBAIC0w
LDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
clF0KCkKKyAgICA6IG1fY29udHJvbGxlcigwKQoreworICAgIG1fc2Vuc29yLmFkZEZpbHRlcih0
aGlzKTsKKyAgICBtX2xhc3RPcmllbnRhdGlvbiA9IERldmljZU9yaWVudGF0aW9uOjpjcmVhdGUo
KTsKK30KKworRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojp+RGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0KCkKK3sKKyAgICAvLyBUaGUgc2Vuc29yIGlzIGF1dG9tYXRpY2FsbHkgc3RvcHBl
ZC4KK30KKwordm9pZCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnNldENvbnRyb2xsZXIo
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyKQoreworICAgIGlmICghY29u
dHJvbGxlcikKKyAgICAgICAgc3RvcCgpOworCisgICAgbV9jb250cm9sbGVyID0gY29udHJvbGxl
cjsKK30KKwordm9pZCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0YXJ0KCkKK3sKKyAg
ICBtX3NlbnNvci5zdGFydCgpOworfQorCit2b2lkIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJR
dDo6c3RvcCgpCit7CisgICAgbV9zZW5zb3Iuc3RvcCgpOworfQorCitib29sIERldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKFFSb3RhdGlvblJlYWRpbmcqIHJlYWRpbmcpCit7Cisg
ICAgLy8gUHJvdmlkZSBkZXZpY2Ugb3JpZW50YXRpb24gZGF0YSBhY2NvcmRpbmcgVzNDIHNwZWM6
CisgICAgLy8gaHR0cDovL2Rldi53My5vcmcvZ2VvL2FwaS9zcGVjLXNvdXJjZS1vcmllbnRhdGlv
bi5odG1sCisgICAgLy8gUXQgbW9iaWxpdHkgcHJvdmlkZSB0aGVzZSBkYXRhIHZpYSBRUm90YXRp
b25TZW5zb3IgdXNpbmcgdGhlCisgICAgLy8gUVJvdGF0aW9uUmVhZGluZyBjbGFzczoKKyAgICAv
LyAgLSB0aGUgcm90YXRpb24gYXJvdW5kIHogYXhpcyAoYWxwaGEpIGlzIGdpdmVuIGFzIHogaW4g
UVJvdGF0aW9uUmVhZGluZzsKKyAgICAvLyAgLSB0aGUgcm90YXRpb24gYXJvdW5kIHggYXhpcyAo
YmV0YSkgaXMgZ2l2ZW4gYXMgeCBpbiBRUm90YXRpb25SZWFkaW5nOworICAgIC8vICAtIHRoZSBy
b3RhdGlvbiBhcm91bmQgeSBheGlzIChnYW1tYSkgaXMgZ2l2ZW4gYXMgeSBpbiBRUm90YXRpb25S
ZWFkaW5nOworICAgIC8vIFNlZTogaHR0cDovL2RvYy5xdC5ub2tpYS5jb20vcXRtb2JpbGl0eS0x
LjAvcXJvdGF0aW9ucmVhZGluZy5odG1sCisgICAgLy8gVGhlIFogKGFscGhhKSByb3RhdGlvbiBh
bmdsZSBpcyBjaGVja2VkIHZpYSBoYXNBbHBoYSgpIHByaXZhdGUgbWV0aG9kLAorICAgIC8vIGRl
cGVuZGluZyBpZiB0aGUgZGV2aWNlIGlzIGFibGUgZG8gZGV0ZWN0IHRoZSBhbHBoYSByb3RhdGlv
bi4gWCAoYmV0YSkgYW5kCisgICAgLy8gWSAoZ2FtbWEpIGF4aXMgYXJlIGF2YWlsYmxlIGluIHRo
aXMgY29udGV4dC4KKyAgICBtX2xhc3RPcmllbnRhdGlvbiA9IERldmljZU9yaWVudGF0aW9uOjpj
cmVhdGUoaGFzQWxwaGEoKSwgcmVhZGluZy0+eigpLAorICAgICAgICAgICAgLyogeCBhdmFpbGFi
bGUgKi8gdHJ1ZSwgcmVhZGluZy0+eCgpLAorICAgICAgICAgICAgLyogeSBhdmFpbGFibGUgKi8g
dHJ1ZSwgcmVhZGluZy0+eSgpKTsKKworICAgIGlmIChtX2NvbnRyb2xsZXIpCisgICAgICAgIG1f
Y29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24obV9sYXN0T3JpZW50YXRpb24u
Z2V0KCkpOworCisgICAgLy8gV2UgYXJlIHRoZSBvbmx5IGZpbHRlciwgc28gbm90IG5lZWQgdG8g
YWxsb3cgcHJvcGFnYXRpb24uCisgICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJR
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdmNjk1ZmRiYjA1Yzg4YTg0NTljZjJiNjI0OWU3M2M0ZWU1ZGYyY2MK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmll
bnRhdGlvblByb3ZpZGVyUXQuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNp
Zm5kZWYgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gKKyNkZWZpbmUgRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0X2gKKworI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uLmgiCisjaW5j
bHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCisKKyNpbmNsdWRlIDxRUm90YXRp
b25GaWx0ZXI+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCA6IHB1YmxpYyBRUm90YXRpb25G
aWx0ZXIgeworcHVibGljOgorICAgIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpOworICAg
IH5EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQoKTsKKworICAgIHZvaWQgc2V0Q29udHJvbGxl
cihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqKTsKKworICAgIGJvb2wgZmlsdGVyKFFSb3Rh
dGlvblJlYWRpbmcqKTsKKyAgICB2b2lkIHN0YXJ0KCk7CisgICAgdm9pZCBzdG9wKCk7CisgICAg
Ym9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vuc29yLmlzQWN0aXZlKCk7IH0KKyAg
ICBEZXZpY2VPcmllbnRhdGlvbiogbGFzdE9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9s
YXN0T3JpZW50YXRpb24uZ2V0KCk7IH0KKyAgICBib29sIGhhc0FscGhhKCkgY29uc3QgeyByZXR1
cm4gbV9zZW5zb3IucHJvcGVydHkoImhhc1oiKS50b0Jvb2woKTsgfQorCitwcml2YXRlOgorICAg
IFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvbj4gbV9sYXN0T3JpZW50YXRpb247CisKKyAgICBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKKyAgICBRUm90YXRpb25TZW5z
b3IgbV9zZW5zb3I7Cit9OworCit9CisKKyNlbmRpZiAvLyBEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZp
Y2VNb3Rpb25DbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Rl
dmljZU1vdGlvbkNsaWVudFF0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDY0
NjMzNzg0MjFjZTBhYjAzOWI3MTEwOTkxZWZhZmUxMzZkN2Q2Ni4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgotICoKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRGV2
aWNlTW90aW9uQ2xpZW50UXQuaCIKLQotI2luY2x1ZGUgIkRldmljZU1vdGlvblByb3ZpZGVyUXQu
aCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1EZXZpY2VNb3Rpb25DbGllbnRRdDo6RGV2aWNl
TW90aW9uQ2xpZW50UXQoKQotICAgIDogbV9wcm92aWRlcihuZXcgRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdCkKLXsKLX0KLQotRGV2aWNlTW90aW9uQ2xpZW50UXQ6On5EZXZpY2VNb3Rpb25DbGllbnRR
dCgpCi17Ci0gICAgZGVsZXRlIG1fcHJvdmlkZXI7Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uQ2xp
ZW50UXQ6OnNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlcikK
LXsKLSAgICBtX3Byb3ZpZGVyLT5zZXRDb250cm9sbGVyKGNvbnRyb2xsZXIpOwotfQotCi12b2lk
IERldmljZU1vdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0aW5nKCkKLXsKLSAgICBtX3Byb3ZpZGVy
LT5zdGFydCgpOwotfQotCi12b2lkIERldmljZU1vdGlvbkNsaWVudFF0OjpzdG9wVXBkYXRpbmco
KQotewotICAgIG1fcHJvdmlkZXItPnN0b3AoKTsKLX0KLQotRGV2aWNlTW90aW9uRGF0YSogRGV2
aWNlTW90aW9uQ2xpZW50UXQ6OmN1cnJlbnREZXZpY2VNb3Rpb24oKSBjb25zdAotewotICAgIHJl
dHVybiBtX3Byb3ZpZGVyLT5jdXJyZW50RGV2aWNlTW90aW9uKCk7Ci19Ci0KLXZvaWQgRGV2aWNl
TW90aW9uQ2xpZW50UXQ6OmRldmljZU1vdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQotewotICAg
IGRlbGV0ZSB0aGlzOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmggYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiOTY0YTMzZTUzOTcxNDZjMjYyM2FkNjVhMzBh
OGNkZjI2ZDEyMjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5o
CisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5k
ZWYgRGV2aWNlTW90aW9uQ2xpZW50UXRfaAotI2RlZmluZSBEZXZpY2VNb3Rpb25DbGllbnRRdF9o
Ci0KLSNpbmNsdWRlICJEZXZpY2VNb3Rpb25DbGllbnQuaCIKLSNpbmNsdWRlICJEZXZpY2VNb3Rp
b25EYXRhLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRGV2aWNlTW90aW9uQ29u
dHJvbGxlcjsKLWNsYXNzIERldmljZU1vdGlvblByb3ZpZGVyUXQ7Ci0KLWNsYXNzIERldmljZU1v
dGlvbkNsaWVudFF0IDogcHVibGljIERldmljZU1vdGlvbkNsaWVudCB7Ci1wdWJsaWM6Ci0gICAg
RGV2aWNlTW90aW9uQ2xpZW50UXQoKTsKLSAgICB2aXJ0dWFsIH5EZXZpY2VNb3Rpb25DbGllbnRR
dCgpOwotCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJv
bGxlciopOwotICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCk7Ci0gICAgdmlydHVhbCB2
b2lkIHN0b3BVcGRhdGluZygpOwotICAgIHZpcnR1YWwgRGV2aWNlTW90aW9uRGF0YSogY3VycmVu
dERldmljZU1vdGlvbigpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VNb3Rpb25Db250
cm9sbGVyRGVzdHJveWVkKCk7Ci0KLXByaXZhdGU6Ci0gICAgRGV2aWNlTW90aW9uUHJvdmlkZXJR
dCogbV9wcm92aWRlcjsKLX07Ci0KLX0gLy8gbmFtZXNwZWNlIFdlYkNvcmUKLQotI2VuZGlmIC8v
IERldmljZU1vdGlvbkNsaWVudFF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2NTU3MDNkNzczZGIzYzNjNTIxMmZmZTJiODI2ZTFiYmQzYmRiZTUx
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
Ci0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
Ci0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkRldmljZU1vdGlvblByb3ZpZGVyUXQuaCIKLQotI2luY2x1ZGUg
IkRldmljZU1vdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyUXQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1EZXZpY2VNb3Rpb25Qcm92aWRl
clF0OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0KCkKLSAgICA6IG1fbW90aW9uKERldmljZU1vdGlv
bkRhdGE6OmNyZWF0ZSgpKQotICAgICwgbV9kZXZpY2VPcmllbnRhdGlvbihuZXcgRGV2aWNlT3Jp
ZW50YXRpb25Qcm92aWRlclF0KQotICAgICwgbV9jb250cm9sbGVyKDApCi17Ci0gICAgbV9hY2Nl
bGVyYXRpb24uYWRkRmlsdGVyKHRoaXMpOwotfQotCi1EZXZpY2VNb3Rpb25Qcm92aWRlclF0Ojp+
RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpCi17Ci0gICAgZGVsZXRlIG1fZGV2aWNlT3JpZW50YXRp
b247Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcihEZXZp
Y2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyKQotewotICAgIEFTU0VSVChjb250cm9sbGVy
KTsKLSAgICBBU1NFUlQoIW1fY29udHJvbGxlcik7Ci0gICAgbV9jb250cm9sbGVyID0gY29udHJv
bGxlcjsKLX0KLQotdm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdGFydCgpCi17Ci0gICAg
bV9hY2NlbGVyYXRpb24uc3RhcnQoKTsKLSAgICBtX2RldmljZU9yaWVudGF0aW9uLT5zdGFydCgp
OwotfQotCi12b2lkIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0b3AoKQotewotICAgIG1fYWNj
ZWxlcmF0aW9uLnN0b3AoKTsKLSAgICBtX2RldmljZU9yaWVudGF0aW9uLT5zdG9wKCk7Ci19Ci0K
LWJvb2wgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKFFBY2NlbGVyb21ldGVyUmVhZGlu
ZyogcmVhZGluZykKLXsKLSAgICBpZiAoIW1fY29udHJvbGxlcikgewotICAgICAgICAvLyBXZSBh
cmUgdGhlIG9ubHkgZmlsdGVyLiBObyBuZWVkIHRvIHByb3BhZ2F0ZSBmcm9tIGhlcmUuCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YTo6
QWNjZWxlcmF0aW9uPiBhY2NlbCA9IERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbjo6Y3Jl
YXRlKAotICAgICAgICAgICAgLyogeCBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eCgpLAot
ICAgICAgICAgICAgLyogeSBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eSgpLAotICAgICAg
ICAgICAgLyogeiBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eigpKTsKLQotICAgIFJlZlB0
cjxEZXZpY2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGU+IHJvdGF0aW9uID0gRGV2aWNlTW90aW9u
RGF0YTo6Um90YXRpb25SYXRlOjpjcmVhdGUoCi0gICAgICAgICAgICBtX2RldmljZU9yaWVudGF0
aW9uLT5oYXNBbHBoYSgpLCBtX2RldmljZU9yaWVudGF0aW9uLT5sYXN0T3JpZW50YXRpb24oKS0+
YWxwaGEoKSwKLSAgICAgICAgICAgIC8qIGJldGEgYXZhaWxhYmxlICovIHRydWUsIG1fZGV2aWNl
T3JpZW50YXRpb24tPmxhc3RPcmllbnRhdGlvbigpLT5iZXRhKCksCi0gICAgICAgICAgICAvKiBn
YW1tYSBhdmFpbGFibGUgKi8gdHJ1ZSwgbV9kZXZpY2VPcmllbnRhdGlvbi0+bGFzdE9yaWVudGF0
aW9uKCktPmdhbW1hKCkpOwotCi0gICAgbV9tb3Rpb24gPSBEZXZpY2VNb3Rpb25EYXRhOjpjcmVh
dGUoYWNjZWwsCi0gICAgICAgICAgICBhY2NlbCwgLyogRklYTUU6IE5lZWRzIHRvIHByb3ZpZGUg
YWNjZWxlcmF0aW9uIGluY2x1ZGUgZ3Jhdml0eS4gKi8KLSAgICAgICAgICAgIHJvdGF0aW9uLAot
ICAgICAgICAgICAgZmFsc2UsIDAgLyogVGhlIGludGVydmFsIGlzIHRyZWF0ZWQgaW50ZXJuYWxs
eSBieSBRdCBtb2JpbGl0eSAqLyk7Ci0KLSAgICBtX2NvbnRyb2xsZXItPmRpZENoYW5nZURldmlj
ZU1vdGlvbihtX21vdGlvbi5nZXQoKSk7Ci0KLSAgICAvLyBXZSBhcmUgdGhlIG9ubHkgZmlsdGVy
LiBObyBuZWVkIHRvIHByb3BhZ2F0ZSBmcm9tIGhlcmUuCi0gICAgcmV0dXJuIGZhbHNlOwotfQot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0NjY0OTBmMmNjNGJhZTA4YzA4ZGM3MWIwNGJiOGM5YWRkYjhhMWFkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oCisrKyAvZGV2L251
bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqCi0gKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwot
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
LSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoK
LSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgRGV2aWNlTW90
aW9uUHJvdmlkZXJRdF9oCi0jZGVmaW5lIERldmljZU1vdGlvblByb3ZpZGVyUXRfaAotCi0jaW5j
bHVkZSAiRGV2aWNlTW90aW9uRGF0YS5oIgotCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2lu
Y2x1ZGUgPFFBY2NlbGVyb21ldGVyRmlsdGVyPgotCi0jaWYgUVRfVkVSU0lPTiA8IFFUX1ZFUlNJ
T05fQ0hFQ0soNSwgMCwgMCkKLXVzaW5nIFFUTV9OQU1FU1BBQ0U6OlFBY2NlbGVyb21ldGVyOwot
dXNpbmcgUVRNX05BTUVTUEFDRTo6UUFjY2VsZXJvbWV0ZXJGaWx0ZXI7Ci11c2luZyBRVE1fTkFN
RVNQQUNFOjpRQWNjZWxlcm9tZXRlclJlYWRpbmc7Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1jbGFzcyBEZXZpY2VNb3Rpb25Db250cm9sbGVyOwotY2xhc3MgRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0OwotCi1jbGFzcyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0IDogcHVibGlj
IFFBY2NlbGVyb21ldGVyRmlsdGVyIHsKLXB1YmxpYzoKLSAgICBEZXZpY2VNb3Rpb25Qcm92aWRl
clF0KCk7Ci0gICAgfkRldmljZU1vdGlvblByb3ZpZGVyUXQoKTsKLQotICAgIHZvaWQgc2V0Q29u
dHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKik7Ci0KLSAgICBib29sIGZpbHRlcihRQWNj
ZWxlcm9tZXRlclJlYWRpbmcqKTsKLQotICAgIHZvaWQgc3RhcnQoKTsKLSAgICB2b2lkIHN0b3Ao
KTsKLSAgICBEZXZpY2VNb3Rpb25EYXRhKiBjdXJyZW50RGV2aWNlTW90aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9tb3Rpb24uZ2V0KCk7IH0KLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8RGV2aWNlTW90
aW9uRGF0YT4gbV9tb3Rpb247Ci0gICAgUUFjY2VsZXJvbWV0ZXIgbV9hY2NlbGVyYXRpb247Ci0g
ICAgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KiBtX2RldmljZU9yaWVudGF0aW9uOwotICAg
IERldmljZU1vdGlvbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIERldmljZU1vdGlvblByb3ZpZGVyUXRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNs
aWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50
YXRpb25DbGllbnRRdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlNzk0MjIx
MGEzMmViZTg1OTJhOWRkN2E3ZWI3MGZhZjk1MmM3MTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgotICoKLSAqLwotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRldmlj
ZU9yaWVudGF0aW9uQ2xpZW50UXQuaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1EZXZpY2VPcmllbnRhdGlvbkNsaWVu
dFF0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0KCkKLSAgICA6IG1fcHJvdmlkZXIobmV3IERl
dmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCkKLXsKLX0KLQotRGV2aWNlT3JpZW50YXRpb25DbGll
bnRRdDo6fkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQoKQotewotICAgIGRlbGV0ZSBtX3Byb3Zp
ZGVyOwotfQotCi12b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnNldENvbnRyb2xsZXIo
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyKQotewotICAgIG1fcHJvdmlk
ZXItPnNldENvbnRyb2xsZXIoY29udHJvbGxlcik7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRp
b25DbGllbnRRdDo6c3RhcnRVcGRhdGluZygpCi17Ci0gICAgbV9wcm92aWRlci0+c3RhcnQoKTsK
LX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzdG9wVXBkYXRpbmcoKQotewot
ICAgIG1fcHJvdmlkZXItPnN0b3AoKTsKLX0KLQotRGV2aWNlT3JpZW50YXRpb24qIERldmljZU9y
aWVudGF0aW9uQ2xpZW50UXQ6Omxhc3RPcmllbnRhdGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fcHJvdmlkZXItPmxhc3RPcmllbnRhdGlvbigpOwotfQotCi12b2lkIERldmljZU9yaWVudGF0
aW9uQ2xpZW50UXQ6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCi17Ci0g
ICAgZGVsZXRlIHRoaXM7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRR
dC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNs
aWVudFF0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiODQ0MWUwZmI5ZDMyYTFl
ODJkYjAzNzNkODcxNDgwMWJkODFiNjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmll
bnRhdGlvbkNsaWVudFF0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
LSAqCi0gKi8KLSNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdF9oCi0jZGVmaW5lIERl
dmljZU9yaWVudGF0aW9uQ2xpZW50UXRfaAotCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb24u
aCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLWNsYXNzIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDsKLQotY2xhc3MgRGV2
aWNlT3JpZW50YXRpb25DbGllbnRRdCA6IHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCB7
Ci1wdWJsaWM6Ci0gICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCgpOwotICAgIHZpcnR1YWwg
fkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250
cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopOwotICAgIHZpcnR1YWwgdm9pZCBz
dGFydFVwZGF0aW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpOwotICAgIHZp
cnR1YWwgRGV2aWNlT3JpZW50YXRpb24qIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0OwotICAgIHZp
cnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKLQotcHJp
dmF0ZToKLSAgICBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQqIG1fcHJvdmlkZXI7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudFF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2
aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZGU0NmQyNDRjNmY1ZTc5MzY2ZGI1NmU1NjIyYTNiYjU4ZGJmODMyYy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
Ci0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
Ci0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OkRldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJRdCgpCi0gICAgOiBtX2NvbnRyb2xsZXIoMCkKLXsKLSAgICBtX3NlbnNv
ci5hZGRGaWx0ZXIodGhpcyk7Ci0gICAgbV9sYXN0T3JpZW50YXRpb24gPSBEZXZpY2VPcmllbnRh
dGlvbjo6Y3JlYXRlKCk7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojpz
ZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKLXsK
LSAgICBpZiAoIWNvbnRyb2xsZXIpCi0gICAgICAgIHN0b3AoKTsKLQotICAgIG1fY29udHJvbGxl
ciA9IGNvbnRyb2xsZXI7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojpz
dGFydCgpCi17Ci0gICAgbV9zZW5zb3Iuc3RhcnQoKTsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXQ6OnN0b3AoKQotewotICAgIG1fc2Vuc29yLnN0b3AoKTsKLX0KLQotYm9v
bCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OmZpbHRlcihRUm90YXRpb25SZWFkaW5nKiBy
ZWFkaW5nKQotewotICAgIGlmIChtX2NvbnRyb2xsZXIpIHsKLSAgICAgICAgLy8gUHJvdmlkZSBk
ZXZpY2Ugb3JpZW50YXRpb24gZGF0YSBhY2NvcmRpbmcgVzNDIHNwZWM6Ci0gICAgICAgIC8vIGh0
dHA6Ly9kZXYudzMub3JnL2dlby9hcGkvc3BlYy1zb3VyY2Utb3JpZW50YXRpb24uaHRtbAotICAg
ICAgICAvLyBRdCBtb2JpbGl0eSBwcm92aWRlIHRoZXNlIGRhdGEgdmlhIFFSb3RhdGlvblNlbnNv
ciB1c2luZyB0aGUKLSAgICAgICAgLy8gUVJvdGF0aW9uUmVhZGluZyBjbGFzczoKLSAgICAgICAg
Ly8gIC0gdGhlIHJvdGF0aW9uIGFyb3VuZCB6IGF4aXMgKGFscGhhKSBpcyBnaXZlbiBhcyB6IGlu
IFFSb3RhdGlvblJlYWRpbmc7Ci0gICAgICAgIC8vICAtIHRoZSByb3RhdGlvbiBhcm91bmQgeCBh
eGlzIChiZXRhKSBpcyBnaXZlbiBhcyB4IGluIFFSb3RhdGlvblJlYWRpbmc7Ci0gICAgICAgIC8v
ICAtIHRoZSByb3RhdGlvbiBhcm91bmQgeSBheGlzIChnYW1tYSkgaXMgZ2l2ZW4gYXMgeSBpbiBR
Um90YXRpb25SZWFkaW5nOwotICAgICAgICAvLyBTZWU6IGh0dHA6Ly9kb2MucXQubm9raWEuY29t
L3F0bW9iaWxpdHktMS4wL3Fyb3RhdGlvbnJlYWRpbmcuaHRtbAotICAgICAgICAvLyBUaGUgWiAo
YWxwaGEpIHJvdGF0aW9uIGFuZ2xlIGlzIGNoZWNrZWQgdmlhIGhhc0FscGhhKCkgcHJpdmF0ZSBt
ZXRob2QsCi0gICAgICAgIC8vIGRlcGVuZGluZyBpZiB0aGUgZGV2aWNlIGlzIGFibGUgZG8gZGV0
ZWN0IHRoZSBhbHBoYSByb3RhdGlvbi4gWCAoYmV0YSkgYW5kCi0gICAgICAgIC8vIFkgKGdhbW1h
KSBheGlzIGFyZSBhdmFpbGJsZSBpbiB0aGlzIGNvbnRleHQuCi0gICAgICAgIG1fbGFzdE9yaWVu
dGF0aW9uID0gRGV2aWNlT3JpZW50YXRpb246OmNyZWF0ZShoYXNBbHBoYSgpLCByZWFkaW5nLT56
KCksCi0gICAgICAgICAgICAgICAgLyogeCBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eCgp
LAotICAgICAgICAgICAgICAgIC8qIHkgYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPnkoKSk7
Ci0gICAgICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24obV9sYXN0
T3JpZW50YXRpb24uZ2V0KCkpOwotICAgIH0KLQotICAgIC8vIFdlIGFyZSB0aGUgb25seSBmaWx0
ZXIsIHNvIG5vIG5lZWQgdG8gcHJvcGFnYXRlLgotICAgIHJldHVybiBmYWxzZTsKLX0KLQotfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQw
N2YwYTliMGFmNTFlNGFmY2VhMjg5OWNhZWJjM2Q5NTI2MWUyMWUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaAorKysgL2Rldi9udWxsCkBAIC0xLDU5
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotI2lmbmRlZiBEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXRfaAotI2RlZmluZSBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXRfaAotCi0jaW5jbHVk
ZSAiRGV2aWNlT3JpZW50YXRpb24uaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIuaCIKLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLSNpbmNsdWRlIDxRUm90YXRpb25G
aWx0ZXI+Ci0KLSNpZiBRVF9WRVJTSU9OIDwgUVRfVkVSU0lPTl9DSEVDSyg1LCAwLCAwKQotdXNp
bmcgUVRNX05BTUVTUEFDRTo6UVJvdGF0aW9uRmlsdGVyOwotdXNpbmcgUVRNX05BTUVTUEFDRTo6
UVJvdGF0aW9uUmVhZGluZzsKLXVzaW5nIFFUTV9OQU1FU1BBQ0U6OlFSb3RhdGlvblNlbnNvcjsK
LSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERldmljZU9yaWVudGF0aW9u
UHJvdmlkZXJRdCA6IHB1YmxpYyBRUm90YXRpb25GaWx0ZXIgewotcHVibGljOgotICAgIERldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpOwotCi0gICAgdm9pZCBzZXRDb250cm9sbGVyKERldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlciopOwotCi0gICAgYm9vbCBmaWx0ZXIoUVJvdGF0aW9uUmVh
ZGluZyopOwotCi0gICAgdm9pZCBzdGFydCgpOwotICAgIHZvaWQgc3RvcCgpOwotICAgIGJvb2wg
aXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX3NlbnNvci5pc0FjdGl2ZSgpOyB9Ci0gICAgRGV2
aWNlT3JpZW50YXRpb24qIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE9y
aWVudGF0aW9uLmdldCgpOyB9Ci0gICAgYm9vbCBoYXNBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIG1f
c2Vuc29yLnByb3BlcnR5KCJoYXNaIikudG9Cb29sKCk7IH0KLQotcHJpdmF0ZToKLSAgICBSZWZQ
dHI8RGV2aWNlT3JpZW50YXRpb24+IG1fbGFzdE9yaWVudGF0aW9uOwotICAgIERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlciogbV9jb250cm9sbGVyOwotICAgIFFSb3RhdGlvblNlbnNvciBtX3Nl
bnNvcjsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIv
VGFyZ2V0LnByaQppbmRleCBlYjRlZmE1ZmU5NTRjYjcxMjY0ZGQyMTBjZGFjOWExYWNlYjI3YTYx
Li4yMmE4MTJiN2E0YWUwODk1ZmY1NzI1OTJiM2RjMmViMTRmYjYwYWFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkK
QEAgLTc4OSw2ICs3ODksMTAgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1RPVUNIX0VWRU5U
Uz0xKSB7CiAgICAgICAgIFNoYXJlZC9xdC9OYXRpdmVXZWJUb3VjaEV2ZW50UXQuY3BwCiB9CiAK
K2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT049MSkgeworICAgIGhh
dmVRdCg1KTogUVQgKz0gc2Vuc29ycworfQorCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfR0VP
TE9DQVRJT049MSk6IFFUICs9IGxvY2F0aW9uCiAKIHBsdWdpbl9iYWNrZW5kX3hsaWIgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGY0MWM3
ZTAxNTBlOTAwNjk0MTgyNGRiNjMzZGUyMTk2MjM0ZDYzMmEuLjExNTY4ZDM3NjU0ZTE1M2I2Y2Y4
OGVmMzU2Nzg1MTIzOTg1NzAwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEzMCw2ICsxMzAsMTAgQEAKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oUVQpCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpbmNsdWRlICJEZXZp
Y2VNb3Rpb25DbGllbnRRdC5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQu
aCIKKyNlbmRpZgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlIDxRTWltZURh
dGE+CiAjZW5kaWYKQEAgLTI0OCw2ICsyNTIsMTAgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRf
dCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAj
aWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIFdlYkNvcmU6OnByb3ZpZGVHZW9sb2NhdGlvblRv
KG1fcGFnZS5nZXQoKSwgbmV3IFdlYkdlb2xvY2F0aW9uQ2xpZW50KHRoaXMpKTsKICNlbmRpZgor
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKFFUKQorICAgIFdlYkNv
cmU6OnByb3ZpZGVEZXZpY2VNb3Rpb25UbyhtX3BhZ2UuZ2V0KCksIG5ldyBEZXZpY2VNb3Rpb25D
bGllbnRRdCk7CisgICAgV2ViQ29yZTo6cHJvdmlkZURldmljZU9yaWVudGF0aW9uVG8obV9wYWdl
LmdldCgpLCBuZXcgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCk7CisjZW5kaWYKICNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIFdl
YkNvcmU6OnByb3ZpZGVOb3RpZmljYXRpb24obV9wYWdlLmdldCgpLCBuZXcgV2ViTm90aWZpY2F0
aW9uQ2xpZW50KHRoaXMpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL2FwaS5wcmkgYi9T
b3VyY2UvYXBpLnByaQppbmRleCA2YzJkZjdiNzA3ZWZmMmQ2YTc0OTI1MjhhNjk3MGVjM2EzNDgx
YTBkLi5iZTQ2YTYyMTkxMTZkN2Y3OWI2MWZhYmUzM2QwMjFkZjU2N2FmYzRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvYXBpLnByaQorKysgYi9Tb3VyY2UvYXBpLnByaQpAQCAtMjYyLDIwICsyNjIsNiBA
QCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OPTEpIHx8IGNvbnRh
aW5zKERFRklORVMsIEVOQUJMRV9PUklFTgogICAgIGhhdmVRdCg1KTogUVQgKz0gc2Vuc29ycwog
fQogCi1jb250YWlucyhERUZJTkVTLCBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OPTEpIHsKLSAg
ICBIRUFERVJTICs9IFwKLSAgICAgICAgJCRQV0QvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Rl
dmljZU1vdGlvbkNsaWVudFF0LmggXAotICAgICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oIFwKLSAgICAgICAgJCRQV0QvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCBcCi0gICAgICAgICQk
UFdEL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQu
aAotCi0gICAgU09VUkNFUyArPSBcCi0gICAgICAgICQkUFdEL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAgXAotICAgICAgICAkJFBXRC9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgXAotICAgICAgICAkJFBX
RC9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAg
XAotICAgICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRp
b25Qcm92aWRlclF0LmNwcAotfQotCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfR0VPTE9DQVRJ
T049MSkgewogICAgICBoYXZlUXQoNSk6IFFUICs9IGxvY2F0aW9uCiAKZGlmZiAtLWdpdCBhL0No
YW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA0MTBlMDA2MjEzMjk2ZWM5YjYyZmQ3YTYyNTFlODZk
ODU4ODAzMTQ3Li45OWRiYjI4ZmJkMDYwNjA0NTJjODExZTAzMjgwZDk0MDJhNTUwNWZmIDEwMDY0
NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTIt
MDUtMDEgIExhcnMgS251ZHNlbiAgPGxhcnMua251ZHNlbkBub2tpYS5jb20+CisKKyAgICAgICAg
W1F0XSBNYWtlIERldmljZU1vdGlvbiBhbmQgRGV2aWNlT3JpZW50YXRpb24gd29yayB3aXRoIFdl
YktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0
NTk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92
aW5nIERldmljZU1vdGlvbiBhbmQgRGV2aWNlT3JpZW50YXRpb24gY2xpZW50cyBhbmQgcHJvdmlk
ZXJzCisgICAgICAgIHRvIFdlYkNvcmUuICBUaGlzIGlzIGRvbmUgdG8gYWxsb3cgY2xlYW4gZGVw
ZW5kZW5jaWVzIHdoZW4KKyAgICAgICAgc3RhdGljYWxseSBsaW5raW5nIFdLMi4KKworICAgICAg
ICAqIFNvdXJjZS9hcGkucHJpOgorCiAyMDEyLTA0LTMwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBVcGRhdGUgTkVXUyBhbmQgY29u
ZmlndXJlLmFjIGZvciAxLjkuMSByZWxlYXNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139616</attachid>
            <date>2012-05-01 05:47:45 -0700</date>
            <delta_ts>2012-05-01 07:06:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64595-20120501145245.patch</filename>
            <type>text/plain</type>
            <size>47282</size>
            <attacher name="Lars Knudsen">larsgk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWRkNDcyZTAxZGViOWZk
MjA1NjM1MzFkYzVmNDJiNGNhZjE4NmI1Ny4uNjA5N2YxYzk1MTE3NGU1ZmFlM2FhMjlmYzY5Zjk3
Mjc4YzhiOTliMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEyLTA1LTAxICBMYXJz
IEtudWRzZW4gIDxsYXJzLmtudWRzZW5Abm9raWEuY29tPgorCisgICAgICAgIFtRdF0gTWFrZSBE
ZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBh
ZGRlZC4gIFRoaXMgY2hhbmdlIGFkZHMgc3VwcG9ydCBmb3IgV0syCisgICAgICAgIHdoYXQgd2Fz
IGluIFdLMS4KKworICAgICAgICBBbHNvIG1vdmluZyBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9y
aWVudGF0aW9uIGNsaWVudHMgYW5kCisgICAgICAgIHByb3ZpZGVycyB0byBXZWJDb3JlLiAgVGhp
cyBpcyBkb25lIHRvIGFsbG93IGNsZWFuIGRlcGVuZGVuY2llcworICAgICAgICB3aGVuIHN0YXRp
Y2FsbHkgbGlua2luZyBXSzIuCisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdl
YkNvcmUucHJpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmNw
cDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90
aW9uQ2xpZW50UXQuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VNb3Rpb25DbGllbnRRdDo6fkRldmljZU1vdGlvbkNsaWVudFF0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVzdHJv
eWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzZXRDb250cm9s
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzdG9wVXBkYXRp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OmN1cnJlbnREZXZp
Y2VNb3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0Lmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlv
bkNsaWVudFF0LmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERldmljZU1vdGlvbkNs
aWVudFF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpEZXZpY2VN
b3Rpb25DbGllbnRRdCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Rl
dmljZU1vdGlvblByb3ZpZGVyUXQuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6On5EZXZpY2VNb3Rpb25Q
cm92aWRlclF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnNl
dENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6
c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RvcCk6
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpmaWx0ZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5o
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VNb3Rpb25Qcm92aWRlclF0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OmN1cnJlbnREZXZpY2VN
b3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQu
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50
UXQ6OnNldENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdDo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudFF0OjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVudGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9x
dC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCk6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0OjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQpOgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojp+RGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdDo6c2V0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdDo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyUXQ6OmZpbHRlcik6CisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojppc0FjdGl2ZSk6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6Omxhc3RPcmllbnRhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6Omhhc0FscGhhKToKKwog
MjAxMi0wNC0zMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAg
UHJvdGVjdCBjdXJyZW50IGVsZW1lbnQgaW4gSFRNTExpbmtFbGVtZW50OjpzZXRDU1NTdHlsZVNo
ZWV0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggMDY5N2YxNzU4NDQ4N2NlNzlmZGIzYzRiMGIwOGI2ZjJiYjNlYTU3
OC4uOGJkODc5MmY4OTk3OGUxZjA2NTM3ZGQyYTZhYTVlMjljYjZjMjUzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDEyLTA1LTAxICBMYXJzIEtudWRzZW4gIDxsYXJzLmtudWRzZW5A
bm9raWEuY29tPgorCisgICAgICAgIFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9y
aWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGluZyBzdXBwb3J0IGZvciBEZXZpY2VPcmllbnRhdGlvbiBp
biBXSzIgV2ViUGFnZQorCisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBh
Z2UpOgorCiAyMDEyLTA0LTI4ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEFkZGVkIG5ldyBleHBvcnRlZCBzeW1ib2xzIGFmdGVy
IHIxMTU1NTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA4ZThjNzE0NjBhZGMxOTgxNjRhZGNhZmNjODA5MDVm
MWI1YzFlYTJkLi5hOGUzMzE3NDYzNTk3Mzk4OTA0YTg1MmEyMTIyZjRkMmY0YjBhYjY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKQEAgLTIzMzksNiArMjMzOSwxMCBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9y
bS9SZWZlcnJlclBvbGljeS5oIFwKICAgICBwbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5oIFwKICAg
ICBwbGF0Zm9ybS9xdC9Db29raWVKYXJRdC5oIFwKKyAgICBwbGF0Zm9ybS9xdC9EZXZpY2VNb3Rp
b25DbGllbnRRdC5oIFwKKyAgICBwbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0Lmgg
XAorICAgIHBsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCBcCisgICAgcGxh
dGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmggXAogICAgIHBsYXRmb3JtL3F0
L1FXZWJQYWdlQ2xpZW50LmggXAogICAgIHBsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuaCBcCiAg
ICAgcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdE1vYmlsZS5oIFwKQEAgLTI4NzMsNiArMjg3Nywx
MCBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9xdC9Db250ZXh0TWVudVF0LmNwcCBcCiAg
ICAgcGxhdGZvcm0vcXQvQ29va2llSmFyUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9DdXJzb3JR
dC5jcHAgXAorICAgIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmNwcCBcCisgICAg
cGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgXAorICAgIHBsYXRmb3JtL3F0
L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwIFwKKyAgICBwbGF0Zm9ybS9xdC9EZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9EcmFnRGF0YVF0LmNw
cCBcCiAgICAgcGxhdGZvcm0vcXQvRHJhZ0ltYWdlUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9F
dmVudExvb3BRdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCBiNDMwZmNiM2Y4OWUzN2E0Yjc1NTM1
NWVkZTRhYjJiYzQyMmNjMmEwLi40YjQ4YmE3NzFiZTBjNGI3Mjg2Zjc0NmE4MDNiNWRiNWI5MzZm
OWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtMTYwLDggKzE2MCw3IEBAIGNvbnRhaW5zKERFRklORVMs
IEVOQUJMRV9HRU9MT0NBVElPTj0xKSB7CiB9CiAKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9E
RVZJQ0VfT1JJRU5UQVRJT049MSkgewotICAgIENPTkZJRyAqPSBtb2JpbGl0eQotICAgIE1PQklM
SVRZICo9IHNlbnNvcnMKKyAgICBoYXZlUXQoNSk6IFFUICs9IHNlbnNvcnMKIH0KIAogY29udGFp
bnMoREVGSU5FUywgV1RGX1VTRV9RVF9NT0JJTElUWV9TWVNURU1JTkZPPTEpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wMDE5OWM3YjVhYTQ0N2Y0MDYzNGUzOWFmMTc3YjVlMThmMWQ5ZDY5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uQ2xpZW50
UXQuY3BwCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ2xpZW50UXQuaCIKKworI2luY2x1ZGUgIkRl
dmljZU1vdGlvblByb3ZpZGVyUXQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEZXZpY2VN
b3Rpb25DbGllbnRRdDo6fkRldmljZU1vdGlvbkNsaWVudFF0KCkKK3sKK30KKwordm9pZCBEZXZp
Y2VNb3Rpb25DbGllbnRRdDo6ZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCit7Cisg
ICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6OnNldENvbnRy
b2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKK3sKKyAgICAvLyBJbml0
aWFsaXplIGxhemlseS4KKyAgICBpZiAoIW1fcHJvdmlkZXIgJiYgY29udHJvbGxlcikKKyAgICAg
ICAgbV9wcm92aWRlciA9IGFkb3B0UHRyKG5ldyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0KTsKKwor
ICAgIG1fcHJvdmlkZXItPnNldENvbnRyb2xsZXIoY29udHJvbGxlcik7Cit9CisKK3ZvaWQgRGV2
aWNlTW90aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmcoKQoreworICAgIGlmIChtX3Byb3ZpZGVy
KQorICAgICAgICBtX3Byb3ZpZGVyLT5zdGFydCgpOworfQorCit2b2lkIERldmljZU1vdGlvbkNs
aWVudFF0OjpzdG9wVXBkYXRpbmcoKQoreworICAgIGlmIChtX3Byb3ZpZGVyKQorICAgICAgICBt
X3Byb3ZpZGVyLT5zdG9wKCk7Cit9CisKK0RldmljZU1vdGlvbkRhdGEqIERldmljZU1vdGlvbkNs
aWVudFF0OjpjdXJyZW50RGV2aWNlTW90aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcm92
aWRlci0+Y3VycmVudERldmljZU1vdGlvbigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25DbGll
bnRRdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uQ2xpZW50UXQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40MWUzZTIzMDAzZmFmNzIwZmE3ODhiZTVmMTNjNTM4OGU3OWMyNGRlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9u
Q2xpZW50UXQuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBE
ZXZpY2VNb3Rpb25DbGllbnRRdF9oCisjZGVmaW5lIERldmljZU1vdGlvbkNsaWVudFF0X2gKKwor
I2luY2x1ZGUgIkRldmljZU1vdGlvbkNsaWVudC5oIgorI2luY2x1ZGUgIkRldmljZU1vdGlvbkRh
dGEuaCIKKworI2luY2x1ZGUgIkRldmljZU1vdGlvblByb3ZpZGVyUXQuaCIKKyNpbmNsdWRlIDx3
dGYvT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlTW90aW9u
Q29udHJvbGxlcjsKK2NsYXNzIERldmljZU1vdGlvblByb3ZpZGVyUXQ7CisKK2NsYXNzIERldmlj
ZU1vdGlvbkNsaWVudFF0IDogcHVibGljIERldmljZU1vdGlvbkNsaWVudCB7CitwdWJsaWM6Cisg
ICAgRGV2aWNlTW90aW9uQ2xpZW50UXQoKSB7IH0KKyAgICB2aXJ0dWFsIH5EZXZpY2VNb3Rpb25D
bGllbnRRdCgpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VNb3Rpb25Db250
cm9sbGVyRGVzdHJveWVkKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOwor
ICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKKworICAgIHZpcnR1YWwgRGV2aWNlTW90
aW9uRGF0YSogY3VycmVudERldmljZU1vdGlvbigpIGNvbnN0OworCisgICAgdmlydHVhbCB2b2lk
IHNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciopOworCisgICAgT3duUHRyPERl
dmljZU1vdGlvblByb3ZpZGVyUXQ+IG1fcHJvdmlkZXI7Cit9OworCit9IC8vIG5hbWVzcGVjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBEZXZpY2VNb3Rpb25DbGllbnRRdF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAzMGY3MzdmMTFjZmQ2M2M0OTBmNDRmY2E4Yzg0NmQxNGJiM2FlNDEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRl
clF0LmNwcApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6RGV2aWNlTW90aW9uUHJvdmlkZXJR
dCgpCisgICAgOiBtX2NvbnRyb2xsZXIoMCkKKyAgICAsIG1fb3JpZW50YXRpb25Qcm92aWRlcihh
ZG9wdFB0cihuZXcgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KCkpKQoreworICAgIG1fc2Vu
c29yLmFkZEZpbHRlcih0aGlzKTsKKyAgICBtX2xhc3RNb3Rpb24gPSBEZXZpY2VNb3Rpb25EYXRh
OjpjcmVhdGUoKTsKK30KKworRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6fkRldmljZU1vdGlvblBy
b3ZpZGVyUXQoKQoreworICAgIC8vIFRoZSBzZW5zb3IgaXMgYXV0b21hdGljYWxseSBzdG9wcGVk
LgorfQorCit2b2lkIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OnNldENvbnRyb2xsZXIoRGV2aWNl
TW90aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKK3sKKyAgICBpZiAoIWNvbnRyb2xsZXIpCisg
ICAgICAgIHN0b3AoKTsKKworICAgIG1fY29udHJvbGxlciA9IGNvbnRyb2xsZXI7Cit9CisKK3Zv
aWQgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RhcnQoKQoreworICAgIG1fc2Vuc29yLnN0YXJ0
KCk7CisgICAgbV9vcmllbnRhdGlvblByb3ZpZGVyLT5zdGFydCgpOworfQorCit2b2lkIERldmlj
ZU1vdGlvblByb3ZpZGVyUXQ6OnN0b3AoKQoreworICAgIG1fc2Vuc29yLnN0b3AoKTsKKyAgICBt
X29yaWVudGF0aW9uUHJvdmlkZXItPnN0b3AoKTsKK30KKworYm9vbCBEZXZpY2VNb3Rpb25Qcm92
aWRlclF0OjpmaWx0ZXIoUUFjY2VsZXJvbWV0ZXJSZWFkaW5nKiByZWFkaW5nKQoreworICAgIFJl
ZlB0cjxEZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRpb24+IGFjY2VsID0gRGV2aWNlTW90aW9u
RGF0YTo6QWNjZWxlcmF0aW9uOjpjcmVhdGUoCisgICAgICAgICAgICAvKiB4IGF2YWlsYWJsZSAq
LyB0cnVlLCAtIHJlYWRpbmctPngoKSwKKyAgICAgICAgICAgIC8qIHkgYXZhaWxhYmxlICovIHRy
dWUsIC0gcmVhZGluZy0+eSgpLAorICAgICAgICAgICAgLyogeiBhdmFpbGFibGUgKi8gdHJ1ZSwg
LSByZWFkaW5nLT56KCkpOworCisgICAgYm9vbCBoYXNBbHBoYSA9IG1fb3JpZW50YXRpb25Qcm92
aWRlci0+aGFzQWxwaGEoKTsKKyAgICBEZXZpY2VPcmllbnRhdGlvbiogb3JpZW50ID0gbV9vcmll
bnRhdGlvblByb3ZpZGVyLT5sYXN0T3JpZW50YXRpb24oKTsKKworICAgIFJlZlB0cjxEZXZpY2VN
b3Rpb25EYXRhOjpSb3RhdGlvblJhdGU+IHJvdGF0aW9uID0gRGV2aWNlTW90aW9uRGF0YTo6Um90
YXRpb25SYXRlOjpjcmVhdGUoCisgICAgICAgICAgICAvKiBhbHBoYSBhdmFpbGFibGUgKi8gaGFz
QWxwaGEsIG9yaWVudC0+YWxwaGEoKSwKKyAgICAgICAgICAgIC8qIGJldGEgIGF2YWlsYWJsZSAq
LyB0cnVlLCBvcmllbnQtPmJldGEoKSwKKyAgICAgICAgICAgIC8qIGdhbW1hIGF2YWlsYWJsZSAq
LyB0cnVlLCBvcmllbnQtPmdhbW1hKCkpOworCisgICAgbV9sYXN0TW90aW9uID0gRGV2aWNlTW90
aW9uRGF0YTo6Y3JlYXRlKGFjY2VsLAorICAgICAgICAgICAgYWNjZWwsIC8qIEZJWE1FOiBOZWVk
cyB0byBwcm92aWRlIGFjY2VsZXJhdGlvbiBpbmNsdWRlIGdyYXZpdHkuICovCisgICAgICAgICAg
ICByb3RhdGlvbiwKKyAgICAgICAgICAgIGZhbHNlLCAwIC8qIFRoZSBpbnRlcnZhbCBpcyB0cmVh
dGVkIGludGVybmFsbHkgYnkgUXQgbW9iaWxpdHkgKi8pOworCisgICAgaWYgKG1fY29udHJvbGxl
cikKKyAgICAgICAgbV9jb250cm9sbGVyLT5kaWRDaGFuZ2VEZXZpY2VNb3Rpb24obV9sYXN0TW90
aW9uLmdldCgpKTsKKworICAgIC8vIFdlIGFyZSB0aGUgb25seSBmaWx0ZXIsIHNvIG5vdCBuZWVk
IHRvIGFsbG93IHByb3BhZ2F0aW9uLgorICAgIHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2
aWNlTW90aW9uUHJvdmlkZXJRdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNl
TW90aW9uUHJvdmlkZXJRdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhNGQ2ZGNlYTg5MDIyYTE2ZTI0ZGViMWFm
OGVkNmYzZWMzZDc3YTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
KgorICovCisjaWZuZGVmIERldmljZU1vdGlvblByb3ZpZGVyUXRfaAorI2RlZmluZSBEZXZpY2VN
b3Rpb25Qcm92aWRlclF0X2gKKworI2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xsZXIuaCIK
KyNpbmNsdWRlICJEZXZpY2VNb3Rpb25EYXRhLmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRp
b25Qcm92aWRlclF0LmgiCisjaW5jbHVkZSA8UUFjY2VsZXJvbWV0ZXJGaWx0ZXI+CisjaW5jbHVk
ZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlTW90
aW9uUHJvdmlkZXJRdCA6IHB1YmxpYyBRQWNjZWxlcm9tZXRlckZpbHRlciB7CitwdWJsaWM6Cisg
ICAgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpOworICAgIH5EZXZpY2VNb3Rpb25Qcm92aWRlclF0
KCk7CisKKyAgICB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciopOwor
CisgICAgYm9vbCBmaWx0ZXIoUUFjY2VsZXJvbWV0ZXJSZWFkaW5nKik7CisgICAgdm9pZCBzdGFy
dCgpOworICAgIHZvaWQgc3RvcCgpOworICAgIERldmljZU1vdGlvbkRhdGEqIGN1cnJlbnREZXZp
Y2VNb3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2xhc3RNb3Rpb24uZ2V0KCk7IH0KKworcHJpdmF0
ZToKKyAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YT4gbV9sYXN0TW90aW9uOworCisgICAgRGV2
aWNlTW90aW9uQ29udHJvbGxlciogbV9jb250cm9sbGVyOworICAgIFFBY2NlbGVyb21ldGVyIG1f
c2Vuc29yOworCisgICAgT3duUHRyPERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdD4gbV9vcmll
bnRhdGlvblByb3ZpZGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRGV2aWNlTW90aW9uUHJvdmlkZXJRdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0
ZmNmM2ExNzMxM2VkNWEwNmNmMTQ1ZTJmNDI4YjJmMWM2M2EyODYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNw
cApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgiCisKKyNpbmNsdWRlICJEZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lk
IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRl
c3Ryb3llZCgpCit7CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgRGV2aWNlT3JpZW50YXRp
b25DbGllbnRRdDo6c2V0Q29udHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNv
bnRyb2xsZXIpCit7CisgICAgLy8gSW5pdGlhbGl6ZSBsYXppbHkuCisgICAgaWYgKCFtX3Byb3Zp
ZGVyICYmIGNvbnRyb2xsZXIpCisgICAgICAgIG1fcHJvdmlkZXIgPSBhZG9wdFB0cihuZXcgRGV2
aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KTsKKworICAgIG1fcHJvdmlkZXItPnNldENvbnRyb2xs
ZXIoY29udHJvbGxlcik7Cit9CisKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3Rh
cnRVcGRhdGluZygpCit7CisgICAgaWYgKG1fcHJvdmlkZXIpCisgICAgICAgIG1fcHJvdmlkZXIt
PnN0YXJ0KCk7Cit9CisKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RvcFVwZGF0
aW5nKCkKK3sKKyAgICBpZiAobV9wcm92aWRlcikKKyAgICAgICAgbV9wcm92aWRlci0+c3RvcCgp
OworfQorCitEZXZpY2VPcmllbnRhdGlvbiogRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6bGFz
dE9yaWVudGF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKG1fcHJvdmlkZXIpID8gbV9wcm92
aWRlci0+bGFzdE9yaWVudGF0aW9uKCkgOiAwOworfQorCisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0
aW9uQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0
aW9uQ2xpZW50UXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kODQwMGI1NzViNzY4MTY4NjAwYWNmZGFmMTJlNzA0
ZWM1OWU4ZjRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQv
RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoK
KyAqLworI2lmbmRlZiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0X2gKKyNkZWZpbmUgRGV2aWNl
T3JpZW50YXRpb25DbGllbnRRdF9oCisKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbi5oIgor
I2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50LmgiCisKKyNpbmNsdWRlICJEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyUXQ7CisKK2NsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQgOiBwdWJsaWMgRGV2
aWNlT3JpZW50YXRpb25DbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBzZXRDb250
cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopOworICAgIHZpcnR1YWwgdm9pZCBz
dGFydFVwZGF0aW5nKCk7CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpOworICAgIHZp
cnR1YWwgRGV2aWNlT3JpZW50YXRpb24qIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0OworICAgIHZp
cnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKKworcHJp
dmF0ZToKKyAgICBPd25QdHI8RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0PiBtX3Byb3ZpZGVy
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGV2aWNlT3JpZW50
YXRpb25DbGllbnRRdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9E
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDdhY2JhNTdm
MmQxNmRjMzE5NWI0NDg2MTQ3MDNkNjk4MjM1ZDljCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcApAQCAt
MCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OkRldmljZU9yaWVudGF0aW9uUHJvdmlk
ZXJRdCgpCisgICAgOiBtX2NvbnRyb2xsZXIoMCkKK3sKKyAgICBtX3NlbnNvci5hZGRGaWx0ZXIo
dGhpcyk7CisgICAgbV9sYXN0T3JpZW50YXRpb24gPSBEZXZpY2VPcmllbnRhdGlvbjo6Y3JlYXRl
KCk7Cit9CisKK0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6fkRldmljZU9yaWVudGF0aW9u
UHJvdmlkZXJRdCgpCit7CisgICAgLy8gVGhlIHNlbnNvciBpcyBhdXRvbWF0aWNhbGx5IHN0b3Bw
ZWQuCit9CisKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpzZXRDb250cm9sbGVy
KERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKK3sKKyAgICBpZiAoIWNv
bnRyb2xsZXIpCisgICAgICAgIHN0b3AoKTsKKworICAgIG1fY29udHJvbGxlciA9IGNvbnRyb2xs
ZXI7Cit9CisKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpzdGFydCgpCit7Cisg
ICAgbV9zZW5zb3Iuc3RhcnQoKTsKK30KKwordm9pZCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVy
UXQ6OnN0b3AoKQoreworICAgIG1fc2Vuc29yLnN0b3AoKTsKK30KKworYm9vbCBEZXZpY2VPcmll
bnRhdGlvblByb3ZpZGVyUXQ6OmZpbHRlcihRUm90YXRpb25SZWFkaW5nKiByZWFkaW5nKQorewor
ICAgIC8vIFByb3ZpZGUgZGV2aWNlIG9yaWVudGF0aW9uIGRhdGEgYWNjb3JkaW5nIFczQyBzcGVj
OgorICAgIC8vIGh0dHA6Ly9kZXYudzMub3JnL2dlby9hcGkvc3BlYy1zb3VyY2Utb3JpZW50YXRp
b24uaHRtbAorICAgIC8vIFF0IG1vYmlsaXR5IHByb3ZpZGUgdGhlc2UgZGF0YSB2aWEgUVJvdGF0
aW9uU2Vuc29yIHVzaW5nIHRoZQorICAgIC8vIFFSb3RhdGlvblJlYWRpbmcgY2xhc3M6CisgICAg
Ly8gIC0gdGhlIHJvdGF0aW9uIGFyb3VuZCB6IGF4aXMgKGFscGhhKSBpcyBnaXZlbiBhcyB6IGlu
IFFSb3RhdGlvblJlYWRpbmc7CisgICAgLy8gIC0gdGhlIHJvdGF0aW9uIGFyb3VuZCB4IGF4aXMg
KGJldGEpIGlzIGdpdmVuIGFzIHggaW4gUVJvdGF0aW9uUmVhZGluZzsKKyAgICAvLyAgLSB0aGUg
cm90YXRpb24gYXJvdW5kIHkgYXhpcyAoZ2FtbWEpIGlzIGdpdmVuIGFzIHkgaW4gUVJvdGF0aW9u
UmVhZGluZzsKKyAgICAvLyBTZWU6IGh0dHA6Ly9kb2MucXQubm9raWEuY29tL3F0bW9iaWxpdHkt
MS4wL3Fyb3RhdGlvbnJlYWRpbmcuaHRtbAorICAgIC8vIFRoZSBaIChhbHBoYSkgcm90YXRpb24g
YW5nbGUgaXMgY2hlY2tlZCB2aWEgaGFzQWxwaGEoKSBwcml2YXRlIG1ldGhvZCwKKyAgICAvLyBk
ZXBlbmRpbmcgaWYgdGhlIGRldmljZSBpcyBhYmxlIGRvIGRldGVjdCB0aGUgYWxwaGEgcm90YXRp
b24uIFggKGJldGEpIGFuZAorICAgIC8vIFkgKGdhbW1hKSBheGlzIGFyZSBhdmFpbGJsZSBpbiB0
aGlzIGNvbnRleHQuCisgICAgbV9sYXN0T3JpZW50YXRpb24gPSBEZXZpY2VPcmllbnRhdGlvbjo6
Y3JlYXRlKGhhc0FscGhhKCksIHJlYWRpbmctPnooKSwKKyAgICAgICAgICAgIC8qIHggYXZhaWxh
YmxlICovIHRydWUsIHJlYWRpbmctPngoKSwKKyAgICAgICAgICAgIC8qIHkgYXZhaWxhYmxlICov
IHRydWUsIHJlYWRpbmctPnkoKSk7CisKKyAgICBpZiAobV9jb250cm9sbGVyKQorICAgICAgICBt
X2NvbnRyb2xsZXItPmRpZENoYW5nZURldmljZU9yaWVudGF0aW9uKG1fbGFzdE9yaWVudGF0aW9u
LmdldCgpKTsKKworICAgIC8vIFdlIGFyZSB0aGUgb25seSBmaWx0ZXIsIHNvIG5vdCBuZWVkIHRv
IGFsbG93IHByb3BhZ2F0aW9uLgorICAgIHJldHVybiBmYWxzZTsKK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVy
UXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43ZjY5NWZkYmIwNWM4OGE4NDU5Y2YyYjYyNDllNzNjNGVlNWRmMmNj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3Jp
ZW50YXRpb25Qcm92aWRlclF0LmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisj
aWZuZGVmIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdF9oCisjZGVmaW5lIERldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJRdF9oCisKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbi5oIgorI2lu
Y2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgorCisjaW5jbHVkZSA8UVJvdGF0
aW9uRmlsdGVyPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQgOiBwdWJsaWMgUVJvdGF0aW9u
RmlsdGVyIHsKK3B1YmxpYzoKKyAgICBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQoKTsKKyAg
ICB+RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KCk7CisKKyAgICB2b2lkIHNldENvbnRyb2xs
ZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKik7CisKKyAgICBib29sIGZpbHRlcihRUm90
YXRpb25SZWFkaW5nKik7CisgICAgdm9pZCBzdGFydCgpOworICAgIHZvaWQgc3RvcCgpOworICAg
IGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX3NlbnNvci5pc0FjdGl2ZSgpOyB9Cisg
ICAgRGV2aWNlT3JpZW50YXRpb24qIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
bGFzdE9yaWVudGF0aW9uLmdldCgpOyB9CisgICAgYm9vbCBoYXNBbHBoYSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2Vuc29yLnByb3BlcnR5KCJoYXNaIikudG9Cb29sKCk7IH0KKworcHJpdmF0ZToKKyAg
ICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb24+IG1fbGFzdE9yaWVudGF0aW9uOworCisgICAgRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CisgICAgUVJvdGF0aW9uU2Vu
c29yIG1fc2Vuc29yOworfTsKKworfQorCisjZW5kaWYgLy8gRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2
aWNlTW90aW9uQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
ZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2
NDYzMzc4NDIxY2UwYWIwMzliNzExMDk5MWVmYWZlMTM2ZDdkNjYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRl
dmljZU1vdGlvbkNsaWVudFF0LmgiCi0KLSNpbmNsdWRlICJEZXZpY2VNb3Rpb25Qcm92aWRlclF0
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotRGV2aWNlTW90aW9uQ2xpZW50UXQ6OkRldmlj
ZU1vdGlvbkNsaWVudFF0KCkKLSAgICA6IG1fcHJvdmlkZXIobmV3IERldmljZU1vdGlvblByb3Zp
ZGVyUXQpCi17Ci19Ci0KLURldmljZU1vdGlvbkNsaWVudFF0Ojp+RGV2aWNlTW90aW9uQ2xpZW50
UXQoKQotewotICAgIGRlbGV0ZSBtX3Byb3ZpZGVyOwotfQotCi12b2lkIERldmljZU1vdGlvbkNs
aWVudFF0OjpzZXRDb250cm9sbGVyKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIp
Ci17Ci0gICAgbV9wcm92aWRlci0+c2V0Q29udHJvbGxlcihjb250cm9sbGVyKTsKLX0KLQotdm9p
ZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6c3RhcnRVcGRhdGluZygpCi17Ci0gICAgbV9wcm92aWRl
ci0+c3RhcnQoKTsKLX0KLQotdm9pZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5n
KCkKLXsKLSAgICBtX3Byb3ZpZGVyLT5zdG9wKCk7Ci19Ci0KLURldmljZU1vdGlvbkRhdGEqIERl
dmljZU1vdGlvbkNsaWVudFF0OjpjdXJyZW50RGV2aWNlTW90aW9uKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV9wcm92aWRlci0+Y3VycmVudERldmljZU1vdGlvbigpOwotfQotCi12b2lkIERldmlj
ZU1vdGlvbkNsaWVudFF0OjpkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVzdHJveWVkKCkKLXsKLSAg
ICBkZWxldGUgdGhpczsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oIGIv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjk2NGEzM2U1Mzk3MTQ2YzI2MjNhZDY1YTMw
YThjZGYyNmQxMjIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50UXQu
aAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
LSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaWZu
ZGVmIERldmljZU1vdGlvbkNsaWVudFF0X2gKLSNkZWZpbmUgRGV2aWNlTW90aW9uQ2xpZW50UXRf
aAotCi0jaW5jbHVkZSAiRGV2aWNlTW90aW9uQ2xpZW50LmgiCi0jaW5jbHVkZSAiRGV2aWNlTW90
aW9uRGF0YS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERldmljZU1vdGlvbkNv
bnRyb2xsZXI7Ci1jbGFzcyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OwotCi1jbGFzcyBEZXZpY2VN
b3Rpb25DbGllbnRRdCA6IHB1YmxpYyBEZXZpY2VNb3Rpb25DbGllbnQgewotcHVibGljOgotICAg
IERldmljZU1vdGlvbkNsaWVudFF0KCk7Ci0gICAgdmlydHVhbCB+RGV2aWNlTW90aW9uQ2xpZW50
UXQoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU1vdGlvbkNvbnRy
b2xsZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOwotICAgIHZpcnR1YWwg
dm9pZCBzdG9wVXBkYXRpbmcoKTsKLSAgICB2aXJ0dWFsIERldmljZU1vdGlvbkRhdGEqIGN1cnJl
bnREZXZpY2VNb3Rpb24oKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlTW90aW9uQ29u
dHJvbGxlckRlc3Ryb3llZCgpOwotCi1wcml2YXRlOgotICAgIERldmljZU1vdGlvblByb3ZpZGVy
UXQqIG1fcHJvdmlkZXI7Ci19OwotCi19IC8vIG5hbWVzcGVjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBEZXZpY2VNb3Rpb25DbGllbnRRdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwIGIvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNjU1NzAzZDc3M2RiM2MzYzUyMTJmZmUyYjgyNmUxYmJkM2JkYmU1
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJEZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgiCi0KLSNpbmNsdWRl
ICJEZXZpY2VNb3Rpb25Db250cm9sbGVyLmgiCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdDo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpCi0gICAgOiBtX21vdGlvbihEZXZpY2VNb3Rp
b25EYXRhOjpjcmVhdGUoKSkKLSAgICAsIG1fZGV2aWNlT3JpZW50YXRpb24obmV3IERldmljZU9y
aWVudGF0aW9uUHJvdmlkZXJRdCkKLSAgICAsIG1fY29udHJvbGxlcigwKQotewotICAgIG1fYWNj
ZWxlcmF0aW9uLmFkZEZpbHRlcih0aGlzKTsKLX0KLQotRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6
fkRldmljZU1vdGlvblByb3ZpZGVyUXQoKQotewotICAgIGRlbGV0ZSBtX2RldmljZU9yaWVudGF0
aW9uOwotfQotCi12b2lkIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OnNldENvbnRyb2xsZXIoRGV2
aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKLXsKLSAgICBBU1NFUlQoY29udHJvbGxl
cik7Ci0gICAgQVNTRVJUKCFtX2NvbnRyb2xsZXIpOwotICAgIG1fY29udHJvbGxlciA9IGNvbnRy
b2xsZXI7Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RhcnQoKQotewotICAg
IG1fYWNjZWxlcmF0aW9uLnN0YXJ0KCk7Ci0gICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+c3RhcnQo
KTsKLX0KLQotdm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdG9wKCkKLXsKLSAgICBtX2Fj
Y2VsZXJhdGlvbi5zdG9wKCk7Ci0gICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+c3RvcCgpOwotfQot
Ci1ib29sIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OmZpbHRlcihRQWNjZWxlcm9tZXRlclJlYWRp
bmcqIHJlYWRpbmcpCi17Ci0gICAgaWYgKCFtX2NvbnRyb2xsZXIpIHsKLSAgICAgICAgLy8gV2Ug
YXJlIHRoZSBvbmx5IGZpbHRlci4gTm8gbmVlZCB0byBwcm9wYWdhdGUgZnJvbSBoZXJlLgotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE6
OkFjY2VsZXJhdGlvbj4gYWNjZWwgPSBEZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRpb246OmNy
ZWF0ZSgKLSAgICAgICAgICAgIC8qIHggYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPngoKSwK
LSAgICAgICAgICAgIC8qIHkgYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPnkoKSwKLSAgICAg
ICAgICAgIC8qIHogYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPnooKSk7Ci0KLSAgICBSZWZQ
dHI8RGV2aWNlTW90aW9uRGF0YTo6Um90YXRpb25SYXRlPiByb3RhdGlvbiA9IERldmljZU1vdGlv
bkRhdGE6OlJvdGF0aW9uUmF0ZTo6Y3JlYXRlKAotICAgICAgICAgICAgbV9kZXZpY2VPcmllbnRh
dGlvbi0+aGFzQWxwaGEoKSwgbV9kZXZpY2VPcmllbnRhdGlvbi0+bGFzdE9yaWVudGF0aW9uKCkt
PmFscGhhKCksCi0gICAgICAgICAgICAvKiBiZXRhIGF2YWlsYWJsZSAqLyB0cnVlLCBtX2Rldmlj
ZU9yaWVudGF0aW9uLT5sYXN0T3JpZW50YXRpb24oKS0+YmV0YSgpLAotICAgICAgICAgICAgLyog
Z2FtbWEgYXZhaWxhYmxlICovIHRydWUsIG1fZGV2aWNlT3JpZW50YXRpb24tPmxhc3RPcmllbnRh
dGlvbigpLT5nYW1tYSgpKTsKLQotICAgIG1fbW90aW9uID0gRGV2aWNlTW90aW9uRGF0YTo6Y3Jl
YXRlKGFjY2VsLAotICAgICAgICAgICAgYWNjZWwsIC8qIEZJWE1FOiBOZWVkcyB0byBwcm92aWRl
IGFjY2VsZXJhdGlvbiBpbmNsdWRlIGdyYXZpdHkuICovCi0gICAgICAgICAgICByb3RhdGlvbiwK
LSAgICAgICAgICAgIGZhbHNlLCAwIC8qIFRoZSBpbnRlcnZhbCBpcyB0cmVhdGVkIGludGVybmFs
bHkgYnkgUXQgbW9iaWxpdHkgKi8pOwotCi0gICAgbV9jb250cm9sbGVyLT5kaWRDaGFuZ2VEZXZp
Y2VNb3Rpb24obV9tb3Rpb24uZ2V0KCkpOwotCi0gICAgLy8gV2UgYXJlIHRoZSBvbmx5IGZpbHRl
ci4gTm8gbmVlZCB0byBwcm9wYWdhdGUgZnJvbSBoZXJlLgotICAgIHJldHVybiBmYWxzZTsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNDY2NDkwZjJjYzRiYWUwOGMwOGRjNzFiMDRiYjhjOWFkZGI4YTFhZC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
LSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
Ci0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAq
Ci0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaWZuZGVmIERldmljZU1v
dGlvblByb3ZpZGVyUXRfaAotI2RlZmluZSBEZXZpY2VNb3Rpb25Qcm92aWRlclF0X2gKLQotI2lu
Y2x1ZGUgIkRldmljZU1vdGlvbkRhdGEuaCIKLQotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNp
bmNsdWRlIDxRQWNjZWxlcm9tZXRlckZpbHRlcj4KLQotI2lmIFFUX1ZFUlNJT04gPCBRVF9WRVJT
SU9OX0NIRUNLKDUsIDAsIDApCi11c2luZyBRVE1fTkFNRVNQQUNFOjpRQWNjZWxlcm9tZXRlcjsK
LXVzaW5nIFFUTV9OQU1FU1BBQ0U6OlFBY2NlbGVyb21ldGVyRmlsdGVyOwotdXNpbmcgUVRNX05B
TUVTUEFDRTo6UUFjY2VsZXJvbWV0ZXJSZWFkaW5nOwotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotY2xhc3MgRGV2aWNlTW90aW9uQ29udHJvbGxlcjsKLWNsYXNzIERldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJRdDsKLQotY2xhc3MgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCA6IHB1Ymxp
YyBRQWNjZWxlcm9tZXRlckZpbHRlciB7Ci1wdWJsaWM6Ci0gICAgRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdCgpOwotICAgIH5EZXZpY2VNb3Rpb25Qcm92aWRlclF0KCk7Ci0KLSAgICB2b2lkIHNldENv
bnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciopOwotCi0gICAgYm9vbCBmaWx0ZXIoUUFj
Y2VsZXJvbWV0ZXJSZWFkaW5nKik7Ci0KLSAgICB2b2lkIHN0YXJ0KCk7Ci0gICAgdm9pZCBzdG9w
KCk7Ci0gICAgRGV2aWNlTW90aW9uRGF0YSogY3VycmVudERldmljZU1vdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fbW90aW9uLmdldCgpOyB9Ci0KLXByaXZhdGU6Ci0gICAgUmVmUHRyPERldmljZU1v
dGlvbkRhdGE+IG1fbW90aW9uOwotICAgIFFBY2NlbGVyb21ldGVyIG1fYWNjZWxlcmF0aW9uOwot
ICAgIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCogbV9kZXZpY2VPcmllbnRhdGlvbjsKLSAg
ICBEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVu
dGF0aW9uQ2xpZW50UXQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZTc5NDIy
MTBhMzJlYmU4NTkyYTlkZDdhN2ViNzBmYWY5NTJjNzEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KLSAqCi0gKi8KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudFF0LmgiCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotRGV2aWNlT3JpZW50YXRpb25DbGll
bnRRdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCgpCi0gICAgOiBtX3Byb3ZpZGVyKG5ldyBE
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQpCi17Ci19Ci0KLURldmljZU9yaWVudGF0aW9uQ2xp
ZW50UXQ6On5EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0KCkKLXsKLSAgICBkZWxldGUgbV9wcm92
aWRlcjsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzZXRDb250cm9sbGVy
KERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKLXsKLSAgICBtX3Byb3Zp
ZGVyLT5zZXRDb250cm9sbGVyKGNvbnRyb2xsZXIpOwotfQotCi12b2lkIERldmljZU9yaWVudGF0
aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmcoKQotewotICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7
Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKCkKLXsK
LSAgICBtX3Byb3ZpZGVyLT5zdG9wKCk7Ci19Ci0KLURldmljZU9yaWVudGF0aW9uKiBEZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0OjpsYXN0T3JpZW50YXRpb24oKSBjb25zdAotewotICAgIHJldHVy
biBtX3Byb3ZpZGVyLT5sYXN0T3JpZW50YXRpb24oKTsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRh
dGlvbkNsaWVudFF0OjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQotewot
ICAgIGRlbGV0ZSB0aGlzOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50
UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Yjg0NDFlMGZiOWQzMmEx
ZTgyZGIwMzczZDg3MTQ4MDFiZDgxYjY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRRdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
Ci0gKgotICovCi0jaWZuZGVmIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXRfaAotI2RlZmluZSBE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0X2gKLQotI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9u
LmgiCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ7Ci0KLWNsYXNzIERl
dmljZU9yaWVudGF0aW9uQ2xpZW50UXQgOiBwdWJsaWMgRGV2aWNlT3JpZW50YXRpb25DbGllbnQg
ewotcHVibGljOgotICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQoKTsKLSAgICB2aXJ0dWFs
IH5EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0KCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29u
dHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQg
c3RhcnRVcGRhdGluZygpOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKLSAgICB2
aXJ0dWFsIERldmljZU9yaWVudGF0aW9uKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdDsKLSAgICB2
aXJ0dWFsIHZvaWQgZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCk7Ci0KLXBy
aXZhdGU6Ci0gICAgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KiBtX3Byb3ZpZGVyOwotfTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Rl
dmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGRlNDZkMjQ0YzZmNWU3OTM2NmRiNTZlNTYyMmEzYmI1OGRiZjgzMmMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpEZXZpY2VPcmll
bnRhdGlvblByb3ZpZGVyUXQoKQotICAgIDogbV9jb250cm9sbGVyKDApCi17Ci0gICAgbV9zZW5z
b3IuYWRkRmlsdGVyKHRoaXMpOwotICAgIG1fbGFzdE9yaWVudGF0aW9uID0gRGV2aWNlT3JpZW50
YXRpb246OmNyZWF0ZSgpOwotfQotCi12b2lkIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6
c2V0Q29udHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCi17
Ci0gICAgaWYgKCFjb250cm9sbGVyKQotICAgICAgICBzdG9wKCk7Ci0KLSAgICBtX2NvbnRyb2xs
ZXIgPSBjb250cm9sbGVyOwotfQotCi12b2lkIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6
c3RhcnQoKQotewotICAgIG1fc2Vuc29yLnN0YXJ0KCk7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0OjpzdG9wKCkKLXsKLSAgICBtX3NlbnNvci5zdG9wKCk7Ci19Ci0KLWJv
b2wgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpmaWx0ZXIoUVJvdGF0aW9uUmVhZGluZyog
cmVhZGluZykKLXsKLSAgICBpZiAobV9jb250cm9sbGVyKSB7Ci0gICAgICAgIC8vIFByb3ZpZGUg
ZGV2aWNlIG9yaWVudGF0aW9uIGRhdGEgYWNjb3JkaW5nIFczQyBzcGVjOgotICAgICAgICAvLyBo
dHRwOi8vZGV2LnczLm9yZy9nZW8vYXBpL3NwZWMtc291cmNlLW9yaWVudGF0aW9uLmh0bWwKLSAg
ICAgICAgLy8gUXQgbW9iaWxpdHkgcHJvdmlkZSB0aGVzZSBkYXRhIHZpYSBRUm90YXRpb25TZW5z
b3IgdXNpbmcgdGhlCi0gICAgICAgIC8vIFFSb3RhdGlvblJlYWRpbmcgY2xhc3M6Ci0gICAgICAg
IC8vICAtIHRoZSByb3RhdGlvbiBhcm91bmQgeiBheGlzIChhbHBoYSkgaXMgZ2l2ZW4gYXMgeiBp
biBRUm90YXRpb25SZWFkaW5nOwotICAgICAgICAvLyAgLSB0aGUgcm90YXRpb24gYXJvdW5kIHgg
YXhpcyAoYmV0YSkgaXMgZ2l2ZW4gYXMgeCBpbiBRUm90YXRpb25SZWFkaW5nOwotICAgICAgICAv
LyAgLSB0aGUgcm90YXRpb24gYXJvdW5kIHkgYXhpcyAoZ2FtbWEpIGlzIGdpdmVuIGFzIHkgaW4g
UVJvdGF0aW9uUmVhZGluZzsKLSAgICAgICAgLy8gU2VlOiBodHRwOi8vZG9jLnF0Lm5va2lhLmNv
bS9xdG1vYmlsaXR5LTEuMC9xcm90YXRpb25yZWFkaW5nLmh0bWwKLSAgICAgICAgLy8gVGhlIFog
KGFscGhhKSByb3RhdGlvbiBhbmdsZSBpcyBjaGVja2VkIHZpYSBoYXNBbHBoYSgpIHByaXZhdGUg
bWV0aG9kLAotICAgICAgICAvLyBkZXBlbmRpbmcgaWYgdGhlIGRldmljZSBpcyBhYmxlIGRvIGRl
dGVjdCB0aGUgYWxwaGEgcm90YXRpb24uIFggKGJldGEpIGFuZAotICAgICAgICAvLyBZIChnYW1t
YSkgYXhpcyBhcmUgYXZhaWxibGUgaW4gdGhpcyBjb250ZXh0LgotICAgICAgICBtX2xhc3RPcmll
bnRhdGlvbiA9IERldmljZU9yaWVudGF0aW9uOjpjcmVhdGUoaGFzQWxwaGEoKSwgcmVhZGluZy0+
eigpLAotICAgICAgICAgICAgICAgIC8qIHggYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPngo
KSwKLSAgICAgICAgICAgICAgICAvKiB5IGF2YWlsYWJsZSAqLyB0cnVlLCByZWFkaW5nLT55KCkp
OwotICAgICAgICBtX2NvbnRyb2xsZXItPmRpZENoYW5nZURldmljZU9yaWVudGF0aW9uKG1fbGFz
dE9yaWVudGF0aW9uLmdldCgpKTsKLSAgICB9Ci0KLSAgICAvLyBXZSBhcmUgdGhlIG9ubHkgZmls
dGVyLCBzbyBubyBuZWVkIHRvIHByb3BhZ2F0ZS4KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLX0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Rldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
MDdmMGE5YjBhZjUxZTRhZmNlYTI4OTljYWViYzNkOTUyNjFlMjFlLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1
OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLSNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0X2gKLSNkZWZpbmUgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gKLQotI2luY2x1
ZGUgIkRldmljZU9yaWVudGF0aW9uLmgiCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyLmgiCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi0jaW5jbHVkZSA8UVJvdGF0aW9u
RmlsdGVyPgotCi0jaWYgUVRfVkVSU0lPTiA8IFFUX1ZFUlNJT05fQ0hFQ0soNSwgMCwgMCkKLXVz
aW5nIFFUTV9OQU1FU1BBQ0U6OlFSb3RhdGlvbkZpbHRlcjsKLXVzaW5nIFFUTV9OQU1FU1BBQ0U6
OlFSb3RhdGlvblJlYWRpbmc7Ci11c2luZyBRVE1fTkFNRVNQQUNFOjpRUm90YXRpb25TZW5zb3I7
Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyUXQgOiBwdWJsaWMgUVJvdGF0aW9uRmlsdGVyIHsKLXB1YmxpYzoKLSAgICBEZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQoKTsKLQotICAgIHZvaWQgc2V0Q29udHJvbGxlcihEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqKTsKLQotICAgIGJvb2wgZmlsdGVyKFFSb3RhdGlvblJl
YWRpbmcqKTsKLQotICAgIHZvaWQgc3RhcnQoKTsKLSAgICB2b2lkIHN0b3AoKTsKLSAgICBib29s
IGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9zZW5zb3IuaXNBY3RpdmUoKTsgfQotICAgIERl
dmljZU9yaWVudGF0aW9uKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2xhc3RP
cmllbnRhdGlvbi5nZXQoKTsgfQotICAgIGJvb2wgaGFzQWxwaGEoKSBjb25zdCB7IHJldHVybiBt
X3NlbnNvci5wcm9wZXJ0eSgiaGFzWiIpLnRvQm9vbCgpOyB9Ci0KLXByaXZhdGU6Ci0gICAgUmVm
UHRyPERldmljZU9yaWVudGF0aW9uPiBtX2xhc3RPcmllbnRhdGlvbjsKLSAgICBEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKLSAgICBRUm90YXRpb25TZW5zb3IgbV9z
ZW5zb3I7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXRf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQy
L1RhcmdldC5wcmkKaW5kZXggZWI0ZWZhNWZlOTU0Y2I3MTI2NGRkMjEwY2RhYzlhMWFjZWIyN2E2
MS4uMjJhODEyYjdhNGFlMDg5NWZmNTcyNTkyYjNkYzJlYjE0ZmI2MGFhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJp
CkBAIC03ODksNiArNzg5LDEwIEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9UT1VDSF9FVkVO
VFM9MSkgewogICAgICAgICBTaGFyZWQvcXQvTmF0aXZlV2ViVG91Y2hFdmVudFF0LmNwcAogfQog
Citjb250YWlucyhERUZJTkVTLCBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OPTEpIHsKKyAgICBo
YXZlUXQoNSk6IFFUICs9IHNlbnNvcnMKK30KKwogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0dF
T0xPQ0FUSU9OPTEpOiBRVCArPSBsb2NhdGlvbgogCiBwbHVnaW5fYmFja2VuZF94bGliIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBmNDFj
N2UwMTUwZTkwMDY5NDE4MjRkYjYzM2RlMjE5NjIzNGQ2MzJhLi4xMTU2OGQzNzY1NGUxNTNiNmNm
ODhlZjM1Njc4NTEyMzk4NTcwMDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMzAsNiArMTMwLDEwIEBACiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKFFUKQorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisjaW5jbHVkZSAiRGV2
aWNlTW90aW9uQ2xpZW50UXQuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0
LmgiCisjZW5kaWYKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSA8UU1pbWVE
YXRhPgogI2VuZGlmCkBAIC0yNDgsNiArMjUyLDEwIEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0
X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQog
I2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICBXZWJDb3JlOjpwcm92aWRlR2VvbG9jYXRpb25U
byhtX3BhZ2UuZ2V0KCksIG5ldyBXZWJHZW9sb2NhdGlvbkNsaWVudCh0aGlzKSk7CiAjZW5kaWYK
KyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShRVCkKKyAgICBXZWJD
b3JlOjpwcm92aWRlRGV2aWNlTW90aW9uVG8obV9wYWdlLmdldCgpLCBuZXcgRGV2aWNlTW90aW9u
Q2xpZW50UXQpOworICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VPcmllbnRhdGlvblRvKG1fcGFn
ZS5nZXQoKSwgbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQpOworI2VuZGlmCiAjaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBX
ZWJDb3JlOjpwcm92aWRlTm90aWZpY2F0aW9uKG1fcGFnZS5nZXQoKSwgbmV3IFdlYk5vdGlmaWNh
dGlvbkNsaWVudCh0aGlzKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9hcGkucHJpIGIv
U291cmNlL2FwaS5wcmkKaW5kZXggNmMyZGY3YjcwN2VmZjJkNmE3NDkyNTI4YTY5NzBlYzNhMzQ4
MWEwZC4uYmU0NmE2MjE5MTE2ZDdmNzliNjFmYWJlMzNkMDIxZGY1NjdhZmM0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL2FwaS5wcmkKKysrIGIvU291cmNlL2FwaS5wcmkKQEAgLTI2MiwyMCArMjYyLDYg
QEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTj0xKSB8fCBjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfT1JJRU4KICAgICBoYXZlUXQoNSk6IFFUICs9IHNlbnNvcnMK
IH0KIAotY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTj0xKSB7Ci0g
ICAgSEVBREVSUyArPSBcCi0gICAgICAgICQkUFdEL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
ZXZpY2VNb3Rpb25DbGllbnRRdC5oIFwKLSAgICAgICAgJCRQV0QvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaCBcCi0gICAgICAgICQkUFdEL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmggXAotICAgICAgICAk
JFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0
LmgKLQotICAgIFNPVVJDRVMgKz0gXAotICAgICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwIFwKLSAgICAgICAgJCRQV0QvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwIFwKLSAgICAgICAgJCRQ
V0QvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3Bw
IFwKLSAgICAgICAgJCRQV0QvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdC5jcHAKLX0KLQogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0dFT0xPQ0FU
SU9OPTEpIHsKICAgICAgaGF2ZVF0KDUpOiBRVCArPSBsb2NhdGlvbgogCmRpZmYgLS1naXQgYS9D
aGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggNDEwZTAwNjIxMzI5NmVjOWI2MmZkN2E2MjUxZTg2
ZDg1ODgwMzE0Ny4uOTlkYmIyOGZiZDA2MDYwNDUyYzgxMWUwMzI4MGQ5NDAyYTU1MDVmZiAxMDA2
NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEy
LTA1LTAxICBMYXJzIEtudWRzZW4gIDxsYXJzLmtudWRzZW5Abm9raWEuY29tPgorCisgICAgICAg
IFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBX
ZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NDU5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1v
dmluZyBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9uIGNsaWVudHMgYW5kIHByb3Zp
ZGVycworICAgICAgICB0byBXZWJDb3JlLiAgVGhpcyBpcyBkb25lIHRvIGFsbG93IGNsZWFuIGRl
cGVuZGVuY2llcyB3aGVuCisgICAgICAgIHN0YXRpY2FsbHkgbGlua2luZyBXSzIuCisKKyAgICAg
ICAgKiBTb3VyY2UvYXBpLnByaToKKwogMjAxMi0wNC0zMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gVXBkYXRlIE5FV1MgYW5kIGNv
bmZpZ3VyZS5hYyBmb3IgMS45LjEgcmVsZWFzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139622</attachid>
            <date>2012-05-01 07:06:36 -0700</date>
            <delta_ts>2012-05-01 07:44:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64595-20120501161136.patch</filename>
            <type>text/plain</type>
            <size>47098</size>
            <attacher name="Lars Knudsen">larsgk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWRkNDcyZTAxZGViOWZk
MjA1NjM1MzFkYzVmNDJiNGNhZjE4NmI1Ny4uNjA5N2YxYzk1MTE3NGU1ZmFlM2FhMjlmYzY5Zjk3
Mjc4YzhiOTliMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEyLTA1LTAxICBMYXJz
IEtudWRzZW4gIDxsYXJzLmtudWRzZW5Abm9raWEuY29tPgorCisgICAgICAgIFtRdF0gTWFrZSBE
ZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBh
ZGRlZC4gIFRoaXMgY2hhbmdlIGFkZHMgc3VwcG9ydCBmb3IgV0syCisgICAgICAgIHdoYXQgd2Fz
IGluIFdLMS4KKworICAgICAgICBBbHNvIG1vdmluZyBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9y
aWVudGF0aW9uIGNsaWVudHMgYW5kCisgICAgICAgIHByb3ZpZGVycyB0byBXZWJDb3JlLiAgVGhp
cyBpcyBkb25lIHRvIGFsbG93IGNsZWFuIGRlcGVuZGVuY2llcworICAgICAgICB3aGVuIHN0YXRp
Y2FsbHkgbGlua2luZyBXSzIuCisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdl
YkNvcmUucHJpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmNw
cDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90
aW9uQ2xpZW50UXQuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VNb3Rpb25DbGllbnRRdDo6fkRldmljZU1vdGlvbkNsaWVudFF0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVzdHJv
eWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzZXRDb250cm9s
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzdG9wVXBkYXRp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OmN1cnJlbnREZXZp
Y2VNb3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0Lmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlv
bkNsaWVudFF0LmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERldmljZU1vdGlvbkNs
aWVudFF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpEZXZpY2VN
b3Rpb25DbGllbnRRdCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Rl
dmljZU1vdGlvblByb3ZpZGVyUXQuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6On5EZXZpY2VNb3Rpb25Q
cm92aWRlclF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnNl
dENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6
c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RvcCk6
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpmaWx0ZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5o
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VNb3Rpb25Qcm92aWRlclF0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OmN1cnJlbnREZXZpY2VN
b3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQu
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50
UXQ6OnNldENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdDo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudFF0OjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVudGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9x
dC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCk6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0OjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQpOgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojp+RGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdDo6c2V0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdDo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyUXQ6OmZpbHRlcik6CisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojppc0FjdGl2ZSk6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6Omxhc3RPcmllbnRhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6Omhhc0FscGhhKToKKwog
MjAxMi0wNC0zMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAg
UHJvdGVjdCBjdXJyZW50IGVsZW1lbnQgaW4gSFRNTExpbmtFbGVtZW50OjpzZXRDU1NTdHlsZVNo
ZWV0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggMDY5N2YxNzU4NDQ4N2NlNzlmZGIzYzRiMGIwOGI2ZjJiYjNlYTU3
OC4uOGJkODc5MmY4OTk3OGUxZjA2NTM3ZGQyYTZhYTVlMjljYjZjMjUzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDEyLTA1LTAxICBMYXJzIEtudWRzZW4gIDxsYXJzLmtudWRzZW5A
bm9raWEuY29tPgorCisgICAgICAgIFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9y
aWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGluZyBzdXBwb3J0IGZvciBEZXZpY2VPcmllbnRhdGlvbiBp
biBXSzIgV2ViUGFnZQorCisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBh
Z2UpOgorCiAyMDEyLTA0LTI4ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEFkZGVkIG5ldyBleHBvcnRlZCBzeW1ib2xzIGFmdGVy
IHIxMTU1NTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA4ZThjNzE0NjBhZGMxOTgxNjRhZGNhZmNjODA5MDVm
MWI1YzFlYTJkLi41Y2VkOGRkOTBiOGJlN2I0MTRlMzEzODY5NzlkYmExM2RiOTkzNzYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKQEAgLTM0MzAsNiArMzQzMCwyMCBAQCBjb250YWlucyhERUZJTkVTLCBIQVZFX1FS
QVdGT05UPTEpIHsKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0NC5jcHAKIH0K
IAorY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTj0xKSB7CisgICAg
aGF2ZVF0KDUpOiBRVCArPSBzZW5zb3JzCisKKyAgICBIRUFERVJTICs9IFwKKyAgICAgICAgcGxh
dGZvcm0vcXQvRGV2aWNlTW90aW9uQ2xpZW50UXQuaCBcCisgICAgICAgIHBsYXRmb3JtL3F0L0Rl
dmljZU1vdGlvblByb3ZpZGVyUXQuaCBcCisgICAgICAgIHBsYXRmb3JtL3F0L0RldmljZU9yaWVu
dGF0aW9uQ2xpZW50UXQuaCBcCisgICAgICAgIHBsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9u
UHJvdmlkZXJRdC5oCisgICAgU09VUkNFUyArPSBcCisgICAgICAgIHBsYXRmb3JtL3F0L0Rldmlj
ZU1vdGlvbkNsaWVudFF0LmNwcCBcCisgICAgICAgIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvblBy
b3ZpZGVyUXQuY3BwIFwKKyAgICAgICAgcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25DbGll
bnRRdC5jcHAgXAorICAgICAgICBwbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVy
UXQuY3BwCit9CiAKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9HRU9MT0NBVElPTj0xKSB7CiAg
ICAgdjggewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCBiNDMwZmNiM2Y4OWUzN2E0Yjc1NTM1NWVkZTRhYjJi
YzQyMmNjMmEwLi40YjQ4YmE3NzFiZTBjNGI3Mjg2Zjc0NmE4MDNiNWRiNWI5MzZmOWFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnByaQpAQCAtMTYwLDggKzE2MCw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9H
RU9MT0NBVElPTj0xKSB7CiB9CiAKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ERVZJQ0VfT1JJ
RU5UQVRJT049MSkgewotICAgIENPTkZJRyAqPSBtb2JpbGl0eQotICAgIE1PQklMSVRZICo9IHNl
bnNvcnMKKyAgICBoYXZlUXQoNSk6IFFUICs9IHNlbnNvcnMKIH0KIAogY29udGFpbnMoREVGSU5F
UywgV1RGX1VTRV9RVF9NT0JJTElUWV9TWVNURU1JTkZPPTEpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
YTk4ZDE2ZTZiMjNmMDkwZjVkYzMzZjU1NGMxNWZhZGI2YzIwNDk2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwCkBA
IC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRGV2aWNlTW90aW9uQ2xpZW50UXQuaCIKKworI2luY2x1ZGUgIkRldmljZU1vdGlv
blByb3ZpZGVyUXQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEZXZpY2VNb3Rpb25DbGll
bnRRdDo6fkRldmljZU1vdGlvbkNsaWVudFF0KCkKK3sKK30KKwordm9pZCBEZXZpY2VNb3Rpb25D
bGllbnRRdDo6ZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCit7CisgICAgZGVsZXRl
IHRoaXM7Cit9CisKK3ZvaWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6OnNldENvbnRyb2xsZXIoRGV2
aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKK3sKKyAgICAvLyBJbml0aWFsaXplIGxh
emlseS4KKyAgICBpZiAoIW1fcHJvdmlkZXIgJiYgY29udHJvbGxlcikKKyAgICAgICAgbV9wcm92
aWRlciA9IGFkb3B0UHRyKG5ldyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0KTsKKworICAgIG1fcHJv
dmlkZXItPnNldENvbnRyb2xsZXIoY29udHJvbGxlcik7Cit9CisKK3ZvaWQgRGV2aWNlTW90aW9u
Q2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmcoKQoreworICAgIGlmIChtX3Byb3ZpZGVyKQorICAgICAg
ICBtX3Byb3ZpZGVyLT5zdGFydCgpOworfQorCit2b2lkIERldmljZU1vdGlvbkNsaWVudFF0Ojpz
dG9wVXBkYXRpbmcoKQoreworICAgIGlmIChtX3Byb3ZpZGVyKQorICAgICAgICBtX3Byb3ZpZGVy
LT5zdG9wKCk7Cit9CisKK0RldmljZU1vdGlvbkRhdGEqIERldmljZU1vdGlvbkNsaWVudFF0Ojpj
dXJyZW50RGV2aWNlTW90aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcm92aWRlci0+Y3Vy
cmVudERldmljZU1vdGlvbigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uQ2xpZW50UXQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNmVhZjkwNWQ2MDUzYzhmOTY1ODJlNzcxMGYxMmQwM2FjYmJmNzQwCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uQ2xpZW50UXQu
aApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBEZXZpY2VNb3Rp
b25DbGllbnRRdF9oCisjZGVmaW5lIERldmljZU1vdGlvbkNsaWVudFF0X2gKKworI2luY2x1ZGUg
IkRldmljZU1vdGlvbkNsaWVudC5oIgorI2luY2x1ZGUgIkRldmljZU1vdGlvbkRhdGEuaCIKKwor
I2luY2x1ZGUgIkRldmljZU1vdGlvblByb3ZpZGVyUXQuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlTW90aW9uQ29udHJvbGxl
cjsKK2NsYXNzIERldmljZU1vdGlvblByb3ZpZGVyUXQ7CisKK2NsYXNzIERldmljZU1vdGlvbkNs
aWVudFF0IDogcHVibGljIERldmljZU1vdGlvbkNsaWVudCB7CitwdWJsaWM6CisgICAgRGV2aWNl
TW90aW9uQ2xpZW50UXQoKSB7IH0KKyAgICB2aXJ0dWFsIH5EZXZpY2VNb3Rpb25DbGllbnRRdCgp
OworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVz
dHJveWVkKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOworICAgIHZpcnR1
YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKKworICAgIHZpcnR1YWwgRGV2aWNlTW90aW9uRGF0YSog
Y3VycmVudERldmljZU1vdGlvbigpIGNvbnN0OworCisgICAgdmlydHVhbCB2b2lkIHNldENvbnRy
b2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciopOworCisgICAgT3duUHRyPERldmljZU1vdGlv
blByb3ZpZGVyUXQ+IG1fcHJvdmlkZXI7Cit9OworCit9IC8vIG5hbWVzcGVjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBEZXZpY2VNb3Rpb25DbGllbnRRdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3
NTE2NDVmOGVkN2YyYTRhODlkMzI5ZjM4NDVlNmJkMDFiZTgyMmMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcApA
QCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJEZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpCisgICAg
OiBtX2NvbnRyb2xsZXIoMCkKKyAgICAsIG1fb3JpZW50YXRpb25Qcm92aWRlcihhZG9wdFB0cihu
ZXcgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KCkpKQoreworICAgIG1fc2Vuc29yLmFkZEZp
bHRlcih0aGlzKTsKKyAgICBtX2xhc3RNb3Rpb24gPSBEZXZpY2VNb3Rpb25EYXRhOjpjcmVhdGUo
KTsKK30KKworRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6fkRldmljZU1vdGlvblByb3ZpZGVyUXQo
KQoreworICAgIC8vIFRoZSBzZW5zb3IgaXMgYXV0b21hdGljYWxseSBzdG9wcGVkLgorfQorCit2
b2lkIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OnNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29u
dHJvbGxlciogY29udHJvbGxlcikKK3sKKyAgICBpZiAoIWNvbnRyb2xsZXIpCisgICAgICAgIHN0
b3AoKTsKKworICAgIG1fY29udHJvbGxlciA9IGNvbnRyb2xsZXI7Cit9CisKK3ZvaWQgRGV2aWNl
TW90aW9uUHJvdmlkZXJRdDo6c3RhcnQoKQoreworICAgIG1fc2Vuc29yLnN0YXJ0KCk7CisgICAg
bV9vcmllbnRhdGlvblByb3ZpZGVyLT5zdGFydCgpOworfQorCit2b2lkIERldmljZU1vdGlvblBy
b3ZpZGVyUXQ6OnN0b3AoKQoreworICAgIG1fc2Vuc29yLnN0b3AoKTsKKyAgICBtX29yaWVudGF0
aW9uUHJvdmlkZXItPnN0b3AoKTsKK30KKworYm9vbCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0Ojpm
aWx0ZXIoUUFjY2VsZXJvbWV0ZXJSZWFkaW5nKiByZWFkaW5nKQoreworICAgIFJlZlB0cjxEZXZp
Y2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRpb24+IGFjY2VsID0gRGV2aWNlTW90aW9uRGF0YTo6QWNj
ZWxlcmF0aW9uOjpjcmVhdGUoCisgICAgICAgICAgICAvKiB4IGF2YWlsYWJsZSAqLyB0cnVlLCAt
IHJlYWRpbmctPngoKSwKKyAgICAgICAgICAgIC8qIHkgYXZhaWxhYmxlICovIHRydWUsIC0gcmVh
ZGluZy0+eSgpLAorICAgICAgICAgICAgLyogeiBhdmFpbGFibGUgKi8gdHJ1ZSwgLSByZWFkaW5n
LT56KCkpOworCisgICAgYm9vbCBoYXNBbHBoYSA9IG1fb3JpZW50YXRpb25Qcm92aWRlci0+aGFz
QWxwaGEoKTsKKyAgICBEZXZpY2VPcmllbnRhdGlvbiogb3JpZW50ID0gbV9vcmllbnRhdGlvblBy
b3ZpZGVyLT5sYXN0T3JpZW50YXRpb24oKTsKKworICAgIFJlZlB0cjxEZXZpY2VNb3Rpb25EYXRh
OjpSb3RhdGlvblJhdGU+IHJvdGF0aW9uID0gRGV2aWNlTW90aW9uRGF0YTo6Um90YXRpb25SYXRl
OjpjcmVhdGUoCisgICAgICAgICAgICAvKiBhbHBoYSBhdmFpbGFibGUgKi8gaGFzQWxwaGEsIG9y
aWVudC0+YWxwaGEoKSwKKyAgICAgICAgICAgIC8qIGJldGEgIGF2YWlsYWJsZSAqLyB0cnVlLCBv
cmllbnQtPmJldGEoKSwKKyAgICAgICAgICAgIC8qIGdhbW1hIGF2YWlsYWJsZSAqLyB0cnVlLCBv
cmllbnQtPmdhbW1hKCkpOworCisgICAgbV9sYXN0TW90aW9uID0gRGV2aWNlTW90aW9uRGF0YTo6
Y3JlYXRlKGFjY2VsLAorICAgICAgICAgICAgYWNjZWwsIC8qIEZJWE1FOiBOZWVkcyB0byBwcm92
aWRlIGFjY2VsZXJhdGlvbiBpbmNsdWRlIGdyYXZpdHkuICovCisgICAgICAgICAgICByb3RhdGlv
biwKKyAgICAgICAgICAgIGZhbHNlLCAwIC8qIFRoZSBpbnRlcnZhbCBpcyB0cmVhdGVkIGludGVy
bmFsbHkgYnkgUXRTZW5zb3JzICovKTsKKworICAgIGlmIChtX2NvbnRyb2xsZXIpCisgICAgICAg
IG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlTW90aW9uKG1fbGFzdE1vdGlvbi5nZXQoKSk7
CisKKyAgICAvLyBXZSBhcmUgdGhlIG9ubHkgZmlsdGVyLCBzbyBub3QgbmVlZCB0byBhbGxvdyBw
cm9wYWdhdGlvbi4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblBy
b3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3Zp
ZGVyUXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jNGQ2MjkxMGIxYjExNmIzNmZkYjMxNTQ2MDJiZmYwMDg0Yzdj
OTY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNl
TW90aW9uUHJvdmlkZXJRdC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworI2lm
bmRlZiBEZXZpY2VNb3Rpb25Qcm92aWRlclF0X2gKKyNkZWZpbmUgRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdF9oCisKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25Db250cm9sbGVyLmgiCisjaW5jbHVkZSAi
RGV2aWNlTW90aW9uRGF0YS5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJR
dC5oIgorI2luY2x1ZGUgPFFBY2NlbGVyb21ldGVyRmlsdGVyPgorI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KKworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmljZU1vdGlvblByb3ZpZGVy
UXQgOiBwdWJsaWMgUUFjY2VsZXJvbWV0ZXJGaWx0ZXIgeworcHVibGljOgorICAgIERldmljZU1v
dGlvblByb3ZpZGVyUXQoKTsKKyAgICB+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpOworCisgICAg
dm9pZCBzZXRDb250cm9sbGVyKERldmljZU1vdGlvbkNvbnRyb2xsZXIqKTsKKworICAgIGJvb2wg
ZmlsdGVyKFFBY2NlbGVyb21ldGVyUmVhZGluZyopOworICAgIHZvaWQgc3RhcnQoKTsKKyAgICB2
b2lkIHN0b3AoKTsKKyAgICBEZXZpY2VNb3Rpb25EYXRhKiBjdXJyZW50RGV2aWNlTW90aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9sYXN0TW90aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgUmVm
UHRyPERldmljZU1vdGlvbkRhdGE+IG1fbGFzdE1vdGlvbjsKKworICAgIERldmljZU1vdGlvbkNv
bnRyb2xsZXIqIG1fY29udHJvbGxlcjsKKyAgICBRQWNjZWxlcm9tZXRlciBtX3NlbnNvcjsKKwor
ICAgIE93blB0cjxEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ+IG1fb3JpZW50YXRpb25Qcm92
aWRlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERldmljZU1v
dGlvblByb3ZpZGVyUXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQv
RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjMwODcwZjA0ZjFl
YzdhZGUwMmU5NTM5NjdhZjFjZjAxZDE0M2M2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAKQEAgLTAsMCAr
MSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oIgorCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRp
b25Qcm92aWRlclF0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBEZXZpY2VPcmll
bnRhdGlvbkNsaWVudFF0OjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQor
eworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6
OnNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyKQor
eworICAgIC8vIEluaXRpYWxpemUgbGF6aWx5LgorICAgIGlmICghbV9wcm92aWRlciAmJiBjb250
cm9sbGVyKQorICAgICAgICBtX3Byb3ZpZGVyID0gYWRvcHRQdHIobmV3IERldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdCk7CisKKyAgICBtX3Byb3ZpZGVyLT5zZXRDb250cm9sbGVyKGNvbnRyb2xs
ZXIpOworfQorCit2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmco
KQoreworICAgIGlmIChtX3Byb3ZpZGVyKQorICAgICAgICBtX3Byb3ZpZGVyLT5zdGFydCgpOwor
fQorCit2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnN0b3BVcGRhdGluZygpCit7Cisg
ICAgaWYgKG1fcHJvdmlkZXIpCisgICAgICAgIG1fcHJvdmlkZXItPnN0b3AoKTsKK30KKworRGV2
aWNlT3JpZW50YXRpb24qIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6Omxhc3RPcmllbnRhdGlv
bigpIGNvbnN0Cit7CisgICAgcmV0dXJuIChtX3Byb3ZpZGVyKSA/IG1fcHJvdmlkZXItPmxhc3RP
cmllbnRhdGlvbigpIDogMDsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTEyNDRkYmE2OGM3NWFlZDhkNGQ4MTRhZmNjZTdmYTkzNzNiMTYxOQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVu
dGF0aW9uQ2xpZW50UXQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpZm5k
ZWYgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdF9oCisjZGVmaW5lIERldmljZU9yaWVudGF0aW9u
Q2xpZW50UXRfaAorCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb24uaCIKKyNpbmNsdWRlICJE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgorCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgiCisj
aW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Owor
CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0IDogcHVibGljIERldmljZU9yaWVudGF0
aW9uQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGlu
ZygpOworICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKKyAgICB2aXJ0dWFsIERldmlj
ZU9yaWVudGF0aW9uKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCk7CisKK3ByaXZhdGU6CisgICAg
T3duUHRyPERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdD4gbV9wcm92aWRlcjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERldmljZU9yaWVudGF0aW9uQ2xpZW50
UXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9y
aWVudGF0aW9uUHJvdmlkZXJRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDZlMmJlNTdhZTBhNTZkYjNlZTM1
ZjYyNjNjMmNjOTRlNTliMjVmYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAKQEAgLTAsMCArMSw3OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisgKgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0OjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQoKQorICAg
IDogbV9jb250cm9sbGVyKDApCit7CisgICAgbV9zZW5zb3IuYWRkRmlsdGVyKHRoaXMpOworICAg
IG1fbGFzdE9yaWVudGF0aW9uID0gRGV2aWNlT3JpZW50YXRpb246OmNyZWF0ZSgpOworfQorCitE
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6On5EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQo
KQoreworICAgIC8vIFRoZSBzZW5zb3IgaXMgYXV0b21hdGljYWxseSBzdG9wcGVkLgorfQorCit2
b2lkIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcihEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCit7CisgICAgaWYgKCFjb250cm9sbGVyKQor
ICAgICAgICBzdG9wKCk7CisKKyAgICBtX2NvbnRyb2xsZXIgPSBjb250cm9sbGVyOworfQorCit2
b2lkIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c3RhcnQoKQoreworICAgIG1fc2Vuc29y
LnN0YXJ0KCk7Cit9CisKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpzdG9wKCkK
K3sKKyAgICBtX3NlbnNvci5zdG9wKCk7Cit9CisKK2Jvb2wgRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0OjpmaWx0ZXIoUVJvdGF0aW9uUmVhZGluZyogcmVhZGluZykKK3sKKyAgICAvLyBQcm92
aWRlIGRldmljZSBvcmllbnRhdGlvbiBkYXRhIGFjY29yZGluZyBXM0Mgc3BlYzoKKyAgICAvLyBo
dHRwOi8vZGV2LnczLm9yZy9nZW8vYXBpL3NwZWMtc291cmNlLW9yaWVudGF0aW9uLmh0bWwKKyAg
ICAvLyBRdFNlbnNvcnMgcHJvdmlkZSB0aGVzZSBkYXRhIHZpYSBRUm90YXRpb25TZW5zb3IgdXNp
bmcgdGhlCisgICAgLy8gUVJvdGF0aW9uUmVhZGluZyBjbGFzczoKKyAgICAvLyAgLSB0aGUgcm90
YXRpb24gYXJvdW5kIHogYXhpcyAoYWxwaGEpIGlzIGdpdmVuIGFzIHogaW4gUVJvdGF0aW9uUmVh
ZGluZzsKKyAgICAvLyAgLSB0aGUgcm90YXRpb24gYXJvdW5kIHggYXhpcyAoYmV0YSkgaXMgZ2l2
ZW4gYXMgeCBpbiBRUm90YXRpb25SZWFkaW5nOworICAgIC8vICAtIHRoZSByb3RhdGlvbiBhcm91
bmQgeSBheGlzIChnYW1tYSkgaXMgZ2l2ZW4gYXMgeSBpbiBRUm90YXRpb25SZWFkaW5nOworICAg
IC8vIFNlZTogaHR0cDovL2RvYy5xdC5ub2tpYS5jb20vcXRtb2JpbGl0eS0xLjAvcXJvdGF0aW9u
cmVhZGluZy5odG1sCisgICAgLy8gVGhlIFogKGFscGhhKSByb3RhdGlvbiBhbmdsZSBpcyBjaGVj
a2VkIHZpYSBoYXNBbHBoYSgpIHByaXZhdGUgbWV0aG9kLAorICAgIC8vIGRlcGVuZGluZyBpZiB0
aGUgZGV2aWNlIGlzIGFibGUgZG8gZGV0ZWN0IHRoZSBhbHBoYSByb3RhdGlvbi4gWCAoYmV0YSkg
YW5kCisgICAgLy8gWSAoZ2FtbWEpIGF4aXMgYXJlIGF2YWlsYmxlIGluIHRoaXMgY29udGV4dC4K
KyAgICBtX2xhc3RPcmllbnRhdGlvbiA9IERldmljZU9yaWVudGF0aW9uOjpjcmVhdGUoaGFzQWxw
aGEoKSwgcmVhZGluZy0+eigpLAorICAgICAgICAgICAgLyogeCBhdmFpbGFibGUgKi8gdHJ1ZSwg
cmVhZGluZy0+eCgpLAorICAgICAgICAgICAgLyogeSBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGlu
Zy0+eSgpKTsKKworICAgIGlmIChtX2NvbnRyb2xsZXIpCisgICAgICAgIG1fY29udHJvbGxlci0+
ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24obV9sYXN0T3JpZW50YXRpb24uZ2V0KCkpOworCisg
ICAgLy8gV2UgYXJlIHRoZSBvbmx5IGZpbHRlciwgc28gbm90IG5lZWQgdG8gYWxsb3cgcHJvcGFn
YXRpb24uCisgICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmExM2ZjOWFlZGIzNTdiODdkZjkyYjVjYzgyMzEyYmExMGM0ZTMzOGQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpZm5kZWYgRGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0X2gKKyNkZWZpbmUgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
clF0X2gKKworI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uLmgiCisjaW5jbHVkZSAiRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyLmgiCisKKyNpbmNsdWRlIDxRUm90YXRpb25GaWx0ZXI+Cisj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERl
dmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCA6IHB1YmxpYyBRUm90YXRpb25GaWx0ZXIgeworcHVi
bGljOgorICAgIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpOworICAgIH5EZXZpY2VPcmll
bnRhdGlvblByb3ZpZGVyUXQoKTsKKworICAgIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIqKTsKKworICAgIGJvb2wgZmlsdGVyKFFSb3RhdGlvblJlYWRpbmcq
KTsKKyAgICB2b2lkIHN0YXJ0KCk7CisgICAgdm9pZCBzdG9wKCk7CisgICAgYm9vbCBpc0FjdGl2
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vuc29yLmlzQWN0aXZlKCk7IH0KKyAgICBEZXZpY2VPcmll
bnRhdGlvbiogbGFzdE9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0T3JpZW50YXRp
b24uZ2V0KCk7IH0KKyAgICBib29sIGhhc0FscGhhKCkgY29uc3QgeyByZXR1cm4gbV9zZW5zb3Iu
cHJvcGVydHkoImhhc1oiKS50b0Jvb2woKTsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxEZXZp
Y2VPcmllbnRhdGlvbj4gbV9sYXN0T3JpZW50YXRpb247CisKKyAgICBEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKKyAgICBRUm90YXRpb25TZW5zb3IgbV9zZW5zb3I7
Cit9OworCit9CisKKyNlbmRpZiAvLyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGll
bnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNs
aWVudFF0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDY0NjMzNzg0MjFjZTBh
YjAzOWI3MTEwOTkxZWZhZmUxMzZkN2Q2Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1v
dGlvbkNsaWVudFF0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgot
ICoKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRGV2aWNlTW90aW9uQ2xp
ZW50UXQuaCIKLQotI2luY2x1ZGUgIkRldmljZU1vdGlvblByb3ZpZGVyUXQuaCIKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1EZXZpY2VNb3Rpb25DbGllbnRRdDo6RGV2aWNlTW90aW9uQ2xpZW50
UXQoKQotICAgIDogbV9wcm92aWRlcihuZXcgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCkKLXsKLX0K
LQotRGV2aWNlTW90aW9uQ2xpZW50UXQ6On5EZXZpY2VNb3Rpb25DbGllbnRRdCgpCi17Ci0gICAg
ZGVsZXRlIG1fcHJvdmlkZXI7Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6OnNldENv
bnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKLXsKLSAgICBtX3By
b3ZpZGVyLT5zZXRDb250cm9sbGVyKGNvbnRyb2xsZXIpOwotfQotCi12b2lkIERldmljZU1vdGlv
bkNsaWVudFF0OjpzdGFydFVwZGF0aW5nKCkKLXsKLSAgICBtX3Byb3ZpZGVyLT5zdGFydCgpOwot
fQotCi12b2lkIERldmljZU1vdGlvbkNsaWVudFF0OjpzdG9wVXBkYXRpbmcoKQotewotICAgIG1f
cHJvdmlkZXItPnN0b3AoKTsKLX0KLQotRGV2aWNlTW90aW9uRGF0YSogRGV2aWNlTW90aW9uQ2xp
ZW50UXQ6OmN1cnJlbnREZXZpY2VNb3Rpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX3Byb3Zp
ZGVyLT5jdXJyZW50RGV2aWNlTW90aW9uKCk7Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uQ2xpZW50
UXQ6OmRldmljZU1vdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQotewotICAgIGRlbGV0ZSB0aGlz
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDJiOTY0YTMzZTUzOTcxNDZjMjYyM2FkNjVhMzBhOGNkZjI2ZDEyMjAu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oCisrKyAvZGV2L251
bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqCi0gKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwot
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
LSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoK
LSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgRGV2aWNlTW90
aW9uQ2xpZW50UXRfaAotI2RlZmluZSBEZXZpY2VNb3Rpb25DbGllbnRRdF9oCi0KLSNpbmNsdWRl
ICJEZXZpY2VNb3Rpb25DbGllbnQuaCIKLSNpbmNsdWRlICJEZXZpY2VNb3Rpb25EYXRhLmgiCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRGV2aWNlTW90aW9uQ29udHJvbGxlcjsKLWNs
YXNzIERldmljZU1vdGlvblByb3ZpZGVyUXQ7Ci0KLWNsYXNzIERldmljZU1vdGlvbkNsaWVudFF0
IDogcHVibGljIERldmljZU1vdGlvbkNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgRGV2aWNlTW90aW9u
Q2xpZW50UXQoKTsKLSAgICB2aXJ0dWFsIH5EZXZpY2VNb3Rpb25DbGllbnRRdCgpOwotCi0gICAg
dmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciopOwotICAg
IHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BVcGRh
dGluZygpOwotICAgIHZpcnR1YWwgRGV2aWNlTW90aW9uRGF0YSogY3VycmVudERldmljZU1vdGlv
bigpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVzdHJv
eWVkKCk7Ci0KLXByaXZhdGU6Ci0gICAgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCogbV9wcm92aWRl
cjsKLX07Ci0KLX0gLy8gbmFtZXNwZWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIERldmljZU1vdGlv
bkNsaWVudFF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA2NTU3MDNkNzczZGIzYzNjNTIxMmZmZTJiODI2ZTFiYmQzYmRiZTUxLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw4OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
LSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkRldmljZU1vdGlvblByb3ZpZGVyUXQuaCIKLQotI2luY2x1ZGUgIkRldmljZU1vdGlv
bkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1EZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpEZXZpY2VN
b3Rpb25Qcm92aWRlclF0KCkKLSAgICA6IG1fbW90aW9uKERldmljZU1vdGlvbkRhdGE6OmNyZWF0
ZSgpKQotICAgICwgbV9kZXZpY2VPcmllbnRhdGlvbihuZXcgRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0KQotICAgICwgbV9jb250cm9sbGVyKDApCi17Ci0gICAgbV9hY2NlbGVyYXRpb24uYWRk
RmlsdGVyKHRoaXMpOwotfQotCi1EZXZpY2VNb3Rpb25Qcm92aWRlclF0Ojp+RGV2aWNlTW90aW9u
UHJvdmlkZXJRdCgpCi17Ci0gICAgZGVsZXRlIG1fZGV2aWNlT3JpZW50YXRpb247Ci19Ci0KLXZv
aWQgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250
cm9sbGVyKiBjb250cm9sbGVyKQotewotICAgIEFTU0VSVChjb250cm9sbGVyKTsKLSAgICBBU1NF
UlQoIW1fY29udHJvbGxlcik7Ci0gICAgbV9jb250cm9sbGVyID0gY29udHJvbGxlcjsKLX0KLQot
dm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdGFydCgpCi17Ci0gICAgbV9hY2NlbGVyYXRp
b24uc3RhcnQoKTsKLSAgICBtX2RldmljZU9yaWVudGF0aW9uLT5zdGFydCgpOwotfQotCi12b2lk
IERldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0b3AoKQotewotICAgIG1fYWNjZWxlcmF0aW9uLnN0
b3AoKTsKLSAgICBtX2RldmljZU9yaWVudGF0aW9uLT5zdG9wKCk7Ci19Ci0KLWJvb2wgRGV2aWNl
TW90aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKFFBY2NlbGVyb21ldGVyUmVhZGluZyogcmVhZGluZykK
LXsKLSAgICBpZiAoIW1fY29udHJvbGxlcikgewotICAgICAgICAvLyBXZSBhcmUgdGhlIG9ubHkg
ZmlsdGVyLiBObyBuZWVkIHRvIHByb3BhZ2F0ZSBmcm9tIGhlcmUuCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YTo6QWNjZWxlcmF0aW9u
PiBhY2NlbCA9IERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbjo6Y3JlYXRlKAotICAgICAg
ICAgICAgLyogeCBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eCgpLAotICAgICAgICAgICAg
LyogeSBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eSgpLAotICAgICAgICAgICAgLyogeiBh
dmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eigpKTsKLQotICAgIFJlZlB0cjxEZXZpY2VNb3Rp
b25EYXRhOjpSb3RhdGlvblJhdGU+IHJvdGF0aW9uID0gRGV2aWNlTW90aW9uRGF0YTo6Um90YXRp
b25SYXRlOjpjcmVhdGUoCi0gICAgICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uLT5oYXNBbHBo
YSgpLCBtX2RldmljZU9yaWVudGF0aW9uLT5sYXN0T3JpZW50YXRpb24oKS0+YWxwaGEoKSwKLSAg
ICAgICAgICAgIC8qIGJldGEgYXZhaWxhYmxlICovIHRydWUsIG1fZGV2aWNlT3JpZW50YXRpb24t
Pmxhc3RPcmllbnRhdGlvbigpLT5iZXRhKCksCi0gICAgICAgICAgICAvKiBnYW1tYSBhdmFpbGFi
bGUgKi8gdHJ1ZSwgbV9kZXZpY2VPcmllbnRhdGlvbi0+bGFzdE9yaWVudGF0aW9uKCktPmdhbW1h
KCkpOwotCi0gICAgbV9tb3Rpb24gPSBEZXZpY2VNb3Rpb25EYXRhOjpjcmVhdGUoYWNjZWwsCi0g
ICAgICAgICAgICBhY2NlbCwgLyogRklYTUU6IE5lZWRzIHRvIHByb3ZpZGUgYWNjZWxlcmF0aW9u
IGluY2x1ZGUgZ3Jhdml0eS4gKi8KLSAgICAgICAgICAgIHJvdGF0aW9uLAotICAgICAgICAgICAg
ZmFsc2UsIDAgLyogVGhlIGludGVydmFsIGlzIHRyZWF0ZWQgaW50ZXJuYWxseSBieSBRdCBtb2Jp
bGl0eSAqLyk7Ci0KLSAgICBtX2NvbnRyb2xsZXItPmRpZENoYW5nZURldmljZU1vdGlvbihtX21v
dGlvbi5nZXQoKSk7Ci0KLSAgICAvLyBXZSBhcmUgdGhlIG9ubHkgZmlsdGVyLiBObyBuZWVkIHRv
IHByb3BhZ2F0ZSBmcm9tIGhlcmUuCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA0NjY0OTBmMmNjNGJhZTA4YzA4ZGM3MWIwNGJiOGM5YWRkYjhhMWFkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjIg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgRGV2aWNlTW90aW9uUHJvdmlkZXJR
dF9oCi0jZGVmaW5lIERldmljZU1vdGlvblByb3ZpZGVyUXRfaAotCi0jaW5jbHVkZSAiRGV2aWNl
TW90aW9uRGF0YS5oIgotCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPFFBY2Nl
bGVyb21ldGVyRmlsdGVyPgotCi0jaWYgUVRfVkVSU0lPTiA8IFFUX1ZFUlNJT05fQ0hFQ0soNSwg
MCwgMCkKLXVzaW5nIFFUTV9OQU1FU1BBQ0U6OlFBY2NlbGVyb21ldGVyOwotdXNpbmcgUVRNX05B
TUVTUEFDRTo6UUFjY2VsZXJvbWV0ZXJGaWx0ZXI7Ci11c2luZyBRVE1fTkFNRVNQQUNFOjpRQWNj
ZWxlcm9tZXRlclJlYWRpbmc7Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFz
cyBEZXZpY2VNb3Rpb25Db250cm9sbGVyOwotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
clF0OwotCi1jbGFzcyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0IDogcHVibGljIFFBY2NlbGVyb21l
dGVyRmlsdGVyIHsKLXB1YmxpYzoKLSAgICBEZXZpY2VNb3Rpb25Qcm92aWRlclF0KCk7Ci0gICAg
fkRldmljZU1vdGlvblByb3ZpZGVyUXQoKTsKLQotICAgIHZvaWQgc2V0Q29udHJvbGxlcihEZXZp
Y2VNb3Rpb25Db250cm9sbGVyKik7Ci0KLSAgICBib29sIGZpbHRlcihRQWNjZWxlcm9tZXRlclJl
YWRpbmcqKTsKLQotICAgIHZvaWQgc3RhcnQoKTsKLSAgICB2b2lkIHN0b3AoKTsKLSAgICBEZXZp
Y2VNb3Rpb25EYXRhKiBjdXJyZW50RGV2aWNlTW90aW9uKCkgY29uc3QgeyByZXR1cm4gbV9tb3Rp
b24uZ2V0KCk7IH0KLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YT4gbV9t
b3Rpb247Ci0gICAgUUFjY2VsZXJvbWV0ZXIgbV9hY2NlbGVyYXRpb247Ci0gICAgRGV2aWNlT3Jp
ZW50YXRpb25Qcm92aWRlclF0KiBtX2RldmljZU9yaWVudGF0aW9uOwotICAgIERldmljZU1vdGlv
bkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LQotI2VuZGlmIC8vIERldmljZU1vdGlvblByb3ZpZGVyUXRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRR
dC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlNzk0MjIxMGEzMmViZTg1OTJh
OWRkN2E3ZWI3MGZhZjk1MmM3MTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRh
dGlvbkNsaWVudFF0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgot
ICoKLSAqLwotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9u
Q2xpZW50UXQuaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpEZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0KCkKLSAgICA6IG1fcHJvdmlkZXIobmV3IERldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdCkKLXsKLX0KLQotRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6fkRldmlj
ZU9yaWVudGF0aW9uQ2xpZW50UXQoKQotewotICAgIGRlbGV0ZSBtX3Byb3ZpZGVyOwotfQotCi12
b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyKQotewotICAgIG1fcHJvdmlkZXItPnNldENvbnRy
b2xsZXIoY29udHJvbGxlcik7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6
c3RhcnRVcGRhdGluZygpCi17Ci0gICAgbV9wcm92aWRlci0+c3RhcnQoKTsKLX0KLQotdm9pZCBE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzdG9wVXBkYXRpbmcoKQotewotICAgIG1fcHJvdmlk
ZXItPnN0b3AoKTsKLX0KLQotRGV2aWNlT3JpZW50YXRpb24qIERldmljZU9yaWVudGF0aW9uQ2xp
ZW50UXQ6Omxhc3RPcmllbnRhdGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcHJvdmlkZXIt
Pmxhc3RPcmllbnRhdGlvbigpOwotfQotCi12b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6
OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCi17Ci0gICAgZGVsZXRlIHRo
aXM7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiODQ0MWUwZmI5ZDMyYTFlODJkYjAzNzNkODcx
NDgwMWJkODFiNjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVu
dFF0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoK
LSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLSNp
Zm5kZWYgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdF9oCi0jZGVmaW5lIERldmljZU9yaWVudGF0
aW9uQ2xpZW50UXRfaAotCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb24uaCIKLSNpbmNsdWRl
ICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNs
YXNzIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDsKLQotY2xhc3MgRGV2aWNlT3JpZW50YXRp
b25DbGllbnRRdCA6IHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCB7Ci1wdWJsaWM6Ci0g
ICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCgpOwotICAgIHZpcnR1YWwgfkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50UXQoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlciopOwotICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5n
KCk7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpOwotICAgIHZpcnR1YWwgRGV2aWNl
T3JpZW50YXRpb24qIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBk
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKLQotcHJpdmF0ZToKLSAgICBE
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQqIG1fcHJvdmlkZXI7Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRp
b25Qcm92aWRlclF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZGU0NmQyNDRjNmY1ZTc5MzY2ZGI1NmU1NjIyYTNiYjU4ZGJmODMyYy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw3NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
LSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OkRldmljZU9yaWVudGF0aW9uUHJvdmlk
ZXJRdCgpCi0gICAgOiBtX2NvbnRyb2xsZXIoMCkKLXsKLSAgICBtX3NlbnNvci5hZGRGaWx0ZXIo
dGhpcyk7Ci0gICAgbV9sYXN0T3JpZW50YXRpb24gPSBEZXZpY2VPcmllbnRhdGlvbjo6Y3JlYXRl
KCk7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpzZXRDb250cm9sbGVy
KERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKLXsKLSAgICBpZiAoIWNv
bnRyb2xsZXIpCi0gICAgICAgIHN0b3AoKTsKLQotICAgIG1fY29udHJvbGxlciA9IGNvbnRyb2xs
ZXI7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpzdGFydCgpCi17Ci0g
ICAgbV9zZW5zb3Iuc3RhcnQoKTsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVy
UXQ6OnN0b3AoKQotewotICAgIG1fc2Vuc29yLnN0b3AoKTsKLX0KLQotYm9vbCBEZXZpY2VPcmll
bnRhdGlvblByb3ZpZGVyUXQ6OmZpbHRlcihRUm90YXRpb25SZWFkaW5nKiByZWFkaW5nKQotewot
ICAgIGlmIChtX2NvbnRyb2xsZXIpIHsKLSAgICAgICAgLy8gUHJvdmlkZSBkZXZpY2Ugb3JpZW50
YXRpb24gZGF0YSBhY2NvcmRpbmcgVzNDIHNwZWM6Ci0gICAgICAgIC8vIGh0dHA6Ly9kZXYudzMu
b3JnL2dlby9hcGkvc3BlYy1zb3VyY2Utb3JpZW50YXRpb24uaHRtbAotICAgICAgICAvLyBRdCBt
b2JpbGl0eSBwcm92aWRlIHRoZXNlIGRhdGEgdmlhIFFSb3RhdGlvblNlbnNvciB1c2luZyB0aGUK
LSAgICAgICAgLy8gUVJvdGF0aW9uUmVhZGluZyBjbGFzczoKLSAgICAgICAgLy8gIC0gdGhlIHJv
dGF0aW9uIGFyb3VuZCB6IGF4aXMgKGFscGhhKSBpcyBnaXZlbiBhcyB6IGluIFFSb3RhdGlvblJl
YWRpbmc7Ci0gICAgICAgIC8vICAtIHRoZSByb3RhdGlvbiBhcm91bmQgeCBheGlzIChiZXRhKSBp
cyBnaXZlbiBhcyB4IGluIFFSb3RhdGlvblJlYWRpbmc7Ci0gICAgICAgIC8vICAtIHRoZSByb3Rh
dGlvbiBhcm91bmQgeSBheGlzIChnYW1tYSkgaXMgZ2l2ZW4gYXMgeSBpbiBRUm90YXRpb25SZWFk
aW5nOwotICAgICAgICAvLyBTZWU6IGh0dHA6Ly9kb2MucXQubm9raWEuY29tL3F0bW9iaWxpdHkt
MS4wL3Fyb3RhdGlvbnJlYWRpbmcuaHRtbAotICAgICAgICAvLyBUaGUgWiAoYWxwaGEpIHJvdGF0
aW9uIGFuZ2xlIGlzIGNoZWNrZWQgdmlhIGhhc0FscGhhKCkgcHJpdmF0ZSBtZXRob2QsCi0gICAg
ICAgIC8vIGRlcGVuZGluZyBpZiB0aGUgZGV2aWNlIGlzIGFibGUgZG8gZGV0ZWN0IHRoZSBhbHBo
YSByb3RhdGlvbi4gWCAoYmV0YSkgYW5kCi0gICAgICAgIC8vIFkgKGdhbW1hKSBheGlzIGFyZSBh
dmFpbGJsZSBpbiB0aGlzIGNvbnRleHQuCi0gICAgICAgIG1fbGFzdE9yaWVudGF0aW9uID0gRGV2
aWNlT3JpZW50YXRpb246OmNyZWF0ZShoYXNBbHBoYSgpLCByZWFkaW5nLT56KCksCi0gICAgICAg
ICAgICAgICAgLyogeCBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eCgpLAotICAgICAgICAg
ICAgICAgIC8qIHkgYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPnkoKSk7Ci0gICAgICAgIG1f
Y29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24obV9sYXN0T3JpZW50YXRpb24u
Z2V0KCkpOwotICAgIH0KLQotICAgIC8vIFdlIGFyZSB0aGUgb25seSBmaWx0ZXIsIHNvIG5vIG5l
ZWQgdG8gcHJvcGFnYXRlLgotICAgIHJldHVybiBmYWxzZTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVy
UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwN2YwYTliMGFmNTFl
NGFmY2VhMjg5OWNhZWJjM2Q5NTI2MWUyMWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyUXQuaAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoK
LSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0g
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgotICoKLSAqLwotI2lmbmRlZiBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXRfaAotI2Rl
ZmluZSBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXRfaAotCi0jaW5jbHVkZSAiRGV2aWNlT3Jp
ZW50YXRpb24uaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKLSNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLSNpbmNsdWRlIDxRUm90YXRpb25GaWx0ZXI+Ci0KLSNp
ZiBRVF9WRVJTSU9OIDwgUVRfVkVSU0lPTl9DSEVDSyg1LCAwLCAwKQotdXNpbmcgUVRNX05BTUVT
UEFDRTo6UVJvdGF0aW9uRmlsdGVyOwotdXNpbmcgUVRNX05BTUVTUEFDRTo6UVJvdGF0aW9uUmVh
ZGluZzsKLXVzaW5nIFFUTV9OQU1FU1BBQ0U6OlFSb3RhdGlvblNlbnNvcjsKLSNlbmRpZgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCA6
IHB1YmxpYyBRUm90YXRpb25GaWx0ZXIgewotcHVibGljOgotICAgIERldmljZU9yaWVudGF0aW9u
UHJvdmlkZXJRdCgpOwotCi0gICAgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlciopOwotCi0gICAgYm9vbCBmaWx0ZXIoUVJvdGF0aW9uUmVhZGluZyopOwotCi0g
ICAgdm9pZCBzdGFydCgpOwotICAgIHZvaWQgc3RvcCgpOwotICAgIGJvb2wgaXNBY3RpdmUoKSBj
b25zdCB7IHJldHVybiBtX3NlbnNvci5pc0FjdGl2ZSgpOyB9Ci0gICAgRGV2aWNlT3JpZW50YXRp
b24qIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE9yaWVudGF0aW9uLmdl
dCgpOyB9Ci0gICAgYm9vbCBoYXNBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vuc29yLnByb3Bl
cnR5KCJoYXNaIikudG9Cb29sKCk7IH0KLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8RGV2aWNlT3Jp
ZW50YXRpb24+IG1fbGFzdE9yaWVudGF0aW9uOwotICAgIERldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlciogbV9jb250cm9sbGVyOwotICAgIFFSb3RhdGlvblNlbnNvciBtX3NlbnNvcjsKLX07Ci0K
LX0KLQotI2VuZGlmIC8vIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpp
bmRleCBlYjRlZmE1ZmU5NTRjYjcxMjY0ZGQyMTBjZGFjOWExYWNlYjI3YTYxLi4yMmE4MTJiN2E0
YWUwODk1ZmY1NzI1OTJiM2RjMmViMTRmYjYwYWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTc4OSw2ICs3
ODksMTAgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1RPVUNIX0VWRU5UUz0xKSB7CiAgICAg
ICAgIFNoYXJlZC9xdC9OYXRpdmVXZWJUb3VjaEV2ZW50UXQuY3BwCiB9CiAKK2NvbnRhaW5zKERF
RklORVMsIEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT049MSkgeworICAgIGhhdmVRdCg1KTogUVQg
Kz0gc2Vuc29ycworfQorCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfR0VPTE9DQVRJT049MSk6
IFFUICs9IGxvY2F0aW9uCiAKIHBsdWdpbl9iYWNrZW5kX3hsaWIgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGY0MWM3ZTAxNTBlOTAwNjk0
MTgyNGRiNjMzZGUyMTk2MjM0ZDYzMmEuLjExNTY4ZDM3NjU0ZTE1M2I2Y2Y4OGVmMzU2Nzg1MTIz
OTg1NzAwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTEzMCw2ICsxMzAsMTAgQEAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oUVQpCisj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25DbGll
bnRRdC5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCIKKyNlbmRpZgog
I2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlIDxRTWltZURhdGE+CiAjZW5kaWYK
QEAgLTI0OCw2ICsyNTIsMTAgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNv
bnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjaWYgRU5BQkxFKEdF
T0xPQ0FUSU9OKQogICAgIFdlYkNvcmU6OnByb3ZpZGVHZW9sb2NhdGlvblRvKG1fcGFnZS5nZXQo
KSwgbmV3IFdlYkdlb2xvY2F0aW9uQ2xpZW50KHRoaXMpKTsKICNlbmRpZgorI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKFFUKQorICAgIFdlYkNvcmU6OnByb3ZpZGVE
ZXZpY2VNb3Rpb25UbyhtX3BhZ2UuZ2V0KCksIG5ldyBEZXZpY2VNb3Rpb25DbGllbnRRdCk7Cisg
ICAgV2ViQ29yZTo6cHJvdmlkZURldmljZU9yaWVudGF0aW9uVG8obV9wYWdlLmdldCgpLCBuZXcg
RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCk7CisjZW5kaWYKICNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIFdlYkNvcmU6OnByb3Zp
ZGVOb3RpZmljYXRpb24obV9wYWdlLmdldCgpLCBuZXcgV2ViTm90aWZpY2F0aW9uQ2xpZW50KHRo
aXMpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL2FwaS5wcmkgYi9Tb3VyY2UvYXBpLnBy
aQppbmRleCA2YzJkZjdiNzA3ZWZmMmQ2YTc0OTI1MjhhNjk3MGVjM2EzNDgxYTBkLi5iZTQ2YTYy
MTkxMTZkN2Y3OWI2MWZhYmUzM2QwMjFkZjU2N2FmYzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvYXBp
LnByaQorKysgYi9Tb3VyY2UvYXBpLnByaQpAQCAtMjYyLDIwICsyNjIsNiBAQCBjb250YWlucyhE
RUZJTkVTLCBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OPTEpIHx8IGNvbnRhaW5zKERFRklORVMs
IEVOQUJMRV9PUklFTgogICAgIGhhdmVRdCg1KTogUVQgKz0gc2Vuc29ycwogfQogCi1jb250YWlu
cyhERUZJTkVTLCBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OPTEpIHsKLSAgICBIRUFERVJTICs9
IFwKLSAgICAgICAgJCRQV0QvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNs
aWVudFF0LmggXAotICAgICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNl
TW90aW9uUHJvdmlkZXJRdC5oIFwKLSAgICAgICAgJCRQV0QvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCBcCi0gICAgICAgICQkUFdEL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaAotCi0gICAgU09V
UkNFUyArPSBcCi0gICAgICAgICQkUFdEL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VN
b3Rpb25DbGllbnRRdC5jcHAgXAotICAgICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgXAotICAgICAgICAkJFBXRC9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAgXAotICAgICAgICAk
JFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0
LmNwcAotfQotCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfR0VPTE9DQVRJT049MSkgewogICAg
ICBoYXZlUXQoNSk6IFFUICs9IGxvY2F0aW9uCiAKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0No
YW5nZUxvZwppbmRleCA0MTBlMDA2MjEzMjk2ZWM5YjYyZmQ3YTYyNTFlODZkODU4ODAzMTQ3Li45
OWRiYjI4ZmJkMDYwNjA0NTJjODExZTAzMjgwZDk0MDJhNTUwNWZmIDEwMDY0NAotLS0gYS9DaGFu
Z2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDUtMDEgIExhcnMg
S251ZHNlbiAgPGxhcnMua251ZHNlbkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBNYWtlIERl
dmljZU1vdGlvbiBhbmQgRGV2aWNlT3JpZW50YXRpb24gd29yayB3aXRoIFdlYktpdDIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTk1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92aW5nIERldmljZU1v
dGlvbiBhbmQgRGV2aWNlT3JpZW50YXRpb24gY2xpZW50cyBhbmQgcHJvdmlkZXJzCisgICAgICAg
IHRvIFdlYkNvcmUuICBUaGlzIGlzIGRvbmUgdG8gYWxsb3cgY2xlYW4gZGVwZW5kZW5jaWVzIHdo
ZW4KKyAgICAgICAgc3RhdGljYWxseSBsaW5raW5nIFdLMi4KKworICAgICAgICAqIFNvdXJjZS9h
cGkucHJpOgorCiAyMDEyLTA0LTMwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBVcGRhdGUgTkVXUyBhbmQgY29uZmlndXJlLmFjIGZv
ciAxLjkuMSByZWxlYXNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139626</attachid>
            <date>2012-05-01 07:44:35 -0700</date>
            <delta_ts>2012-05-01 15:56:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64595-20120501164936.patch</filename>
            <type>text/plain</type>
            <size>47275</size>
            <attacher name="Lars Knudsen">larsgk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWRkNDcyZTAxZGViOWZk
MjA1NjM1MzFkYzVmNDJiNGNhZjE4NmI1Ny4uNjA5N2YxYzk1MTE3NGU1ZmFlM2FhMjlmYzY5Zjk3
Mjc4YzhiOTliMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEyLTA1LTAxICBMYXJz
IEtudWRzZW4gIDxsYXJzLmtudWRzZW5Abm9raWEuY29tPgorCisgICAgICAgIFtRdF0gTWFrZSBE
ZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBh
ZGRlZC4gIFRoaXMgY2hhbmdlIGFkZHMgc3VwcG9ydCBmb3IgV0syCisgICAgICAgIHdoYXQgd2Fz
IGluIFdLMS4KKworICAgICAgICBBbHNvIG1vdmluZyBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9y
aWVudGF0aW9uIGNsaWVudHMgYW5kCisgICAgICAgIHByb3ZpZGVycyB0byBXZWJDb3JlLiAgVGhp
cyBpcyBkb25lIHRvIGFsbG93IGNsZWFuIGRlcGVuZGVuY2llcworICAgICAgICB3aGVuIHN0YXRp
Y2FsbHkgbGlua2luZyBXSzIuCisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdl
YkNvcmUucHJpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmNw
cDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90
aW9uQ2xpZW50UXQuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VNb3Rpb25DbGllbnRRdDo6fkRldmljZU1vdGlvbkNsaWVudFF0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVzdHJv
eWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzZXRDb250cm9s
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzdG9wVXBkYXRp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OmN1cnJlbnREZXZp
Y2VNb3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0Lmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlv
bkNsaWVudFF0LmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERldmljZU1vdGlvbkNs
aWVudFF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpEZXZpY2VN
b3Rpb25DbGllbnRRdCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Rl
dmljZU1vdGlvblByb3ZpZGVyUXQuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6On5EZXZpY2VNb3Rpb25Q
cm92aWRlclF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnNl
dENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6
c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RvcCk6
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpmaWx0ZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5o
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VNb3Rpb25Qcm92aWRlclF0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OmN1cnJlbnREZXZpY2VN
b3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQu
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50
UXQ6OnNldENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdDo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudFF0OjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVudGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9x
dC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCk6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0OjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQpOgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojp+RGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdDo6c2V0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdDo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyUXQ6OmZpbHRlcik6CisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojppc0FjdGl2ZSk6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6Omxhc3RPcmllbnRhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6Omhhc0FscGhhKToKKwog
MjAxMi0wNC0zMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAg
UHJvdGVjdCBjdXJyZW50IGVsZW1lbnQgaW4gSFRNTExpbmtFbGVtZW50OjpzZXRDU1NTdHlsZVNo
ZWV0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggMDY5N2YxNzU4NDQ4N2NlNzlmZGIzYzRiMGIwOGI2ZjJiYjNlYTU3
OC4uOGJkODc5MmY4OTk3OGUxZjA2NTM3ZGQyYTZhYTVlMjljYjZjMjUzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDEyLTA1LTAxICBMYXJzIEtudWRzZW4gIDxsYXJzLmtudWRzZW5A
bm9raWEuY29tPgorCisgICAgICAgIFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9y
aWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGluZyBzdXBwb3J0IGZvciBEZXZpY2VPcmllbnRhdGlvbiBp
biBXSzIgV2ViUGFnZQorCisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBh
Z2UpOgorCiAyMDEyLTA0LTI4ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEFkZGVkIG5ldyBleHBvcnRlZCBzeW1ib2xzIGFmdGVy
IHIxMTU1NTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA4ZThjNzE0NjBhZGMxOTgxNjRhZGNhZmNjODA5MDVm
MWI1YzFlYTJkLi43OTVlZjZjMmY2MzdhZDQ1OTZiZDdlMjdlZDMwZTg5ZTQ5NDMzYTRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKQEAgLTM0MzAsNiArMzQzMCwyNSBAQCBjb250YWlucyhERUZJTkVTLCBIQVZFX1FS
QVdGT05UPTEpIHsKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0NC5jcHAKIH0K
IAorY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTj0xKSB7CisgICAg
aGF2ZVF0KDUpIHsKKyAgICAgICAgUVQgKz0gc2Vuc29ycworICAgIH0gZWxzZSB7CisgICAgICAg
IENPTkZJRyAqPSBtb2JpbGl0eQorICAgICAgICBNT0JJTElUWSAqPSBzZW5zb3JzCisgICAgfQor
CisgICAgSEVBREVSUyArPSBcCisgICAgICAgIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVu
dFF0LmggXAorICAgICAgICBwbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmggXAor
ICAgICAgICBwbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmggXAorICAgICAg
ICBwbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaAorICAgIFNPVVJDRVMg
Kz0gXAorICAgICAgICBwbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAgXAorICAg
ICAgICBwbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcCBcCisgICAgICAgIHBs
YXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwIFwKKyAgICAgICAgcGxhdGZv
cm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcAorfQogCiBjb250YWlucyhERUZJ
TkVTLCBFTkFCTEVfR0VPTE9DQVRJT049MSkgewogICAgIHY4IHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5kZXgg
YjQzMGZjYjNmODllMzdhNGI3NTUzNTVlZGU0YWIyYmM0MjJjYzJhMC4uNmYzMTQ3Mjc5MmZiNDFl
NTBkMTQzYWRlZWE1NGUzMTQzOTYzZGE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTE2MCw4ICsxNjAs
MTIgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0dFT0xPQ0FUSU9OPTEpIHsKIH0KIAogY29u
dGFpbnMoREVGSU5FUywgRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTj0xKSB7Ci0gICAgQ09ORklH
ICo9IG1vYmlsaXR5Ci0gICAgTU9CSUxJVFkgKj0gc2Vuc29ycworICAgIGhhdmVRdCg1KSB7Cisg
ICAgICAgIFFUICs9IHNlbnNvcnMKKyAgICB9IGVsc2UgeworICAgICAgICBDT05GSUcgKj0gbW9i
aWxpdHkKKyAgICAgICAgTU9CSUxJVFkgKj0gc2Vuc29ycworICAgIH0KIH0KIAogY29udGFpbnMo
REVGSU5FUywgV1RGX1VTRV9RVF9NT0JJTElUWV9TWVNURU1JTkZPPTEpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hYTk4ZDE2ZTZiMjNmMDkwZjVkYzMzZjU1NGMxNWZhZGI2YzIwNDk2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uQ2xpZW50UXQu
Y3BwCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ2xpZW50UXQuaCIKKworI2luY2x1ZGUgIkRldmlj
ZU1vdGlvblByb3ZpZGVyUXQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEZXZpY2VNb3Rp
b25DbGllbnRRdDo6fkRldmljZU1vdGlvbkNsaWVudFF0KCkKK3sKK30KKwordm9pZCBEZXZpY2VN
b3Rpb25DbGllbnRRdDo6ZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCit7CisgICAg
ZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6OnNldENvbnRyb2xs
ZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKK3sKKyAgICAvLyBJbml0aWFs
aXplIGxhemlseS4KKyAgICBpZiAoIW1fcHJvdmlkZXIgJiYgY29udHJvbGxlcikKKyAgICAgICAg
bV9wcm92aWRlciA9IGFkb3B0UHRyKG5ldyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0KTsKKworICAg
IG1fcHJvdmlkZXItPnNldENvbnRyb2xsZXIoY29udHJvbGxlcik7Cit9CisKK3ZvaWQgRGV2aWNl
TW90aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmcoKQoreworICAgIGlmIChtX3Byb3ZpZGVyKQor
ICAgICAgICBtX3Byb3ZpZGVyLT5zdGFydCgpOworfQorCit2b2lkIERldmljZU1vdGlvbkNsaWVu
dFF0OjpzdG9wVXBkYXRpbmcoKQoreworICAgIGlmIChtX3Byb3ZpZGVyKQorICAgICAgICBtX3By
b3ZpZGVyLT5zdG9wKCk7Cit9CisKK0RldmljZU1vdGlvbkRhdGEqIERldmljZU1vdGlvbkNsaWVu
dFF0OjpjdXJyZW50RGV2aWNlTW90aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcm92aWRl
ci0+Y3VycmVudERldmljZU1vdGlvbigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25DbGllbnRR
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uQ2xpZW50UXQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kNmVhZjkwNWQ2MDUzYzhmOTY1ODJlNzcxMGYxMmQwM2FjYmJmNzQwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uQ2xp
ZW50UXQuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBEZXZp
Y2VNb3Rpb25DbGllbnRRdF9oCisjZGVmaW5lIERldmljZU1vdGlvbkNsaWVudFF0X2gKKworI2lu
Y2x1ZGUgIkRldmljZU1vdGlvbkNsaWVudC5oIgorI2luY2x1ZGUgIkRldmljZU1vdGlvbkRhdGEu
aCIKKworI2luY2x1ZGUgIkRldmljZU1vdGlvblByb3ZpZGVyUXQuaCIKKyNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlTW90aW9uQ29u
dHJvbGxlcjsKK2NsYXNzIERldmljZU1vdGlvblByb3ZpZGVyUXQ7CisKK2NsYXNzIERldmljZU1v
dGlvbkNsaWVudFF0IDogcHVibGljIERldmljZU1vdGlvbkNsaWVudCB7CitwdWJsaWM6CisgICAg
RGV2aWNlTW90aW9uQ2xpZW50UXQoKSB7IH0KKyAgICB2aXJ0dWFsIH5EZXZpY2VNb3Rpb25DbGll
bnRRdCgpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VNb3Rpb25Db250cm9s
bGVyRGVzdHJveWVkKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOworICAg
IHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKKworICAgIHZpcnR1YWwgRGV2aWNlTW90aW9u
RGF0YSogY3VycmVudERldmljZU1vdGlvbigpIGNvbnN0OworCisgICAgdmlydHVhbCB2b2lkIHNl
dENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciopOworCisgICAgT3duUHRyPERldmlj
ZU1vdGlvblByb3ZpZGVyUXQ+IG1fcHJvdmlkZXI7Cit9OworCit9IC8vIG5hbWVzcGVjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBEZXZpY2VNb3Rpb25DbGllbnRRdF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY3NTE2NDVmOGVkN2YyYTRhODlkMzI5ZjM4NDVlNmJkMDFiZTgyMmMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0
LmNwcApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgp
CisgICAgOiBtX2NvbnRyb2xsZXIoMCkKKyAgICAsIG1fb3JpZW50YXRpb25Qcm92aWRlcihhZG9w
dFB0cihuZXcgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KCkpKQoreworICAgIG1fc2Vuc29y
LmFkZEZpbHRlcih0aGlzKTsKKyAgICBtX2xhc3RNb3Rpb24gPSBEZXZpY2VNb3Rpb25EYXRhOjpj
cmVhdGUoKTsKK30KKworRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6fkRldmljZU1vdGlvblByb3Zp
ZGVyUXQoKQoreworICAgIC8vIFRoZSBzZW5zb3IgaXMgYXV0b21hdGljYWxseSBzdG9wcGVkLgor
fQorCit2b2lkIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OnNldENvbnRyb2xsZXIoRGV2aWNlTW90
aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKK3sKKyAgICBpZiAoIWNvbnRyb2xsZXIpCisgICAg
ICAgIHN0b3AoKTsKKworICAgIG1fY29udHJvbGxlciA9IGNvbnRyb2xsZXI7Cit9CisKK3ZvaWQg
RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RhcnQoKQoreworICAgIG1fc2Vuc29yLnN0YXJ0KCk7
CisgICAgbV9vcmllbnRhdGlvblByb3ZpZGVyLT5zdGFydCgpOworfQorCit2b2lkIERldmljZU1v
dGlvblByb3ZpZGVyUXQ6OnN0b3AoKQoreworICAgIG1fc2Vuc29yLnN0b3AoKTsKKyAgICBtX29y
aWVudGF0aW9uUHJvdmlkZXItPnN0b3AoKTsKK30KKworYm9vbCBEZXZpY2VNb3Rpb25Qcm92aWRl
clF0OjpmaWx0ZXIoUUFjY2VsZXJvbWV0ZXJSZWFkaW5nKiByZWFkaW5nKQoreworICAgIFJlZlB0
cjxEZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRpb24+IGFjY2VsID0gRGV2aWNlTW90aW9uRGF0
YTo6QWNjZWxlcmF0aW9uOjpjcmVhdGUoCisgICAgICAgICAgICAvKiB4IGF2YWlsYWJsZSAqLyB0
cnVlLCAtIHJlYWRpbmctPngoKSwKKyAgICAgICAgICAgIC8qIHkgYXZhaWxhYmxlICovIHRydWUs
IC0gcmVhZGluZy0+eSgpLAorICAgICAgICAgICAgLyogeiBhdmFpbGFibGUgKi8gdHJ1ZSwgLSBy
ZWFkaW5nLT56KCkpOworCisgICAgYm9vbCBoYXNBbHBoYSA9IG1fb3JpZW50YXRpb25Qcm92aWRl
ci0+aGFzQWxwaGEoKTsKKyAgICBEZXZpY2VPcmllbnRhdGlvbiogb3JpZW50ID0gbV9vcmllbnRh
dGlvblByb3ZpZGVyLT5sYXN0T3JpZW50YXRpb24oKTsKKworICAgIFJlZlB0cjxEZXZpY2VNb3Rp
b25EYXRhOjpSb3RhdGlvblJhdGU+IHJvdGF0aW9uID0gRGV2aWNlTW90aW9uRGF0YTo6Um90YXRp
b25SYXRlOjpjcmVhdGUoCisgICAgICAgICAgICAvKiBhbHBoYSBhdmFpbGFibGUgKi8gaGFzQWxw
aGEsIG9yaWVudC0+YWxwaGEoKSwKKyAgICAgICAgICAgIC8qIGJldGEgIGF2YWlsYWJsZSAqLyB0
cnVlLCBvcmllbnQtPmJldGEoKSwKKyAgICAgICAgICAgIC8qIGdhbW1hIGF2YWlsYWJsZSAqLyB0
cnVlLCBvcmllbnQtPmdhbW1hKCkpOworCisgICAgbV9sYXN0TW90aW9uID0gRGV2aWNlTW90aW9u
RGF0YTo6Y3JlYXRlKGFjY2VsLAorICAgICAgICAgICAgYWNjZWwsIC8qIEZJWE1FOiBOZWVkcyB0
byBwcm92aWRlIGFjY2VsZXJhdGlvbiBpbmNsdWRlIGdyYXZpdHkuICovCisgICAgICAgICAgICBy
b3RhdGlvbiwKKyAgICAgICAgICAgIGZhbHNlLCAwIC8qIFRoZSBpbnRlcnZhbCBpcyB0cmVhdGVk
IGludGVybmFsbHkgYnkgUXRTZW5zb3JzICovKTsKKworICAgIGlmIChtX2NvbnRyb2xsZXIpCisg
ICAgICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlTW90aW9uKG1fbGFzdE1vdGlvbi5n
ZXQoKSk7CisKKyAgICAvLyBXZSBhcmUgdGhlIG9ubHkgZmlsdGVyLCBzbyBub3QgbmVlZCB0byBh
bGxvdyBwcm9wYWdhdGlvbi4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1v
dGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlv
blByb3ZpZGVyUXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNGQ2MjkxMGIxYjExNmIzNmZkYjMxNTQ2MDJiZmYw
MDg0YzdjOTY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQv
RGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAq
LworI2lmbmRlZiBEZXZpY2VNb3Rpb25Qcm92aWRlclF0X2gKKyNkZWZpbmUgRGV2aWNlTW90aW9u
UHJvdmlkZXJRdF9oCisKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25Db250cm9sbGVyLmgiCisjaW5j
bHVkZSAiRGV2aWNlTW90aW9uRGF0YS5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdC5oIgorI2luY2x1ZGUgPFFBY2NlbGVyb21ldGVyRmlsdGVyPgorI2luY2x1ZGUgPHd0
Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmljZU1vdGlvblBy
b3ZpZGVyUXQgOiBwdWJsaWMgUUFjY2VsZXJvbWV0ZXJGaWx0ZXIgeworcHVibGljOgorICAgIERl
dmljZU1vdGlvblByb3ZpZGVyUXQoKTsKKyAgICB+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpOwor
CisgICAgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU1vdGlvbkNvbnRyb2xsZXIqKTsKKworICAg
IGJvb2wgZmlsdGVyKFFBY2NlbGVyb21ldGVyUmVhZGluZyopOworICAgIHZvaWQgc3RhcnQoKTsK
KyAgICB2b2lkIHN0b3AoKTsKKyAgICBEZXZpY2VNb3Rpb25EYXRhKiBjdXJyZW50RGV2aWNlTW90
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TW90aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6Cisg
ICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE+IG1fbGFzdE1vdGlvbjsKKworICAgIERldmljZU1v
dGlvbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKKyAgICBRQWNjZWxlcm9tZXRlciBtX3NlbnNv
cjsKKworICAgIE93blB0cjxEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ+IG1fb3JpZW50YXRp
b25Qcm92aWRlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERl
dmljZU1vdGlvblByb3ZpZGVyUXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcXQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjMwODcw
ZjA0ZjFlYzdhZGUwMmU5NTM5NjdhZjFjZjAxZDE0M2M2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAKQEAg
LTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oIgorCisjaW5jbHVkZSAiRGV2aWNlT3Jp
ZW50YXRpb25Qcm92aWRlclF0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudFF0OjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95
ZWQoKQoreworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIERldmljZU9yaWVudGF0aW9uQ2xp
ZW50UXQ6OnNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9s
bGVyKQoreworICAgIC8vIEluaXRpYWxpemUgbGF6aWx5LgorICAgIGlmICghbV9wcm92aWRlciAm
JiBjb250cm9sbGVyKQorICAgICAgICBtX3Byb3ZpZGVyID0gYWRvcHRQdHIobmV3IERldmljZU9y
aWVudGF0aW9uUHJvdmlkZXJRdCk7CisKKyAgICBtX3Byb3ZpZGVyLT5zZXRDb250cm9sbGVyKGNv
bnRyb2xsZXIpOworfQorCit2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnN0YXJ0VXBk
YXRpbmcoKQoreworICAgIGlmIChtX3Byb3ZpZGVyKQorICAgICAgICBtX3Byb3ZpZGVyLT5zdGFy
dCgpOworfQorCit2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnN0b3BVcGRhdGluZygp
Cit7CisgICAgaWYgKG1fcHJvdmlkZXIpCisgICAgICAgIG1fcHJvdmlkZXItPnN0b3AoKTsKK30K
KworRGV2aWNlT3JpZW50YXRpb24qIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6Omxhc3RPcmll
bnRhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIChtX3Byb3ZpZGVyKSA/IG1fcHJvdmlkZXIt
Pmxhc3RPcmllbnRhdGlvbigpIDogMDsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvbkNs
aWVudFF0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvbkNs
aWVudFF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTEyNDRkYmE2OGM3NWFlZDhkNGQ4MTRhZmNjZTdmYTkzNzNi
MTYxOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0Rldmlj
ZU9yaWVudGF0aW9uQ2xpZW50UXQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8K
KyNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdF9oCisjZGVmaW5lIERldmljZU9yaWVu
dGF0aW9uQ2xpZW50UXRfaAorCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb24uaCIKKyNpbmNs
dWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgorCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0
LmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
clF0OworCitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0IDogcHVibGljIERldmljZU9y
aWVudGF0aW9uQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxl
cihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRV
cGRhdGluZygpOworICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKKyAgICB2aXJ0dWFs
IERldmljZU9yaWVudGF0aW9uKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCk7CisKK3ByaXZhdGU6
CisgICAgT3duUHRyPERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdD4gbV9wcm92aWRlcjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERldmljZU9yaWVudGF0aW9u
Q2xpZW50UXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0Rl
dmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDZlMmJlNTdhZTBhNTZk
YjNlZTM1ZjYyNjNjMmNjOTRlNTliMjVmYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAKQEAgLTAsMCAr
MSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQo
KQorICAgIDogbV9jb250cm9sbGVyKDApCit7CisgICAgbV9zZW5zb3IuYWRkRmlsdGVyKHRoaXMp
OworICAgIG1fbGFzdE9yaWVudGF0aW9uID0gRGV2aWNlT3JpZW50YXRpb246OmNyZWF0ZSgpOwor
fQorCitEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6On5EZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQoKQoreworICAgIC8vIFRoZSBzZW5zb3IgaXMgYXV0b21hdGljYWxseSBzdG9wcGVkLgor
fQorCit2b2lkIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcihEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCit7CisgICAgaWYgKCFjb250cm9s
bGVyKQorICAgICAgICBzdG9wKCk7CisKKyAgICBtX2NvbnRyb2xsZXIgPSBjb250cm9sbGVyOwor
fQorCit2b2lkIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c3RhcnQoKQoreworICAgIG1f
c2Vuc29yLnN0YXJ0KCk7Cit9CisKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojpz
dG9wKCkKK3sKKyAgICBtX3NlbnNvci5zdG9wKCk7Cit9CisKK2Jvb2wgRGV2aWNlT3JpZW50YXRp
b25Qcm92aWRlclF0OjpmaWx0ZXIoUVJvdGF0aW9uUmVhZGluZyogcmVhZGluZykKK3sKKyAgICAv
LyBQcm92aWRlIGRldmljZSBvcmllbnRhdGlvbiBkYXRhIGFjY29yZGluZyBXM0Mgc3BlYzoKKyAg
ICAvLyBodHRwOi8vZGV2LnczLm9yZy9nZW8vYXBpL3NwZWMtc291cmNlLW9yaWVudGF0aW9uLmh0
bWwKKyAgICAvLyBRdFNlbnNvcnMgcHJvdmlkZSB0aGVzZSBkYXRhIHZpYSBRUm90YXRpb25TZW5z
b3IgdXNpbmcgdGhlCisgICAgLy8gUVJvdGF0aW9uUmVhZGluZyBjbGFzczoKKyAgICAvLyAgLSB0
aGUgcm90YXRpb24gYXJvdW5kIHogYXhpcyAoYWxwaGEpIGlzIGdpdmVuIGFzIHogaW4gUVJvdGF0
aW9uUmVhZGluZzsKKyAgICAvLyAgLSB0aGUgcm90YXRpb24gYXJvdW5kIHggYXhpcyAoYmV0YSkg
aXMgZ2l2ZW4gYXMgeCBpbiBRUm90YXRpb25SZWFkaW5nOworICAgIC8vICAtIHRoZSByb3RhdGlv
biBhcm91bmQgeSBheGlzIChnYW1tYSkgaXMgZ2l2ZW4gYXMgeSBpbiBRUm90YXRpb25SZWFkaW5n
OworICAgIC8vIFNlZTogaHR0cDovL2RvYy5xdC5ub2tpYS5jb20vcXRtb2JpbGl0eS0xLjAvcXJv
dGF0aW9ucmVhZGluZy5odG1sCisgICAgLy8gVGhlIFogKGFscGhhKSByb3RhdGlvbiBhbmdsZSBp
cyBjaGVja2VkIHZpYSBoYXNBbHBoYSgpIHByaXZhdGUgbWV0aG9kLAorICAgIC8vIGRlcGVuZGlu
ZyBpZiB0aGUgZGV2aWNlIGlzIGFibGUgZG8gZGV0ZWN0IHRoZSBhbHBoYSByb3RhdGlvbi4gWCAo
YmV0YSkgYW5kCisgICAgLy8gWSAoZ2FtbWEpIGF4aXMgYXJlIGF2YWlsYmxlIGluIHRoaXMgY29u
dGV4dC4KKyAgICBtX2xhc3RPcmllbnRhdGlvbiA9IERldmljZU9yaWVudGF0aW9uOjpjcmVhdGUo
aGFzQWxwaGEoKSwgcmVhZGluZy0+eigpLAorICAgICAgICAgICAgLyogeCBhdmFpbGFibGUgKi8g
dHJ1ZSwgcmVhZGluZy0+eCgpLAorICAgICAgICAgICAgLyogeSBhdmFpbGFibGUgKi8gdHJ1ZSwg
cmVhZGluZy0+eSgpKTsKKworICAgIGlmIChtX2NvbnRyb2xsZXIpCisgICAgICAgIG1fY29udHJv
bGxlci0+ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24obV9sYXN0T3JpZW50YXRpb24uZ2V0KCkp
OworCisgICAgLy8gV2UgYXJlIHRoZSBvbmx5IGZpbHRlciwgc28gbm90IG5lZWQgdG8gYWxsb3cg
cHJvcGFnYXRpb24uCisgICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmExM2ZjOWFlZGIzNTdiODdkZjkyYjVjYzgyMzEyYmExMGM0ZTMzOGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyUXQuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpZm5kZWYg
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gKKyNkZWZpbmUgRGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0X2gKKworI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uLmgiCisjaW5jbHVkZSAi
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCisKKyNpbmNsdWRlIDxRUm90YXRpb25GaWx0
ZXI+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCA6IHB1YmxpYyBRUm90YXRpb25GaWx0ZXIg
eworcHVibGljOgorICAgIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpOworICAgIH5EZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQoKTsKKworICAgIHZvaWQgc2V0Q29udHJvbGxlcihEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqKTsKKworICAgIGJvb2wgZmlsdGVyKFFSb3RhdGlvblJl
YWRpbmcqKTsKKyAgICB2b2lkIHN0YXJ0KCk7CisgICAgdm9pZCBzdG9wKCk7CisgICAgYm9vbCBp
c0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vuc29yLmlzQWN0aXZlKCk7IH0KKyAgICBEZXZp
Y2VPcmllbnRhdGlvbiogbGFzdE9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0T3Jp
ZW50YXRpb24uZ2V0KCk7IH0KKyAgICBib29sIGhhc0FscGhhKCkgY29uc3QgeyByZXR1cm4gbV9z
ZW5zb3IucHJvcGVydHkoImhhc1oiKS50b0Jvb2woKTsgfQorCitwcml2YXRlOgorICAgIFJlZlB0
cjxEZXZpY2VPcmllbnRhdGlvbj4gbV9sYXN0T3JpZW50YXRpb247CisKKyAgICBEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKKyAgICBRUm90YXRpb25TZW5zb3IgbV9z
ZW5zb3I7Cit9OworCit9CisKKyNlbmRpZiAvLyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXRf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rp
b25DbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1v
dGlvbkNsaWVudFF0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDY0NjMzNzg0
MjFjZTBhYjAzOWI3MTEwOTkxZWZhZmUxMzZkN2Q2Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Rl
dmljZU1vdGlvbkNsaWVudFF0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoK
LSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0g
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgotICoKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRGV2aWNlTW90
aW9uQ2xpZW50UXQuaCIKLQotI2luY2x1ZGUgIkRldmljZU1vdGlvblByb3ZpZGVyUXQuaCIKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1EZXZpY2VNb3Rpb25DbGllbnRRdDo6RGV2aWNlTW90aW9u
Q2xpZW50UXQoKQotICAgIDogbV9wcm92aWRlcihuZXcgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCkK
LXsKLX0KLQotRGV2aWNlTW90aW9uQ2xpZW50UXQ6On5EZXZpY2VNb3Rpb25DbGllbnRRdCgpCi17
Ci0gICAgZGVsZXRlIG1fcHJvdmlkZXI7Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6
OnNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKLXsKLSAg
ICBtX3Byb3ZpZGVyLT5zZXRDb250cm9sbGVyKGNvbnRyb2xsZXIpOwotfQotCi12b2lkIERldmlj
ZU1vdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0aW5nKCkKLXsKLSAgICBtX3Byb3ZpZGVyLT5zdGFy
dCgpOwotfQotCi12b2lkIERldmljZU1vdGlvbkNsaWVudFF0OjpzdG9wVXBkYXRpbmcoKQotewot
ICAgIG1fcHJvdmlkZXItPnN0b3AoKTsKLX0KLQotRGV2aWNlTW90aW9uRGF0YSogRGV2aWNlTW90
aW9uQ2xpZW50UXQ6OmN1cnJlbnREZXZpY2VNb3Rpb24oKSBjb25zdAotewotICAgIHJldHVybiBt
X3Byb3ZpZGVyLT5jdXJyZW50RGV2aWNlTW90aW9uKCk7Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9u
Q2xpZW50UXQ6OmRldmljZU1vdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQotewotICAgIGRlbGV0
ZSB0aGlzOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmggYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiOTY0YTMzZTUzOTcxNDZjMjYyM2FkNjVhMzBhOGNkZjI2
ZDEyMjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oCisrKyAv
ZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgRGV2
aWNlTW90aW9uQ2xpZW50UXRfaAotI2RlZmluZSBEZXZpY2VNb3Rpb25DbGllbnRRdF9oCi0KLSNp
bmNsdWRlICJEZXZpY2VNb3Rpb25DbGllbnQuaCIKLSNpbmNsdWRlICJEZXZpY2VNb3Rpb25EYXRh
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRGV2aWNlTW90aW9uQ29udHJvbGxl
cjsKLWNsYXNzIERldmljZU1vdGlvblByb3ZpZGVyUXQ7Ci0KLWNsYXNzIERldmljZU1vdGlvbkNs
aWVudFF0IDogcHVibGljIERldmljZU1vdGlvbkNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgRGV2aWNl
TW90aW9uQ2xpZW50UXQoKTsKLSAgICB2aXJ0dWFsIH5EZXZpY2VNb3Rpb25DbGllbnRRdCgpOwot
Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciop
OwotICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIHN0
b3BVcGRhdGluZygpOwotICAgIHZpcnR1YWwgRGV2aWNlTW90aW9uRGF0YSogY3VycmVudERldmlj
ZU1vdGlvbigpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VNb3Rpb25Db250cm9sbGVy
RGVzdHJveWVkKCk7Ci0KLXByaXZhdGU6Ci0gICAgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCogbV9w
cm92aWRlcjsKLX07Ci0KLX0gLy8gbmFtZXNwZWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIERldmlj
ZU1vdGlvbkNsaWVudFF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2NTU3MDNkNzczZGIzYzNjNTIxMmZmZTJiODI2ZTFiYmQzYmRiZTUxLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw4OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0g
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgot
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkRldmljZU1vdGlvblByb3ZpZGVyUXQuaCIKLQotI2luY2x1ZGUgIkRldmlj
ZU1vdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVy
UXQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1EZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpE
ZXZpY2VNb3Rpb25Qcm92aWRlclF0KCkKLSAgICA6IG1fbW90aW9uKERldmljZU1vdGlvbkRhdGE6
OmNyZWF0ZSgpKQotICAgICwgbV9kZXZpY2VPcmllbnRhdGlvbihuZXcgRGV2aWNlT3JpZW50YXRp
b25Qcm92aWRlclF0KQotICAgICwgbV9jb250cm9sbGVyKDApCi17Ci0gICAgbV9hY2NlbGVyYXRp
b24uYWRkRmlsdGVyKHRoaXMpOwotfQotCi1EZXZpY2VNb3Rpb25Qcm92aWRlclF0Ojp+RGV2aWNl
TW90aW9uUHJvdmlkZXJRdCgpCi17Ci0gICAgZGVsZXRlIG1fZGV2aWNlT3JpZW50YXRpb247Ci19
Ci0KLXZvaWQgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcihEZXZpY2VNb3Rp
b25Db250cm9sbGVyKiBjb250cm9sbGVyKQotewotICAgIEFTU0VSVChjb250cm9sbGVyKTsKLSAg
ICBBU1NFUlQoIW1fY29udHJvbGxlcik7Ci0gICAgbV9jb250cm9sbGVyID0gY29udHJvbGxlcjsK
LX0KLQotdm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpzdGFydCgpCi17Ci0gICAgbV9hY2Nl
bGVyYXRpb24uc3RhcnQoKTsKLSAgICBtX2RldmljZU9yaWVudGF0aW9uLT5zdGFydCgpOwotfQot
Ci12b2lkIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0b3AoKQotewotICAgIG1fYWNjZWxlcmF0
aW9uLnN0b3AoKTsKLSAgICBtX2RldmljZU9yaWVudGF0aW9uLT5zdG9wKCk7Ci19Ci0KLWJvb2wg
RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKFFBY2NlbGVyb21ldGVyUmVhZGluZyogcmVh
ZGluZykKLXsKLSAgICBpZiAoIW1fY29udHJvbGxlcikgewotICAgICAgICAvLyBXZSBhcmUgdGhl
IG9ubHkgZmlsdGVyLiBObyBuZWVkIHRvIHByb3BhZ2F0ZSBmcm9tIGhlcmUuCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YTo6QWNjZWxl
cmF0aW9uPiBhY2NlbCA9IERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbjo6Y3JlYXRlKAot
ICAgICAgICAgICAgLyogeCBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eCgpLAotICAgICAg
ICAgICAgLyogeSBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eSgpLAotICAgICAgICAgICAg
LyogeiBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eigpKTsKLQotICAgIFJlZlB0cjxEZXZp
Y2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGU+IHJvdGF0aW9uID0gRGV2aWNlTW90aW9uRGF0YTo6
Um90YXRpb25SYXRlOjpjcmVhdGUoCi0gICAgICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uLT5o
YXNBbHBoYSgpLCBtX2RldmljZU9yaWVudGF0aW9uLT5sYXN0T3JpZW50YXRpb24oKS0+YWxwaGEo
KSwKLSAgICAgICAgICAgIC8qIGJldGEgYXZhaWxhYmxlICovIHRydWUsIG1fZGV2aWNlT3JpZW50
YXRpb24tPmxhc3RPcmllbnRhdGlvbigpLT5iZXRhKCksCi0gICAgICAgICAgICAvKiBnYW1tYSBh
dmFpbGFibGUgKi8gdHJ1ZSwgbV9kZXZpY2VPcmllbnRhdGlvbi0+bGFzdE9yaWVudGF0aW9uKCkt
PmdhbW1hKCkpOwotCi0gICAgbV9tb3Rpb24gPSBEZXZpY2VNb3Rpb25EYXRhOjpjcmVhdGUoYWNj
ZWwsCi0gICAgICAgICAgICBhY2NlbCwgLyogRklYTUU6IE5lZWRzIHRvIHByb3ZpZGUgYWNjZWxl
cmF0aW9uIGluY2x1ZGUgZ3Jhdml0eS4gKi8KLSAgICAgICAgICAgIHJvdGF0aW9uLAotICAgICAg
ICAgICAgZmFsc2UsIDAgLyogVGhlIGludGVydmFsIGlzIHRyZWF0ZWQgaW50ZXJuYWxseSBieSBR
dCBtb2JpbGl0eSAqLyk7Ci0KLSAgICBtX2NvbnRyb2xsZXItPmRpZENoYW5nZURldmljZU1vdGlv
bihtX21vdGlvbi5nZXQoKSk7Ci0KLSAgICAvLyBXZSBhcmUgdGhlIG9ubHkgZmlsdGVyLiBObyBu
ZWVkIHRvIHByb3BhZ2F0ZSBmcm9tIGhlcmUuCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0NjY0OTBmMmNjNGJhZTA4YzA4ZGM3MWIwNGJiOGM5YWRkYjhhMWFkLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oCisrKyAvZGV2L251bGwKQEAg
LTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
Ci0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgRGV2aWNlTW90aW9uUHJv
dmlkZXJRdF9oCi0jZGVmaW5lIERldmljZU1vdGlvblByb3ZpZGVyUXRfaAotCi0jaW5jbHVkZSAi
RGV2aWNlTW90aW9uRGF0YS5oIgotCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUg
PFFBY2NlbGVyb21ldGVyRmlsdGVyPgotCi0jaWYgUVRfVkVSU0lPTiA8IFFUX1ZFUlNJT05fQ0hF
Q0soNSwgMCwgMCkKLXVzaW5nIFFUTV9OQU1FU1BBQ0U6OlFBY2NlbGVyb21ldGVyOwotdXNpbmcg
UVRNX05BTUVTUEFDRTo6UUFjY2VsZXJvbWV0ZXJGaWx0ZXI7Ci11c2luZyBRVE1fTkFNRVNQQUNF
OjpRQWNjZWxlcm9tZXRlclJlYWRpbmc7Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1jbGFzcyBEZXZpY2VNb3Rpb25Db250cm9sbGVyOwotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0OwotCi1jbGFzcyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0IDogcHVibGljIFFBY2Nl
bGVyb21ldGVyRmlsdGVyIHsKLXB1YmxpYzoKLSAgICBEZXZpY2VNb3Rpb25Qcm92aWRlclF0KCk7
Ci0gICAgfkRldmljZU1vdGlvblByb3ZpZGVyUXQoKTsKLQotICAgIHZvaWQgc2V0Q29udHJvbGxl
cihEZXZpY2VNb3Rpb25Db250cm9sbGVyKik7Ci0KLSAgICBib29sIGZpbHRlcihRQWNjZWxlcm9t
ZXRlclJlYWRpbmcqKTsKLQotICAgIHZvaWQgc3RhcnQoKTsKLSAgICB2b2lkIHN0b3AoKTsKLSAg
ICBEZXZpY2VNb3Rpb25EYXRhKiBjdXJyZW50RGV2aWNlTW90aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9tb3Rpb24uZ2V0KCk7IH0KLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0
YT4gbV9tb3Rpb247Ci0gICAgUUFjY2VsZXJvbWV0ZXIgbV9hY2NlbGVyYXRpb247Ci0gICAgRGV2
aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KiBtX2RldmljZU9yaWVudGF0aW9uOwotICAgIERldmlj
ZU1vdGlvbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIERldmljZU1vdGlvblByb3ZpZGVyUXRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0
LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlNzk0MjIxMGEzMmVi
ZTg1OTJhOWRkN2E3ZWI3MGZhZjk1MmM3MTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoK
LSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0g
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgotICoKLSAqLwotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50UXQuaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQu
aCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0KCkKLSAgICA6IG1fcHJvdmlkZXIobmV3IERldmljZU9y
aWVudGF0aW9uUHJvdmlkZXJRdCkKLXsKLX0KLQotRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6
fkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQoKQotewotICAgIGRlbGV0ZSBtX3Byb3ZpZGVyOwot
fQotCi12b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnNldENvbnRyb2xsZXIoRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyKQotewotICAgIG1fcHJvdmlkZXItPnNl
dENvbnRyb2xsZXIoY29udHJvbGxlcik7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGll
bnRRdDo6c3RhcnRVcGRhdGluZygpCi17Ci0gICAgbV9wcm92aWRlci0+c3RhcnQoKTsKLX0KLQot
dm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpzdG9wVXBkYXRpbmcoKQotewotICAgIG1f
cHJvdmlkZXItPnN0b3AoKTsKLX0KLQotRGV2aWNlT3JpZW50YXRpb24qIERldmljZU9yaWVudGF0
aW9uQ2xpZW50UXQ6Omxhc3RPcmllbnRhdGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcHJv
dmlkZXItPmxhc3RPcmllbnRhdGlvbigpOwotfQotCi12b2lkIERldmljZU9yaWVudGF0aW9uQ2xp
ZW50UXQ6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCi17Ci0gICAgZGVs
ZXRlIHRoaXM7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oIGIv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiODQ0MWUwZmI5ZDMyYTFlODJkYjAz
NzNkODcxNDgwMWJkODFiNjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlv
bkNsaWVudFF0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0g
Ki8KLSNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdF9oCi0jZGVmaW5lIERldmljZU9y
aWVudGF0aW9uQ2xpZW50UXRfaAotCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb24uaCIKLSNp
bmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDsKLQotY2xhc3MgRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRRdCA6IHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCB7Ci1wdWJs
aWM6Ci0gICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCgpOwotICAgIHZpcnR1YWwgfkRldmlj
ZU9yaWVudGF0aW9uQ2xpZW50UXQoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVy
KERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopOwotICAgIHZpcnR1YWwgdm9pZCBzdGFydFVw
ZGF0aW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpOwotICAgIHZpcnR1YWwg
RGV2aWNlT3JpZW50YXRpb24qIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0OwotICAgIHZpcnR1YWwg
dm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKLQotcHJpdmF0ZToK
LSAgICBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQqIG1fcHJvdmlkZXI7Ci19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3Jp
ZW50YXRpb25Qcm92aWRlclF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZGU0NmQyNDRjNmY1ZTc5MzY2ZGI1NmU1NjIyYTNiYjU4ZGJmODMyYy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw3NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0g
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgot
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OkRldmljZU9yaWVudGF0aW9u
UHJvdmlkZXJRdCgpCi0gICAgOiBtX2NvbnRyb2xsZXIoMCkKLXsKLSAgICBtX3NlbnNvci5hZGRG
aWx0ZXIodGhpcyk7Ci0gICAgbV9sYXN0T3JpZW50YXRpb24gPSBEZXZpY2VPcmllbnRhdGlvbjo6
Y3JlYXRlKCk7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpzZXRDb250
cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKLXsKLSAgICBp
ZiAoIWNvbnRyb2xsZXIpCi0gICAgICAgIHN0b3AoKTsKLQotICAgIG1fY29udHJvbGxlciA9IGNv
bnRyb2xsZXI7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpzdGFydCgp
Ci17Ci0gICAgbV9zZW5zb3Iuc3RhcnQoKTsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyUXQ6OnN0b3AoKQotewotICAgIG1fc2Vuc29yLnN0b3AoKTsKLX0KLQotYm9vbCBEZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OmZpbHRlcihRUm90YXRpb25SZWFkaW5nKiByZWFkaW5n
KQotewotICAgIGlmIChtX2NvbnRyb2xsZXIpIHsKLSAgICAgICAgLy8gUHJvdmlkZSBkZXZpY2Ug
b3JpZW50YXRpb24gZGF0YSBhY2NvcmRpbmcgVzNDIHNwZWM6Ci0gICAgICAgIC8vIGh0dHA6Ly9k
ZXYudzMub3JnL2dlby9hcGkvc3BlYy1zb3VyY2Utb3JpZW50YXRpb24uaHRtbAotICAgICAgICAv
LyBRdCBtb2JpbGl0eSBwcm92aWRlIHRoZXNlIGRhdGEgdmlhIFFSb3RhdGlvblNlbnNvciB1c2lu
ZyB0aGUKLSAgICAgICAgLy8gUVJvdGF0aW9uUmVhZGluZyBjbGFzczoKLSAgICAgICAgLy8gIC0g
dGhlIHJvdGF0aW9uIGFyb3VuZCB6IGF4aXMgKGFscGhhKSBpcyBnaXZlbiBhcyB6IGluIFFSb3Rh
dGlvblJlYWRpbmc7Ci0gICAgICAgIC8vICAtIHRoZSByb3RhdGlvbiBhcm91bmQgeCBheGlzIChi
ZXRhKSBpcyBnaXZlbiBhcyB4IGluIFFSb3RhdGlvblJlYWRpbmc7Ci0gICAgICAgIC8vICAtIHRo
ZSByb3RhdGlvbiBhcm91bmQgeSBheGlzIChnYW1tYSkgaXMgZ2l2ZW4gYXMgeSBpbiBRUm90YXRp
b25SZWFkaW5nOwotICAgICAgICAvLyBTZWU6IGh0dHA6Ly9kb2MucXQubm9raWEuY29tL3F0bW9i
aWxpdHktMS4wL3Fyb3RhdGlvbnJlYWRpbmcuaHRtbAotICAgICAgICAvLyBUaGUgWiAoYWxwaGEp
IHJvdGF0aW9uIGFuZ2xlIGlzIGNoZWNrZWQgdmlhIGhhc0FscGhhKCkgcHJpdmF0ZSBtZXRob2Qs
Ci0gICAgICAgIC8vIGRlcGVuZGluZyBpZiB0aGUgZGV2aWNlIGlzIGFibGUgZG8gZGV0ZWN0IHRo
ZSBhbHBoYSByb3RhdGlvbi4gWCAoYmV0YSkgYW5kCi0gICAgICAgIC8vIFkgKGdhbW1hKSBheGlz
IGFyZSBhdmFpbGJsZSBpbiB0aGlzIGNvbnRleHQuCi0gICAgICAgIG1fbGFzdE9yaWVudGF0aW9u
ID0gRGV2aWNlT3JpZW50YXRpb246OmNyZWF0ZShoYXNBbHBoYSgpLCByZWFkaW5nLT56KCksCi0g
ICAgICAgICAgICAgICAgLyogeCBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eCgpLAotICAg
ICAgICAgICAgICAgIC8qIHkgYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPnkoKSk7Ci0gICAg
ICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24obV9sYXN0T3JpZW50
YXRpb24uZ2V0KCkpOwotICAgIH0KLQotICAgIC8vIFdlIGFyZSB0aGUgb25seSBmaWx0ZXIsIHNv
IG5vIG5lZWQgdG8gcHJvcGFnYXRlLgotICAgIHJldHVybiBmYWxzZTsKLX0KLQotfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwN2YwYTli
MGFmNTFlNGFmY2VhMjg5OWNhZWJjM2Q5NTI2MWUyMWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgotICoKLSAqLwotI2lmbmRlZiBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXRf
aAotI2RlZmluZSBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXRfaAotCi0jaW5jbHVkZSAiRGV2
aWNlT3JpZW50YXRpb24uaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIu
aCIKLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLSNpbmNsdWRlIDxRUm90YXRpb25GaWx0ZXI+
Ci0KLSNpZiBRVF9WRVJTSU9OIDwgUVRfVkVSU0lPTl9DSEVDSyg1LCAwLCAwKQotdXNpbmcgUVRN
X05BTUVTUEFDRTo6UVJvdGF0aW9uRmlsdGVyOwotdXNpbmcgUVRNX05BTUVTUEFDRTo6UVJvdGF0
aW9uUmVhZGluZzsKLXVzaW5nIFFUTV9OQU1FU1BBQ0U6OlFSb3RhdGlvblNlbnNvcjsKLSNlbmRp
ZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERldmljZU9yaWVudGF0aW9uUHJvdmlk
ZXJRdCA6IHB1YmxpYyBRUm90YXRpb25GaWx0ZXIgewotcHVibGljOgotICAgIERldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJRdCgpOwotCi0gICAgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlciopOwotCi0gICAgYm9vbCBmaWx0ZXIoUVJvdGF0aW9uUmVhZGluZyop
OwotCi0gICAgdm9pZCBzdGFydCgpOwotICAgIHZvaWQgc3RvcCgpOwotICAgIGJvb2wgaXNBY3Rp
dmUoKSBjb25zdCB7IHJldHVybiBtX3NlbnNvci5pc0FjdGl2ZSgpOyB9Ci0gICAgRGV2aWNlT3Jp
ZW50YXRpb24qIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE9yaWVudGF0
aW9uLmdldCgpOyB9Ci0gICAgYm9vbCBoYXNBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vuc29y
LnByb3BlcnR5KCJoYXNaIikudG9Cb29sKCk7IH0KLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8RGV2
aWNlT3JpZW50YXRpb24+IG1fbGFzdE9yaWVudGF0aW9uOwotICAgIERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlciogbV9jb250cm9sbGVyOwotICAgIFFSb3RhdGlvblNlbnNvciBtX3NlbnNvcjsK
LX07Ci0KLX0KLQotI2VuZGlmIC8vIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0
LnByaQppbmRleCBlYjRlZmE1ZmU5NTRjYjcxMjY0ZGQyMTBjZGFjOWExYWNlYjI3YTYxLi4yMmE4
MTJiN2E0YWUwODk1ZmY1NzI1OTJiM2RjMmViMTRmYjYwYWFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTc4
OSw2ICs3ODksMTAgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1RPVUNIX0VWRU5UUz0xKSB7
CiAgICAgICAgIFNoYXJlZC9xdC9OYXRpdmVXZWJUb3VjaEV2ZW50UXQuY3BwCiB9CiAKK2NvbnRh
aW5zKERFRklORVMsIEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT049MSkgeworICAgIGhhdmVRdCg1
KTogUVQgKz0gc2Vuc29ycworfQorCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfR0VPTE9DQVRJ
T049MSk6IFFUICs9IGxvY2F0aW9uCiAKIHBsdWdpbl9iYWNrZW5kX3hsaWIgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGY0MWM3ZTAxNTBl
OTAwNjk0MTgyNGRiNjMzZGUyMTk2MjM0ZDYzMmEuLjExNTY4ZDM3NjU0ZTE1M2I2Y2Y4OGVmMzU2
Nzg1MTIzOTg1NzAwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTEzMCw2ICsxMzAsMTAgQEAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
UVQpCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpbmNsdWRlICJEZXZpY2VNb3Rp
b25DbGllbnRRdC5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCIKKyNl
bmRpZgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlIDxRTWltZURhdGE+CiAj
ZW5kaWYKQEAgLTI0OCw2ICsyNTIsMTAgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdl
SUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjaWYgRU5B
QkxFKEdFT0xPQ0FUSU9OKQogICAgIFdlYkNvcmU6OnByb3ZpZGVHZW9sb2NhdGlvblRvKG1fcGFn
ZS5nZXQoKSwgbmV3IFdlYkdlb2xvY2F0aW9uQ2xpZW50KHRoaXMpKTsKICNlbmRpZgorI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKFFUKQorICAgIFdlYkNvcmU6OnBy
b3ZpZGVEZXZpY2VNb3Rpb25UbyhtX3BhZ2UuZ2V0KCksIG5ldyBEZXZpY2VNb3Rpb25DbGllbnRR
dCk7CisgICAgV2ViQ29yZTo6cHJvdmlkZURldmljZU9yaWVudGF0aW9uVG8obV9wYWdlLmdldCgp
LCBuZXcgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCk7CisjZW5kaWYKICNpZiBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIFdlYkNvcmU6
OnByb3ZpZGVOb3RpZmljYXRpb24obV9wYWdlLmdldCgpLCBuZXcgV2ViTm90aWZpY2F0aW9uQ2xp
ZW50KHRoaXMpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL2FwaS5wcmkgYi9Tb3VyY2Uv
YXBpLnByaQppbmRleCA2YzJkZjdiNzA3ZWZmMmQ2YTc0OTI1MjhhNjk3MGVjM2EzNDgxYTBkLi5i
ZTQ2YTYyMTkxMTZkN2Y3OWI2MWZhYmUzM2QwMjFkZjU2N2FmYzRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvYXBpLnByaQorKysgYi9Tb3VyY2UvYXBpLnByaQpAQCAtMjYyLDIwICsyNjIsNiBAQCBjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OPTEpIHx8IGNvbnRhaW5zKERF
RklORVMsIEVOQUJMRV9PUklFTgogICAgIGhhdmVRdCg1KTogUVQgKz0gc2Vuc29ycwogfQogCi1j
b250YWlucyhERUZJTkVTLCBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OPTEpIHsKLSAgICBIRUFE
RVJTICs9IFwKLSAgICAgICAgJCRQV0QvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1v
dGlvbkNsaWVudFF0LmggXAotICAgICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oIFwKLSAgICAgICAgJCRQV0QvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCBcCi0gICAgICAgICQkUFdEL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaAotCi0g
ICAgU09VUkNFUyArPSBcCi0gICAgICAgICQkUFdEL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
ZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAgXAotICAgICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgXAotICAgICAgICAkJFBXRC9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAgXAotICAg
ICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0LmNwcAotfQotCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfR0VPTE9DQVRJT049MSkg
ewogICAgICBoYXZlUXQoNSk6IFFUICs9IGxvY2F0aW9uCiAKZGlmZiAtLWdpdCBhL0NoYW5nZUxv
ZyBiL0NoYW5nZUxvZwppbmRleCA0MTBlMDA2MjEzMjk2ZWM5YjYyZmQ3YTYyNTFlODZkODU4ODAz
MTQ3Li45OWRiYjI4ZmJkMDYwNjA0NTJjODExZTAzMjgwZDk0MDJhNTUwNWZmIDEwMDY0NAotLS0g
YS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDUtMDEg
IExhcnMgS251ZHNlbiAgPGxhcnMua251ZHNlbkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBN
YWtlIERldmljZU1vdGlvbiBhbmQgRGV2aWNlT3JpZW50YXRpb24gd29yayB3aXRoIFdlYktpdDIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTk1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92aW5nIERl
dmljZU1vdGlvbiBhbmQgRGV2aWNlT3JpZW50YXRpb24gY2xpZW50cyBhbmQgcHJvdmlkZXJzCisg
ICAgICAgIHRvIFdlYkNvcmUuICBUaGlzIGlzIGRvbmUgdG8gYWxsb3cgY2xlYW4gZGVwZW5kZW5j
aWVzIHdoZW4KKyAgICAgICAgc3RhdGljYWxseSBsaW5raW5nIFdLMi4KKworICAgICAgICAqIFNv
dXJjZS9hcGkucHJpOgorCiAyMDEyLTA0LTMwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBVcGRhdGUgTkVXUyBhbmQgY29uZmlndXJl
LmFjIGZvciAxLjkuMSByZWxlYXNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139696</attachid>
            <date>2012-05-01 15:56:33 -0700</date>
            <delta_ts>2012-05-02 01:42:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64595-20120502005631.patch</filename>
            <type>text/plain</type>
            <size>47748</size>
            <attacher name="Lars Knudsen">larsgk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTI5ZDAxYTAxYjUwZWE1
MzQ3NTVhNzQ3OGQ3Yjk2ODc2NDEzYzZjZi4uMmRlOWI4NjJiYzhjYmJiMGZmNmNlMTA4YTMxZjE0
YTA1NDQ1ZGRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEyLTA1LTAxICBMYXJz
IEtudWRzZW4gIDxsYXJzLmtudWRzZW5Abm9raWEuY29tPgorCisgICAgICAgIFtRdF0gTWFrZSBE
ZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBh
ZGRlZC4gIFRoaXMgY2hhbmdlIGFkZHMgc3VwcG9ydCBmb3IgV0syCisgICAgICAgIHdoYXQgd2Fz
IGluIFdLMS4KKworICAgICAgICBBbHNvIG1vdmluZyBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9y
aWVudGF0aW9uIGNsaWVudHMgYW5kCisgICAgICAgIHByb3ZpZGVycyB0byBXZWJDb3JlLiAgVGhp
cyBpcyBkb25lIHRvIGFsbG93IGNsZWFuIGRlcGVuZGVuY2llcworICAgICAgICB3aGVuIHN0YXRp
Y2FsbHkgbGlua2luZyBXSzIuCisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdl
YkNvcmUucHJpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmNw
cDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90
aW9uQ2xpZW50UXQuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VNb3Rpb25DbGllbnRRdDo6fkRldmljZU1vdGlvbkNsaWVudFF0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVzdHJv
eWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzZXRDb250cm9s
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzdG9wVXBkYXRp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OmN1cnJlbnREZXZp
Y2VNb3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0Lmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlv
bkNsaWVudFF0LmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERldmljZU1vdGlvbkNs
aWVudFF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpEZXZpY2VN
b3Rpb25DbGllbnRRdCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Rl
dmljZU1vdGlvblByb3ZpZGVyUXQuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6On5EZXZpY2VNb3Rpb25Q
cm92aWRlclF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnNl
dENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6
c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RvcCk6
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpmaWx0ZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5o
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VNb3Rpb25Qcm92aWRlclF0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OmN1cnJlbnREZXZpY2VN
b3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQu
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50
UXQ6OnNldENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdDo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudFF0OjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVudGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9x
dC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCk6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0OjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQpOgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojp+RGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdDo6c2V0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdDo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyUXQ6OmZpbHRlcik6CisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojppc0FjdGl2ZSk6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6Omxhc3RPcmllbnRhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6Omhhc0FscGhhKToKKwog
MjAxMi0wNS0wMSAgU2lsdmlhIFBmZWlmZmVyICA8c2lsdmlhcGZAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIEF1ZGlvIGNvbnRyb2xzIGhhdmUgYSAxcHggc3VycGx1cyBvdXRsaW5lIGNvbWluZyBm
cm9tIFJlbmRlckltYWdlOjpwYWludFJlcGxhY2VkIGJhc2UgY2xhc3MsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ZTQ0MzNhY2MzNDA5Y2FmYTJhMzI4M2ZkY2NmNDM1ZTkzYmJiODQzMC4uNjQ4NWRmZjUwNzAyNjJi
NGExNDYxOGQ4MGU3YmVkZWE2ODg0ODBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDEyLTA1LTAxICBMYXJzIEtudWRzZW4gIDxsYXJzLmtudWRzZW5Abm9raWEuY29tPgorCisgICAg
ICAgIFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0
aCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02NDU5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGluZyBzdXBwb3J0IGZvciBEZXZpY2VPcmllbnRhdGlvbiBpbiBXSzIgV2ViUGFnZQorCisg
ICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2UpOgorCiAyMDEyLTA1LTAx
ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBbUXRdIEFkZCBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIHRvIHNldCB0aGUgbWluLiBj
b250ZW50cyB3aWR0aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggOGU4YzcxNDYwYWRjMTk4MTY0YWRjYWZjYzgw
OTA1ZjFiNWMxZWEyZC4uNzk1ZWY2YzJmNjM3YWQ0NTk2YmQ3ZTI3ZWQzMGU4OWU0OTQzM2E0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCkBAIC0zNDMwLDYgKzM0MzAsMjUgQEAgY29udGFpbnMoREVGSU5FUywgSEFW
RV9RUkFXRk9OVD0xKSB7CiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdDQuY3Bw
CiB9CiAKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT049MSkgewor
ICAgIGhhdmVRdCg1KSB7CisgICAgICAgIFFUICs9IHNlbnNvcnMKKyAgICB9IGVsc2UgeworICAg
ICAgICBDT05GSUcgKj0gbW9iaWxpdHkKKyAgICAgICAgTU9CSUxJVFkgKj0gc2Vuc29ycworICAg
IH0KKworICAgIEhFQURFUlMgKz0gXAorICAgICAgICBwbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25D
bGllbnRRdC5oIFwKKyAgICAgICAgcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5o
IFwKKyAgICAgICAgcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oIFwKKyAg
ICAgICAgcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgKKyAgICBTT1VS
Q0VTICs9IFwKKyAgICAgICAgcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwIFwK
KyAgICAgICAgcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgXAorICAgICAg
ICBwbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcCBcCisgICAgICAgIHBs
YXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAKK30KIAogY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX0dFT0xPQ0FUSU9OPTEpIHsKICAgICB2OCB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCmlu
ZGV4IGI0MzBmY2IzZjg5ZTM3YTRiNzU1MzU1ZWRlNGFiMmJjNDIyY2MyYTAuLjZmMzE0NzI3OTJm
YjQxZTUwZDE0M2FkZWVhNTRlMzE0Mzk2M2RhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC0xNjAsOCAr
MTYwLDEyIEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9HRU9MT0NBVElPTj0xKSB7CiB9CiAK
IGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT049MSkgewotICAgIENP
TkZJRyAqPSBtb2JpbGl0eQotICAgIE1PQklMSVRZICo9IHNlbnNvcnMKKyAgICBoYXZlUXQoNSkg
eworICAgICAgICBRVCArPSBzZW5zb3JzCisgICAgfSBlbHNlIHsKKyAgICAgICAgQ09ORklHICo9
IG1vYmlsaXR5CisgICAgICAgIE1PQklMSVRZICo9IHNlbnNvcnMKKyAgICB9CiB9CiAKIGNvbnRh
aW5zKERFRklORVMsIFdURl9VU0VfUVRfTU9CSUxJVFlfU1lTVEVNSU5GTz0xKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTBmZGUyZTFjMDVmMmVjZDdkOGE1ODhlMTM2NjA5NGI1MjY1NjU5MAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVu
dFF0LmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkRldmljZU1vdGlvbkNsaWVudFF0LmgiCisKKyNpbmNsdWRlICJE
ZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgiCisKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworRGV2aWNlTW90aW9uQ2xpZW50UXQ6On5EZXZpY2VNb3Rpb25DbGll
bnRRdCgpCit7Cit9CisKK3ZvaWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6OmRldmljZU1vdGlvbkNv
bnRyb2xsZXJEZXN0cm95ZWQoKQoreworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIERldmlj
ZU1vdGlvbkNsaWVudFF0OjpzZXRDb250cm9sbGVyKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNv
bnRyb2xsZXIpCit7CisgICAgLy8gSW5pdGlhbGl6ZSBsYXppbHkuCisgICAgaWYgKCFtX3Byb3Zp
ZGVyICYmIGNvbnRyb2xsZXIpCisgICAgICAgIG1fcHJvdmlkZXIgPSBhZG9wdFB0cihuZXcgRGV2
aWNlTW90aW9uUHJvdmlkZXJRdCk7CisKKyAgICBtX3Byb3ZpZGVyLT5zZXRDb250cm9sbGVyKGNv
bnRyb2xsZXIpOworfQorCit2b2lkIERldmljZU1vdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0aW5n
KCkKK3sKKyAgICBpZiAobV9wcm92aWRlcikKKyAgICAgICAgbV9wcm92aWRlci0+c3RhcnQoKTsK
K30KKwordm9pZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKCkKK3sKKyAgICBp
ZiAobV9wcm92aWRlcikKKyAgICAgICAgbV9wcm92aWRlci0+c3RvcCgpOworfQorCitEZXZpY2VN
b3Rpb25EYXRhKiBEZXZpY2VNb3Rpb25DbGllbnRRdDo6Y3VycmVudERldmljZU1vdGlvbigpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fcHJvdmlkZXItPmN1cnJlbnREZXZpY2VNb3Rpb24oKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvRGV2aWNlTW90aW9uQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZlYWY5MDVkNjA1M2M4Zjk2
NTgyZTc3MTBmMTJkMDNhY2JiZjc0MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmgKQEAgLTAsMCArMSw1NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKgorICovCisKKyNpZm5kZWYgRGV2aWNlTW90aW9uQ2xpZW50UXRfaAorI2RlZmluZSBE
ZXZpY2VNb3Rpb25DbGllbnRRdF9oCisKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25DbGllbnQuaCIK
KyNpbmNsdWRlICJEZXZpY2VNb3Rpb25EYXRhLmgiCisKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25Q
cm92aWRlclF0LmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIERldmljZU1vdGlvbkNvbnRyb2xsZXI7CitjbGFzcyBEZXZpY2VNb3Rpb25Q
cm92aWRlclF0OworCitjbGFzcyBEZXZpY2VNb3Rpb25DbGllbnRRdCA6IHB1YmxpYyBEZXZpY2VN
b3Rpb25DbGllbnQgeworcHVibGljOgorICAgIERldmljZU1vdGlvbkNsaWVudFF0KCkgeyB9Cisg
ICAgdmlydHVhbCB+RGV2aWNlTW90aW9uQ2xpZW50UXQoKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0
dWFsIHZvaWQgZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpOworCisgICAgdmlydHVh
bCB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCk7
CisKKyAgICB2aXJ0dWFsIERldmljZU1vdGlvbkRhdGEqIGN1cnJlbnREZXZpY2VNb3Rpb24oKSBj
b25zdDsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU1vdGlvbkNvbnRy
b2xsZXIqKTsKKworICAgIE93blB0cjxEZXZpY2VNb3Rpb25Qcm92aWRlclF0PiBtX3Byb3ZpZGVy
OworfTsKKworfSAvLyBuYW1lc3BlY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGV2aWNlTW90aW9u
Q2xpZW50UXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNl
TW90aW9uUHJvdmlkZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VN
b3Rpb25Qcm92aWRlclF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzMzMmI2NTQ1YmIxNmU1ZmFlYWI4NzNj
YjlkZDI4Zjk3N2M4OTliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25Q
cm92aWRlclF0LmgiCisKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25Db250cm9sbGVyLmgiCisjaW5j
bHVkZSAiRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpCisg
ICAgOiBtX21vdGlvbihEZXZpY2VNb3Rpb25EYXRhOjpjcmVhdGUoKSkKKyAgICAsIG1fZGV2aWNl
T3JpZW50YXRpb24obmV3IERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCkKKyAgICAsIG1fY29u
dHJvbGxlcigwKQoreworICAgIG1fYWNjZWxlcmF0aW9uLmFkZEZpbHRlcih0aGlzKTsKK30KKwor
RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6fkRldmljZU1vdGlvblByb3ZpZGVyUXQoKQoreworICAg
IGRlbGV0ZSBtX2RldmljZU9yaWVudGF0aW9uOworfQorCit2b2lkIERldmljZU1vdGlvblByb3Zp
ZGVyUXQ6OnNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlcikK
K3sKKyAgICBBU1NFUlQoY29udHJvbGxlcik7CisgICAgQVNTRVJUKCFtX2NvbnRyb2xsZXIpOwor
ICAgIG1fY29udHJvbGxlciA9IGNvbnRyb2xsZXI7Cit9CisKK3ZvaWQgRGV2aWNlTW90aW9uUHJv
dmlkZXJRdDo6c3RhcnQoKQoreworICAgIG1fYWNjZWxlcmF0aW9uLnN0YXJ0KCk7CisgICAgbV9k
ZXZpY2VPcmllbnRhdGlvbi0+c3RhcnQoKTsKK30KKwordm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRl
clF0OjpzdG9wKCkKK3sKKyAgICBtX2FjY2VsZXJhdGlvbi5zdG9wKCk7CisgICAgbV9kZXZpY2VP
cmllbnRhdGlvbi0+c3RvcCgpOworfQorCitib29sIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OmZp
bHRlcihRQWNjZWxlcm9tZXRlclJlYWRpbmcqIHJlYWRpbmcpCit7CisgICAgaWYgKCFtX2NvbnRy
b2xsZXIpIHsKKyAgICAgICAgLy8gV2UgYXJlIHRoZSBvbmx5IGZpbHRlci4gTm8gbmVlZCB0byBw
cm9wYWdhdGUgZnJvbSBoZXJlLgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAg
UmVmUHRyPERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbj4gYWNjZWwgPSBEZXZpY2VNb3Rp
b25EYXRhOjpBY2NlbGVyYXRpb246OmNyZWF0ZSgKKyAgICAgICAgICAgIC8qIHggYXZhaWxhYmxl
ICovIHRydWUsIHJlYWRpbmctPngoKSwKKyAgICAgICAgICAgIC8qIHkgYXZhaWxhYmxlICovIHRy
dWUsIHJlYWRpbmctPnkoKSwKKyAgICAgICAgICAgIC8qIHogYXZhaWxhYmxlICovIHRydWUsIHJl
YWRpbmctPnooKSk7CisKKyAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YTo6Um90YXRpb25SYXRl
PiByb3RhdGlvbiA9IERldmljZU1vdGlvbkRhdGE6OlJvdGF0aW9uUmF0ZTo6Y3JlYXRlKAorICAg
ICAgICAgICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+aGFzQWxwaGEoKSwgbV9kZXZpY2VPcmllbnRh
dGlvbi0+bGFzdE9yaWVudGF0aW9uKCktPmFscGhhKCksCisgICAgICAgICAgICAvKiBiZXRhIGF2
YWlsYWJsZSAqLyB0cnVlLCBtX2RldmljZU9yaWVudGF0aW9uLT5sYXN0T3JpZW50YXRpb24oKS0+
YmV0YSgpLAorICAgICAgICAgICAgLyogZ2FtbWEgYXZhaWxhYmxlICovIHRydWUsIG1fZGV2aWNl
T3JpZW50YXRpb24tPmxhc3RPcmllbnRhdGlvbigpLT5nYW1tYSgpKTsKKworICAgIG1fbW90aW9u
ID0gRGV2aWNlTW90aW9uRGF0YTo6Y3JlYXRlKGFjY2VsLAorICAgICAgICAgICAgYWNjZWwsIC8q
IEZJWE1FOiBOZWVkcyB0byBwcm92aWRlIGFjY2VsZXJhdGlvbiBpbmNsdWRlIGdyYXZpdHkuICov
CisgICAgICAgICAgICByb3RhdGlvbiwKKyAgICAgICAgICAgIGZhbHNlLCAwIC8qIFRoZSBpbnRl
cnZhbCBpcyB0cmVhdGVkIGludGVybmFsbHkgYnkgUXQgbW9iaWxpdHkgKFF0U2Vuc29ycyBpbiBR
dDUpICovKTsKKworICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlTW90aW9uKG1fbW90
aW9uLmdldCgpKTsKKworICAgIC8vIFdlIGFyZSB0aGUgb25seSBmaWx0ZXIuIE5vIG5lZWQgdG8g
cHJvcGFnYXRlIGZyb20gaGVyZS4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0Rldmlj
ZU1vdGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1v
dGlvblByb3ZpZGVyUXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTZmMjE5ZWJkZmVmNjA3YTQyNWM1NDhiZDBj
MjJhODhhODFkZGVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoK
KyAqLworCisjaWZuZGVmIERldmljZU1vdGlvblByb3ZpZGVyUXRfaAorI2RlZmluZSBEZXZpY2VN
b3Rpb25Qcm92aWRlclF0X2gKKworI2luY2x1ZGUgIkRldmljZU1vdGlvbkRhdGEuaCIKKyNpbmNs
dWRlIDxRQWNjZWxlcm9tZXRlckZpbHRlcj4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNp
ZiBRVF9WRVJTSU9OIDwgUVRfVkVSU0lPTl9DSEVDSyg1LCAwLCAwKQordXNpbmcgUVRNX05BTUVT
UEFDRTo6UUFjY2VsZXJvbWV0ZXI7Cit1c2luZyBRVE1fTkFNRVNQQUNFOjpRQWNjZWxlcm9tZXRl
ckZpbHRlcjsKK3VzaW5nIFFUTV9OQU1FU1BBQ0U6OlFBY2NlbGVyb21ldGVyUmVhZGluZzsKKyNl
bmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmljZU1vdGlvbkNvbnRyb2xs
ZXI7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ7CisKK2NsYXNzIERldmljZU1v
dGlvblByb3ZpZGVyUXQgOiBwdWJsaWMgUUFjY2VsZXJvbWV0ZXJGaWx0ZXIgeworcHVibGljOgor
ICAgIERldmljZU1vdGlvblByb3ZpZGVyUXQoKTsKKyAgICB+RGV2aWNlTW90aW9uUHJvdmlkZXJR
dCgpOworCisgICAgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU1vdGlvbkNvbnRyb2xsZXIqKTsK
KworICAgIGJvb2wgZmlsdGVyKFFBY2NlbGVyb21ldGVyUmVhZGluZyopOworCisgICAgdm9pZCBz
dGFydCgpOworICAgIHZvaWQgc3RvcCgpOworICAgIERldmljZU1vdGlvbkRhdGEqIGN1cnJlbnRE
ZXZpY2VNb3Rpb24oKSBjb25zdCB7IHJldHVybiBtX21vdGlvbi5nZXQoKTsgfQorCitwcml2YXRl
OgorICAgIFJlZlB0cjxEZXZpY2VNb3Rpb25EYXRhPiBtX21vdGlvbjsKKyAgICBRQWNjZWxlcm9t
ZXRlciBtX2FjY2VsZXJhdGlvbjsKKyAgICBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQqIG1f
ZGV2aWNlT3JpZW50YXRpb247CisgICAgRGV2aWNlTW90aW9uQ29udHJvbGxlciogbV9jb250cm9s
bGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGV2aWNlTW90
aW9uUHJvdmlkZXJRdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9E
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyMzA4NzBmMDRmMWVj
N2FkZTAyZTk1Mzk2N2FmMWNmMDFkMTQzYzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcApAQCAtMCwwICsx
LDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgiCisKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyUXQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIERldmljZU9yaWVu
dGF0aW9uQ2xpZW50UXQ6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCit7
CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6
c2V0Q29udHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCit7
CisgICAgLy8gSW5pdGlhbGl6ZSBsYXppbHkuCisgICAgaWYgKCFtX3Byb3ZpZGVyICYmIGNvbnRy
b2xsZXIpCisgICAgICAgIG1fcHJvdmlkZXIgPSBhZG9wdFB0cihuZXcgRGV2aWNlT3JpZW50YXRp
b25Qcm92aWRlclF0KTsKKworICAgIG1fcHJvdmlkZXItPnNldENvbnRyb2xsZXIoY29udHJvbGxl
cik7Cit9CisKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RhcnRVcGRhdGluZygp
Cit7CisgICAgaWYgKG1fcHJvdmlkZXIpCisgICAgICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7Cit9
CisKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKCkKK3sKKyAg
ICBpZiAobV9wcm92aWRlcikKKyAgICAgICAgbV9wcm92aWRlci0+c3RvcCgpOworfQorCitEZXZp
Y2VPcmllbnRhdGlvbiogRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVudGF0aW9u
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gKG1fcHJvdmlkZXIpID8gbV9wcm92aWRlci0+bGFzdE9y
aWVudGF0aW9uKCkgOiAwOworfQorCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45MTI0NGRiYTY4Yzc1YWVkOGQ0ZDgxNGFmY2NlN2ZhOTM3M2IxNjE5Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50
YXRpb25DbGllbnRRdC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworI2lmbmRl
ZiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0X2gKKyNkZWZpbmUgRGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdF9oCisKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbi5oIgorI2luY2x1ZGUgIkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50LmgiCisKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKKyNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ7CisK
K2NsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQgOiBwdWJsaWMgRGV2aWNlT3JpZW50YXRp
b25DbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlciopOworICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5n
KCk7CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpOworICAgIHZpcnR1YWwgRGV2aWNl
T3JpZW50YXRpb24qIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBk
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKKworcHJpdmF0ZToKKyAgICBP
d25QdHI8RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0PiBtX3Byb3ZpZGVyOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGV2aWNlT3JpZW50YXRpb25DbGllbnRR
dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3Jp
ZW50YXRpb25Qcm92aWRlclF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzI5OGVmMmU0Yzc4MzQwMTdjMTcz
MTQyMzk3MzJjNjExZGFlMjk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcApAQCAtMCwwICsxLDc0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqCisgKi8KKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyUXQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyUXQ6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpCisgICAg
OiBtX2NvbnRyb2xsZXIoMCkKK3sKKyAgICBtX3NlbnNvci5hZGRGaWx0ZXIodGhpcyk7CisgICAg
bV9sYXN0T3JpZW50YXRpb24gPSBEZXZpY2VPcmllbnRhdGlvbjo6Y3JlYXRlKCk7Cit9CisKK3Zv
aWQgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpzZXRDb250cm9sbGVyKERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKK3sKKyAgICBpZiAoIWNvbnRyb2xsZXIpCisg
ICAgICAgIHN0b3AoKTsKKworICAgIG1fY29udHJvbGxlciA9IGNvbnRyb2xsZXI7Cit9CisKK3Zv
aWQgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpzdGFydCgpCit7CisgICAgbV9zZW5zb3Iu
c3RhcnQoKTsKK30KKwordm9pZCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0b3AoKQor
eworICAgIG1fc2Vuc29yLnN0b3AoKTsKK30KKworYm9vbCBEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQ6OmZpbHRlcihRUm90YXRpb25SZWFkaW5nKiByZWFkaW5nKQoreworICAgIGlmIChtX2Nv
bnRyb2xsZXIpIHsKKyAgICAgICAgLy8gUHJvdmlkZSBkZXZpY2Ugb3JpZW50YXRpb24gZGF0YSBh
Y2NvcmRpbmcgVzNDIHNwZWM6CisgICAgICAgIC8vIGh0dHA6Ly9kZXYudzMub3JnL2dlby9hcGkv
c3BlYy1zb3VyY2Utb3JpZW50YXRpb24uaHRtbAorICAgICAgICAvLyBRdCBtb2JpbGl0eSAoUXRT
ZW5zb3JzIGluIFF0NSkgcHJvdmlkZSB0aGVzZSBkYXRhIHZpYSBRUm90YXRpb25TZW5zb3IKKyAg
ICAgICAgLy8gdXNpbmcgdGhlIFFSb3RhdGlvblJlYWRpbmcgY2xhc3M6CisgICAgICAgIC8vICAt
IHRoZSByb3RhdGlvbiBhcm91bmQgeiBheGlzIChhbHBoYSkgaXMgZ2l2ZW4gYXMgeiBpbiBRUm90
YXRpb25SZWFkaW5nOworICAgICAgICAvLyAgLSB0aGUgcm90YXRpb24gYXJvdW5kIHggYXhpcyAo
YmV0YSkgaXMgZ2l2ZW4gYXMgeCBpbiBRUm90YXRpb25SZWFkaW5nOworICAgICAgICAvLyAgLSB0
aGUgcm90YXRpb24gYXJvdW5kIHkgYXhpcyAoZ2FtbWEpIGlzIGdpdmVuIGFzIHkgaW4gUVJvdGF0
aW9uUmVhZGluZzsKKyAgICAgICAgLy8gU2VlOiBodHRwOi8vZG9jLnF0Lm5va2lhLmNvbS9xdG1v
YmlsaXR5LTEuMC9xcm90YXRpb25yZWFkaW5nLmh0bWwKKyAgICAgICAgLy8gVGhlIFogKGFscGhh
KSByb3RhdGlvbiBhbmdsZSBpcyBjaGVja2VkIHZpYSBoYXNBbHBoYSgpIHByaXZhdGUgbWV0aG9k
LAorICAgICAgICAvLyBkZXBlbmRpbmcgaWYgdGhlIGRldmljZSBpcyBhYmxlIGRvIGRldGVjdCB0
aGUgYWxwaGEgcm90YXRpb24uIFggKGJldGEpIGFuZAorICAgICAgICAvLyBZIChnYW1tYSkgYXhp
cyBhcmUgYXZhaWxibGUgaW4gdGhpcyBjb250ZXh0LgorICAgICAgICBtX2xhc3RPcmllbnRhdGlv
biA9IERldmljZU9yaWVudGF0aW9uOjpjcmVhdGUoaGFzQWxwaGEoKSwgcmVhZGluZy0+eigpLAor
ICAgICAgICAgICAgICAgIC8qIHggYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPngoKSwKKyAg
ICAgICAgICAgICAgICAvKiB5IGF2YWlsYWJsZSAqLyB0cnVlLCByZWFkaW5nLT55KCkpOworICAg
ICAgICBtX2NvbnRyb2xsZXItPmRpZENoYW5nZURldmljZU9yaWVudGF0aW9uKG1fbGFzdE9yaWVu
dGF0aW9uLmdldCgpKTsKKyAgICB9CisKKyAgICAvLyBXZSBhcmUgdGhlIG9ubHkgZmlsdGVyLCBz
byBubyBuZWVkIHRvIHByb3BhZ2F0ZS4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlk
ZXJRdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGEwM2NhNDRmMmI4NTI0N2EwYTFkZjdlOTQ0ZmQwN2MwNjJj
YmJjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0Rldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAq
LworI2lmbmRlZiBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXRfaAorI2RlZmluZSBEZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyUXRfaAorCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb24uaCIK
KyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlIDxRUm90
YXRpb25GaWx0ZXI+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCisjaWYgUVRfVkVSU0lPTiA8
IFFUX1ZFUlNJT05fQ0hFQ0soNSwgMCwgMCkKK3VzaW5nIFFUTV9OQU1FU1BBQ0U6OlFSb3RhdGlv
bkZpbHRlcjsKK3VzaW5nIFFUTV9OQU1FU1BBQ0U6OlFSb3RhdGlvblJlYWRpbmc7Cit1c2luZyBR
VE1fTkFNRVNQQUNFOjpRUm90YXRpb25TZW5zb3I7CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQgOiBwdWJsaWMgUVJvdGF0
aW9uRmlsdGVyIHsKK3B1YmxpYzoKKyAgICBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQoKTsK
KworICAgIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqKTsK
KworICAgIGJvb2wgZmlsdGVyKFFSb3RhdGlvblJlYWRpbmcqKTsKKworICAgIHZvaWQgc3RhcnQo
KTsKKyAgICB2b2lkIHN0b3AoKTsKKyAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4g
bV9zZW5zb3IuaXNBY3RpdmUoKTsgfQorICAgIERldmljZU9yaWVudGF0aW9uKiBsYXN0T3JpZW50
YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2xhc3RPcmllbnRhdGlvbi5nZXQoKTsgfQorICAgIGJv
b2wgaGFzQWxwaGEoKSBjb25zdCB7IHJldHVybiBtX3NlbnNvci5wcm9wZXJ0eSgiaGFzWiIpLnRv
Qm9vbCgpOyB9CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uPiBtX2xh
c3RPcmllbnRhdGlvbjsKKyAgICBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIG1fY29udHJv
bGxlcjsKKyAgICBRUm90YXRpb25TZW5zb3IgbV9zZW5zb3I7Cit9OworCit9CisKKyNlbmRpZiAv
LyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNDY0NjMzNzg0MjFjZTBhYjAzOWI3MTEwOTkxZWZhZmUxMzZk
N2Q2Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiRGV2aWNlTW90aW9uQ2xpZW50UXQuaCIKLQotI2luY2x1ZGUg
IkRldmljZU1vdGlvblByb3ZpZGVyUXQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1EZXZp
Y2VNb3Rpb25DbGllbnRRdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQoKQotICAgIDogbV9wcm92aWRl
cihuZXcgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCkKLXsKLX0KLQotRGV2aWNlTW90aW9uQ2xpZW50
UXQ6On5EZXZpY2VNb3Rpb25DbGllbnRRdCgpCi17Ci0gICAgZGVsZXRlIG1fcHJvdmlkZXI7Ci19
Ci0KLXZvaWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6OnNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9u
Q29udHJvbGxlciogY29udHJvbGxlcikKLXsKLSAgICBtX3Byb3ZpZGVyLT5zZXRDb250cm9sbGVy
KGNvbnRyb2xsZXIpOwotfQotCi12b2lkIERldmljZU1vdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0
aW5nKCkKLXsKLSAgICBtX3Byb3ZpZGVyLT5zdGFydCgpOwotfQotCi12b2lkIERldmljZU1vdGlv
bkNsaWVudFF0OjpzdG9wVXBkYXRpbmcoKQotewotICAgIG1fcHJvdmlkZXItPnN0b3AoKTsKLX0K
LQotRGV2aWNlTW90aW9uRGF0YSogRGV2aWNlTW90aW9uQ2xpZW50UXQ6OmN1cnJlbnREZXZpY2VN
b3Rpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX3Byb3ZpZGVyLT5jdXJyZW50RGV2aWNlTW90
aW9uKCk7Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6OmRldmljZU1vdGlvbkNvbnRy
b2xsZXJEZXN0cm95ZWQoKQotewotICAgIGRlbGV0ZSB0aGlzOwotfQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Rl
dmljZU1vdGlvbkNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Rl
dmljZU1vdGlvbkNsaWVudFF0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiOTY0
YTMzZTUzOTcxNDZjMjYyM2FkNjVhMzBhOGNkZjI2ZDEyMjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EZXZpY2VNb3Rpb25DbGllbnRRdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykKLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0g
KgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
LSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgRGV2aWNlTW90aW9uQ2xpZW50UXRfaAotI2RlZmlu
ZSBEZXZpY2VNb3Rpb25DbGllbnRRdF9oCi0KLSNpbmNsdWRlICJEZXZpY2VNb3Rpb25DbGllbnQu
aCIKLSNpbmNsdWRlICJEZXZpY2VNb3Rpb25EYXRhLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotY2xhc3MgRGV2aWNlTW90aW9uQ29udHJvbGxlcjsKLWNsYXNzIERldmljZU1vdGlvblByb3Zp
ZGVyUXQ7Ci0KLWNsYXNzIERldmljZU1vdGlvbkNsaWVudFF0IDogcHVibGljIERldmljZU1vdGlv
bkNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgRGV2aWNlTW90aW9uQ2xpZW50UXQoKTsKLSAgICB2aXJ0
dWFsIH5EZXZpY2VNb3Rpb25DbGllbnRRdCgpOwotCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRy
b2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciopOwotICAgIHZpcnR1YWwgdm9pZCBzdGFydFVw
ZGF0aW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpOwotICAgIHZpcnR1YWwg
RGV2aWNlTW90aW9uRGF0YSogY3VycmVudERldmljZU1vdGlvbigpIGNvbnN0OwotICAgIHZpcnR1
YWwgdm9pZCBkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVzdHJveWVkKCk7Ci0KLXByaXZhdGU6Ci0g
ICAgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCogbV9wcm92aWRlcjsKLX07Ci0KLX0gLy8gbmFtZXNw
ZWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIERldmljZU1vdGlvbkNsaWVudFF0X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJR
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3Zp
ZGVyUXQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NTU3MDNkNzczZGIzYzNj
NTIxMmZmZTJiODI2ZTFiYmQzYmRiZTUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90
aW9uUHJvdmlkZXJRdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
LSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRldmljZU1vdGlvblBy
b3ZpZGVyUXQuaCIKLQotI2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNs
dWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1EZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0KCkKLSAg
ICA6IG1fbW90aW9uKERldmljZU1vdGlvbkRhdGE6OmNyZWF0ZSgpKQotICAgICwgbV9kZXZpY2VP
cmllbnRhdGlvbihuZXcgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KQotICAgICwgbV9jb250
cm9sbGVyKDApCi17Ci0gICAgbV9hY2NlbGVyYXRpb24uYWRkRmlsdGVyKHRoaXMpOwotfQotCi1E
ZXZpY2VNb3Rpb25Qcm92aWRlclF0Ojp+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpCi17Ci0gICAg
ZGVsZXRlIG1fZGV2aWNlT3JpZW50YXRpb247Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdDo6c2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyKQot
ewotICAgIEFTU0VSVChjb250cm9sbGVyKTsKLSAgICBBU1NFUlQoIW1fY29udHJvbGxlcik7Ci0g
ICAgbV9jb250cm9sbGVyID0gY29udHJvbGxlcjsKLX0KLQotdm9pZCBEZXZpY2VNb3Rpb25Qcm92
aWRlclF0OjpzdGFydCgpCi17Ci0gICAgbV9hY2NlbGVyYXRpb24uc3RhcnQoKTsKLSAgICBtX2Rl
dmljZU9yaWVudGF0aW9uLT5zdGFydCgpOwotfQotCi12b2lkIERldmljZU1vdGlvblByb3ZpZGVy
UXQ6OnN0b3AoKQotewotICAgIG1fYWNjZWxlcmF0aW9uLnN0b3AoKTsKLSAgICBtX2RldmljZU9y
aWVudGF0aW9uLT5zdG9wKCk7Ci19Ci0KLWJvb2wgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6Zmls
dGVyKFFBY2NlbGVyb21ldGVyUmVhZGluZyogcmVhZGluZykKLXsKLSAgICBpZiAoIW1fY29udHJv
bGxlcikgewotICAgICAgICAvLyBXZSBhcmUgdGhlIG9ubHkgZmlsdGVyLiBObyBuZWVkIHRvIHBy
b3BhZ2F0ZSBmcm9tIGhlcmUuCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBS
ZWZQdHI8RGV2aWNlTW90aW9uRGF0YTo6QWNjZWxlcmF0aW9uPiBhY2NlbCA9IERldmljZU1vdGlv
bkRhdGE6OkFjY2VsZXJhdGlvbjo6Y3JlYXRlKAotICAgICAgICAgICAgLyogeCBhdmFpbGFibGUg
Ki8gdHJ1ZSwgcmVhZGluZy0+eCgpLAotICAgICAgICAgICAgLyogeSBhdmFpbGFibGUgKi8gdHJ1
ZSwgcmVhZGluZy0+eSgpLAotICAgICAgICAgICAgLyogeiBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVh
ZGluZy0+eigpKTsKLQotICAgIFJlZlB0cjxEZXZpY2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGU+
IHJvdGF0aW9uID0gRGV2aWNlTW90aW9uRGF0YTo6Um90YXRpb25SYXRlOjpjcmVhdGUoCi0gICAg
ICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uLT5oYXNBbHBoYSgpLCBtX2RldmljZU9yaWVudGF0
aW9uLT5sYXN0T3JpZW50YXRpb24oKS0+YWxwaGEoKSwKLSAgICAgICAgICAgIC8qIGJldGEgYXZh
aWxhYmxlICovIHRydWUsIG1fZGV2aWNlT3JpZW50YXRpb24tPmxhc3RPcmllbnRhdGlvbigpLT5i
ZXRhKCksCi0gICAgICAgICAgICAvKiBnYW1tYSBhdmFpbGFibGUgKi8gdHJ1ZSwgbV9kZXZpY2VP
cmllbnRhdGlvbi0+bGFzdE9yaWVudGF0aW9uKCktPmdhbW1hKCkpOwotCi0gICAgbV9tb3Rpb24g
PSBEZXZpY2VNb3Rpb25EYXRhOjpjcmVhdGUoYWNjZWwsCi0gICAgICAgICAgICBhY2NlbCwgLyog
RklYTUU6IE5lZWRzIHRvIHByb3ZpZGUgYWNjZWxlcmF0aW9uIGluY2x1ZGUgZ3Jhdml0eS4gKi8K
LSAgICAgICAgICAgIHJvdGF0aW9uLAotICAgICAgICAgICAgZmFsc2UsIDAgLyogVGhlIGludGVy
dmFsIGlzIHRyZWF0ZWQgaW50ZXJuYWxseSBieSBRdCBtb2JpbGl0eSAqLyk7Ci0KLSAgICBtX2Nv
bnRyb2xsZXItPmRpZENoYW5nZURldmljZU1vdGlvbihtX21vdGlvbi5nZXQoKSk7Ci0KLSAgICAv
LyBXZSBhcmUgdGhlIG9ubHkgZmlsdGVyLiBObyBuZWVkIHRvIHByb3BhZ2F0ZSBmcm9tIGhlcmUu
Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVy
UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NjY0OTBmMmNjNGJhZTA4YzA4
ZGM3MWIwNGJiOGM5YWRkYjhhMWFkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9u
UHJvdmlkZXJRdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
Ci0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgot
ICovCi0KLSNpZm5kZWYgRGV2aWNlTW90aW9uUHJvdmlkZXJRdF9oCi0jZGVmaW5lIERldmljZU1v
dGlvblByb3ZpZGVyUXRfaAotCi0jaW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0YS5oIgotCi0jaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPFFBY2NlbGVyb21ldGVyRmlsdGVyPgotCi0j
aWYgUVRfVkVSU0lPTiA8IFFUX1ZFUlNJT05fQ0hFQ0soNSwgMCwgMCkKLXVzaW5nIFFUTV9OQU1F
U1BBQ0U6OlFBY2NlbGVyb21ldGVyOwotdXNpbmcgUVRNX05BTUVTUEFDRTo6UUFjY2VsZXJvbWV0
ZXJGaWx0ZXI7Ci11c2luZyBRVE1fTkFNRVNQQUNFOjpRQWNjZWxlcm9tZXRlclJlYWRpbmc7Ci0j
ZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEZXZpY2VNb3Rpb25Db250cm9s
bGVyOwotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OwotCi1jbGFzcyBEZXZpY2VN
b3Rpb25Qcm92aWRlclF0IDogcHVibGljIFFBY2NlbGVyb21ldGVyRmlsdGVyIHsKLXB1YmxpYzoK
LSAgICBEZXZpY2VNb3Rpb25Qcm92aWRlclF0KCk7Ci0gICAgfkRldmljZU1vdGlvblByb3ZpZGVy
UXQoKTsKLQotICAgIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKik7
Ci0KLSAgICBib29sIGZpbHRlcihRQWNjZWxlcm9tZXRlclJlYWRpbmcqKTsKLQotICAgIHZvaWQg
c3RhcnQoKTsKLSAgICB2b2lkIHN0b3AoKTsKLSAgICBEZXZpY2VNb3Rpb25EYXRhKiBjdXJyZW50
RGV2aWNlTW90aW9uKCkgY29uc3QgeyByZXR1cm4gbV9tb3Rpb24uZ2V0KCk7IH0KLQotcHJpdmF0
ZToKLSAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YT4gbV9tb3Rpb247Ci0gICAgUUFjY2VsZXJv
bWV0ZXIgbV9hY2NlbGVyYXRpb247Ci0gICAgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KiBt
X2RldmljZU9yaWVudGF0aW9uOwotICAgIERldmljZU1vdGlvbkNvbnRyb2xsZXIqIG1fY29udHJv
bGxlcjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIERldmljZU1v
dGlvblByb3ZpZGVyUXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGVlNzk0MjIxMGEzMmViZTg1OTJhOWRkN2E3ZWI3MGZhZjk1MmM3MTMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCIKLSNpbmNsdWRl
ICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0KCkK
LSAgICA6IG1fcHJvdmlkZXIobmV3IERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCkKLXsKLX0K
LQotRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6fkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQo
KQotewotICAgIGRlbGV0ZSBtX3Byb3ZpZGVyOwotfQotCi12b2lkIERldmljZU9yaWVudGF0aW9u
Q2xpZW50UXQ6OnNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250
cm9sbGVyKQotewotICAgIG1fcHJvdmlkZXItPnNldENvbnRyb2xsZXIoY29udHJvbGxlcik7Ci19
Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RhcnRVcGRhdGluZygpCi17Ci0g
ICAgbV9wcm92aWRlci0+c3RhcnQoKTsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dFF0OjpzdG9wVXBkYXRpbmcoKQotewotICAgIG1fcHJvdmlkZXItPnN0b3AoKTsKLX0KLQotRGV2
aWNlT3JpZW50YXRpb24qIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6Omxhc3RPcmllbnRhdGlv
bigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcHJvdmlkZXItPmxhc3RPcmllbnRhdGlvbigpOwot
fQotCi12b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OmRldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlckRlc3Ryb3llZCgpCi17Ci0gICAgZGVsZXRlIHRoaXM7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDhiODQ0MWUwZmI5ZDMyYTFlODJkYjAzNzNkODcxNDgwMWJkODFiNjQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgKKysrIC9kZXYvbnVsbApA
QCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLSNpZm5kZWYgRGV2aWNlT3JpZW50YXRp
b25DbGllbnRRdF9oCi0jZGVmaW5lIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXRfaAotCi0jaW5j
bHVkZSAiRGV2aWNlT3JpZW50YXRpb24uaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNs
aWVudC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERldmljZU9yaWVudGF0aW9u
UHJvdmlkZXJRdDsKLQotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCA6IHB1YmxpYyBE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgRGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdCgpOwotICAgIHZpcnR1YWwgfkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQoKTsKLQot
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciopOwotICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCk7Ci0gICAgdmlydHVhbCB2b2lk
IHN0b3BVcGRhdGluZygpOwotICAgIHZpcnR1YWwgRGV2aWNlT3JpZW50YXRpb24qIGxhc3RPcmll
bnRhdGlvbigpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXJEZXN0cm95ZWQoKTsKLQotcHJpdmF0ZToKLSAgICBEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQqIG1fcHJvdmlkZXI7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRp
ZiAvLyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGU0NmQyNDRjNmY1ZTc5MzY2ZGI1
NmU1NjIyYTNiYjU4ZGJmODMyYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
LSAqCi0gKi8KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyUXQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1EZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyUXQ6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpCi0gICAgOiBtX2NvbnRy
b2xsZXIoMCkKLXsKLSAgICBtX3NlbnNvci5hZGRGaWx0ZXIodGhpcyk7Ci0gICAgbV9sYXN0T3Jp
ZW50YXRpb24gPSBEZXZpY2VPcmllbnRhdGlvbjo6Y3JlYXRlKCk7Ci19Ci0KLXZvaWQgRGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0OjpzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlciogY29udHJvbGxlcikKLXsKLSAgICBpZiAoIWNvbnRyb2xsZXIpCi0gICAgICAgIHN0
b3AoKTsKLQotICAgIG1fY29udHJvbGxlciA9IGNvbnRyb2xsZXI7Ci19Ci0KLXZvaWQgRGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0OjpzdGFydCgpCi17Ci0gICAgbV9zZW5zb3Iuc3RhcnQoKTsK
LX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0b3AoKQotewotICAgIG1f
c2Vuc29yLnN0b3AoKTsKLX0KLQotYm9vbCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OmZp
bHRlcihRUm90YXRpb25SZWFkaW5nKiByZWFkaW5nKQotewotICAgIGlmIChtX2NvbnRyb2xsZXIp
IHsKLSAgICAgICAgLy8gUHJvdmlkZSBkZXZpY2Ugb3JpZW50YXRpb24gZGF0YSBhY2NvcmRpbmcg
VzNDIHNwZWM6Ci0gICAgICAgIC8vIGh0dHA6Ly9kZXYudzMub3JnL2dlby9hcGkvc3BlYy1zb3Vy
Y2Utb3JpZW50YXRpb24uaHRtbAotICAgICAgICAvLyBRdCBtb2JpbGl0eSBwcm92aWRlIHRoZXNl
IGRhdGEgdmlhIFFSb3RhdGlvblNlbnNvciB1c2luZyB0aGUKLSAgICAgICAgLy8gUVJvdGF0aW9u
UmVhZGluZyBjbGFzczoKLSAgICAgICAgLy8gIC0gdGhlIHJvdGF0aW9uIGFyb3VuZCB6IGF4aXMg
KGFscGhhKSBpcyBnaXZlbiBhcyB6IGluIFFSb3RhdGlvblJlYWRpbmc7Ci0gICAgICAgIC8vICAt
IHRoZSByb3RhdGlvbiBhcm91bmQgeCBheGlzIChiZXRhKSBpcyBnaXZlbiBhcyB4IGluIFFSb3Rh
dGlvblJlYWRpbmc7Ci0gICAgICAgIC8vICAtIHRoZSByb3RhdGlvbiBhcm91bmQgeSBheGlzIChn
YW1tYSkgaXMgZ2l2ZW4gYXMgeSBpbiBRUm90YXRpb25SZWFkaW5nOwotICAgICAgICAvLyBTZWU6
IGh0dHA6Ly9kb2MucXQubm9raWEuY29tL3F0bW9iaWxpdHktMS4wL3Fyb3RhdGlvbnJlYWRpbmcu
aHRtbAotICAgICAgICAvLyBUaGUgWiAoYWxwaGEpIHJvdGF0aW9uIGFuZ2xlIGlzIGNoZWNrZWQg
dmlhIGhhc0FscGhhKCkgcHJpdmF0ZSBtZXRob2QsCi0gICAgICAgIC8vIGRlcGVuZGluZyBpZiB0
aGUgZGV2aWNlIGlzIGFibGUgZG8gZGV0ZWN0IHRoZSBhbHBoYSByb3RhdGlvbi4gWCAoYmV0YSkg
YW5kCi0gICAgICAgIC8vIFkgKGdhbW1hKSBheGlzIGFyZSBhdmFpbGJsZSBpbiB0aGlzIGNvbnRl
eHQuCi0gICAgICAgIG1fbGFzdE9yaWVudGF0aW9uID0gRGV2aWNlT3JpZW50YXRpb246OmNyZWF0
ZShoYXNBbHBoYSgpLCByZWFkaW5nLT56KCksCi0gICAgICAgICAgICAgICAgLyogeCBhdmFpbGFi
bGUgKi8gdHJ1ZSwgcmVhZGluZy0+eCgpLAotICAgICAgICAgICAgICAgIC8qIHkgYXZhaWxhYmxl
ICovIHRydWUsIHJlYWRpbmctPnkoKSk7Ci0gICAgICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdl
RGV2aWNlT3JpZW50YXRpb24obV9sYXN0T3JpZW50YXRpb24uZ2V0KCkpOwotICAgIH0KLQotICAg
IC8vIFdlIGFyZSB0aGUgb25seSBmaWx0ZXIsIHNvIG5vIG5lZWQgdG8gcHJvcGFnYXRlLgotICAg
IHJldHVybiBmYWxzZTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwN2YwYTliMGFmNTFlNGFmY2VhMjg5OWNhZWJjM2Q5NTI2
MWUyMWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQu
aAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
LSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotI2lmbmRl
ZiBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXRfaAotI2RlZmluZSBEZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyUXRfaAotCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb24uaCIKLSNpbmNsdWRl
ICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
Ci0KLSNpbmNsdWRlIDxRUm90YXRpb25GaWx0ZXI+Ci0KLSNpZiBRVF9WRVJTSU9OIDwgUVRfVkVS
U0lPTl9DSEVDSyg1LCAwLCAwKQotdXNpbmcgUVRNX05BTUVTUEFDRTo6UVJvdGF0aW9uRmlsdGVy
OwotdXNpbmcgUVRNX05BTUVTUEFDRTo6UVJvdGF0aW9uUmVhZGluZzsKLXVzaW5nIFFUTV9OQU1F
U1BBQ0U6OlFSb3RhdGlvblNlbnNvcjsKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCA6IHB1YmxpYyBRUm90YXRpb25GaWx0
ZXIgewotcHVibGljOgotICAgIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpOwotCi0gICAg
dm9pZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopOwotCi0gICAg
Ym9vbCBmaWx0ZXIoUVJvdGF0aW9uUmVhZGluZyopOwotCi0gICAgdm9pZCBzdGFydCgpOwotICAg
IHZvaWQgc3RvcCgpOwotICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX3NlbnNv
ci5pc0FjdGl2ZSgpOyB9Ci0gICAgRGV2aWNlT3JpZW50YXRpb24qIGxhc3RPcmllbnRhdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fbGFzdE9yaWVudGF0aW9uLmdldCgpOyB9Ci0gICAgYm9vbCBoYXNB
bHBoYSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vuc29yLnByb3BlcnR5KCJoYXNaIikudG9Cb29sKCk7
IH0KLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb24+IG1fbGFzdE9yaWVu
dGF0aW9uOwotICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogbV9jb250cm9sbGVyOwot
ICAgIFFSb3RhdGlvblNlbnNvciBtX3NlbnNvcjsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIERldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJn
ZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCBlYjRlZmE1ZmU5NTRjYjcx
MjY0ZGQyMTBjZGFjOWExYWNlYjI3YTYxLi4yMmE4MTJiN2E0YWUwODk1ZmY1NzI1OTJiM2RjMmVi
MTRmYjYwYWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTc4OSw2ICs3ODksMTAgQEAgY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX1RPVUNIX0VWRU5UUz0xKSB7CiAgICAgICAgIFNoYXJlZC9xdC9OYXRpdmVX
ZWJUb3VjaEV2ZW50UXQuY3BwCiB9CiAKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ERVZJQ0Vf
T1JJRU5UQVRJT049MSkgeworICAgIGhhdmVRdCg1KTogUVQgKz0gc2Vuc29ycworfQorCiBjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfR0VPTE9DQVRJT049MSk6IFFUICs9IGxvY2F0aW9uCiAKIHBs
dWdpbl9iYWNrZW5kX3hsaWIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IGY0MWM3ZTAxNTBlOTAwNjk0MTgyNGRiNjMzZGUyMTk2MjM0ZDYz
MmEuLjExNTY4ZDM3NjU0ZTE1M2I2Y2Y4OGVmMzU2Nzg1MTIzOTg1NzAwNjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEzMCw2ICsxMzAs
MTAgQEAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oUVQpCisjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25DbGllbnRRdC5oIgorI2luY2x1ZGUgIkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1
bHQuaCIKICNpbmNsdWRlIDxRTWltZURhdGE+CiAjZW5kaWYKQEAgLTI0OCw2ICsyNTIsMTAgQEAg
V2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIFdlYkNv
cmU6OnByb3ZpZGVHZW9sb2NhdGlvblRvKG1fcGFnZS5nZXQoKSwgbmV3IFdlYkdlb2xvY2F0aW9u
Q2xpZW50KHRoaXMpKTsKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYm
IFBMQVRGT1JNKFFUKQorICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VNb3Rpb25UbyhtX3BhZ2Uu
Z2V0KCksIG5ldyBEZXZpY2VNb3Rpb25DbGllbnRRdCk7CisgICAgV2ViQ29yZTo6cHJvdmlkZURl
dmljZU9yaWVudGF0aW9uVG8obV9wYWdlLmdldCgpLCBuZXcgRGV2aWNlT3JpZW50YXRpb25DbGll
bnRRdCk7CisjZW5kaWYKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FD
WV9OT1RJRklDQVRJT05TKQogICAgIFdlYkNvcmU6OnByb3ZpZGVOb3RpZmljYXRpb24obV9wYWdl
LmdldCgpLCBuZXcgV2ViTm90aWZpY2F0aW9uQ2xpZW50KHRoaXMpKTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL2FwaS5wcmkgYi9Tb3VyY2UvYXBpLnByaQppbmRleCA2YzJkZjdiNzA3ZWZm
MmQ2YTc0OTI1MjhhNjk3MGVjM2EzNDgxYTBkLi5iZTQ2YTYyMTkxMTZkN2Y3OWI2MWZhYmUzM2Qw
MjFkZjU2N2FmYzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvYXBpLnByaQorKysgYi9Tb3VyY2UvYXBp
LnByaQpAQCAtMjYyLDIwICsyNjIsNiBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfREVWSUNF
X09SSUVOVEFUSU9OPTEpIHx8IGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9PUklFTgogICAgIGhh
dmVRdCg1KTogUVQgKz0gc2Vuc29ycwogfQogCi1jb250YWlucyhERUZJTkVTLCBFTkFCTEVfREVW
SUNFX09SSUVOVEFUSU9OPTEpIHsKLSAgICBIRUFERVJTICs9IFwKLSAgICAgICAgJCRQV0QvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmggXAotICAgICAgICAk
JFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oIFwK
LSAgICAgICAgJCRQV0QvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9u
Q2xpZW50UXQuaCBcCi0gICAgICAgICQkUFdEL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaAotCi0gICAgU09VUkNFUyArPSBcCi0gICAgICAgICQk
UFdEL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAgXAot
ICAgICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdC5jcHAgXAotICAgICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNl
T3JpZW50YXRpb25DbGllbnRRdC5jcHAgXAotICAgICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcAotfQotCiBjb250YWlucyhE
RUZJTkVTLCBFTkFCTEVfR0VPTE9DQVRJT049MSkgewogICAgICBoYXZlUXQoNSk6IFFUICs9IGxv
Y2F0aW9uCiAKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA3M2FmZDU4
YWFmZGEwY2YzZjcyNjNiY2QwNDkxZTBkYWFhMGEzZDM3Li5kNWI1YjMwZDU0YTRiMWVkMzJjYjcy
MzZiMTVhZWY2MjFhM2E2ZDM3IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDUtMDEgIExhcnMgS251ZHNlbiAgPGxhcnMua251ZHNl
bkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBNYWtlIERldmljZU1vdGlvbiBhbmQgRGV2aWNl
T3JpZW50YXRpb24gd29yayB3aXRoIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTW92aW5nIERldmljZU1vdGlvbiBhbmQgRGV2aWNlT3JpZW50
YXRpb24gY2xpZW50cyBhbmQgcHJvdmlkZXJzCisgICAgICAgIHRvIFdlYkNvcmUuICBUaGlzIGlz
IGRvbmUgdG8gYWxsb3cgY2xlYW4gZGVwZW5kZW5jaWVzIHdoZW4KKyAgICAgICAgc3RhdGljYWxs
eSBsaW5raW5nIFdLMi4KKworICAgICAgICAqIFNvdXJjZS9hcGkucHJpOgorCiAyMDEyLTA1LTAx
ICBMYW5kcnkgQnJldWlsICA8bGFuZHJ5QG9wZW5ic2Qub3JnPgogCiAgICAgICAgIFtHVEtdIEZp
eCBnc3RyZWFtZXIgZGV0ZWN0aW9uIGR1cmluZyBjb25maWd1cmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139767</attachid>
            <date>2012-05-02 01:42:53 -0700</date>
            <delta_ts>2012-05-02 04:00:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64595-20120502104247.patch</filename>
            <type>text/plain</type>
            <size>47120</size>
            <attacher name="Lars Knudsen">larsgk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTI5ZDAxYTAxYjUwZWE1
MzQ3NTVhNzQ3OGQ3Yjk2ODc2NDEzYzZjZi4uMmRlOWI4NjJiYzhjYmJiMGZmNmNlMTA4YTMxZjE0
YTA1NDQ1ZGRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEyLTA1LTAxICBMYXJz
IEtudWRzZW4gIDxsYXJzLmtudWRzZW5Abm9raWEuY29tPgorCisgICAgICAgIFtRdF0gTWFrZSBE
ZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBh
ZGRlZC4gIFRoaXMgY2hhbmdlIGFkZHMgc3VwcG9ydCBmb3IgV0syCisgICAgICAgIHdoYXQgd2Fz
IGluIFdLMS4KKworICAgICAgICBBbHNvIG1vdmluZyBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9y
aWVudGF0aW9uIGNsaWVudHMgYW5kCisgICAgICAgIHByb3ZpZGVycyB0byBXZWJDb3JlLiAgVGhp
cyBpcyBkb25lIHRvIGFsbG93IGNsZWFuIGRlcGVuZGVuY2llcworICAgICAgICB3aGVuIHN0YXRp
Y2FsbHkgbGlua2luZyBXSzIuCisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdl
YkNvcmUucHJpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmNw
cDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90
aW9uQ2xpZW50UXQuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VNb3Rpb25DbGllbnRRdDo6fkRldmljZU1vdGlvbkNsaWVudFF0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVzdHJv
eWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzZXRDb250cm9s
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzdG9wVXBkYXRp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OmN1cnJlbnREZXZp
Y2VNb3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0Lmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlv
bkNsaWVudFF0LmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERldmljZU1vdGlvbkNs
aWVudFF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpEZXZpY2VN
b3Rpb25DbGllbnRRdCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Rl
dmljZU1vdGlvblByb3ZpZGVyUXQuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6On5EZXZpY2VNb3Rpb25Q
cm92aWRlclF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnNl
dENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6
c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RvcCk6
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpmaWx0ZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5o
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VNb3Rpb25Qcm92aWRlclF0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OmN1cnJlbnREZXZpY2VN
b3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQu
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50
UXQ6OnNldENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdDo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudFF0OjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVudGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9x
dC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCk6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0OjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQpOgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojp+RGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdDo6c2V0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdDo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyUXQ6OmZpbHRlcik6CisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojppc0FjdGl2ZSk6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6Omxhc3RPcmllbnRhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6Omhhc0FscGhhKToKKwog
MjAxMi0wNS0wMSAgU2lsdmlhIFBmZWlmZmVyICA8c2lsdmlhcGZAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIEF1ZGlvIGNvbnRyb2xzIGhhdmUgYSAxcHggc3VycGx1cyBvdXRsaW5lIGNvbWluZyBm
cm9tIFJlbmRlckltYWdlOjpwYWludFJlcGxhY2VkIGJhc2UgY2xhc3MsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ZTQ0MzNhY2MzNDA5Y2FmYTJhMzI4M2ZkY2NmNDM1ZTkzYmJiODQzMC4uNjQ4NWRmZjUwNzAyNjJi
NGExNDYxOGQ4MGU3YmVkZWE2ODg0ODBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDEyLTA1LTAxICBMYXJzIEtudWRzZW4gIDxsYXJzLmtudWRzZW5Abm9raWEuY29tPgorCisgICAg
ICAgIFtRdF0gTWFrZSBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0
aCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02NDU5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGluZyBzdXBwb3J0IGZvciBEZXZpY2VPcmllbnRhdGlvbiBpbiBXSzIgV2ViUGFnZQorCisg
ICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2UpOgorCiAyMDEyLTA1LTAx
ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBbUXRdIEFkZCBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIHRvIHNldCB0aGUgbWluLiBj
b250ZW50cyB3aWR0aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggOGU4YzcxNDYwYWRjMTk4MTY0YWRjYWZjYzgw
OTA1ZjFiNWMxZWEyZC4uZDBiNDUwYTI0NjZmMjVmNmRhOTQ2OTZmZmQxNDAzY2U2OWNmNTA1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCkBAIC0zNDMwLDYgKzM0MzAsMTggQEAgY29udGFpbnMoREVGSU5FUywgSEFW
RV9RUkFXRk9OVD0xKSB7CiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdDQuY3Bw
CiB9CiAKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT049MSkgewor
ICAgIEhFQURFUlMgKz0gXAorICAgICAgICBwbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25DbGllbnRR
dC5oIFwKKyAgICAgICAgcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oIFwKKyAg
ICAgICAgcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oIFwKKyAgICAgICAg
cGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgKKyAgICBTT1VSQ0VTICs9
IFwKKyAgICAgICAgcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwIFwKKyAgICAg
ICAgcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgXAorICAgICAgICBwbGF0
Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcCBcCisgICAgICAgIHBsYXRmb3Jt
L3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAKK30KIAogY29udGFpbnMoREVGSU5F
UywgRU5BQkxFX0dFT0xPQ0FUSU9OPTEpIHsKICAgICB2OCB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnByaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IGI0
MzBmY2IzZjg5ZTM3YTRiNzU1MzU1ZWRlNGFiMmJjNDIyY2MyYTAuLjZmMzE0NzI3OTJmYjQxZTUw
ZDE0M2FkZWVhNTRlMzE0Mzk2M2RhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC0xNjAsOCArMTYwLDEy
IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9HRU9MT0NBVElPTj0xKSB7CiB9CiAKIGNvbnRh
aW5zKERFRklORVMsIEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT049MSkgewotICAgIENPTkZJRyAq
PSBtb2JpbGl0eQotICAgIE1PQklMSVRZICo9IHNlbnNvcnMKKyAgICBoYXZlUXQoNSkgeworICAg
ICAgICBRVCArPSBzZW5zb3JzCisgICAgfSBlbHNlIHsKKyAgICAgICAgQ09ORklHICo9IG1vYmls
aXR5CisgICAgICAgIE1PQklMSVRZICo9IHNlbnNvcnMKKyAgICB9CiB9CiAKIGNvbnRhaW5zKERF
RklORVMsIFdURl9VU0VfUVRfTU9CSUxJVFlfU1lTVEVNSU5GTz0xKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTBmZGUyZTFjMDVmMmVjZDdkOGE1ODhlMTM2NjA5NGI1MjY1NjU5MAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmNw
cApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkRldmljZU1vdGlvbkNsaWVudFF0LmgiCisKKyNpbmNsdWRlICJEZXZpY2VN
b3Rpb25Qcm92aWRlclF0LmgiCisKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworRGV2aWNlTW90aW9uQ2xpZW50UXQ6On5EZXZpY2VNb3Rpb25DbGllbnRRdCgp
Cit7Cit9CisKK3ZvaWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6OmRldmljZU1vdGlvbkNvbnRyb2xs
ZXJEZXN0cm95ZWQoKQoreworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIERldmljZU1vdGlv
bkNsaWVudFF0OjpzZXRDb250cm9sbGVyKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xs
ZXIpCit7CisgICAgLy8gSW5pdGlhbGl6ZSBsYXppbHkuCisgICAgaWYgKCFtX3Byb3ZpZGVyICYm
IGNvbnRyb2xsZXIpCisgICAgICAgIG1fcHJvdmlkZXIgPSBhZG9wdFB0cihuZXcgRGV2aWNlTW90
aW9uUHJvdmlkZXJRdCk7CisKKyAgICBtX3Byb3ZpZGVyLT5zZXRDb250cm9sbGVyKGNvbnRyb2xs
ZXIpOworfQorCit2b2lkIERldmljZU1vdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0aW5nKCkKK3sK
KyAgICBpZiAobV9wcm92aWRlcikKKyAgICAgICAgbV9wcm92aWRlci0+c3RhcnQoKTsKK30KKwor
dm9pZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKCkKK3sKKyAgICBpZiAobV9w
cm92aWRlcikKKyAgICAgICAgbV9wcm92aWRlci0+c3RvcCgpOworfQorCitEZXZpY2VNb3Rpb25E
YXRhKiBEZXZpY2VNb3Rpb25DbGllbnRRdDo6Y3VycmVudERldmljZU1vdGlvbigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcHJvdmlkZXItPmN1cnJlbnREZXZpY2VNb3Rpb24oKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvRGV2aWNlTW90aW9uQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0Rl
dmljZU1vdGlvbkNsaWVudFF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZlYWY5MDVkNjA1M2M4Zjk2NTgyZTc3
MTBmMTJkMDNhY2JiZjc0MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
KgorICovCisKKyNpZm5kZWYgRGV2aWNlTW90aW9uQ2xpZW50UXRfaAorI2RlZmluZSBEZXZpY2VN
b3Rpb25DbGllbnRRdF9oCisKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25DbGllbnQuaCIKKyNpbmNs
dWRlICJEZXZpY2VNb3Rpb25EYXRhLmgiCisKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25Qcm92aWRl
clF0LmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIERldmljZU1vdGlvbkNvbnRyb2xsZXI7CitjbGFzcyBEZXZpY2VNb3Rpb25Qcm92aWRl
clF0OworCitjbGFzcyBEZXZpY2VNb3Rpb25DbGllbnRRdCA6IHB1YmxpYyBEZXZpY2VNb3Rpb25D
bGllbnQgeworcHVibGljOgorICAgIERldmljZU1vdGlvbkNsaWVudFF0KCkgeyB9CisgICAgdmly
dHVhbCB+RGV2aWNlTW90aW9uQ2xpZW50UXQoKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZv
aWQgZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpOworCisgICAgdmlydHVhbCB2b2lk
IHN0YXJ0VXBkYXRpbmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCk7CisKKyAg
ICB2aXJ0dWFsIERldmljZU1vdGlvbkRhdGEqIGN1cnJlbnREZXZpY2VNb3Rpb24oKSBjb25zdDsK
KworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU1vdGlvbkNvbnRyb2xsZXIq
KTsKKworICAgIE93blB0cjxEZXZpY2VNb3Rpb25Qcm92aWRlclF0PiBtX3Byb3ZpZGVyOworfTsK
KworfSAvLyBuYW1lc3BlY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGV2aWNlTW90aW9uQ2xpZW50
UXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9u
UHJvdmlkZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VNb3Rpb25Q
cm92aWRlclF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzMzMmI2NTQ1YmIxNmU1ZmFlYWI4NzNjYjlkZDI4
Zjk3N2M4OTliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQv
RGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25Qcm92aWRl
clF0LmgiCisKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25Db250cm9sbGVyLmgiCisjaW5jbHVkZSAi
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpCisgICAgOiBt
X21vdGlvbihEZXZpY2VNb3Rpb25EYXRhOjpjcmVhdGUoKSkKKyAgICAsIG1fZGV2aWNlT3JpZW50
YXRpb24obmV3IERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCkKKyAgICAsIG1fY29udHJvbGxl
cigwKQoreworICAgIG1fYWNjZWxlcmF0aW9uLmFkZEZpbHRlcih0aGlzKTsKK30KKworRGV2aWNl
TW90aW9uUHJvdmlkZXJRdDo6fkRldmljZU1vdGlvblByb3ZpZGVyUXQoKQoreworICAgIGRlbGV0
ZSBtX2RldmljZU9yaWVudGF0aW9uOworfQorCit2b2lkIERldmljZU1vdGlvblByb3ZpZGVyUXQ6
OnNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKK3sKKyAg
ICBBU1NFUlQoY29udHJvbGxlcik7CisgICAgQVNTRVJUKCFtX2NvbnRyb2xsZXIpOworICAgIG1f
Y29udHJvbGxlciA9IGNvbnRyb2xsZXI7Cit9CisKK3ZvaWQgRGV2aWNlTW90aW9uUHJvdmlkZXJR
dDo6c3RhcnQoKQoreworICAgIG1fYWNjZWxlcmF0aW9uLnN0YXJ0KCk7CisgICAgbV9kZXZpY2VP
cmllbnRhdGlvbi0+c3RhcnQoKTsKK30KKwordm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0Ojpz
dG9wKCkKK3sKKyAgICBtX2FjY2VsZXJhdGlvbi5zdG9wKCk7CisgICAgbV9kZXZpY2VPcmllbnRh
dGlvbi0+c3RvcCgpOworfQorCitib29sIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OmZpbHRlcihR
QWNjZWxlcm9tZXRlclJlYWRpbmcqIHJlYWRpbmcpCit7CisgICAgaWYgKCFtX2NvbnRyb2xsZXIp
IHsKKyAgICAgICAgLy8gV2UgYXJlIHRoZSBvbmx5IGZpbHRlci4gTm8gbmVlZCB0byBwcm9wYWdh
dGUgZnJvbSBoZXJlLgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgUmVmUHRy
PERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbj4gYWNjZWwgPSBEZXZpY2VNb3Rpb25EYXRh
OjpBY2NlbGVyYXRpb246OmNyZWF0ZSgKKyAgICAgICAgICAgIC8qIHggYXZhaWxhYmxlICovIHRy
dWUsIHJlYWRpbmctPngoKSwKKyAgICAgICAgICAgIC8qIHkgYXZhaWxhYmxlICovIHRydWUsIHJl
YWRpbmctPnkoKSwKKyAgICAgICAgICAgIC8qIHogYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmct
PnooKSk7CisKKyAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YTo6Um90YXRpb25SYXRlPiByb3Rh
dGlvbiA9IERldmljZU1vdGlvbkRhdGE6OlJvdGF0aW9uUmF0ZTo6Y3JlYXRlKAorICAgICAgICAg
ICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+aGFzQWxwaGEoKSwgbV9kZXZpY2VPcmllbnRhdGlvbi0+
bGFzdE9yaWVudGF0aW9uKCktPmFscGhhKCksCisgICAgICAgICAgICAvKiBiZXRhIGF2YWlsYWJs
ZSAqLyB0cnVlLCBtX2RldmljZU9yaWVudGF0aW9uLT5sYXN0T3JpZW50YXRpb24oKS0+YmV0YSgp
LAorICAgICAgICAgICAgLyogZ2FtbWEgYXZhaWxhYmxlICovIHRydWUsIG1fZGV2aWNlT3JpZW50
YXRpb24tPmxhc3RPcmllbnRhdGlvbigpLT5nYW1tYSgpKTsKKworICAgIG1fbW90aW9uID0gRGV2
aWNlTW90aW9uRGF0YTo6Y3JlYXRlKGFjY2VsLAorICAgICAgICAgICAgYWNjZWwsIC8qIEZJWE1F
OiBOZWVkcyB0byBwcm92aWRlIGFjY2VsZXJhdGlvbiBpbmNsdWRlIGdyYXZpdHkuICovCisgICAg
ICAgICAgICByb3RhdGlvbiwKKyAgICAgICAgICAgIGZhbHNlLCAwIC8qIFRoZSBpbnRlcnZhbCBp
cyB0cmVhdGVkIGludGVybmFsbHkgYnkgUXQgbW9iaWxpdHkgKFF0U2Vuc29ycyBpbiBRdDUpICov
KTsKKworICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNlTW90aW9uKG1fbW90aW9uLmdl
dCgpKTsKKworICAgIC8vIFdlIGFyZSB0aGUgb25seSBmaWx0ZXIuIE5vIG5lZWQgdG8gcHJvcGFn
YXRlIGZyb20gaGVyZS4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlv
blByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvblBy
b3ZpZGVyUXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTZmMjE5ZWJkZmVmNjA3YTQyNWM1NDhiZDBjMjJhODhh
ODFkZGVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2
aWNlTW90aW9uUHJvdmlkZXJRdC5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLwor
CisjaWZuZGVmIERldmljZU1vdGlvblByb3ZpZGVyUXRfaAorI2RlZmluZSBEZXZpY2VNb3Rpb25Q
cm92aWRlclF0X2gKKworI2luY2x1ZGUgIkRldmljZU1vdGlvbkRhdGEuaCIKKyNpbmNsdWRlIDxR
QWNjZWxlcm9tZXRlckZpbHRlcj4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNpZiBRVF9W
RVJTSU9OIDwgUVRfVkVSU0lPTl9DSEVDSyg1LCAwLCAwKQordXNpbmcgUVRNX05BTUVTUEFDRTo6
UUFjY2VsZXJvbWV0ZXI7Cit1c2luZyBRVE1fTkFNRVNQQUNFOjpRQWNjZWxlcm9tZXRlckZpbHRl
cjsKK3VzaW5nIFFUTV9OQU1FU1BBQ0U6OlFBY2NlbGVyb21ldGVyUmVhZGluZzsKKyNlbmRpZgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmljZU1vdGlvbkNvbnRyb2xsZXI7Citj
bGFzcyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ7CisKK2NsYXNzIERldmljZU1vdGlvblBy
b3ZpZGVyUXQgOiBwdWJsaWMgUUFjY2VsZXJvbWV0ZXJGaWx0ZXIgeworcHVibGljOgorICAgIERl
dmljZU1vdGlvblByb3ZpZGVyUXQoKTsKKyAgICB+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpOwor
CisgICAgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU1vdGlvbkNvbnRyb2xsZXIqKTsKKworICAg
IGJvb2wgZmlsdGVyKFFBY2NlbGVyb21ldGVyUmVhZGluZyopOworCisgICAgdm9pZCBzdGFydCgp
OworICAgIHZvaWQgc3RvcCgpOworICAgIERldmljZU1vdGlvbkRhdGEqIGN1cnJlbnREZXZpY2VN
b3Rpb24oKSBjb25zdCB7IHJldHVybiBtX21vdGlvbi5nZXQoKTsgfQorCitwcml2YXRlOgorICAg
IFJlZlB0cjxEZXZpY2VNb3Rpb25EYXRhPiBtX21vdGlvbjsKKyAgICBRQWNjZWxlcm9tZXRlciBt
X2FjY2VsZXJhdGlvbjsKKyAgICBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQqIG1fZGV2aWNl
T3JpZW50YXRpb247CisgICAgRGV2aWNlTW90aW9uQ29udHJvbGxlciogbV9jb250cm9sbGVyOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGV2aWNlTW90aW9uUHJv
dmlkZXJRdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0Rldmlj
ZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyMzA4NzBmMDRmMWVjN2FkZTAy
ZTk1Mzk2N2FmMWNmMDFkMTQzYzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcApAQCAtMCwwICsxLDU5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqCisgKi8KKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0LmgiCisKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIERldmljZU9yaWVudGF0aW9u
Q2xpZW50UXQ6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCit7CisgICAg
ZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c2V0Q29u
dHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCit7CisgICAg
Ly8gSW5pdGlhbGl6ZSBsYXppbHkuCisgICAgaWYgKCFtX3Byb3ZpZGVyICYmIGNvbnRyb2xsZXIp
CisgICAgICAgIG1fcHJvdmlkZXIgPSBhZG9wdFB0cihuZXcgRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0KTsKKworICAgIG1fcHJvdmlkZXItPnNldENvbnRyb2xsZXIoY29udHJvbGxlcik7Cit9
CisKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RhcnRVcGRhdGluZygpCit7Cisg
ICAgaWYgKG1fcHJvdmlkZXIpCisgICAgICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7Cit9CisKK3Zv
aWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKCkKK3sKKyAgICBpZiAo
bV9wcm92aWRlcikKKyAgICAgICAgbV9wcm92aWRlci0+c3RvcCgpOworfQorCitEZXZpY2VPcmll
bnRhdGlvbiogRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVudGF0aW9uKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gKG1fcHJvdmlkZXIpID8gbV9wcm92aWRlci0+bGFzdE9yaWVudGF0
aW9uKCkgOiAwOworfQorCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45MTI0NGRiYTY4Yzc1YWVkOGQ0ZDgxNGFmY2NlN2ZhOTM3M2IxNjE5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworI2lmbmRlZiBEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudFF0X2gKKyNkZWZpbmUgRGV2aWNlT3JpZW50YXRpb25DbGllbnRR
dF9oCisKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbi5oIgorI2luY2x1ZGUgIkRldmljZU9y
aWVudGF0aW9uQ2xpZW50LmgiCisKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKKyNpbmNsdWRl
IDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ7CisKK2NsYXNz
IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQgOiBwdWJsaWMgRGV2aWNlT3JpZW50YXRpb25DbGll
bnQgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlciopOworICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCk7Cisg
ICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpOworICAgIHZpcnR1YWwgRGV2aWNlT3JpZW50
YXRpb24qIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKKworcHJpdmF0ZToKKyAgICBPd25QdHI8
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0PiBtX3Byb3ZpZGVyOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRp
b25Qcm92aWRlclF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzI5OGVmMmU0Yzc4MzQwMTdjMTczMTQyMzk3
MzJjNjExZGFlMjk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcApAQCAtMCwwICsxLDc0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqCisgKi8KKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXQ6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpCisgICAgOiBtX2Nv
bnRyb2xsZXIoMCkKK3sKKyAgICBtX3NlbnNvci5hZGRGaWx0ZXIodGhpcyk7CisgICAgbV9sYXN0
T3JpZW50YXRpb24gPSBEZXZpY2VPcmllbnRhdGlvbjo6Y3JlYXRlKCk7Cit9CisKK3ZvaWQgRGV2
aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlciogY29udHJvbGxlcikKK3sKKyAgICBpZiAoIWNvbnRyb2xsZXIpCisgICAgICAg
IHN0b3AoKTsKKworICAgIG1fY29udHJvbGxlciA9IGNvbnRyb2xsZXI7Cit9CisKK3ZvaWQgRGV2
aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpzdGFydCgpCit7CisgICAgbV9zZW5zb3Iuc3RhcnQo
KTsKK30KKwordm9pZCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0b3AoKQoreworICAg
IG1fc2Vuc29yLnN0b3AoKTsKK30KKworYm9vbCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6
OmZpbHRlcihRUm90YXRpb25SZWFkaW5nKiByZWFkaW5nKQoreworICAgIGlmIChtX2NvbnRyb2xs
ZXIpIHsKKyAgICAgICAgLy8gUHJvdmlkZSBkZXZpY2Ugb3JpZW50YXRpb24gZGF0YSBhY2NvcmRp
bmcgVzNDIHNwZWM6CisgICAgICAgIC8vIGh0dHA6Ly9kZXYudzMub3JnL2dlby9hcGkvc3BlYy1z
b3VyY2Utb3JpZW50YXRpb24uaHRtbAorICAgICAgICAvLyBRdCBtb2JpbGl0eSAoUXRTZW5zb3Jz
IGluIFF0NSkgcHJvdmlkZSB0aGVzZSBkYXRhIHZpYSBRUm90YXRpb25TZW5zb3IKKyAgICAgICAg
Ly8gdXNpbmcgdGhlIFFSb3RhdGlvblJlYWRpbmcgY2xhc3M6CisgICAgICAgIC8vICAtIHRoZSBy
b3RhdGlvbiBhcm91bmQgeiBheGlzIChhbHBoYSkgaXMgZ2l2ZW4gYXMgeiBpbiBRUm90YXRpb25S
ZWFkaW5nOworICAgICAgICAvLyAgLSB0aGUgcm90YXRpb24gYXJvdW5kIHggYXhpcyAoYmV0YSkg
aXMgZ2l2ZW4gYXMgeCBpbiBRUm90YXRpb25SZWFkaW5nOworICAgICAgICAvLyAgLSB0aGUgcm90
YXRpb24gYXJvdW5kIHkgYXhpcyAoZ2FtbWEpIGlzIGdpdmVuIGFzIHkgaW4gUVJvdGF0aW9uUmVh
ZGluZzsKKyAgICAgICAgLy8gU2VlOiBodHRwOi8vZG9jLnF0Lm5va2lhLmNvbS9xdG1vYmlsaXR5
LTEuMC9xcm90YXRpb25yZWFkaW5nLmh0bWwKKyAgICAgICAgLy8gVGhlIFogKGFscGhhKSByb3Rh
dGlvbiBhbmdsZSBpcyBjaGVja2VkIHZpYSBoYXNBbHBoYSgpIHByaXZhdGUgbWV0aG9kLAorICAg
ICAgICAvLyBkZXBlbmRpbmcgaWYgdGhlIGRldmljZSBpcyBhYmxlIGRvIGRldGVjdCB0aGUgYWxw
aGEgcm90YXRpb24uIFggKGJldGEpIGFuZAorICAgICAgICAvLyBZIChnYW1tYSkgYXhpcyBhcmUg
YXZhaWxibGUgaW4gdGhpcyBjb250ZXh0LgorICAgICAgICBtX2xhc3RPcmllbnRhdGlvbiA9IERl
dmljZU9yaWVudGF0aW9uOjpjcmVhdGUoaGFzQWxwaGEoKSwgcmVhZGluZy0+eigpLAorICAgICAg
ICAgICAgICAgIC8qIHggYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPngoKSwKKyAgICAgICAg
ICAgICAgICAvKiB5IGF2YWlsYWJsZSAqLyB0cnVlLCByZWFkaW5nLT55KCkpOworICAgICAgICBt
X2NvbnRyb2xsZXItPmRpZENoYW5nZURldmljZU9yaWVudGF0aW9uKG1fbGFzdE9yaWVudGF0aW9u
LmdldCgpKTsKKyAgICB9CisKKyAgICAvLyBXZSBhcmUgdGhlIG9ubHkgZmlsdGVyLCBzbyBubyBu
ZWVkIHRvIHByb3BhZ2F0ZS4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZGEwM2NhNDRmMmI4NTI0N2EwYTFkZjdlOTQ0ZmQwN2MwNjJjYmJjZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJRdC5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworI2lm
bmRlZiBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXRfaAorI2RlZmluZSBEZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXRfaAorCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb24uaCIKKyNpbmNs
dWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlIDxRUm90YXRpb25G
aWx0ZXI+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCisjaWYgUVRfVkVSU0lPTiA8IFFUX1ZF
UlNJT05fQ0hFQ0soNSwgMCwgMCkKK3VzaW5nIFFUTV9OQU1FU1BBQ0U6OlFSb3RhdGlvbkZpbHRl
cjsKK3VzaW5nIFFUTV9OQU1FU1BBQ0U6OlFSb3RhdGlvblJlYWRpbmc7Cit1c2luZyBRVE1fTkFN
RVNQQUNFOjpRUm90YXRpb25TZW5zb3I7CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQgOiBwdWJsaWMgUVJvdGF0aW9uRmls
dGVyIHsKK3B1YmxpYzoKKyAgICBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQoKTsKKworICAg
IHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqKTsKKworICAg
IGJvb2wgZmlsdGVyKFFSb3RhdGlvblJlYWRpbmcqKTsKKworICAgIHZvaWQgc3RhcnQoKTsKKyAg
ICB2b2lkIHN0b3AoKTsKKyAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9zZW5z
b3IuaXNBY3RpdmUoKTsgfQorICAgIERldmljZU9yaWVudGF0aW9uKiBsYXN0T3JpZW50YXRpb24o
KSBjb25zdCB7IHJldHVybiBtX2xhc3RPcmllbnRhdGlvbi5nZXQoKTsgfQorICAgIGJvb2wgaGFz
QWxwaGEoKSBjb25zdCB7IHJldHVybiBtX3NlbnNvci5wcm9wZXJ0eSgiaGFzWiIpLnRvQm9vbCgp
OyB9CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uPiBtX2xhc3RPcmll
bnRhdGlvbjsKKyAgICBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsK
KyAgICBRUm90YXRpb25TZW5zb3IgbV9zZW5zb3I7Cit9OworCit9CisKKyNlbmRpZiAvLyBEZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNDY0NjMzNzg0MjFjZTBhYjAzOWI3MTEwOTkxZWZhZmUxMzZkN2Q2Ni4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
LSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
Ci0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAq
Ci0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiRGV2aWNlTW90aW9uQ2xpZW50UXQuaCIKLQotI2luY2x1ZGUgIkRldmlj
ZU1vdGlvblByb3ZpZGVyUXQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1EZXZpY2VNb3Rp
b25DbGllbnRRdDo6RGV2aWNlTW90aW9uQ2xpZW50UXQoKQotICAgIDogbV9wcm92aWRlcihuZXcg
RGV2aWNlTW90aW9uUHJvdmlkZXJRdCkKLXsKLX0KLQotRGV2aWNlTW90aW9uQ2xpZW50UXQ6On5E
ZXZpY2VNb3Rpb25DbGllbnRRdCgpCi17Ci0gICAgZGVsZXRlIG1fcHJvdmlkZXI7Ci19Ci0KLXZv
aWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6OnNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJv
bGxlciogY29udHJvbGxlcikKLXsKLSAgICBtX3Byb3ZpZGVyLT5zZXRDb250cm9sbGVyKGNvbnRy
b2xsZXIpOwotfQotCi12b2lkIERldmljZU1vdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0aW5nKCkK
LXsKLSAgICBtX3Byb3ZpZGVyLT5zdGFydCgpOwotfQotCi12b2lkIERldmljZU1vdGlvbkNsaWVu
dFF0OjpzdG9wVXBkYXRpbmcoKQotewotICAgIG1fcHJvdmlkZXItPnN0b3AoKTsKLX0KLQotRGV2
aWNlTW90aW9uRGF0YSogRGV2aWNlTW90aW9uQ2xpZW50UXQ6OmN1cnJlbnREZXZpY2VNb3Rpb24o
KSBjb25zdAotewotICAgIHJldHVybiBtX3Byb3ZpZGVyLT5jdXJyZW50RGV2aWNlTW90aW9uKCk7
Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6OmRldmljZU1vdGlvbkNvbnRyb2xsZXJE
ZXN0cm95ZWQoKQotewotICAgIGRlbGV0ZSB0aGlzOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1v
dGlvbkNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1v
dGlvbkNsaWVudFF0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiOTY0YTMzZTUz
OTcxNDZjMjYyM2FkNjVhMzBhOGNkZjI2ZDEyMjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZp
Y2VNb3Rpb25DbGllbnRRdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
Ci0gKgotICovCi0KLSNpZm5kZWYgRGV2aWNlTW90aW9uQ2xpZW50UXRfaAotI2RlZmluZSBEZXZp
Y2VNb3Rpb25DbGllbnRRdF9oCi0KLSNpbmNsdWRlICJEZXZpY2VNb3Rpb25DbGllbnQuaCIKLSNp
bmNsdWRlICJEZXZpY2VNb3Rpb25EYXRhLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xh
c3MgRGV2aWNlTW90aW9uQ29udHJvbGxlcjsKLWNsYXNzIERldmljZU1vdGlvblByb3ZpZGVyUXQ7
Ci0KLWNsYXNzIERldmljZU1vdGlvbkNsaWVudFF0IDogcHVibGljIERldmljZU1vdGlvbkNsaWVu
dCB7Ci1wdWJsaWM6Ci0gICAgRGV2aWNlTW90aW9uQ2xpZW50UXQoKTsKLSAgICB2aXJ0dWFsIH5E
ZXZpY2VNb3Rpb25DbGllbnRRdCgpOwotCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIo
RGV2aWNlTW90aW9uQ29udHJvbGxlciopOwotICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5n
KCk7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpOwotICAgIHZpcnR1YWwgRGV2aWNl
TW90aW9uRGF0YSogY3VycmVudERldmljZU1vdGlvbigpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9p
ZCBkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVzdHJveWVkKCk7Ci0KLXByaXZhdGU6Ci0gICAgRGV2
aWNlTW90aW9uUHJvdmlkZXJRdCogbV9wcm92aWRlcjsKLX07Ci0KLX0gLy8gbmFtZXNwZWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIERldmljZU1vdGlvbkNsaWVudFF0X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQu
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NTU3MDNkNzczZGIzYzNjNTIxMmZm
ZTJiODI2ZTFiYmQzYmRiZTUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJv
dmlkZXJRdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRldmljZU1vdGlvblByb3ZpZGVy
UXQuaCIKLQotI2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJE
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1E
ZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0KCkKLSAgICA6IG1f
bW90aW9uKERldmljZU1vdGlvbkRhdGE6OmNyZWF0ZSgpKQotICAgICwgbV9kZXZpY2VPcmllbnRh
dGlvbihuZXcgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KQotICAgICwgbV9jb250cm9sbGVy
KDApCi17Ci0gICAgbV9hY2NlbGVyYXRpb24uYWRkRmlsdGVyKHRoaXMpOwotfQotCi1EZXZpY2VN
b3Rpb25Qcm92aWRlclF0Ojp+RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpCi17Ci0gICAgZGVsZXRl
IG1fZGV2aWNlT3JpZW50YXRpb247Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6
c2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyKQotewotICAg
IEFTU0VSVChjb250cm9sbGVyKTsKLSAgICBBU1NFUlQoIW1fY29udHJvbGxlcik7Ci0gICAgbV9j
b250cm9sbGVyID0gY29udHJvbGxlcjsKLX0KLQotdm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRlclF0
OjpzdGFydCgpCi17Ci0gICAgbV9hY2NlbGVyYXRpb24uc3RhcnQoKTsKLSAgICBtX2RldmljZU9y
aWVudGF0aW9uLT5zdGFydCgpOwotfQotCi12b2lkIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OnN0
b3AoKQotewotICAgIG1fYWNjZWxlcmF0aW9uLnN0b3AoKTsKLSAgICBtX2RldmljZU9yaWVudGF0
aW9uLT5zdG9wKCk7Ci19Ci0KLWJvb2wgRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6ZmlsdGVyKFFB
Y2NlbGVyb21ldGVyUmVhZGluZyogcmVhZGluZykKLXsKLSAgICBpZiAoIW1fY29udHJvbGxlcikg
ewotICAgICAgICAvLyBXZSBhcmUgdGhlIG9ubHkgZmlsdGVyLiBObyBuZWVkIHRvIHByb3BhZ2F0
ZSBmcm9tIGhlcmUuCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8
RGV2aWNlTW90aW9uRGF0YTo6QWNjZWxlcmF0aW9uPiBhY2NlbCA9IERldmljZU1vdGlvbkRhdGE6
OkFjY2VsZXJhdGlvbjo6Y3JlYXRlKAotICAgICAgICAgICAgLyogeCBhdmFpbGFibGUgKi8gdHJ1
ZSwgcmVhZGluZy0+eCgpLAotICAgICAgICAgICAgLyogeSBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVh
ZGluZy0+eSgpLAotICAgICAgICAgICAgLyogeiBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+
eigpKTsKLQotICAgIFJlZlB0cjxEZXZpY2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGU+IHJvdGF0
aW9uID0gRGV2aWNlTW90aW9uRGF0YTo6Um90YXRpb25SYXRlOjpjcmVhdGUoCi0gICAgICAgICAg
ICBtX2RldmljZU9yaWVudGF0aW9uLT5oYXNBbHBoYSgpLCBtX2RldmljZU9yaWVudGF0aW9uLT5s
YXN0T3JpZW50YXRpb24oKS0+YWxwaGEoKSwKLSAgICAgICAgICAgIC8qIGJldGEgYXZhaWxhYmxl
ICovIHRydWUsIG1fZGV2aWNlT3JpZW50YXRpb24tPmxhc3RPcmllbnRhdGlvbigpLT5iZXRhKCks
Ci0gICAgICAgICAgICAvKiBnYW1tYSBhdmFpbGFibGUgKi8gdHJ1ZSwgbV9kZXZpY2VPcmllbnRh
dGlvbi0+bGFzdE9yaWVudGF0aW9uKCktPmdhbW1hKCkpOwotCi0gICAgbV9tb3Rpb24gPSBEZXZp
Y2VNb3Rpb25EYXRhOjpjcmVhdGUoYWNjZWwsCi0gICAgICAgICAgICBhY2NlbCwgLyogRklYTUU6
IE5lZWRzIHRvIHByb3ZpZGUgYWNjZWxlcmF0aW9uIGluY2x1ZGUgZ3Jhdml0eS4gKi8KLSAgICAg
ICAgICAgIHJvdGF0aW9uLAotICAgICAgICAgICAgZmFsc2UsIDAgLyogVGhlIGludGVydmFsIGlz
IHRyZWF0ZWQgaW50ZXJuYWxseSBieSBRdCBtb2JpbGl0eSAqLyk7Ci0KLSAgICBtX2NvbnRyb2xs
ZXItPmRpZENoYW5nZURldmljZU1vdGlvbihtX21vdGlvbi5nZXQoKSk7Ci0KLSAgICAvLyBXZSBh
cmUgdGhlIG9ubHkgZmlsdGVyLiBObyBuZWVkIHRvIHByb3BhZ2F0ZSBmcm9tIGhlcmUuCi0gICAg
cmV0dXJuIGZhbHNlOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaCBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NjY0OTBmMmNjNGJhZTA4YzA4ZGM3MWIw
NGJiOGM5YWRkYjhhMWFkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAq
Ci0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0g
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0K
LSNpZm5kZWYgRGV2aWNlTW90aW9uUHJvdmlkZXJRdF9oCi0jZGVmaW5lIERldmljZU1vdGlvblBy
b3ZpZGVyUXRfaAotCi0jaW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0YS5oIgotCi0jaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPFFBY2NlbGVyb21ldGVyRmlsdGVyPgotCi0jaWYgUVRf
VkVSU0lPTiA8IFFUX1ZFUlNJT05fQ0hFQ0soNSwgMCwgMCkKLXVzaW5nIFFUTV9OQU1FU1BBQ0U6
OlFBY2NlbGVyb21ldGVyOwotdXNpbmcgUVRNX05BTUVTUEFDRTo6UUFjY2VsZXJvbWV0ZXJGaWx0
ZXI7Ci11c2luZyBRVE1fTkFNRVNQQUNFOjpRQWNjZWxlcm9tZXRlclJlYWRpbmc7Ci0jZW5kaWYK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEZXZpY2VNb3Rpb25Db250cm9sbGVyOwot
Y2xhc3MgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OwotCi1jbGFzcyBEZXZpY2VNb3Rpb25Q
cm92aWRlclF0IDogcHVibGljIFFBY2NlbGVyb21ldGVyRmlsdGVyIHsKLXB1YmxpYzoKLSAgICBE
ZXZpY2VNb3Rpb25Qcm92aWRlclF0KCk7Ci0gICAgfkRldmljZU1vdGlvblByb3ZpZGVyUXQoKTsK
LQotICAgIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVyKik7Ci0KLSAg
ICBib29sIGZpbHRlcihRQWNjZWxlcm9tZXRlclJlYWRpbmcqKTsKLQotICAgIHZvaWQgc3RhcnQo
KTsKLSAgICB2b2lkIHN0b3AoKTsKLSAgICBEZXZpY2VNb3Rpb25EYXRhKiBjdXJyZW50RGV2aWNl
TW90aW9uKCkgY29uc3QgeyByZXR1cm4gbV9tb3Rpb24uZ2V0KCk7IH0KLQotcHJpdmF0ZToKLSAg
ICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YT4gbV9tb3Rpb247Ci0gICAgUUFjY2VsZXJvbWV0ZXIg
bV9hY2NlbGVyYXRpb247Ci0gICAgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KiBtX2Rldmlj
ZU9yaWVudGF0aW9uOwotICAgIERldmljZU1vdGlvbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsK
LX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIERldmljZU1vdGlvblBy
b3ZpZGVyUXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGVlNzk0MjIxMGEzMmViZTg1OTJhOWRkN2E3ZWI3MGZhZjk1MmM3MTMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
LSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
Ci0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAq
Ci0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCIKLSNpbmNsdWRlICJEZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1EZXZp
Y2VPcmllbnRhdGlvbkNsaWVudFF0OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0KCkKLSAgICA6
IG1fcHJvdmlkZXIobmV3IERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCkKLXsKLX0KLQotRGV2
aWNlT3JpZW50YXRpb25DbGllbnRRdDo6fkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQoKQotewot
ICAgIGRlbGV0ZSBtX3Byb3ZpZGVyOwotfQotCi12b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50
UXQ6OnNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVy
KQotewotICAgIG1fcHJvdmlkZXItPnNldENvbnRyb2xsZXIoY29udHJvbGxlcik7Ci19Ci0KLXZv
aWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6c3RhcnRVcGRhdGluZygpCi17Ci0gICAgbV9w
cm92aWRlci0+c3RhcnQoKTsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Ojpz
dG9wVXBkYXRpbmcoKQotewotICAgIG1fcHJvdmlkZXItPnN0b3AoKTsKLX0KLQotRGV2aWNlT3Jp
ZW50YXRpb24qIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6Omxhc3RPcmllbnRhdGlvbigpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fcHJvdmlkZXItPmxhc3RPcmllbnRhdGlvbigpOwotfQotCi12
b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ckRlc3Ryb3llZCgpCi17Ci0gICAgZGVsZXRlIHRoaXM7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNl
T3JpZW50YXRpb25DbGllbnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDhiODQ0MWUwZmI5ZDMyYTFlODJkYjAzNzNkODcxNDgwMWJkODFiNjQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0
NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLSNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25DbGll
bnRRdF9oCi0jZGVmaW5lIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXRfaAotCi0jaW5jbHVkZSAi
RGV2aWNlT3JpZW50YXRpb24uaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5o
IgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERldmljZU9yaWVudGF0aW9uUHJvdmlk
ZXJRdDsKLQotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCA6IHB1YmxpYyBEZXZpY2VP
cmllbnRhdGlvbkNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRR
dCgpOwotICAgIHZpcnR1YWwgfkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQoKTsKLQotICAgIHZp
cnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopOwot
ICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BV
cGRhdGluZygpOwotICAgIHZpcnR1YWwgRGV2aWNlT3JpZW50YXRpb24qIGxhc3RPcmllbnRhdGlv
bigpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJE
ZXN0cm95ZWQoKTsKLQotcHJpdmF0ZToKLSAgICBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQq
IG1fcHJvdmlkZXI7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGU0NmQyNDRjNmY1ZTc5MzY2ZGI1NmU1NjIy
YTNiYjU4ZGJmODMyYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0g
Ki8KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1EZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQ6OkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpCi0gICAgOiBtX2NvbnRyb2xsZXIo
MCkKLXsKLSAgICBtX3NlbnNvci5hZGRGaWx0ZXIodGhpcyk7Ci0gICAgbV9sYXN0T3JpZW50YXRp
b24gPSBEZXZpY2VPcmllbnRhdGlvbjo6Y3JlYXRlKCk7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0OjpzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciogY29udHJvbGxlcikKLXsKLSAgICBpZiAoIWNvbnRyb2xsZXIpCi0gICAgICAgIHN0b3AoKTsK
LQotICAgIG1fY29udHJvbGxlciA9IGNvbnRyb2xsZXI7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0OjpzdGFydCgpCi17Ci0gICAgbV9zZW5zb3Iuc3RhcnQoKTsKLX0KLQot
dm9pZCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OnN0b3AoKQotewotICAgIG1fc2Vuc29y
LnN0b3AoKTsKLX0KLQotYm9vbCBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6OmZpbHRlcihR
Um90YXRpb25SZWFkaW5nKiByZWFkaW5nKQotewotICAgIGlmIChtX2NvbnRyb2xsZXIpIHsKLSAg
ICAgICAgLy8gUHJvdmlkZSBkZXZpY2Ugb3JpZW50YXRpb24gZGF0YSBhY2NvcmRpbmcgVzNDIHNw
ZWM6Ci0gICAgICAgIC8vIGh0dHA6Ly9kZXYudzMub3JnL2dlby9hcGkvc3BlYy1zb3VyY2Utb3Jp
ZW50YXRpb24uaHRtbAotICAgICAgICAvLyBRdCBtb2JpbGl0eSBwcm92aWRlIHRoZXNlIGRhdGEg
dmlhIFFSb3RhdGlvblNlbnNvciB1c2luZyB0aGUKLSAgICAgICAgLy8gUVJvdGF0aW9uUmVhZGlu
ZyBjbGFzczoKLSAgICAgICAgLy8gIC0gdGhlIHJvdGF0aW9uIGFyb3VuZCB6IGF4aXMgKGFscGhh
KSBpcyBnaXZlbiBhcyB6IGluIFFSb3RhdGlvblJlYWRpbmc7Ci0gICAgICAgIC8vICAtIHRoZSBy
b3RhdGlvbiBhcm91bmQgeCBheGlzIChiZXRhKSBpcyBnaXZlbiBhcyB4IGluIFFSb3RhdGlvblJl
YWRpbmc7Ci0gICAgICAgIC8vICAtIHRoZSByb3RhdGlvbiBhcm91bmQgeSBheGlzIChnYW1tYSkg
aXMgZ2l2ZW4gYXMgeSBpbiBRUm90YXRpb25SZWFkaW5nOwotICAgICAgICAvLyBTZWU6IGh0dHA6
Ly9kb2MucXQubm9raWEuY29tL3F0bW9iaWxpdHktMS4wL3Fyb3RhdGlvbnJlYWRpbmcuaHRtbAot
ICAgICAgICAvLyBUaGUgWiAoYWxwaGEpIHJvdGF0aW9uIGFuZ2xlIGlzIGNoZWNrZWQgdmlhIGhh
c0FscGhhKCkgcHJpdmF0ZSBtZXRob2QsCi0gICAgICAgIC8vIGRlcGVuZGluZyBpZiB0aGUgZGV2
aWNlIGlzIGFibGUgZG8gZGV0ZWN0IHRoZSBhbHBoYSByb3RhdGlvbi4gWCAoYmV0YSkgYW5kCi0g
ICAgICAgIC8vIFkgKGdhbW1hKSBheGlzIGFyZSBhdmFpbGJsZSBpbiB0aGlzIGNvbnRleHQuCi0g
ICAgICAgIG1fbGFzdE9yaWVudGF0aW9uID0gRGV2aWNlT3JpZW50YXRpb246OmNyZWF0ZShoYXNB
bHBoYSgpLCByZWFkaW5nLT56KCksCi0gICAgICAgICAgICAgICAgLyogeCBhdmFpbGFibGUgKi8g
dHJ1ZSwgcmVhZGluZy0+eCgpLAotICAgICAgICAgICAgICAgIC8qIHkgYXZhaWxhYmxlICovIHRy
dWUsIHJlYWRpbmctPnkoKSk7Ci0gICAgICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2aWNl
T3JpZW50YXRpb24obV9sYXN0T3JpZW50YXRpb24uZ2V0KCkpOwotICAgIH0KLQotICAgIC8vIFdl
IGFyZSB0aGUgb25seSBmaWx0ZXIsIHNvIG5vIG5lZWQgdG8gcHJvcGFnYXRlLgotICAgIHJldHVy
biBmYWxzZTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGQwN2YwYTliMGFmNTFlNGFmY2VhMjg5OWNhZWJjM2Q5NTI2MWUyMWUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaAorKysg
L2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotI2lmbmRlZiBEZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXRfaAotI2RlZmluZSBEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXRfaAotCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb24uaCIKLSNpbmNsdWRlICJEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLSNp
bmNsdWRlIDxRUm90YXRpb25GaWx0ZXI+Ci0KLSNpZiBRVF9WRVJTSU9OIDwgUVRfVkVSU0lPTl9D
SEVDSyg1LCAwLCAwKQotdXNpbmcgUVRNX05BTUVTUEFDRTo6UVJvdGF0aW9uRmlsdGVyOwotdXNp
bmcgUVRNX05BTUVTUEFDRTo6UVJvdGF0aW9uUmVhZGluZzsKLXVzaW5nIFFUTV9OQU1FU1BBQ0U6
OlFSb3RhdGlvblNlbnNvcjsKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNz
IERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCA6IHB1YmxpYyBRUm90YXRpb25GaWx0ZXIgewot
cHVibGljOgotICAgIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCgpOwotCi0gICAgdm9pZCBz
ZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopOwotCi0gICAgYm9vbCBm
aWx0ZXIoUVJvdGF0aW9uUmVhZGluZyopOwotCi0gICAgdm9pZCBzdGFydCgpOwotICAgIHZvaWQg
c3RvcCgpOwotICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX3NlbnNvci5pc0Fj
dGl2ZSgpOyB9Ci0gICAgRGV2aWNlT3JpZW50YXRpb24qIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fbGFzdE9yaWVudGF0aW9uLmdldCgpOyB9Ci0gICAgYm9vbCBoYXNBbHBoYSgp
IGNvbnN0IHsgcmV0dXJuIG1fc2Vuc29yLnByb3BlcnR5KCJoYXNaIikudG9Cb29sKCk7IH0KLQot
cHJpdmF0ZToKLSAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb24+IG1fbGFzdE9yaWVudGF0aW9u
OwotICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogbV9jb250cm9sbGVyOwotICAgIFFS
b3RhdGlvblNlbnNvciBtX3NlbnNvcjsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIERldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJRdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggZjQxYzdlMDE1MGU5MDA2OTQxODI0ZGI2MzNkZTIxOTYyMzRkNjMy
YS4uMTE1NjhkMzc2NTRlMTUzYjZjZjg4ZWYzNTY3ODUxMjM5ODU3MDA2MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTMwLDYgKzEzMCwx
MCBAQAogI2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQorI2luY2x1ZGUgIkRldmljZU1vdGlvbkNsaWVudFF0LmgiCisjaW5jbHVkZSAiRGV2
aWNlT3JpZW50YXRpb25DbGllbnRRdC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3Vs
dC5oIgogI2luY2x1ZGUgPFFNaW1lRGF0YT4KICNlbmRpZgpAQCAtMjQ4LDYgKzI1MiwxMCBAQCBX
ZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgV2ViQ29y
ZTo6cHJvdmlkZUdlb2xvY2F0aW9uVG8obV9wYWdlLmdldCgpLCBuZXcgV2ViR2VvbG9jYXRpb25D
bGllbnQodGhpcykpOwogI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYg
UExBVEZPUk0oUVQpCisgICAgV2ViQ29yZTo6cHJvdmlkZURldmljZU1vdGlvblRvKG1fcGFnZS5n
ZXQoKSwgbmV3IERldmljZU1vdGlvbkNsaWVudFF0KTsKKyAgICBXZWJDb3JlOjpwcm92aWRlRGV2
aWNlT3JpZW50YXRpb25UbyhtX3BhZ2UuZ2V0KCksIG5ldyBEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dFF0KTsKKyNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZ
X05PVElGSUNBVElPTlMpCiAgICAgV2ViQ29yZTo6cHJvdmlkZU5vdGlmaWNhdGlvbihtX3BhZ2Uu
Z2V0KCksIG5ldyBXZWJOb3RpZmljYXRpb25DbGllbnQodGhpcykpOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvYXBpLnByaSBiL1NvdXJjZS9hcGkucHJpCmluZGV4IDZjMmRmN2I3MDdlZmYy
ZDZhNzQ5MjUyOGE2OTcwZWMzYTM0ODFhMGQuLmJlNDZhNjIxOTExNmQ3Zjc5YjYxZmFiZTMzZDAy
MWRmNTY3YWZjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hcGkucHJpCisrKyBiL1NvdXJjZS9hcGku
cHJpCkBAIC0yNjIsMjAgKzI2Miw2IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ERVZJQ0Vf
T1JJRU5UQVRJT049MSkgfHwgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX09SSUVOCiAgICAgaGF2
ZVF0KDUpOiBRVCArPSBzZW5zb3JzCiB9CiAKLWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ERVZJ
Q0VfT1JJRU5UQVRJT049MSkgewotICAgIEhFQURFUlMgKz0gXAotICAgICAgICAkJFBXRC9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuaCBcCi0gICAgICAgICQk
UFdEL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmggXAot
ICAgICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdC5oIFwKLSAgICAgICAgJCRQV0QvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Rldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oCi0KLSAgICBTT1VSQ0VTICs9IFwKLSAgICAgICAgJCRQ
V0QvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmNwcCBcCi0g
ICAgICAgICQkUFdEL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRl
clF0LmNwcCBcCi0gICAgICAgICQkUFdEL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0LmNwcCBcCi0gICAgICAgICQkUFdEL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuY3BwCi19Ci0KIGNvbnRhaW5zKERF
RklORVMsIEVOQUJMRV9HRU9MT0NBVElPTj0xKSB7CiAgICAgIGhhdmVRdCg1KTogUVQgKz0gbG9j
YXRpb24KIApkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDczYWZkNThh
YWZkYTBjZjNmNzI2M2JjZDA0OTFlMGRhYWEwYTNkMzcuLmQ1YjViMzBkNTRhNGIxZWQzMmNiNzIz
NmIxNWFlZjYyMWEzYTZkMzcgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNS0wMSAgTGFycyBLbnVkc2VuICA8bGFycy5rbnVkc2Vu
QG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIE1ha2UgRGV2aWNlTW90aW9uIGFuZCBEZXZpY2VP
cmllbnRhdGlvbiB3b3JrIHdpdGggV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNb3ZpbmcgRGV2aWNlTW90aW9uIGFuZCBEZXZpY2VPcmllbnRh
dGlvbiBjbGllbnRzIGFuZCBwcm92aWRlcnMKKyAgICAgICAgdG8gV2ViQ29yZS4gIFRoaXMgaXMg
ZG9uZSB0byBhbGxvdyBjbGVhbiBkZXBlbmRlbmNpZXMgd2hlbgorICAgICAgICBzdGF0aWNhbGx5
IGxpbmtpbmcgV0syLgorCisgICAgICAgICogU291cmNlL2FwaS5wcmk6CisKIDIwMTItMDUtMDEg
IExhbmRyeSBCcmV1aWwgIDxsYW5kcnlAb3BlbmJzZC5vcmc+CiAKICAgICAgICAgW0dUS10gRml4
IGdzdHJlYW1lciBkZXRlY3Rpb24gZHVyaW5nIGNvbmZpZ3VyZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139785</attachid>
            <date>2012-05-02 04:00:45 -0700</date>
            <delta_ts>2012-05-02 07:06:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64595-20120502130547.patch</filename>
            <type>text/plain</type>
            <size>47062</size>
            <attacher name="Lars Knudsen">larsgk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1ODA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJlNTExNmRkYTBlYzI3
OWQ4MjgwNzY4N2EwNTc2YWIwODc1ZTlmMi4uNTJmNzliZmJjZjljMDI4MTMzOWE3NGRhMzY1NzBi
YWQyMzc1ZjMxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEyLTA1LTAyICBMYXJz
IEtudWRzZW4gIDxsYXJzLmtudWRzZW5Abm9raWEuY29tPgorCisgICAgICAgIFtRdF0gTWFrZSBE
ZXZpY2VNb3Rpb24gYW5kIERldmljZU9yaWVudGF0aW9uIHdvcmsgd2l0aCBXZWJLaXQyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU5NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBh
ZGRlZC4gIFRoaXMgY2hhbmdlIGFkZHMgc3VwcG9ydCBmb3IgV0syCisgICAgICAgIHdoYXQgd2Fz
IGluIFdLMS4KKworICAgICAgICBBbHNvIG1vdmluZyBEZXZpY2VNb3Rpb24gYW5kIERldmljZU9y
aWVudGF0aW9uIGNsaWVudHMgYW5kCisgICAgICAgIHByb3ZpZGVycyB0byBXZWJDb3JlLiAgVGhp
cyBpcyBkb25lIHRvIGFsbG93IGNsZWFuIGRlcGVuZGVuY2llcworICAgICAgICB3aGVuIHN0YXRp
Y2FsbHkgbGlua2luZyBXSzIuCisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdl
YkNvcmUucHJpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmNw
cDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90
aW9uQ2xpZW50UXQuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VNb3Rpb25DbGllbnRRdDo6fkRldmljZU1vdGlvbkNsaWVudFF0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVzdHJv
eWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzZXRDb250cm9s
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzdGFydFVwZGF0
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpzdG9wVXBkYXRp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50UXQ6OmN1cnJlbnREZXZp
Y2VNb3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0Lmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlv
bkNsaWVudFF0LmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERldmljZU1vdGlvbkNs
aWVudFF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudFF0OjpEZXZpY2VN
b3Rpb25DbGllbnRRdCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlk
ZXJRdC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Rl
dmljZU1vdGlvblByb3ZpZGVyUXQuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6On5EZXZpY2VNb3Rpb25Q
cm92aWRlclF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OnNl
dENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6
c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RvcCk6
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25Qcm92aWRlclF0OjpmaWx0ZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5o
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VNb3Rpb25Qcm92aWRlclF0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvblByb3ZpZGVyUXQ6OmN1cnJlbnREZXZpY2VN
b3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQu
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50
UXQ6OnNldENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdDo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudFF0OjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRRdDo6bGFzdE9yaWVudGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9x
dC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCk6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0OjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQpOgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojp+RGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdDo6c2V0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdDo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyUXQ6OmZpbHRlcik6CisgICAgICAgICogcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojppc0FjdGl2ZSk6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6Omxhc3RPcmllbnRhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ6Omhhc0FscGhhKToKKwog
MjAxMi0wNS0wMiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAg
U3R5bGVTaGVldEludGVybmFsOjpwYXJzZVVzZXJTdHlsZVNoZWV0KCkgc2hvdWxkIGJlIGNhbGxl
ZCBwYXJzZUF1dGhvclN0eWxlU2hlZXQoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3ODNmMTkwZWZhNDg5OGRi
MmZjZGNiMWZhYTE2MGI4NWNiMmY4OTgyLi4xMTVmOGEwZDgxNmMzZTNmMzZiYTExODBlMTFiYTRj
NTBjODAwYTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDUtMDIgIExhcnMg
S251ZHNlbiAgPGxhcnMua251ZHNlbkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBNYWtlIERl
dmljZU1vdGlvbiBhbmQgRGV2aWNlT3JpZW50YXRpb24gd29yayB3aXRoIFdlYktpdDIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTk1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIHN1cHBvcnQg
Zm9yIERldmljZU9yaWVudGF0aW9uIGluIFdLMiBXZWJQYWdlCisKKyAgICAgICAgKiBUYXJnZXQu
cHJpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisKIDIwMTItMDUtMDIgIFNpbW9uIEhhdXNtYW5u
ICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gUVF1aWNrV2ViVmll
dyBkb2VzIG5vdCBhbGxvdyBmb3IgaW5wdXQgZnJvbSB2aXJ0dWFsIGtleWJvYXJkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aQppbmRleCA4ZThjNzE0NjBhZGMxOTgxNjRhZGNhZmNjODA5MDVmMWI1YzFlYTJkLi5kMGI0NTBh
MjQ2NmYyNWY2ZGE5NDY5NmZmZDE0MDNjZTY5Y2Y1MDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTM0MzAs
NiArMzQzMCwxOCBAQCBjb250YWlucyhERUZJTkVTLCBIQVZFX1FSQVdGT05UPTEpIHsKICAgICAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0NC5jcHAKIH0KIAorY29udGFpbnMoREVGSU5F
UywgRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTj0xKSB7CisgICAgSEVBREVSUyArPSBcCisgICAg
ICAgIHBsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmggXAorICAgICAgICBwbGF0Zm9y
bS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmggXAorICAgICAgICBwbGF0Zm9ybS9xdC9EZXZp
Y2VPcmllbnRhdGlvbkNsaWVudFF0LmggXAorICAgICAgICBwbGF0Zm9ybS9xdC9EZXZpY2VPcmll
bnRhdGlvblByb3ZpZGVyUXQuaAorICAgIFNPVVJDRVMgKz0gXAorICAgICAgICBwbGF0Zm9ybS9x
dC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAgXAorICAgICAgICBwbGF0Zm9ybS9xdC9EZXZpY2VN
b3Rpb25Qcm92aWRlclF0LmNwcCBcCisgICAgICAgIHBsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0
aW9uQ2xpZW50UXQuY3BwIFwKKyAgICAgICAgcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlclF0LmNwcAorfQogCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfR0VPTE9DQVRJT049
MSkgewogICAgIHY4IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5kZXggYjQzMGZjYjNmODllMzdhNGI3NTUzNTVl
ZGU0YWIyYmM0MjJjYzJhMC4uNmYzMTQ3Mjc5MmZiNDFlNTBkMTQzYWRlZWE1NGUzMTQzOTYzZGE3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcmkKQEAgLTE2MCw4ICsxNjAsMTIgQEAgY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX0dFT0xPQ0FUSU9OPTEpIHsKIH0KIAogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTj0xKSB7Ci0gICAgQ09ORklHICo9IG1vYmlsaXR5Ci0gICAgTU9CSUxJ
VFkgKj0gc2Vuc29ycworICAgIGhhdmVRdCg1KSB7CisgICAgICAgIFFUICs9IHNlbnNvcnMKKyAg
ICB9IGVsc2UgeworICAgICAgICBDT05GSUcgKj0gbW9iaWxpdHkKKyAgICAgICAgTU9CSUxJVFkg
Kj0gc2Vuc29ycworICAgIH0KIH0KIAogY29udGFpbnMoREVGSU5FUywgV1RGX1VTRV9RVF9NT0JJ
TElUWV9TWVNURU1JTkZPPTEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0RldmljZU1vdGlvbkNsaWVudFF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjI2MDg3ZWNjMjY3NTE5MmUy
NDU0ZjE3MTZiNWJhYjI2MjlkYzFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlTW90
aW9uQ2xpZW50UXQuaCIKKworI2luY2x1ZGUgIkRldmljZU1vdGlvblByb3ZpZGVyUXQuaCIKKwor
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEZXZpY2VNb3Rp
b25DbGllbnRRdDo6fkRldmljZU1vdGlvbkNsaWVudFF0KCkKK3sKK30KKwordm9pZCBEZXZpY2VN
b3Rpb25DbGllbnRRdDo6ZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCit7CisgICAg
ZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgRGV2aWNlTW90aW9uQ2xpZW50UXQ6OnNldENvbnRyb2xs
ZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlcikKK3sKKyAgICAvLyBJbml0aWFs
aXplIGxhemlseS4KKyAgICBpZiAoIW1fcHJvdmlkZXIpCisgICAgICAgIG1fcHJvdmlkZXIgPSBh
ZG9wdFB0cihuZXcgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCk7CisKKyAgICBtX3Byb3ZpZGVyLT5z
ZXRDb250cm9sbGVyKGNvbnRyb2xsZXIpOworfQorCit2b2lkIERldmljZU1vdGlvbkNsaWVudFF0
OjpzdGFydFVwZGF0aW5nKCkKK3sKKyAgICBpZiAobV9wcm92aWRlcikKKyAgICAgICAgbV9wcm92
aWRlci0+c3RhcnQoKTsKK30KKwordm9pZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6c3RvcFVwZGF0
aW5nKCkKK3sKKyAgICBpZiAobV9wcm92aWRlcikKKyAgICAgICAgbV9wcm92aWRlci0+c3RvcCgp
OworfQorCitEZXZpY2VNb3Rpb25EYXRhKiBEZXZpY2VNb3Rpb25DbGllbnRRdDo6Y3VycmVudERl
dmljZU1vdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJvdmlkZXItPmN1cnJlbnREZXZp
Y2VNb3Rpb24oKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uQ2xpZW50UXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZl
YWY5MDVkNjA1M2M4Zjk2NTgyZTc3MTBmMTJkMDNhY2JiZjc0MAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU1vdGlvbkNsaWVudFF0LmgKQEAgLTAs
MCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgRGV2aWNlTW90aW9uQ2xpZW50
UXRfaAorI2RlZmluZSBEZXZpY2VNb3Rpb25DbGllbnRRdF9oCisKKyNpbmNsdWRlICJEZXZpY2VN
b3Rpb25DbGllbnQuaCIKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25EYXRhLmgiCisKKyNpbmNsdWRl
ICJEZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmljZU1vdGlvbkNvbnRyb2xsZXI7CitjbGFz
cyBEZXZpY2VNb3Rpb25Qcm92aWRlclF0OworCitjbGFzcyBEZXZpY2VNb3Rpb25DbGllbnRRdCA6
IHB1YmxpYyBEZXZpY2VNb3Rpb25DbGllbnQgeworcHVibGljOgorICAgIERldmljZU1vdGlvbkNs
aWVudFF0KCkgeyB9CisgICAgdmlydHVhbCB+RGV2aWNlTW90aW9uQ2xpZW50UXQoKTsKKworcHJp
dmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCgp
OworCisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c3RvcFVwZGF0aW5nKCk7CisKKyAgICB2aXJ0dWFsIERldmljZU1vdGlvbkRhdGEqIGN1cnJlbnRE
ZXZpY2VNb3Rpb24oKSBjb25zdDsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERl
dmljZU1vdGlvbkNvbnRyb2xsZXIqKTsKKworICAgIE93blB0cjxEZXZpY2VNb3Rpb25Qcm92aWRl
clF0PiBtX3Byb3ZpZGVyOworfTsKKworfSAvLyBuYW1lc3BlY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRGV2aWNlTW90aW9uQ2xpZW50UXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9EZXZpY2VNb3Rpb25Qcm92aWRlclF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzMzMmI2NTQ1
YmIxNmU1ZmFlYWI4NzNjYjlkZDI4Zjk3N2M4OTliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5jcHAKQEAgLTAsMCAr
MSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJEZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgiCisKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25Db250
cm9sbGVyLmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6RGV2aWNlTW90aW9u
UHJvdmlkZXJRdCgpCisgICAgOiBtX21vdGlvbihEZXZpY2VNb3Rpb25EYXRhOjpjcmVhdGUoKSkK
KyAgICAsIG1fZGV2aWNlT3JpZW50YXRpb24obmV3IERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJR
dCkKKyAgICAsIG1fY29udHJvbGxlcigwKQoreworICAgIG1fYWNjZWxlcmF0aW9uLmFkZEZpbHRl
cih0aGlzKTsKK30KKworRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6fkRldmljZU1vdGlvblByb3Zp
ZGVyUXQoKQoreworICAgIGRlbGV0ZSBtX2RldmljZU9yaWVudGF0aW9uOworfQorCit2b2lkIERl
dmljZU1vdGlvblByb3ZpZGVyUXQ6OnNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxl
ciogY29udHJvbGxlcikKK3sKKyAgICBBU1NFUlQoY29udHJvbGxlcik7CisgICAgQVNTRVJUKCFt
X2NvbnRyb2xsZXIpOworICAgIG1fY29udHJvbGxlciA9IGNvbnRyb2xsZXI7Cit9CisKK3ZvaWQg
RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6c3RhcnQoKQoreworICAgIG1fYWNjZWxlcmF0aW9uLnN0
YXJ0KCk7CisgICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+c3RhcnQoKTsKK30KKwordm9pZCBEZXZp
Y2VNb3Rpb25Qcm92aWRlclF0OjpzdG9wKCkKK3sKKyAgICBtX2FjY2VsZXJhdGlvbi5zdG9wKCk7
CisgICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+c3RvcCgpOworfQorCitib29sIERldmljZU1vdGlv
blByb3ZpZGVyUXQ6OmZpbHRlcihRQWNjZWxlcm9tZXRlclJlYWRpbmcqIHJlYWRpbmcpCit7Cisg
ICAgaWYgKCFtX2NvbnRyb2xsZXIpIHsKKyAgICAgICAgLy8gV2UgYXJlIHRoZSBvbmx5IGZpbHRl
ci4gTm8gbmVlZCB0byBwcm9wYWdhdGUgZnJvbSBoZXJlLgorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbj4gYWNj
ZWwgPSBEZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRpb246OmNyZWF0ZSgKKyAgICAgICAgICAg
IC8qIHggYXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPngoKSwKKyAgICAgICAgICAgIC8qIHkg
YXZhaWxhYmxlICovIHRydWUsIHJlYWRpbmctPnkoKSwKKyAgICAgICAgICAgIC8qIHogYXZhaWxh
YmxlICovIHRydWUsIHJlYWRpbmctPnooKSk7CisKKyAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0
YTo6Um90YXRpb25SYXRlPiByb3RhdGlvbiA9IERldmljZU1vdGlvbkRhdGE6OlJvdGF0aW9uUmF0
ZTo6Y3JlYXRlKAorICAgICAgICAgICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+aGFzQWxwaGEoKSwg
bV9kZXZpY2VPcmllbnRhdGlvbi0+bGFzdE9yaWVudGF0aW9uKCktPmFscGhhKCksCisgICAgICAg
ICAgICAvKiBiZXRhIGF2YWlsYWJsZSAqLyB0cnVlLCBtX2RldmljZU9yaWVudGF0aW9uLT5sYXN0
T3JpZW50YXRpb24oKS0+YmV0YSgpLAorICAgICAgICAgICAgLyogZ2FtbWEgYXZhaWxhYmxlICov
IHRydWUsIG1fZGV2aWNlT3JpZW50YXRpb24tPmxhc3RPcmllbnRhdGlvbigpLT5nYW1tYSgpKTsK
KworICAgIG1fbW90aW9uID0gRGV2aWNlTW90aW9uRGF0YTo6Y3JlYXRlKGFjY2VsLAorICAgICAg
ICAgICAgYWNjZWwsIC8qIEZJWE1FOiBOZWVkcyB0byBwcm92aWRlIGFjY2VsZXJhdGlvbiBpbmNs
dWRlIGdyYXZpdHkuICovCisgICAgICAgICAgICByb3RhdGlvbiwKKyAgICAgICAgICAgIGZhbHNl
LCAwIC8qIFRoZSBpbnRlcnZhbCBpcyB0cmVhdGVkIGludGVybmFsbHkgYnkgUXQgbW9iaWxpdHkg
KFF0U2Vuc29ycyBpbiBRdDUpICovKTsKKworICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlRGV2
aWNlTW90aW9uKG1fbW90aW9uLmdldCgpKTsKKworICAgIC8vIFdlIGFyZSB0aGUgb25seSBmaWx0
ZXIuIE5vIG5lZWQgdG8gcHJvcGFnYXRlIGZyb20gaGVyZS4KKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L0RldmljZU1vdGlvblByb3ZpZGVyUXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTZmMjE5ZWJkZmVm
NjA3YTQyNWM1NDhiZDBjMjJhODhhODFkZGVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlTW90aW9uUHJvdmlkZXJRdC5oCkBAIC0wLDAgKzEsNjEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIERldmljZU1vdGlvblByb3ZpZGVyUXRfaAor
I2RlZmluZSBEZXZpY2VNb3Rpb25Qcm92aWRlclF0X2gKKworI2luY2x1ZGUgIkRldmljZU1vdGlv
bkRhdGEuaCIKKyNpbmNsdWRlIDxRQWNjZWxlcm9tZXRlckZpbHRlcj4KKyNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CisKKyNpZiBRVF9WRVJTSU9OIDwgUVRfVkVSU0lPTl9DSEVDSyg1LCAwLCAwKQor
dXNpbmcgUVRNX05BTUVTUEFDRTo6UUFjY2VsZXJvbWV0ZXI7Cit1c2luZyBRVE1fTkFNRVNQQUNF
OjpRQWNjZWxlcm9tZXRlckZpbHRlcjsKK3VzaW5nIFFUTV9OQU1FU1BBQ0U6OlFBY2NlbGVyb21l
dGVyUmVhZGluZzsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmlj
ZU1vdGlvbkNvbnRyb2xsZXI7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQ7CisK
K2NsYXNzIERldmljZU1vdGlvblByb3ZpZGVyUXQgOiBwdWJsaWMgUUFjY2VsZXJvbWV0ZXJGaWx0
ZXIgeworcHVibGljOgorICAgIERldmljZU1vdGlvblByb3ZpZGVyUXQoKTsKKyAgICB+RGV2aWNl
TW90aW9uUHJvdmlkZXJRdCgpOworCisgICAgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU1vdGlv
bkNvbnRyb2xsZXIqKTsKKworICAgIGJvb2wgZmlsdGVyKFFBY2NlbGVyb21ldGVyUmVhZGluZyop
OworCisgICAgdm9pZCBzdGFydCgpOworICAgIHZvaWQgc3RvcCgpOworICAgIERldmljZU1vdGlv
bkRhdGEqIGN1cnJlbnREZXZpY2VNb3Rpb24oKSBjb25zdCB7IHJldHVybiBtX21vdGlvbi5nZXQo
KTsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxEZXZpY2VNb3Rpb25EYXRhPiBtX21vdGlvbjsK
KyAgICBRQWNjZWxlcm9tZXRlciBtX2FjY2VsZXJhdGlvbjsKKyAgICBEZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyUXQqIG1fZGV2aWNlT3JpZW50YXRpb247CisgICAgRGV2aWNlTW90aW9uQ29udHJv
bGxlciogbV9jb250cm9sbGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRGV2aWNlTW90aW9uUHJvdmlkZXJRdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVmY2E4NTlmYzAwMTQwOGM1Zjc5MzlmYmMyZTdjNGIwNzcxMWE3ZDgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0
LmNwcApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgiCisKKyNpbmNsdWRlICJE
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2
b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ckRlc3Ryb3llZCgpCit7CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgRGV2aWNlT3JpZW50
YXRpb25DbGllbnRRdDo6c2V0Q29udHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIq
IGNvbnRyb2xsZXIpCit7CisgICAgLy8gSW5pdGlhbGl6ZSBsYXppbHkuCisgICAgaWYgKCFtX3By
b3ZpZGVyKQorICAgICAgICBtX3Byb3ZpZGVyID0gYWRvcHRQdHIobmV3IERldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJRdCk7CisKKyAgICBtX3Byb3ZpZGVyLT5zZXRDb250cm9sbGVyKGNvbnRyb2xs
ZXIpOworfQorCit2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmco
KQoreworICAgIGlmIChtX3Byb3ZpZGVyKQorICAgICAgICBtX3Byb3ZpZGVyLT5zdGFydCgpOwor
fQorCit2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnN0b3BVcGRhdGluZygpCit7Cisg
ICAgaWYgKG1fcHJvdmlkZXIpCisgICAgICAgIG1fcHJvdmlkZXItPnN0b3AoKTsKK30KKworRGV2
aWNlT3JpZW50YXRpb24qIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6Omxhc3RPcmllbnRhdGlv
bigpIGNvbnN0Cit7CisgICAgcmV0dXJuIChtX3Byb3ZpZGVyKSA/IG1fcHJvdmlkZXItPmxhc3RP
cmllbnRhdGlvbigpIDogMDsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTEyNDRkYmE2OGM3NWFlZDhkNGQ4MTRhZmNjZTdmYTkzNzNiMTYxOQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVu
dGF0aW9uQ2xpZW50UXQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpZm5k
ZWYgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdF9oCisjZGVmaW5lIERldmljZU9yaWVudGF0aW9u
Q2xpZW50UXRfaAorCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb24uaCIKKyNpbmNsdWRlICJE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgorCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgiCisj
aW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Owor
CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0IDogcHVibGljIERldmljZU9yaWVudGF0
aW9uQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGlu
ZygpOworICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKKyAgICB2aXJ0dWFsIERldmlj
ZU9yaWVudGF0aW9uKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCk7CisKK3ByaXZhdGU6CisgICAg
T3duUHRyPERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdD4gbV9wcm92aWRlcjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERldmljZU9yaWVudGF0aW9uQ2xpZW50
UXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlclF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9y
aWVudGF0aW9uUHJvdmlkZXJRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjMyOThlZjJlNGM3ODM0MDE3YzE3
MzE0MjM5NzMyYzYxMWRhZTI5OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAKQEAgLTAsMCArMSw3NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisgKgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0OjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQoKQorICAg
IDogbV9jb250cm9sbGVyKDApCit7CisgICAgbV9zZW5zb3IuYWRkRmlsdGVyKHRoaXMpOworICAg
IG1fbGFzdE9yaWVudGF0aW9uID0gRGV2aWNlT3JpZW50YXRpb246OmNyZWF0ZSgpOworfQorCit2
b2lkIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcihEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCit7CisgICAgaWYgKCFjb250cm9sbGVyKQor
ICAgICAgICBzdG9wKCk7CisKKyAgICBtX2NvbnRyb2xsZXIgPSBjb250cm9sbGVyOworfQorCit2
b2lkIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c3RhcnQoKQoreworICAgIG1fc2Vuc29y
LnN0YXJ0KCk7Cit9CisKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpzdG9wKCkK
K3sKKyAgICBtX3NlbnNvci5zdG9wKCk7Cit9CisKK2Jvb2wgRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0OjpmaWx0ZXIoUVJvdGF0aW9uUmVhZGluZyogcmVhZGluZykKK3sKKyAgICBpZiAobV9j
b250cm9sbGVyKSB7CisgICAgICAgIC8vIFByb3ZpZGUgZGV2aWNlIG9yaWVudGF0aW9uIGRhdGEg
YWNjb3JkaW5nIFczQyBzcGVjOgorICAgICAgICAvLyBodHRwOi8vZGV2LnczLm9yZy9nZW8vYXBp
L3NwZWMtc291cmNlLW9yaWVudGF0aW9uLmh0bWwKKyAgICAgICAgLy8gUXQgbW9iaWxpdHkgKFF0
U2Vuc29ycyBpbiBRdDUpIHByb3ZpZGUgdGhlc2UgZGF0YSB2aWEgUVJvdGF0aW9uU2Vuc29yCisg
ICAgICAgIC8vIHVzaW5nIHRoZSBRUm90YXRpb25SZWFkaW5nIGNsYXNzOgorICAgICAgICAvLyAg
LSB0aGUgcm90YXRpb24gYXJvdW5kIHogYXhpcyAoYWxwaGEpIGlzIGdpdmVuIGFzIHogaW4gUVJv
dGF0aW9uUmVhZGluZzsKKyAgICAgICAgLy8gIC0gdGhlIHJvdGF0aW9uIGFyb3VuZCB4IGF4aXMg
KGJldGEpIGlzIGdpdmVuIGFzIHggaW4gUVJvdGF0aW9uUmVhZGluZzsKKyAgICAgICAgLy8gIC0g
dGhlIHJvdGF0aW9uIGFyb3VuZCB5IGF4aXMgKGdhbW1hKSBpcyBnaXZlbiBhcyB5IGluIFFSb3Rh
dGlvblJlYWRpbmc7CisgICAgICAgIC8vIFNlZTogaHR0cDovL2RvYy5xdC5ub2tpYS5jb20vcXRt
b2JpbGl0eS0xLjAvcXJvdGF0aW9ucmVhZGluZy5odG1sCisgICAgICAgIC8vIFRoZSBaIChhbHBo
YSkgcm90YXRpb24gYW5nbGUgaXMgY2hlY2tlZCB2aWEgaGFzQWxwaGEoKSBwcml2YXRlIG1ldGhv
ZCwKKyAgICAgICAgLy8gZGVwZW5kaW5nIGlmIHRoZSBkZXZpY2UgaXMgYWJsZSBkbyBkZXRlY3Qg
dGhlIGFscGhhIHJvdGF0aW9uLiBYIChiZXRhKSBhbmQKKyAgICAgICAgLy8gWSAoZ2FtbWEpIGF4
aXMgYXJlIGF2YWlsYmxlIGluIHRoaXMgY29udGV4dC4KKyAgICAgICAgbV9sYXN0T3JpZW50YXRp
b24gPSBEZXZpY2VPcmllbnRhdGlvbjo6Y3JlYXRlKGhhc0FscGhhKCksIHJlYWRpbmctPnooKSwK
KyAgICAgICAgICAgICAgICAvKiB4IGF2YWlsYWJsZSAqLyB0cnVlLCByZWFkaW5nLT54KCksCisg
ICAgICAgICAgICAgICAgLyogeSBhdmFpbGFibGUgKi8gdHJ1ZSwgcmVhZGluZy0+eSgpKTsKKyAg
ICAgICAgbV9jb250cm9sbGVyLT5kaWRDaGFuZ2VEZXZpY2VPcmllbnRhdGlvbihtX2xhc3RPcmll
bnRhdGlvbi5nZXQoKSk7CisgICAgfQorCisgICAgLy8gV2UgYXJlIHRoZSBvbmx5IGZpbHRlciwg
c28gbm8gbmVlZCB0byBwcm9wYWdhdGUuCisgICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyUXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RldmljZU9yaWVudGF0aW9uUHJv
dmlkZXJRdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhMDNjYTQ0ZjJiODUyNDdhMGExZGY3ZTk0NGZkMDdjMDYy
Y2JiY2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisg
Ki8KKyNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gKKyNkZWZpbmUgRGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlclF0X2gKKworI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uLmgi
CisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCisjaW5jbHVkZSA8UVJv
dGF0aW9uRmlsdGVyPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworI2lmIFFUX1ZFUlNJT04g
PCBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDApCit1c2luZyBRVE1fTkFNRVNQQUNFOjpRUm90YXRp
b25GaWx0ZXI7Cit1c2luZyBRVE1fTkFNRVNQQUNFOjpRUm90YXRpb25SZWFkaW5nOwordXNpbmcg
UVRNX05BTUVTUEFDRTo6UVJvdGF0aW9uU2Vuc29yOworI2VuZGlmCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0IDogcHVibGljIFFSb3Rh
dGlvbkZpbHRlciB7CitwdWJsaWM6CisgICAgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0KCk7
CisKKyAgICB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKik7
CisKKyAgICBib29sIGZpbHRlcihRUm90YXRpb25SZWFkaW5nKik7CisKKyAgICB2b2lkIHN0YXJ0
KCk7CisgICAgdm9pZCBzdG9wKCk7CisgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc2Vuc29yLmlzQWN0aXZlKCk7IH0KKyAgICBEZXZpY2VPcmllbnRhdGlvbiogbGFzdE9yaWVu
dGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0T3JpZW50YXRpb24uZ2V0KCk7IH0KKyAgICBi
b29sIGhhc0FscGhhKCkgY29uc3QgeyByZXR1cm4gbV9zZW5zb3IucHJvcGVydHkoImhhc1oiKS50
b0Jvb2woKTsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvbj4gbV9s
YXN0T3JpZW50YXRpb247CisgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBtX2NvbnRy
b2xsZXI7CisgICAgUVJvdGF0aW9uU2Vuc29yIG1fc2Vuc29yOworfTsKKworfQorCisjZW5kaWYg
Ly8gRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuY3BwIGIvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2NDYzMzc4NDIxY2UwYWIwMzliNzExMDk5MWVmYWZlMTM2
ZDdkNjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIkRldmljZU1vdGlvbkNsaWVudFF0LmgiCi0KLSNpbmNsdWRl
ICJEZXZpY2VNb3Rpb25Qcm92aWRlclF0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotRGV2
aWNlTW90aW9uQ2xpZW50UXQ6OkRldmljZU1vdGlvbkNsaWVudFF0KCkKLSAgICA6IG1fcHJvdmlk
ZXIobmV3IERldmljZU1vdGlvblByb3ZpZGVyUXQpCi17Ci19Ci0KLURldmljZU1vdGlvbkNsaWVu
dFF0Ojp+RGV2aWNlTW90aW9uQ2xpZW50UXQoKQotewotICAgIGRlbGV0ZSBtX3Byb3ZpZGVyOwot
fQotCi12b2lkIERldmljZU1vdGlvbkNsaWVudFF0OjpzZXRDb250cm9sbGVyKERldmljZU1vdGlv
bkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCi17Ci0gICAgbV9wcm92aWRlci0+c2V0Q29udHJvbGxl
cihjb250cm9sbGVyKTsKLX0KLQotdm9pZCBEZXZpY2VNb3Rpb25DbGllbnRRdDo6c3RhcnRVcGRh
dGluZygpCi17Ci0gICAgbV9wcm92aWRlci0+c3RhcnQoKTsKLX0KLQotdm9pZCBEZXZpY2VNb3Rp
b25DbGllbnRRdDo6c3RvcFVwZGF0aW5nKCkKLXsKLSAgICBtX3Byb3ZpZGVyLT5zdG9wKCk7Ci19
Ci0KLURldmljZU1vdGlvbkRhdGEqIERldmljZU1vdGlvbkNsaWVudFF0OjpjdXJyZW50RGV2aWNl
TW90aW9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wcm92aWRlci0+Y3VycmVudERldmljZU1v
dGlvbigpOwotfQotCi12b2lkIERldmljZU1vdGlvbkNsaWVudFF0OjpkZXZpY2VNb3Rpb25Db250
cm9sbGVyRGVzdHJveWVkKCkKLXsKLSAgICBkZWxldGUgdGhpczsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
ZXZpY2VNb3Rpb25DbGllbnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
ZXZpY2VNb3Rpb25DbGllbnRRdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjk2
NGEzM2U1Mzk3MTQ2YzI2MjNhZDY1YTMwYThjZGYyNmQxMjIwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRGV2aWNlTW90aW9uQ2xpZW50UXQuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgotICoKLSAqLwotCi0jaWZuZGVmIERldmljZU1vdGlvbkNsaWVudFF0X2gKLSNkZWZp
bmUgRGV2aWNlTW90aW9uQ2xpZW50UXRfaAotCi0jaW5jbHVkZSAiRGV2aWNlTW90aW9uQ2xpZW50
LmgiCi0jaW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0YS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIERldmljZU1vdGlvbkNvbnRyb2xsZXI7Ci1jbGFzcyBEZXZpY2VNb3Rpb25Qcm92
aWRlclF0OwotCi1jbGFzcyBEZXZpY2VNb3Rpb25DbGllbnRRdCA6IHB1YmxpYyBEZXZpY2VNb3Rp
b25DbGllbnQgewotcHVibGljOgotICAgIERldmljZU1vdGlvbkNsaWVudFF0KCk7Ci0gICAgdmly
dHVhbCB+RGV2aWNlTW90aW9uQ2xpZW50UXQoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250
cm9sbGVyKERldmljZU1vdGlvbkNvbnRyb2xsZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRV
cGRhdGluZygpOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKLSAgICB2aXJ0dWFs
IERldmljZU1vdGlvbkRhdGEqIGN1cnJlbnREZXZpY2VNb3Rpb24oKSBjb25zdDsKLSAgICB2aXJ0
dWFsIHZvaWQgZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpOwotCi1wcml2YXRlOgot
ICAgIERldmljZU1vdGlvblByb3ZpZGVyUXQqIG1fcHJvdmlkZXI7Ci19OwotCi19IC8vIG5hbWVz
cGVjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBEZXZpY2VNb3Rpb25DbGllbnRRdF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3ZpZGVy
UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92
aWRlclF0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjU1NzAzZDc3M2RiM2Mz
YzUyMTJmZmUyYjgyNmUxYmJkM2JkYmU1MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1v
dGlvblByb3ZpZGVyUXQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
Ci0gKgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEZXZpY2VNb3Rpb25Q
cm92aWRlclF0LmgiCi0KLSNpbmNsdWRlICJEZXZpY2VNb3Rpb25Db250cm9sbGVyLmgiCi0jaW5j
bHVkZSAiRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotRGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6RGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpCi0g
ICAgOiBtX21vdGlvbihEZXZpY2VNb3Rpb25EYXRhOjpjcmVhdGUoKSkKLSAgICAsIG1fZGV2aWNl
T3JpZW50YXRpb24obmV3IERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCkKLSAgICAsIG1fY29u
dHJvbGxlcigwKQotewotICAgIG1fYWNjZWxlcmF0aW9uLmFkZEZpbHRlcih0aGlzKTsKLX0KLQot
RGV2aWNlTW90aW9uUHJvdmlkZXJRdDo6fkRldmljZU1vdGlvblByb3ZpZGVyUXQoKQotewotICAg
IGRlbGV0ZSBtX2RldmljZU9yaWVudGF0aW9uOwotfQotCi12b2lkIERldmljZU1vdGlvblByb3Zp
ZGVyUXQ6OnNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlcikK
LXsKLSAgICBBU1NFUlQoY29udHJvbGxlcik7Ci0gICAgQVNTRVJUKCFtX2NvbnRyb2xsZXIpOwot
ICAgIG1fY29udHJvbGxlciA9IGNvbnRyb2xsZXI7Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uUHJv
dmlkZXJRdDo6c3RhcnQoKQotewotICAgIG1fYWNjZWxlcmF0aW9uLnN0YXJ0KCk7Ci0gICAgbV9k
ZXZpY2VPcmllbnRhdGlvbi0+c3RhcnQoKTsKLX0KLQotdm9pZCBEZXZpY2VNb3Rpb25Qcm92aWRl
clF0OjpzdG9wKCkKLXsKLSAgICBtX2FjY2VsZXJhdGlvbi5zdG9wKCk7Ci0gICAgbV9kZXZpY2VP
cmllbnRhdGlvbi0+c3RvcCgpOwotfQotCi1ib29sIERldmljZU1vdGlvblByb3ZpZGVyUXQ6OmZp
bHRlcihRQWNjZWxlcm9tZXRlclJlYWRpbmcqIHJlYWRpbmcpCi17Ci0gICAgaWYgKCFtX2NvbnRy
b2xsZXIpIHsKLSAgICAgICAgLy8gV2UgYXJlIHRoZSBvbmx5IGZpbHRlci4gTm8gbmVlZCB0byBw
cm9wYWdhdGUgZnJvbSBoZXJlLgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAg
UmVmUHRyPERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbj4gYWNjZWwgPSBEZXZpY2VNb3Rp
b25EYXRhOjpBY2NlbGVyYXRpb246OmNyZWF0ZSgKLSAgICAgICAgICAgIC8qIHggYXZhaWxhYmxl
ICovIHRydWUsIHJlYWRpbmctPngoKSwKLSAgICAgICAgICAgIC8qIHkgYXZhaWxhYmxlICovIHRy
dWUsIHJlYWRpbmctPnkoKSwKLSAgICAgICAgICAgIC8qIHogYXZhaWxhYmxlICovIHRydWUsIHJl
YWRpbmctPnooKSk7Ci0KLSAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YTo6Um90YXRpb25SYXRl
PiByb3RhdGlvbiA9IERldmljZU1vdGlvbkRhdGE6OlJvdGF0aW9uUmF0ZTo6Y3JlYXRlKAotICAg
ICAgICAgICAgbV9kZXZpY2VPcmllbnRhdGlvbi0+aGFzQWxwaGEoKSwgbV9kZXZpY2VPcmllbnRh
dGlvbi0+bGFzdE9yaWVudGF0aW9uKCktPmFscGhhKCksCi0gICAgICAgICAgICAvKiBiZXRhIGF2
YWlsYWJsZSAqLyB0cnVlLCBtX2RldmljZU9yaWVudGF0aW9uLT5sYXN0T3JpZW50YXRpb24oKS0+
YmV0YSgpLAotICAgICAgICAgICAgLyogZ2FtbWEgYXZhaWxhYmxlICovIHRydWUsIG1fZGV2aWNl
T3JpZW50YXRpb24tPmxhc3RPcmllbnRhdGlvbigpLT5nYW1tYSgpKTsKLQotICAgIG1fbW90aW9u
ID0gRGV2aWNlTW90aW9uRGF0YTo6Y3JlYXRlKGFjY2VsLAotICAgICAgICAgICAgYWNjZWwsIC8q
IEZJWE1FOiBOZWVkcyB0byBwcm92aWRlIGFjY2VsZXJhdGlvbiBpbmNsdWRlIGdyYXZpdHkuICov
Ci0gICAgICAgICAgICByb3RhdGlvbiwKLSAgICAgICAgICAgIGZhbHNlLCAwIC8qIFRoZSBpbnRl
cnZhbCBpcyB0cmVhdGVkIGludGVybmFsbHkgYnkgUXQgbW9iaWxpdHkgKi8pOwotCi0gICAgbV9j
b250cm9sbGVyLT5kaWRDaGFuZ2VEZXZpY2VNb3Rpb24obV9tb3Rpb24uZ2V0KCkpOwotCi0gICAg
Ly8gV2UgYXJlIHRoZSBvbmx5IGZpbHRlci4gTm8gbmVlZCB0byBwcm9wYWdhdGUgZnJvbSBoZXJl
LgotICAgIHJldHVybiBmYWxzZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25Qcm92aWRl
clF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvblByb3Zp
ZGVyUXQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDY2NDkwZjJjYzRiYWUwOGMw
OGRjNzFiMDRiYjhjOWFkZGI4YTFhZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlv
blByb3ZpZGVyUXQuaAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoK
LSAqLwotCi0jaWZuZGVmIERldmljZU1vdGlvblByb3ZpZGVyUXRfaAotI2RlZmluZSBEZXZpY2VN
b3Rpb25Qcm92aWRlclF0X2gKLQotI2luY2x1ZGUgIkRldmljZU1vdGlvbkRhdGEuaCIKLQotI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDxRQWNjZWxlcm9tZXRlckZpbHRlcj4KLQot
I2lmIFFUX1ZFUlNJT04gPCBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDApCi11c2luZyBRVE1fTkFN
RVNQQUNFOjpRQWNjZWxlcm9tZXRlcjsKLXVzaW5nIFFUTV9OQU1FU1BBQ0U6OlFBY2NlbGVyb21l
dGVyRmlsdGVyOwotdXNpbmcgUVRNX05BTUVTUEFDRTo6UUFjY2VsZXJvbWV0ZXJSZWFkaW5nOwot
I2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRGV2aWNlTW90aW9uQ29udHJv
bGxlcjsKLWNsYXNzIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdDsKLQotY2xhc3MgRGV2aWNl
TW90aW9uUHJvdmlkZXJRdCA6IHB1YmxpYyBRQWNjZWxlcm9tZXRlckZpbHRlciB7Ci1wdWJsaWM6
Ci0gICAgRGV2aWNlTW90aW9uUHJvdmlkZXJRdCgpOwotICAgIH5EZXZpY2VNb3Rpb25Qcm92aWRl
clF0KCk7Ci0KLSAgICB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciop
OwotCi0gICAgYm9vbCBmaWx0ZXIoUUFjY2VsZXJvbWV0ZXJSZWFkaW5nKik7Ci0KLSAgICB2b2lk
IHN0YXJ0KCk7Ci0gICAgdm9pZCBzdG9wKCk7Ci0gICAgRGV2aWNlTW90aW9uRGF0YSogY3VycmVu
dERldmljZU1vdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbW90aW9uLmdldCgpOyB9Ci0KLXByaXZh
dGU6Ci0gICAgUmVmUHRyPERldmljZU1vdGlvbkRhdGE+IG1fbW90aW9uOwotICAgIFFBY2NlbGVy
b21ldGVyIG1fYWNjZWxlcmF0aW9uOwotICAgIERldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdCog
bV9kZXZpY2VPcmllbnRhdGlvbjsKLSAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBtX2NvbnRy
b2xsZXI7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBEZXZpY2VN
b3Rpb25Qcm92aWRlclF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBlZTc5NDIyMTBhMzJlYmU4NTkyYTlkZDdhN2ViNzBmYWY5NTJjNzEz
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgiCi0jaW5jbHVk
ZSAiRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdDo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCgp
Ci0gICAgOiBtX3Byb3ZpZGVyKG5ldyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQpCi17Ci19
Ci0KLURldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6On5EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0
KCkKLXsKLSAgICBkZWxldGUgbV9wcm92aWRlcjsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudFF0OjpzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29u
dHJvbGxlcikKLXsKLSAgICBtX3Byb3ZpZGVyLT5zZXRDb250cm9sbGVyKGNvbnRyb2xsZXIpOwot
fQotCi12b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ6OnN0YXJ0VXBkYXRpbmcoKQotewot
ICAgIG1fcHJvdmlkZXItPnN0YXJ0KCk7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGll
bnRRdDo6c3RvcFVwZGF0aW5nKCkKLXsKLSAgICBtX3Byb3ZpZGVyLT5zdG9wKCk7Ci19Ci0KLURl
dmljZU9yaWVudGF0aW9uKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpsYXN0T3JpZW50YXRp
b24oKSBjb25zdAotewotICAgIHJldHVybiBtX3Byb3ZpZGVyLT5sYXN0T3JpZW50YXRpb24oKTsK
LX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0OjpkZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXJEZXN0cm95ZWQoKQotewotICAgIGRlbGV0ZSB0aGlzOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4Yjg0NDFlMGZiOWQzMmExZTgyZGIwMzczZDg3MTQ4MDFiZDgxYjY0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oCisrKyAvZGV2L251bGwK
QEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0jaWZuZGVmIERldmljZU9yaWVudGF0
aW9uQ2xpZW50UXRfaAotI2RlZmluZSBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0X2gKLQotI2lu
Y2x1ZGUgIkRldmljZU9yaWVudGF0aW9uLmgiCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25D
bGllbnQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyUXQ7Ci0KLWNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQgOiBwdWJsaWMg
RGV2aWNlT3JpZW50YXRpb25DbGllbnQgewotcHVibGljOgotICAgIERldmljZU9yaWVudGF0aW9u
Q2xpZW50UXQoKTsKLSAgICB2aXJ0dWFsIH5EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0KCk7Ci0K
LSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOwotICAgIHZpcnR1YWwgdm9p
ZCBzdG9wVXBkYXRpbmcoKTsKLSAgICB2aXJ0dWFsIERldmljZU9yaWVudGF0aW9uKiBsYXN0T3Jp
ZW50YXRpb24oKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyRGVzdHJveWVkKCk7Ci0KLXByaXZhdGU6Ci0gICAgRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlclF0KiBtX3Byb3ZpZGVyOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYgLy8gRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJR
dC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlNDZkMjQ0YzZmNWU3OTM2NmRi
NTZlNTYyMmEzYmI1OGRiZjgzMmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyUXQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
Ci0gKgotICovCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRp
b25Qcm92aWRlclF0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotRGV2aWNlT3JpZW50YXRp
b25Qcm92aWRlclF0OjpEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQoKQotICAgIDogbV9jb250
cm9sbGVyKDApCi17Ci0gICAgbV9zZW5zb3IuYWRkRmlsdGVyKHRoaXMpOwotICAgIG1fbGFzdE9y
aWVudGF0aW9uID0gRGV2aWNlT3JpZW50YXRpb246OmNyZWF0ZSgpOwotfQotCi12b2lkIERldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c2V0Q29udHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIqIGNvbnRyb2xsZXIpCi17Ci0gICAgaWYgKCFjb250cm9sbGVyKQotICAgICAgICBz
dG9wKCk7Ci0KLSAgICBtX2NvbnRyb2xsZXIgPSBjb250cm9sbGVyOwotfQotCi12b2lkIERldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJRdDo6c3RhcnQoKQotewotICAgIG1fc2Vuc29yLnN0YXJ0KCk7
Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0OjpzdG9wKCkKLXsKLSAgICBt
X3NlbnNvci5zdG9wKCk7Ci19Ci0KLWJvb2wgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0Ojpm
aWx0ZXIoUVJvdGF0aW9uUmVhZGluZyogcmVhZGluZykKLXsKLSAgICBpZiAobV9jb250cm9sbGVy
KSB7Ci0gICAgICAgIC8vIFByb3ZpZGUgZGV2aWNlIG9yaWVudGF0aW9uIGRhdGEgYWNjb3JkaW5n
IFczQyBzcGVjOgotICAgICAgICAvLyBodHRwOi8vZGV2LnczLm9yZy9nZW8vYXBpL3NwZWMtc291
cmNlLW9yaWVudGF0aW9uLmh0bWwKLSAgICAgICAgLy8gUXQgbW9iaWxpdHkgcHJvdmlkZSB0aGVz
ZSBkYXRhIHZpYSBRUm90YXRpb25TZW5zb3IgdXNpbmcgdGhlCi0gICAgICAgIC8vIFFSb3RhdGlv
blJlYWRpbmcgY2xhc3M6Ci0gICAgICAgIC8vICAtIHRoZSByb3RhdGlvbiBhcm91bmQgeiBheGlz
IChhbHBoYSkgaXMgZ2l2ZW4gYXMgeiBpbiBRUm90YXRpb25SZWFkaW5nOwotICAgICAgICAvLyAg
LSB0aGUgcm90YXRpb24gYXJvdW5kIHggYXhpcyAoYmV0YSkgaXMgZ2l2ZW4gYXMgeCBpbiBRUm90
YXRpb25SZWFkaW5nOwotICAgICAgICAvLyAgLSB0aGUgcm90YXRpb24gYXJvdW5kIHkgYXhpcyAo
Z2FtbWEpIGlzIGdpdmVuIGFzIHkgaW4gUVJvdGF0aW9uUmVhZGluZzsKLSAgICAgICAgLy8gU2Vl
OiBodHRwOi8vZG9jLnF0Lm5va2lhLmNvbS9xdG1vYmlsaXR5LTEuMC9xcm90YXRpb25yZWFkaW5n
Lmh0bWwKLSAgICAgICAgLy8gVGhlIFogKGFscGhhKSByb3RhdGlvbiBhbmdsZSBpcyBjaGVja2Vk
IHZpYSBoYXNBbHBoYSgpIHByaXZhdGUgbWV0aG9kLAotICAgICAgICAvLyBkZXBlbmRpbmcgaWYg
dGhlIGRldmljZSBpcyBhYmxlIGRvIGRldGVjdCB0aGUgYWxwaGEgcm90YXRpb24uIFggKGJldGEp
IGFuZAotICAgICAgICAvLyBZIChnYW1tYSkgYXhpcyBhcmUgYXZhaWxibGUgaW4gdGhpcyBjb250
ZXh0LgotICAgICAgICBtX2xhc3RPcmllbnRhdGlvbiA9IERldmljZU9yaWVudGF0aW9uOjpjcmVh
dGUoaGFzQWxwaGEoKSwgcmVhZGluZy0+eigpLAotICAgICAgICAgICAgICAgIC8qIHggYXZhaWxh
YmxlICovIHRydWUsIHJlYWRpbmctPngoKSwKLSAgICAgICAgICAgICAgICAvKiB5IGF2YWlsYWJs
ZSAqLyB0cnVlLCByZWFkaW5nLT55KCkpOwotICAgICAgICBtX2NvbnRyb2xsZXItPmRpZENoYW5n
ZURldmljZU9yaWVudGF0aW9uKG1fbGFzdE9yaWVudGF0aW9uLmdldCgpKTsKLSAgICB9Ci0KLSAg
ICAvLyBXZSBhcmUgdGhlIG9ubHkgZmlsdGVyLCBzbyBubyBuZWVkIHRvIHByb3BhZ2F0ZS4KLSAg
ICByZXR1cm4gZmFsc2U7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmggYi9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uUHJvdmlkZXJRdC5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMDdmMGE5YjBhZjUxZTRhZmNlYTI4OTljYWViYzNkOTUy
NjFlMjFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
Ci0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLSNpZm5k
ZWYgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0X2gKLSNkZWZpbmUgRGV2aWNlT3JpZW50YXRp
b25Qcm92aWRlclF0X2gKLQotI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uLmgiCi0jaW5jbHVk
ZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgotCi0jaW5jbHVkZSA8UVJvdGF0aW9uRmlsdGVyPgotCi0jaWYgUVRfVkVSU0lPTiA8IFFUX1ZF
UlNJT05fQ0hFQ0soNSwgMCwgMCkKLXVzaW5nIFFUTV9OQU1FU1BBQ0U6OlFSb3RhdGlvbkZpbHRl
cjsKLXVzaW5nIFFUTV9OQU1FU1BBQ0U6OlFSb3RhdGlvblJlYWRpbmc7Ci11c2luZyBRVE1fTkFN
RVNQQUNFOjpRUm90YXRpb25TZW5zb3I7Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1jbGFzcyBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQgOiBwdWJsaWMgUVJvdGF0aW9uRmls
dGVyIHsKLXB1YmxpYzoKLSAgICBEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQoKTsKLQotICAg
IHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqKTsKLQotICAg
IGJvb2wgZmlsdGVyKFFSb3RhdGlvblJlYWRpbmcqKTsKLQotICAgIHZvaWQgc3RhcnQoKTsKLSAg
ICB2b2lkIHN0b3AoKTsKLSAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9zZW5z
b3IuaXNBY3RpdmUoKTsgfQotICAgIERldmljZU9yaWVudGF0aW9uKiBsYXN0T3JpZW50YXRpb24o
KSBjb25zdCB7IHJldHVybiBtX2xhc3RPcmllbnRhdGlvbi5nZXQoKTsgfQotICAgIGJvb2wgaGFz
QWxwaGEoKSBjb25zdCB7IHJldHVybiBtX3NlbnNvci5wcm9wZXJ0eSgiaGFzWiIpLnRvQm9vbCgp
OyB9Ci0KLXByaXZhdGU6Ci0gICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uPiBtX2xhc3RPcmll
bnRhdGlvbjsKLSAgICBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsK
LSAgICBRUm90YXRpb25TZW5zb3IgbV9zZW5zb3I7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBEZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyUXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDg1MDgwZGYzODBiMTQxZmZlZjRkMzU5NjczNTFiZmI0
OTNlNjU0MGUuLjdmNGQ2ZGJkN2JmNmM0ZTRkMzU2ZGU5NzkzOWQzYTZkNzgzYjFiMTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEyOSw2
ICsxMjksMTAgQEAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oUVQpCisjaWYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKKyNpbmNsdWRlICJEZXZpY2VNb3Rpb25DbGllbnRRdC5oIgorI2luY2x1
ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIkhpdFRl
c3RSZXN1bHQuaCIKICNpbmNsdWRlIDxRTWltZURhdGE+CiAjZW5kaWYKQEAgLTI0Nyw2ICsyNTEs
MTAgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAg
IFdlYkNvcmU6OnByb3ZpZGVHZW9sb2NhdGlvblRvKG1fcGFnZS5nZXQoKSwgbmV3IFdlYkdlb2xv
Y2F0aW9uQ2xpZW50KHRoaXMpKTsKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pICYmIFBMQVRGT1JNKFFUKQorICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VNb3Rpb25Ubyht
X3BhZ2UuZ2V0KCksIG5ldyBEZXZpY2VNb3Rpb25DbGllbnRRdCk7CisgICAgV2ViQ29yZTo6cHJv
dmlkZURldmljZU9yaWVudGF0aW9uVG8obV9wYWdlLmdldCgpLCBuZXcgRGV2aWNlT3JpZW50YXRp
b25DbGllbnRRdCk7CisjZW5kaWYKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxF
KExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIFdlYkNvcmU6OnByb3ZpZGVOb3RpZmljYXRpb24o
bV9wYWdlLmdldCgpLCBuZXcgV2ViTm90aWZpY2F0aW9uQ2xpZW50KHRoaXMpKTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL2FwaS5wcmkgYi9Tb3VyY2UvYXBpLnByaQppbmRleCA2YzJkZjdi
NzA3ZWZmMmQ2YTc0OTI1MjhhNjk3MGVjM2EzNDgxYTBkLi5iZTQ2YTYyMTkxMTZkN2Y3OWI2MWZh
YmUzM2QwMjFkZjU2N2FmYzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvYXBpLnByaQorKysgYi9Tb3Vy
Y2UvYXBpLnByaQpAQCAtMjYyLDIwICsyNjIsNiBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OPTEpIHx8IGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9PUklFTgog
ICAgIGhhdmVRdCg1KTogUVQgKz0gc2Vuc29ycwogfQogCi1jb250YWlucyhERUZJTkVTLCBFTkFC
TEVfREVWSUNFX09SSUVOVEFUSU9OPTEpIHsKLSAgICBIRUFERVJTICs9IFwKLSAgICAgICAgJCRQ
V0QvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudFF0LmggXAotICAg
ICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uUHJvdmlkZXJR
dC5oIFwKLSAgICAgICAgJCRQV0QvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVu
dGF0aW9uQ2xpZW50UXQuaCBcCi0gICAgICAgICQkUFdEL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyUXQuaAotCi0gICAgU09VUkNFUyArPSBcCi0gICAg
ICAgICQkUFdEL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRRdC5j
cHAgXAotICAgICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9u
UHJvdmlkZXJRdC5jcHAgXAotICAgICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5jcHAgXAotICAgICAgICAkJFBXRC9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlclF0LmNwcAotfQotCiBjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfR0VPTE9DQVRJT049MSkgewogICAgICBoYXZlUXQoNSk6IFFU
ICs9IGxvY2F0aW9uCiAKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBj
MDc4MDIyMTUzMDg2OWYyMTI0N2I3NGM1MTYxZWMyY2QzYmNmYmM1Li5hNzkzZjllNmE0M2RmZmVj
MDhjZGUxOGQ5NjZlZjI5ZDA2ZTMyMjc3IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDUtMDIgIExhcnMgS251ZHNlbiAgPGxhcnMu
a251ZHNlbkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBNYWtlIERldmljZU1vdGlvbiBhbmQg
RGV2aWNlT3JpZW50YXRpb24gd29yayB3aXRoIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92aW5nIERldmljZU1vdGlvbiBhbmQgRGV2aWNl
T3JpZW50YXRpb24gY2xpZW50cyBhbmQgcHJvdmlkZXJzCisgICAgICAgIHRvIFdlYkNvcmUuICBU
aGlzIGlzIGRvbmUgdG8gYWxsb3cgY2xlYW4gZGVwZW5kZW5jaWVzIHdoZW4KKyAgICAgICAgc3Rh
dGljYWxseSBsaW5raW5nIFdLMi4KKworICAgICAgICAqIFNvdXJjZS9hcGkucHJpOgorCiAyMDEy
LTA1LTAyICBEb25nd29vIEltICA8ZHcuaW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0g
SW1wbGVtZW50IHRoZSBXZWIgQXVkaW8gQVBJIGZlYXR1cmUuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139807</attachid>
            <date>2012-05-02 07:06:44 -0700</date>
            <delta_ts>2012-05-02 07:18:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64595-20120502160643.patch</filename>
            <type>text/plain</type>
            <size>1281</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1ODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGI2MWQzYTM3ZmE4
M2JjYThlZTA2NjA0YjlhZjU1NDcwNTU5MWY4ZjEuLmU3YjIyYzMwNjkyOWY0NDFhZjAwYjA2ODU4
MWQyYWMxMjg4OWM1NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDUt
MDIgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KKworICAgICAgICBbUXRd
IEJ1aWxkZml4IGFmdGVyIHIxMTU4MTIgZm9yICFFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSBi
dWlsZHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NDU5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
QXBpL3F3ZWJwYWdlLmNwcDoKKwogMjAxMi0wNC0yNyAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8
YWxsYW4uamVuc2VuQG5va2lhLmNvbT4KIAogICAgICAgICBNb3ZlIFdlYktpdDEgc3BlY2lmaWMg
Y29udmVyc2lvbiBvZiB0b3VjaC1ldmVudHMgdG8gV2ViS2l0MQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBh
Z2UuY3BwCmluZGV4IGFiNGY4MjFjNTA0MmI3MWE0YjNmM2NmNWE5NWUxNzY3OTZmZGVjMTUuLjFj
NDc5NTg0MzBhM2UwNzI3Mzk3NzZmZGVkNTFiMWQwYWVmMDlhNzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9x
d2VicGFnZS5jcHAKQEAgLTQ1LDkgKzQ1LDExIEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIK
ICNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudFF0LmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVD
b250cm9sbGVyLmgiCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKICNpbmNsdWRlICJE
ZXZpY2VNb3Rpb25DbGllbnRRdC5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50
TW9jay5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCIKKyNlbmRpZgog
I2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRHJhZ0NsaWVudFF0LmgiCiAj
aW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIK
</data>

          </attachment>
      

    </bug>

</bugzilla>