<?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>204320</bug_id>
          
          <creation_ts>2019-11-18 14:55:10 -0800</creation_ts>
          <short_desc>Move [UIDevice currentDevice] calls to UI process</short_desc>
          <delta_ts>2020-02-18 10:27:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1591258</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-11-18 14:55:10 -0800</bug_when>
    <thetext>Calling [UIDevice currentDevice] will cause the runningboard daemon to be accessed. Since this service will be removed from the WebContent sandbox, these calls should be moved to the UI process.

For example, the function exernalDeviceDisplayNameForPlayer in MediaPlayerPrivateAVFoundationObjC.mm is calling [[PAL::getUIDeviceClass() currentDevice] localizedModel], which should be moved to the UI process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591259</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-18 14:55:37 -0800</bug_when>
    <thetext>&lt;rdar://problem/57299885&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618767</commentid>
    <comment_count>2</comment_count>
      <attachid>390700</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-02-13 16:04:46 -0800</bug_when>
    <thetext>Created attachment 390700
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618810</commentid>
    <comment_count>3</comment_count>
      <attachid>390700</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-02-13 17:43:40 -0800</bug_when>
    <thetext>Comment on attachment 390700
Patch

Needs more work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619090</commentid>
    <comment_count>4</comment_count>
      <attachid>390787</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-02-14 11:07:10 -0800</bug_when>
    <thetext>Created attachment 390787
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619521</commentid>
    <comment_count>5</comment_count>
      <attachid>390787</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-02-16 16:49:06 -0800</bug_when>
    <thetext>Comment on attachment 390787
Patch

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

Looks great, but one significant problem.

&gt; Source/WebCore/platform/ios/LocalizedDeviceModel.mm:47
&gt; +    auto localizedDeviceModel = retainPtr([[PAL::getUIDeviceClass() currentDevice] localizedModel]);

This isn’t setting cachedLocalizedDeviceModel, and it should be setting it. Unless our intent is to never cache it?

There should be no need to explicitly call retainPtr. It’s almost never something you have to call explicitly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619746</commentid>
    <comment_count>6</comment_count>
      <attachid>390943</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-02-17 11:12:24 -0800</bug_when>
    <thetext>Created attachment 390943
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619747</commentid>
    <comment_count>7</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-02-17 11:14:48 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #5)
&gt; Comment on attachment 390787 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=390787&amp;action=review
&gt; 
&gt; Looks great, but one significant problem.
&gt; 
&gt; &gt; Source/WebCore/platform/ios/LocalizedDeviceModel.mm:47
&gt; &gt; +    auto localizedDeviceModel = retainPtr([[PAL::getUIDeviceClass() currentDevice] localizedModel]);
&gt; 
&gt; This isn’t setting cachedLocalizedDeviceModel, and it should be setting it.
&gt; Unless our intent is to never cache it?
&gt; 

Good point!

&gt; There should be no need to explicitly call retainPtr. It’s almost never
&gt; something you have to call explicitly.

Thanks for reviewing! I have updated the patch accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619802</commentid>
    <comment_count>8</comment_count>
      <attachid>390943</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-02-17 12:36:20 -0800</bug_when>
    <thetext>Comment on attachment 390943
Patch

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

review- before of the overrelease, otherwise looks great

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:2737
&gt; +            displayName =  [[NSString stringWithFormat:@&quot;%@ %@&quot;, localizedDeviceModelName, displayName] autorelease];

The stringWithFormat function already returns something autoreleased. Calling autorelease on it a second time is going to overrelease it! Please do not do this.

Could remove that extra space on this line after the &quot;=&quot; since you are touching this.

&gt; Source/WebCore/platform/ios/LocalizedDeviceModel.h:30
&gt; +#import &lt;wtf/text/WTFString.h&gt;

Only need to include Forward.h here. No need to include WTFString.h.

&gt; Source/WebCore/platform/ios/LocalizedDeviceModel.mm:50
&gt; +    if (cachedLocalizedDeviceModel().hasValue())
&gt; +        return *cachedLocalizedDeviceModel();
&gt; +
&gt; +    auto localizedModel = String([[PAL::getUIDeviceClass() currentDevice] localizedModel]);
&gt; +    cachedLocalizedDeviceModel() = localizedModel;
&gt; +
&gt; +    return localizedModel;

Here’s how I think we should write this:

    auto&amp; deviceModel = cachedLocalizedDeviceModel();
    if (!deviceModel)
        deviceModel = String([[PAL::getUIDeviceClass() currentDevice] localizedModel]);
    return *deviceModel;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619803</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-02-17 12:36:40 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #8)
&gt; review- before of the overrelease, otherwise looks great

because of</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619839</commentid>
    <comment_count>10</comment_count>
      <attachid>390964</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-02-17 13:28:34 -0800</bug_when>
    <thetext>Created attachment 390964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619840</commentid>
    <comment_count>11</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-02-17 13:30:11 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #8)
&gt; Comment on attachment 390943 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=390943&amp;action=review
&gt; 
&gt; review- before of the overrelease, otherwise looks great
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:2737
&gt; &gt; +            displayName =  [[NSString stringWithFormat:@&quot;%@ %@&quot;, localizedDeviceModelName, displayName] autorelease];
&gt; 
&gt; The stringWithFormat function already returns something autoreleased.
&gt; Calling autorelease on it a second time is going to overrelease it! Please
&gt; do not do this.
&gt; 

Ah, thanks for catching this!

&gt; Could remove that extra space on this line after the &quot;=&quot; since you are
&gt; touching this.
&gt; 

Done.

&gt; &gt; Source/WebCore/platform/ios/LocalizedDeviceModel.h:30
&gt; &gt; +#import &lt;wtf/text/WTFString.h&gt;
&gt; 
&gt; Only need to include Forward.h here. No need to include WTFString.h.
&gt; 

Fixed.

&gt; &gt; Source/WebCore/platform/ios/LocalizedDeviceModel.mm:50
&gt; &gt; +    if (cachedLocalizedDeviceModel().hasValue())
&gt; &gt; +        return *cachedLocalizedDeviceModel();
&gt; &gt; +
&gt; &gt; +    auto localizedModel = String([[PAL::getUIDeviceClass() currentDevice] localizedModel]);
&gt; &gt; +    cachedLocalizedDeviceModel() = localizedModel;
&gt; &gt; +
&gt; &gt; +    return localizedModel;
&gt; 
&gt; Here’s how I think we should write this:
&gt; 
&gt;     auto&amp; deviceModel = cachedLocalizedDeviceModel();
&gt;     if (!deviceModel)
&gt;         deviceModel = String([[PAL::getUIDeviceClass() currentDevice]
&gt; localizedModel]);
&gt;     return *deviceModel;

Yes, that is much better :)

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620189</commentid>
    <comment_count>12</comment_count>
      <attachid>390964</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-02-18 09:30:52 -0800</bug_when>
    <thetext>Comment on attachment 390964
Patch

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620211</commentid>
    <comment_count>13</comment_count>
      <attachid>390964</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-18 10:27:06 -0800</bug_when>
    <thetext>Comment on attachment 390964
Patch

Clearing flags on attachment: 390964

Committed r256839: &lt;https://trac.webkit.org/changeset/256839&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620212</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-18 10:27:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390700</attachid>
            <date>2020-02-13 16:04:46 -0800</date>
            <delta_ts>2020-02-14 11:07:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204320-20200213160445.patch</filename>
            <type>text/plain</type>
            <size>23572</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NjUyNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAyLTEzICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFtVSURldmljZSBj
dXJyZW50RGV2aWNlXSBjYWxscyB0byBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYWxsaW5nIFtVSURldmljZSBjdXJyZW50RGV2aWNl
XSB3aWxsIGNhdXNlIHRoZSBydW5uaW5nYm9hcmQgZGFlbW9uIHRvIGJlIGFjY2Vzc2VkLiBTaW5j
ZSB0aGlzIHNlcnZpY2Ugd2lsbCBiZSByZW1vdmVkIGZyb20KKyAgICAgICAgdGhlIFdlYkNvbnRl
bnQgc2FuZGJveCwgdGhlc2UgY2FsbHMgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBVSSBwcm9jZXNz
LiBUaGUgZnVuY3Rpb24gZXhlcm5hbERldmljZURpc3BsYXlOYW1lRm9yUGxheWVyIGluCisgICAg
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gaXMgY2FsbGluZyBbW1BB
TDo6Z2V0VUlEZXZpY2VDbGFzcygpIGN1cnJlbnREZXZpY2VdIGxvY2FsaXplZE1vZGVsXSwgd2hp
Y2ggc2hvdWxkIGJlCisgICAgICAgIG1vdmVkIHRvIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAg
IEFQSSB0ZXN0OiBXZWJLaXQuTG9jYWxpemVkRGV2aWNlTmFtZQorCisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZXJuYWxE
ZXZpY2VEaXNwbGF5TmFtZUZvclBsYXllcik6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0xvY2Fs
aXplZERldmljZU1vZGVsLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9Mb2NhbGl6
ZWREZXZpY2VNb2RlbC5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRMb2NhbGl6
ZWREZXZpY2VNb2RlbCk6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWREZXZpY2VNb2RlbCk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRMb2NhbGl6ZWREZXZpY2VNb2RlbCk6CisKIDIwMjAtMDIt
MTMgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNd
IExpbmVCcmVha2VyIHNob3VsZCBub3QgaG9sZCBvbiB0byB0aGUgbGFzdFdyYXBPcHBvcnR1bml0
eSBpbmxpbmUgaXRlbQpJbmRleDogU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAyNTY1
MjcpCisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0zOTksNiArMzk5LDcgQEAgcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVHcmlkVGlsZS5tbQogcGxh
dGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllci5tbQogcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXll
clBvb2wubW0KIHBsYXRmb3JtL2lvcy9Mb2NhbEN1cnJlbnRUcmFpdENvbGxlY3Rpb24ubW0KK3Bs
YXRmb3JtL2lvcy9Mb2NhbGl6ZWREZXZpY2VNb2RlbC5tbQogcGxhdGZvcm0vaW9zL0xvd1Bvd2Vy
TW9kZU5vdGlmaWVySU9TLm1tCiBwbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQogcGxhdGZv
cm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tIEBuby11bmlmeQpJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gMjU2NTI3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00NzkyLDYgKzQ3OTIsNyBAQAogCQlFMzIzQ0ZGQTFF
NUFGNkFGMDBGMEI0QTAgLyogSlNET01Db252ZXJ0UHJvbWlzZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMyM0NGRjkxRTVBRjZBNTAwRjBCNEEwIC8q
IEpTRE9NQ29udmVydFByb21pc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlFMzU2NUI3QjFEQzJENkM5MDAyMTdEQkQgLyogSlNFdmVudEN1c3Rv
bS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0RUU0
OUYxREMyRDU3NTAwRUFBOUQzIC8qIEpTRXZlbnRDdXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzU4MDJCNjFEQzg0MzVEMDBBOTc3M0Mg
LyogRE9NSklUSURMVHlwZUZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTM1ODAyQjUxREM4NDM1ODAwQTk3NzNDIC8qIERPTUpJVElETFR5cGVG
aWx0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQlFMzVCOTA3RjIzRjYwQTUwMDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNUI5MDdDMjNGNjA2
NzcwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzNzdGRTREMURBREUxNjUwMENERDAyNSAv
KiBOb2RlQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFM0QwNDk5MzFEQURDMDQ1MDA3MThGM0MgLyogTm9kZUNvbnN0YW50cy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzN0M4NjUwMUVC
NjNFM0YwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzN0M4NjRGMUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVBy
b21pc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlFMzk2MjhCRjIzOTU3MjhGMDA2NThFQ0QgLyogRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92
aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5
NjI4QkQyMzk1NzI4RTAwNjU4RUNEIC8qIERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTUx
MDMsNiArMTUxMDQsOCBAQAogCQlFMzM0ODI1RTFEQzkzQUEwMDA5Qzk1NDQgLyogRE9NSklUQWJz
dHJhY3RIZWFwUmVwb3NpdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBE
T01KSVRBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0RPTUpJVEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKIAkJRTM0RUU0OUYxREMyRDU3NTAwRUFBOUQzIC8qIEpTRXZlbnRDdXN0
b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFdmVudEN1c3RvbS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU4MDJCNTFEQzg0MzU4MDBBOTc3M0MgLyog
RE9NSklUSURMVHlwZUZpbHRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
T01KSVRJRExUeXBlRmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNUI5
MDdDMjNGNjA2NzcwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMzVCOTA3RTIzRjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVk
RGV2aWNlTW9kZWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBM
b2NhbGl6ZWREZXZpY2VNb2RlbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM3
Qzg2NEYxRUI2M0UyRDAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0RPTVByb21pc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1vZHVsZUxvYWRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzg4Mzg5NTFCQUQxNDVGMDBENjJF
RTMgLyogU2NyaXB0TW9kdWxlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjI4NTIsNiArMjI4NTUsOCBAQAogCQkJCUU0RTM5QUZDMTMzMEVGQzUwMDNBQjI3NCAvKiBMZWdh
Y3lUaWxlTGF5ZXJQb29sLm1tICovLAogCQkJCTFDNDNERTY4MjJBQjRCOEEwMDE1MjdEOSAvKiBM
b2NhbEN1cnJlbnRUcmFpdENvbGxlY3Rpb24uaCAqLywKIAkJCQkxQzQzREU2QTIyQUI0QjhBMDAx
NTI3RDkgLyogTG9jYWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uLm1tICovLAorCQkJCUUzNUI5MDdD
MjNGNjA2NzcwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oICovLAorCQkJCUUzNUI5
MDdFMjNGNjA2NzcwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5tbSAqLywKIAkJCQk0
NkVGQUYwRDFFNUZCOUMyMDBFN0YzNEIgLyogTG93UG93ZXJNb2RlTm90aWZpZXJJT1MubW0gKi8s
CiAJCQkJRTM5NjI4QzAyMzk1NzQzMDAwNjU4RUNEIC8qIE1vdGlvbk1hbmFnZXJDbGllbnQuaCAq
LywKIAkJCQlFNDUzOTAxOTBFQUZDQUNBMDAzNjk1QzggLyogUGFzdGVib2FyZElPUy5tbSAqLywK
QEAgLTMxMzMwLDYgKzMxMzM1LDcgQEAKIAkJCQlGNTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQgLyog
TG9jYWxlQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2MzNBNzI2MTNEOEIzM0EwMDg1MDFC
NiAvKiBMb2NhbGVUb1NjcmlwdE1hcHBpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MTZFOEI3
MTM2RTA0REIwMDc2QzNDMCAvKiBMb2NhbGl6ZWREYXRlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCUUzNUI5MDdGMjNGNjBBNTAwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTM1MjA3QkUwOUJENDEwQTAwRjIwMzhEIC8qIExvY2FsaXplZFN0
cmluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRkNENkJCMjNDRTAyNzcwMEM2MjU2NyAvKiBM
b2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFMUM0
MUIwRDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbQkocmV2aXNpb24gMjU2NTI3KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBAQAogI2ltcG9y
dCAiSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmgiCiAjaW1wb3J0ICJJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGT2JqQy5oIgogI2ltcG9ydCAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUxlZ2FjeUFWRk9iakMuaCIKKyNpbXBvcnQgIkxvY2FsaXplZERldmljZU1vZGVsLmgiCiAjaW1w
b3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EuaCIKICNp
bXBvcnQgIk1lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmgiCkBAIC0yNzE4LDcgKzI3MTksNyBAQCBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAgIGJyZWFrOwogCiAg
ICAgICAgIC8vIFRoZSByb3V0ZSBpcyBhIHNwZWFrZXIgb3IgSERNSSBvdXQsIG92ZXJyaWRlIHRo
ZSBuYW1lIHRvIGJlIHRoZSBsb2NhbGl6ZWQgZGV2aWNlIG1vZGVsLgotICAgICAgICBOU1N0cmlu
ZyAqbG9jYWxpemVkRGV2aWNlTW9kZWwgPSBbW1BBTDo6Z2V0VUlEZXZpY2VDbGFzcygpIGN1cnJl
bnREZXZpY2VdIGxvY2FsaXplZE1vZGVsXTsKKyAgICAgICAgTlNTdHJpbmcgKmxvY2FsaXplZERl
dmljZU1vZGVsTmFtZSA9IGxvY2FsaXplZERldmljZU1vZGVsKCk7CiAKICAgICAgICAgLy8gSW4g
Y2FzZXMgd2hlcmUgYSByb3V0ZSB3aXRoIHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cywgcHJlZml4
IHRoZSBuYW1lIHdpdGggdGhlIG1vZGVsLgogICAgICAgICBCT09MIGluY2x1ZGVMb2NhbGl6ZWRE
ZXZpY2VNb2RlbE5hbWUgPSBOTzsKQEAgLTI3MzMsOSArMjczNCw5IEBAIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogICAgICAgICB9CiAKICAgICAgICAgaWYgKGluY2x1ZGVMb2Nh
bGl6ZWREZXZpY2VNb2RlbE5hbWUpCi0gICAgICAgICAgICBkaXNwbGF5TmFtZSA9ICBbTlNTdHJp
bmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVAICVAIiwgbG9jYWxpemVkRGV2aWNlTW9kZWwsIGRpc3Bs
YXlOYW1lXTsKKyAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gIFtOU1N0cmluZyBzdHJpbmdXaXRo
Rm9ybWF0OkAiJUAgJUAiLCBsb2NhbGl6ZWREZXZpY2VNb2RlbE5hbWUsIGRpc3BsYXlOYW1lXTsK
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBsb2NhbGl6ZWREZXZpY2VN
b2RlbDsKKyAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gbG9jYWxpemVkRGV2aWNlTW9kZWxOYW1l
OwogCiAgICAgICAgIGJyZWFrOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9Mb2NhbGl6ZWREZXZpY2VNb2RlbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9Mb2NhbGl6ZWREZXZpY2VNb2RlbC5oCShub25leGlzdGVudCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9Mb2NhbGl6ZWREZXZpY2VNb2RlbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyog
YXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTW9kZWwoKTsKK1dFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0TG9jYWxpemVkRGV2aWNlTW9kZWwoY29uc3QgU3RyaW5nJik7CisKK30K
KworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTG9jYWxpemVkRGV2
aWNlTW9kZWwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xv
Y2FsaXplZERldmljZU1vZGVsLm1tCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9Mb2NhbGl6ZWREZXZpY2VNb2RlbC5tbQkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDU4IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMb2NhbGl6ZWREZXZpY2VNb2RlbC5oIgor
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCA8cGFsL2lvcy9VSUtpdFNvZnRM
aW5rLmg+CisjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdGF0aWMgT3B0aW9uYWw8U3RyaW5nPiYgY2FjaGVkTG9jYWxpemVkRGV2aWNlTW9kZWwoKQor
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxPcHRpb25hbDxTdHJpbmc+PiBkZXZpY2VNb2Rl
bDsKKyAgICByZXR1cm4gZGV2aWNlTW9kZWw7Cit9CisKK1N0cmluZyBsb2NhbGl6ZWREZXZpY2VN
b2RlbCgpCit7CisgICAgaWYgKGNhY2hlZExvY2FsaXplZERldmljZU1vZGVsKCkuaGFzVmFsdWUo
KSkKKyAgICAgICAgcmV0dXJuICpjYWNoZWRMb2NhbGl6ZWREZXZpY2VNb2RlbCgpOworCisgICAg
YXV0byBsb2NhbGl6ZWREZXZpY2VNb2RlbCA9IHJldGFpblB0cihbW1BBTDo6Z2V0VUlEZXZpY2VD
bGFzcygpIGN1cnJlbnREZXZpY2VdIGxvY2FsaXplZE1vZGVsXSk7CisgICAgcmV0dXJuIGxvY2Fs
aXplZERldmljZU1vZGVsLmdldCgpOworfQorCit2b2lkIHNldExvY2FsaXplZERldmljZU1vZGVs
KGNvbnN0IFN0cmluZyYgZGV2aWNlTW9kZWwpCit7CisgICAgY2FjaGVkTG9jYWxpemVkRGV2aWNl
TW9kZWwoKSA9IGRldmljZU1vZGVsOworfQorCit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1NjUyNykKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDItMTMgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5A
YXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgW1VJRGV2aWNlIGN1cnJlbnREZXZpY2VdIGNhbGxz
IHRvIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNDMyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEdldCB0aGUgbG9jYWxpemVkIGRldmljZSBuYW1lIGluIHRoZSBVSSBwcm9jZXNzLCBh
bmQgc2VuZCBpdCB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGFzIHBhcnQgb2YgdGhlCisgICAg
ICAgIHByb2Nlc3MgY3JlYXRpb24gcGFyYW1ldGVycy4KKworICAgICAgICAqIFNoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6
cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2Nv
YS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIwLTAyLTEzICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIC11cGRhdGVTZWxlY3Rpb25X
aXRoRXh0ZW50UG9pbnQ6Y29tcGxldGlvbkhhbmRsZXI6IHNob3VsZCB3b3JrIHdpdGhvdXQgcmVx
dWlyaW5nIGZsb2F0aW5nIGN1cnNvcgpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDI1NjUyNykK
KysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzQsNiArMTc0LDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjplbmNvZAogICAgIGVuY29kZXIgPDwgY3VycmVudFVzZXJJbnRlcmZhY2VJ
ZGlvbUlzUGFkOwogICAgIGVuY29kZXIgPDwgY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwOwogICAg
IGVuY29kZXIgPDwgZm9jdXNSaW5nQ29sb3I7CisgICAgZW5jb2RlciA8PCBsb2NhbGl6ZWREZXZp
Y2VNb2RlbDsKICNlbmRpZgogfQogCkBAIC00NjUsNiArNDY2LDkgQEAgYm9vbCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZAogICAgIGlmICghZm9jdXNSaW5nQ29sb3IpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICBwYXJhbWV0ZXJzLmZvY3VzUmluZ0NvbG9yID0gV1RGTW92
ZSgqZm9jdXNSaW5nQ29sb3IpOworICAgIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy5sb2NhbGl6ZWREZXZpY2VNb2RlbCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRp
ZgogCiAgICAgcmV0dXJuIHRydWU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyNTY1MjcpCisrKyBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTIxNiw2ICsyMTYsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyB7CiAgICAgYm9vbCBjdXJyZW50VXNlckludGVyZmFjZUlkaW9tSXNQYWQgeyBmYWxz
ZSB9OwogICAgIFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpDU1NWYWx1ZVRvU3lzdGVtQ29sb3JN
YXAgY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwOwogICAgIFdlYkNvcmU6OkNvbG9yIGZvY3VzUmlu
Z0NvbG9yOworICAgIFN0cmluZyBsb2NhbGl6ZWREZXZpY2VNb2RlbDsKICNlbmRpZgogfTsKIApJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tCShyZXZpc2lvbiAyNTY1MjcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0
Nyw3IEBACiAjaW1wb3J0ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbXBvcnQgIldpbmRvd1Nl
cnZlckNvbm5lY3Rpb24uaCIKICNpbXBvcnQgPFdlYkNvcmUvQ29sb3IuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvTG9jYWxpemVkRGV2aWNlTW9kZWwuaD4KICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVS
ZWdpc3RyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNp
bXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KQEAgLTM2Miw2ICszNjMsNyBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAgICAgcGFyYW1ldGVycy5jdXJy
ZW50VXNlckludGVyZmFjZUlkaW9tSXNQYWQgPSBjdXJyZW50VXNlckludGVyZmFjZUlkaW9tSXNQ
YWQoKTsKICAgICBwYXJhbWV0ZXJzLmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCA9IFJlbmRlclRo
ZW1lSU9TOjpjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKTsKICAgICBwYXJhbWV0ZXJzLmZvY3Vz
UmluZ0NvbG9yID0gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLmZvY3VzUmluZ0NvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPigpKTsKKyAgICBwYXJhbWV0ZXJzLmxvY2FsaXplZERl
dmljZU1vZGVsID0gbG9jYWxpemVkRGV2aWNlTW9kZWwoKTsKICNlbmRpZgogfQogCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0J
KHJldmlzaW9uIDI1NjUyNykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvRm9udENhc2NhZGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGlzdG9yeUNvbnRyb2xs
ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGlzdG9yeUl0ZW0uaD4KKyNpbXBvcnQgPFdlYkNvcmUv
TG9jYWxpemVkRGV2aWNlTW9kZWwuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5n
cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2dJbml0aWFsaXphdGlvbi5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CkBAIC0xOTcsNiArMTk4LDcgQEAgdm9pZCBXZWJQcm9j
ZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICBzZXRDdXJyZW50VXNlckludGVyZmFjZUlkaW9tSXNQYWQocGFyYW1ldGVycy5jdXJyZW50
VXNlckludGVyZmFjZUlkaW9tSXNQYWQpOworICAgIHNldExvY2FsaXplZERldmljZU1vZGVsKHBh
cmFtZXRlcnMubG9jYWxpemVkRGV2aWNlTW9kZWwpOwogI2VuZGlmCiAKICNpZiBVU0UoQVBQS0lU
KQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwko
cmV2aXNpb24gMjU2NTY5KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMjAtMDItMTMgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUu
Y29tPgorCisgICAgICAgIE1vdmUgW1VJRGV2aWNlIGN1cnJlbnREZXZpY2VdIGNhbGxzIHRvIFVJ
IHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNDMyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTG9jYWxpemVkRGV2aWNlTW9k
ZWwubW06IEFkZGVkLgorICAgICAgICAoVEVTVCk6CisKIDIwMjAtMDItMTMgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBfV0tSZXNvdXJjZUxv
YWRJbmZvIHNob3VsZCBjb25mb3JtIHRvIE5TU2VjdXJlQ29kaW5nCkluZGV4OiBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMjU2NTI3KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTk5
MSw2ICs5OTEsNyBAQAogCQlFMTk0RTFCRDE3N0U1M0M3MDA5QzRENEUgLyogU3RvcExvYWRpbmdG
cm9tRGlkUmVjZWl2ZVJlc3BvbnNlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5NEUxQkMxNzdFNTM0QTAwOUM0RDRFIC8qIFN0b3BM
b2FkaW5nRnJvbURpZFJlY2VpdmVSZXNwb25zZS5odG1sICovOyB9OwogCQlFMzI0QTZGMDIwNDFD
ODIwMDBBNzY1OTMgLyogVW5pcXVlQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5OEJDMEYyMDQxQzc2MzAwMzg3MTM2IC8qIFVuaXF1ZUFy
cmF5LmNwcCAqLzsgfTsKIAkJRTMyQjU0OTIyMjgxMEFDNDAwOEFENzAyIC8qIFBhY2tlZC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzJCNTQ5MTIy
ODEwQUMwMDA4QUQ3MDIgLyogUGFja2VkLmNwcCAqLzsgfTsKKwkJRTM1QjkwODIyM0Y2MEREMDAw
MDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1QjkwODEyM0Y2MEREMDAwMDAxMUZGIC8qIExvY2Fs
aXplZERldmljZU1vZGVsLm1tICovOyB9OwogCQlFMzVGQzdCMjIyQjgyQTczMDBGMzJGOTggLyog
SlNMb2NrVGFrZXNXZWJUaHJlYWRMb2NrLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTM1RkM3QjEyMkI4MkE2RDAwRjMyRjk4IC8qIEpTTG9ja1Rha2Vz
V2ViVGhyZWFkTG9jay5tbSAqLzsgfTsKIAkJRTM3M0Q3OTExRjJDRjM1MjAwQzZGQUFGIC8qIFNp
Z25hbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTM5NTNGOTUxRjJDRjMyMTAwQTc2QTJFIC8qIFNpZ25hbHMuY3BwICovOyB9OwogCQlFMzhBMEQz
NTFGRDUwQ0MzMDBFOThDOEIgLyogVGhyZWFkaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOEEwRDM0MUZENTBDQkMwMEU5OEM4QiAvKiBUaHJl
YWRpbmcuY3BwICovOyB9OwpAQCAtMjU2NSw2ICsyNTY2LDcgQEAKIAkJRTE5NEUxQkExNzdFNTE0
NTAwOUM0RDRFIC8qIFN0b3BMb2FkaW5nRnJvbURpZFJlY2VpdmVSZXNwb25zZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFN0b3BMb2FkaW5nRnJvbURpZFJlY2Vp
dmVSZXNwb25zZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE5NEUxQkMxNzdF
NTM0QTAwOUM0RDRFIC8qIFN0b3BMb2FkaW5nRnJvbURpZFJlY2VpdmVSZXNwb25zZS5odG1sICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1s
OyBwYXRoID0gU3RvcExvYWRpbmdGcm9tRGlkUmVjZWl2ZVJlc3BvbnNlLmh0bWw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMkI1NDkxMjI4MTBBQzAwMDhBRDcwMiAvKiBQYWNrZWQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFja2VkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTM1QjkwODEyM0Y2MEREMDAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVs
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxpemVkRGV2aWNlTW9kZWwubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUZDN0IxMjJCODJBNkQwMEYzMkY5OCAvKiBKU0xv
Y2tUYWtlc1dlYlRocmVhZExvY2subW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBKU0xvY2tUYWtlc1dlYlRocmVhZExvY2subW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUzODg4ODcwMjBDOTA5ODEwMEU2MzJCQyAvKiBXb3JrZXJQb29sLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtlclBvb2wuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzhBMEQzNDFGRDUwQ0JDMDBFOThDOEIgLyogVGhyZWFk
aW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRocmVhZGluZy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yODcwLDYgKzI4NzIsNyBAQAogCQkJ
CUMxNUNCQjJGMjNGMUZGMUEwMDMwMENDNyAvKiBCYWNrbGlnaHRMZXZlbE5vdGlmaWNhdGlvbi5t
bSAqLywKIAkJCQlDMTY5MkRDOTIzRDEwREFFMDA2RTg4RjcgLyogQmF0dGVyeS5tbSAqLywKIAkJ
CQlFMzk0QUU2RTIzRjIzMDNFMDA1QjQ5MzYgLyogR3JhbnRBY2Nlc3NUb01vYmlsZUFzc2V0cy5t
bSAqLywKKwkJCQlFMzVCOTA4MTIzRjYwREQwMDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9k
ZWwubW0gKi8sCiAJCQkJQzE0NUNDMEIyM0RBNUEwRjAwM0E1RUVCIC8qIE1pbWVUeXBlcy5tbSAq
LywKIAkJCQkwRjEzOUU3NTFBNDIzQTUzMDBGNTkwRjUgLyogV2Vha09iakNQdHIubW0gKi8sCiAJ
CQkpOwpAQCAtNDg1MSw2ICs0ODU0LDcgQEAKIAkJCQk3QzgzRTBDMDFEMEE2NTI3MDBGRUJDRjMg
LyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMDAx
QTQxMUFFNjAwNDQ3QzRDIC8qIExvYWRQYWdlT25DcmFzaC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1Nzc4RDA1NjIyMTEwQTI2MDA4OTlFM0IgLyogTG9hZFdlYkFyY2hpdmUubW0gaW4gU291cmNl
cyAqLywKKwkJCQlFMzVCOTA4MjIzRjYwREQwMDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9k
ZWwubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUU2QTg5NDFEMkYxQzBBMDBDMDA0QjYgLyogTG9j
YWxTdG9yYWdlQ2xlYXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlDQTM4NDU5NjIwQUUxN0E5MDA5
OTBEM0IgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDZDNTE5REExRDM1NUFCMjAwREFBNTFBIC8qIExvY2FsU3RvcmFnZU51bGxFbnRyaWVzLm1t
IGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9M
b2NhbGl6ZWREZXZpY2VNb2RlbC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9Mb2NhbGl6ZWREZXZpY2VNb2RlbC5tbQkobm9uZXhpc3RlbnQpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Mb2NhbGl6ZWREZXZpY2VNb2RlbC5tbQko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2lmIFdLX0hBVkVfQ19TUEkK
KworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcu
aCIKKyNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkRGV2aWNlTW9kZWwuaD4KKworVEVTVChXZWJL
aXQsIExvY2FsaXplZERldmljZU1vZGVsKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFk
b3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgV0tSZXRh
aW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGls
OjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1
bmRsZVRlc3QiKSk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCA9IChXS1By
b2Nlc3NQb29sICopY29udGV4dC5nZXQoKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwg
MzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7
CisKKyAgICBhdXRvIGxvY2FsaXplZERldmljZU1vZGVsID0gWyZdIHsKKyAgICAgICAgcmV0dXJu
IFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cuaW50ZXJuYWxz
LmxvY2FsaXplZERldmljZU1vZGVsKCkiXS5ib29sVmFsdWU7CisgICAgfTsKKworICAgIE5TU3Ry
aW5nICpsb2NhbGl6ZWREZXZpY2VNb2RlbE5hbWUgPSBXZWJDb3JlOjpsb2NhbGl6ZWREZXZpY2VN
b2RlbCgpCisgICAgCisgICAgQVNTRVJUX1RSVUUobG9jYWxpemVkRGV2aWNlTW9kZWwoKSA9PSBs
b2NhbGl6ZWREZXZpY2VNb2RlbE5hbWUpOworfQorCisjZW5kaWYgLy8gV0tfSEFWRV9DX1NQSQor
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390787</attachid>
            <date>2020-02-14 11:07:10 -0800</date>
            <delta_ts>2020-02-17 11:12:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204320-20200214110709.patch</filename>
            <type>text/plain</type>
            <size>23518</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NjYyMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAyLTEzICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFtVSURldmljZSBj
dXJyZW50RGV2aWNlXSBjYWxscyB0byBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYWxsaW5nIFtVSURldmljZSBjdXJyZW50RGV2aWNl
XSB3aWxsIGNhdXNlIHRoZSBydW5uaW5nYm9hcmQgZGFlbW9uIHRvIGJlIGFjY2Vzc2VkLiBTaW5j
ZSB0aGlzIHNlcnZpY2Ugd2lsbCBiZSByZW1vdmVkIGZyb20KKyAgICAgICAgdGhlIFdlYkNvbnRl
bnQgc2FuZGJveCwgdGhlc2UgY2FsbHMgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBVSSBwcm9jZXNz
LiBUaGUgZnVuY3Rpb24gZXhlcm5hbERldmljZURpc3BsYXlOYW1lRm9yUGxheWVyIGluCisgICAg
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gaXMgY2FsbGluZyBbW1BB
TDo6Z2V0VUlEZXZpY2VDbGFzcygpIGN1cnJlbnREZXZpY2VdIGxvY2FsaXplZE1vZGVsXSwgd2hp
Y2ggc2hvdWxkIGJlCisgICAgICAgIG1vdmVkIHRvIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAg
IEFQSSB0ZXN0OiBXZWJLaXQuTG9jYWxpemVkRGV2aWNlTmFtZQorCisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZXJuYWxE
ZXZpY2VEaXNwbGF5TmFtZUZvclBsYXllcik6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0xvY2Fs
aXplZERldmljZU1vZGVsLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9Mb2NhbGl6
ZWREZXZpY2VNb2RlbC5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRMb2NhbGl6
ZWREZXZpY2VNb2RlbCk6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWREZXZpY2VNb2RlbCk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRMb2NhbGl6ZWREZXZpY2VNb2RlbCk6CisKIDIwMjAtMDIt
MTQgIENoYXJsZXMgVHVybmVyICA8Y3R1cm5lckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3Ry
ZWFtZXJdW0VNRV0gRml4IHdhcm5pbmdzIGluIExPR19ESVNBQkxFRCBidWlsZApJbmRleDogU291
cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAyNTY2MjApCisrKyBTb3VyY2UvV2ViQ29yZS9T
b3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zOTksNiArMzk5LDcgQEAgcGxhdGZv
cm0vaW9zL0xlZ2FjeVRpbGVHcmlkVGlsZS5tbQogcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXll
ci5tbQogcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wubW0KIHBsYXRmb3JtL2lvcy9M
b2NhbEN1cnJlbnRUcmFpdENvbGxlY3Rpb24ubW0KK3BsYXRmb3JtL2lvcy9Mb2NhbGl6ZWREZXZp
Y2VNb2RlbC5tbQogcGxhdGZvcm0vaW9zL0xvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tCiBwbGF0
Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQogcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0
b3J5SU9TLm1tIEBuby11bmlmeQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU2NjIwKQorKysgU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC00NzkzLDYgKzQ3OTMsNyBAQAogCQlFMzIzQ0ZGQTFFNUFGNkFGMDBGMEI0QTAgLyogSlNET01D
b252ZXJ0UHJvbWlzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTMyM0NGRjkxRTVBRjZBNTAwRjBCNEEwIC8qIEpTRE9NQ29udmVydFByb21pc2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzU2NUI3
QjFEQzJENkM5MDAyMTdEQkQgLyogSlNFdmVudEN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0RUU0OUYxREMyRDU3NTAwRUFBOUQzIC8qIEpT
RXZlbnRDdXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFMzU4MDJCNjFEQzg0MzVEMDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1ODAyQjUx
REM4NDM1ODAwQTk3NzNDIC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzVCOTA3RjIzRjYwQTUwMDAwMDEx
RkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUzNUI5MDdDMjNGNjA2NzcwMDAwMTFGRiAvKiBMb2NhbGl6ZWRE
ZXZpY2VNb2RlbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUUzNzdGRTREMURBREUxNjUwMENERDAyNSAvKiBOb2RlQ29uc3RhbnRzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QwNDk5MzFEQURDMDQ1
MDA3MThGM0MgLyogTm9kZUNvbnN0YW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUUzN0M4NjUwMUVCNjNFM0YwMDg3QzZDQSAvKiBKU0RPTVBy
b21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
N0M4NjRGMUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzk2MjhCRjIzOTU3MjhGMDA2NThF
Q0QgLyogRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QkQyMzk1NzI4RTAwNjU4RUNEIC8q
IERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTUxMDYsNiArMTUxMDcsOCBAQAogCQlFMzM0
ODI1RTFEQzkzQUEwMDA5Qzk1NDQgLyogRE9NSklUQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBET01KSVRBYnN0cmFjdEhlYXBSZXBvc2l0
b3J5Lmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTUpJVEFic3RyYWN0SGVhcFJl
cG9zaXRvcnkuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJRTM0RUU0
OUYxREMyRDU3NTAwRUFBOUQzIC8qIEpTRXZlbnRDdXN0b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNFdmVudEN1c3RvbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMzU4MDJCNTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRJRExUeXBlRmlsdGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNUI5MDdDMjNGNjA2NzcwMDAwMTFGRiAvKiBM
b2NhbGl6ZWREZXZpY2VNb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBM
b2NhbGl6ZWREZXZpY2VNb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzVC
OTA3RTIzRjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2NhbGl6ZWREZXZpY2VNb2RlbC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM3Qzg2NEYxRUI2M0UyRDAwODdDNkNBIC8q
IEpTRE9NUHJvbWlzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVBy
b21pc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4ODM4OTQxQkFEMTQ1RjAw
RDYyRUUzIC8qIFNjcmlwdE1vZHVsZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTY3JpcHRNb2R1bGVMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMzg4Mzg5NTFCQUQxNDVGMDBENjJFRTMgLyogU2NyaXB0TW9kdWxlTG9hZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI4NTcsNiArMjI4NjAsOCBAQAogCQkJ
CUU0RTM5QUZDMTMzMEVGQzUwMDNBQjI3NCAvKiBMZWdhY3lUaWxlTGF5ZXJQb29sLm1tICovLAog
CQkJCTFDNDNERTY4MjJBQjRCOEEwMDE1MjdEOSAvKiBMb2NhbEN1cnJlbnRUcmFpdENvbGxlY3Rp
b24uaCAqLywKIAkJCQkxQzQzREU2QTIyQUI0QjhBMDAxNTI3RDkgLyogTG9jYWxDdXJyZW50VHJh
aXRDb2xsZWN0aW9uLm1tICovLAorCQkJCUUzNUI5MDdDMjNGNjA2NzcwMDAwMTFGRiAvKiBMb2Nh
bGl6ZWREZXZpY2VNb2RlbC5oICovLAorCQkJCUUzNUI5MDdFMjNGNjA2NzcwMDAwMTFGRiAvKiBM
b2NhbGl6ZWREZXZpY2VNb2RlbC5tbSAqLywKIAkJCQk0NkVGQUYwRDFFNUZCOUMyMDBFN0YzNEIg
LyogTG93UG93ZXJNb2RlTm90aWZpZXJJT1MubW0gKi8sCiAJCQkJRTM5NjI4QzAyMzk1NzQzMDAw
NjU4RUNEIC8qIE1vdGlvbk1hbmFnZXJDbGllbnQuaCAqLywKIAkJCQlFNDUzOTAxOTBFQUZDQUNB
MDAzNjk1QzggLyogUGFzdGVib2FyZElPUy5tbSAqLywKQEAgLTMxMzM2LDYgKzMxMzQxLDcgQEAK
IAkJCQlGNTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlQ29jb2EuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTc2MzNBNzI2MTNEOEIzM0EwMDg1MDFCNiAvKiBMb2NhbGVUb1NjcmlwdE1hcHBp
bmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MTZFOEI3MTM2RTA0REIwMDc2QzNDMCAvKiBMb2Nh
bGl6ZWREYXRlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzNUI5MDdGMjNGNjBBNTAwMDAw
MTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1MjA3
QkUwOUJENDEwQTAwRjIwMzhEIC8qIExvY2FsaXplZFN0cmluZ3MuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxRkNENkJCMjNDRTAyNzcwMEM2MjU2NyAvKiBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFMUM0MUIwRDk4Mjk4MDAwM0IwMkYyIC8qIExv
Y2F0aW9uLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQkocmV2
aXNpb24gMjU2NjIwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBAQAogI2ltcG9ydCAiSW5iYW5kTWV0YWRhdGFUZXh0VHJh
Y2tQcml2YXRlQVZGLmgiCiAjaW1wb3J0ICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQy5o
IgogI2ltcG9ydCAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakMuaCIKKyNpbXBv
cnQgIkxvY2FsaXplZERldmljZU1vZGVsLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0
ICJNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EuaCIKICNpbXBvcnQgIk1lZGlhUGxheWJhY2tUYXJn
ZXRNb2NrLmgiCkBAIC0yNzE4LDcgKzI3MTksNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIC8vIFRoZSByb3V0ZSBpcyBh
IHNwZWFrZXIgb3IgSERNSSBvdXQsIG92ZXJyaWRlIHRoZSBuYW1lIHRvIGJlIHRoZSBsb2NhbGl6
ZWQgZGV2aWNlIG1vZGVsLgotICAgICAgICBOU1N0cmluZyAqbG9jYWxpemVkRGV2aWNlTW9kZWwg
PSBbW1BBTDo6Z2V0VUlEZXZpY2VDbGFzcygpIGN1cnJlbnREZXZpY2VdIGxvY2FsaXplZE1vZGVs
XTsKKyAgICAgICAgTlNTdHJpbmcgKmxvY2FsaXplZERldmljZU1vZGVsTmFtZSA9IGxvY2FsaXpl
ZERldmljZU1vZGVsKCk7CiAKICAgICAgICAgLy8gSW4gY2FzZXMgd2hlcmUgYSByb3V0ZSB3aXRo
IHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cywgcHJlZml4IHRoZSBuYW1lIHdpdGggdGhlIG1vZGVs
LgogICAgICAgICBCT09MIGluY2x1ZGVMb2NhbGl6ZWREZXZpY2VNb2RlbE5hbWUgPSBOTzsKQEAg
LTI3MzMsOSArMjczNCw5IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAg
ICAgICB9CiAKICAgICAgICAgaWYgKGluY2x1ZGVMb2NhbGl6ZWREZXZpY2VNb2RlbE5hbWUpCi0g
ICAgICAgICAgICBkaXNwbGF5TmFtZSA9ICBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVA
ICVAIiwgbG9jYWxpemVkRGV2aWNlTW9kZWwsIGRpc3BsYXlOYW1lXTsKKyAgICAgICAgICAgIGRp
c3BsYXlOYW1lID0gIFtbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVAICVAIiwgbG9jYWxp
emVkRGV2aWNlTW9kZWxOYW1lLCBkaXNwbGF5TmFtZV0gYXV0b3JlbGVhc2VdOwogICAgICAgICBl
bHNlCi0gICAgICAgICAgICBkaXNwbGF5TmFtZSA9IGxvY2FsaXplZERldmljZU1vZGVsOworICAg
ICAgICAgICAgZGlzcGxheU5hbWUgPSBsb2NhbGl6ZWREZXZpY2VNb2RlbE5hbWU7CiAKICAgICAg
ICAgYnJlYWs7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xvY2Fs
aXplZERldmljZU1vZGVsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0xvY2FsaXplZERldmljZU1vZGVsLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL0xvY2FsaXplZERldmljZU1vZGVsLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzOSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0Ogor
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpbXBvcnQg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dFQkNPUkVf
RVhQT1JUIFN0cmluZyBsb2NhbGl6ZWREZXZpY2VNb2RlbCgpOworV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRMb2NhbGl6ZWREZXZpY2VNb2RlbChjb25zdCBTdHJpbmcmKTsKKworfQorCisjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9Mb2NhbGl6ZWREZXZpY2VNb2RlbC5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTG9jYWxpemVkRGV2
aWNlTW9kZWwubW0JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L0xvY2FsaXplZERldmljZU1vZGVsLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTggQEAK
Ky8qCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvY2FsaXplZERldmljZU1vZGVsLmgiCisKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0IDxwYWwvaW9zL1VJS2l0U29mdExpbmsuaD4KKyNp
bXBvcnQgPHd0Zi9PcHRpb25hbC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBP
cHRpb25hbDxTdHJpbmc+JiBjYWNoZWRMb2NhbGl6ZWREZXZpY2VNb2RlbCgpCit7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPE9wdGlvbmFsPFN0cmluZz4+IGRldmljZU1vZGVsOworICAgIHJl
dHVybiBkZXZpY2VNb2RlbDsKK30KKworU3RyaW5nIGxvY2FsaXplZERldmljZU1vZGVsKCkKK3sK
KyAgICBpZiAoY2FjaGVkTG9jYWxpemVkRGV2aWNlTW9kZWwoKS5oYXNWYWx1ZSgpKQorICAgICAg
ICByZXR1cm4gKmNhY2hlZExvY2FsaXplZERldmljZU1vZGVsKCk7CisKKyAgICBhdXRvIGxvY2Fs
aXplZERldmljZU1vZGVsID0gcmV0YWluUHRyKFtbUEFMOjpnZXRVSURldmljZUNsYXNzKCkgY3Vy
cmVudERldmljZV0gbG9jYWxpemVkTW9kZWxdKTsKKyAgICByZXR1cm4gbG9jYWxpemVkRGV2aWNl
TW9kZWwuZ2V0KCk7Cit9CisKK3ZvaWQgc2V0TG9jYWxpemVkRGV2aWNlTW9kZWwoY29uc3QgU3Ry
aW5nJiBkZXZpY2VNb2RlbCkKK3sKKyAgICBjYWNoZWRMb2NhbGl6ZWREZXZpY2VNb2RlbCgpID0g
ZGV2aWNlTW9kZWw7Cit9CisKK30KKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjU2
NjIwKQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyMiBAQAorMjAyMC0wMi0xMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+
CisKKyAgICAgICAgTW92ZSBbVUlEZXZpY2UgY3VycmVudERldmljZV0gY2FsbHMgdG8gVUkgcHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR2V0
IHRoZSBsb2NhbGl6ZWQgZGV2aWNlIG5hbWUgaW4gdGhlIFVJIHByb2Nlc3MsIGFuZCBzZW5kIGl0
IHRvIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgYXMgcGFydCBvZiB0aGUKKyAgICAgICAgcHJvY2Vz
cyBjcmVhdGlvbiBwYXJhbWV0ZXJzLgorCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFs
aXplV2ViUHJvY2Vzcyk6CisKIDIwMjAtMDItMTQgIEFsYmVydG8gR2FyY2lhICA8YmVydG9AaWdh
bGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBXUEVRdFZpZXcuaCBpbmNsdWRlcyB0aGUgdW5pbnN0
YWxsZWQgV1BFUXRWaWV3QmFja2VuZC5oCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjU2NjIw
KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw2ICsxNzUsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kCiAgICAgZW5jb2RlciA8PCBzdXBwb3J0c1BpY3R1cmVJblBp
Y3R1cmU7CiAgICAgZW5jb2RlciA8PCBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CiAgICAgZW5j
b2RlciA8PCBmb2N1c1JpbmdDb2xvcjsKKyAgICBlbmNvZGVyIDw8IGxvY2FsaXplZERldmljZU1v
ZGVsOwogI2VuZGlmCiB9CiAKQEAgLTQ2OSw2ICs0NzAsOSBAQCBib29sIFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmRlY29kCiAgICAgaWYgKCFmb2N1c1JpbmdDb2xvcikKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIHBhcmFtZXRlcnMuZm9jdXNSaW5nQ29sb3IgPSBXVEZNb3ZlKCpm
b2N1c1JpbmdDb2xvcik7CisgICAgCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJz
LmxvY2FsaXplZERldmljZU1vZGVsKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAK
ICAgICByZXR1cm4gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1NjYyMCkKKysrIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBj
b3B5KQpAQCAtMjE3LDYgKzIxNyw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzIHsKICAgICBib29sIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSB7IGZhbHNlIH07CiAgICAg
V2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OkNTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCBjc3NWYWx1
ZVRvU3lzdGVtQ29sb3JNYXA7CiAgICAgV2ViQ29yZTo6Q29sb3IgZm9jdXNSaW5nQ29sb3I7Cisg
ICAgU3RyaW5nIGxvY2FsaXplZERldmljZU1vZGVsOwogI2VuZGlmCiB9OwogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW0JKHJldmlzaW9uIDI1NjYyMCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlByb2Nlc3NQb29sQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDcgQEAKICNp
bXBvcnQgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2luZG93U2VydmVyQ29ubmVj
dGlvbi5oIgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvci5oPgorI2ltcG9ydCA8V2ViQ29yZS9Mb2Nh
bGl6ZWREZXZpY2VNb2RlbC5oPgogI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9Ob3RJbXBsZW1lbnRlZC5oPgpAQCAtMzYzLDYgKzM2NCw3IEBAIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICAgICBwYXJhbWV0ZXJzLnN1cHBvcnRzUGljdHVy
ZUluUGljdHVyZSA9IHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpOwogICAgIHBhcmFtZXRlcnMu
Y3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwID0gUmVuZGVyVGhlbWVJT1M6OmNzc1ZhbHVlVG9TeXN0
ZW1Db2xvck1hcCgpOwogICAgIHBhcmFtZXRlcnMuZm9jdXNSaW5nQ29sb3IgPSBSZW5kZXJUaGVt
ZTo6c2luZ2xldG9uKCkuZm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+KCkpOworICAgIHBhcmFtZXRlcnMubG9jYWxpemVkRGV2aWNlTW9kZWwgPSBsb2NhbGl6ZWRE
ZXZpY2VNb2RlbCgpOwogI2VuZGlmCiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkocmV2aXNpb24gMjU2NjIwKQorKysg
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNTcsNiArNTcsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Gb250Q2FzY2FkZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5Q29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9IaXN0b3J5SXRlbS5oPgorI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWREZXZpY2VNb2RlbC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0xvZ0luaXRpYWxpemF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnku
aD4KQEAgLTE5OCw2ICsxOTksNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHNldEN1cnJlbnRVc2VySW50
ZXJmYWNlSWRpb21Jc1BhZChwYXJhbWV0ZXJzLmN1cnJlbnRVc2VySW50ZXJmYWNlSWRpb21Jc1Bh
ZCk7CisgICAgc2V0TG9jYWxpemVkRGV2aWNlTW9kZWwocGFyYW1ldGVycy5sb2NhbGl6ZWREZXZp
Y2VNb2RlbCk7CiAgICAgc2V0U3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKHBhcmFtZXRlcnMuc3Vw
cG9ydHNQaWN0dXJlSW5QaWN0dXJlKTsKICNlbmRpZgogCkluZGV4OiBUb29scy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTY2MjApCisrKyBUb29s
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wMi0xMyAg
UGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBbVUlE
ZXZpY2UgY3VycmVudERldmljZV0gY2FsbHMgdG8gVUkgcHJvY2VzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MzIwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9Mb2NhbGl6ZWREZXZpY2VNb2RlbC5tbTogQWRkZWQuCisgICAgICAgIChU
RVNUKToKKwogMjAyMC0wMi0xNCAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29t
PgogCiAgICAgICAgIFtDTWFrZV0gQWRkIEZvbnRjb25maWc6OkZvbnRjb25maWcgdGFyZ2V0Cklu
ZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU2NjIwKQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTk5Miw2ICs5OTIsNyBAQAogCQlFMzI0QTZGMDIwNDFDODIwMDBBNzY1OTMg
LyogVW5pcXVlQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTM5OEJDMEYyMDQxQzc2MzAwMzg3MTM2IC8qIFVuaXF1ZUFycmF5LmNwcCAqLzsg
fTsKIAkJRTMyNUM5MDcyM0UzODcwMjAwQkM3RDNCIC8qIFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMyNUM5
MDYyM0UzODcwMjAwQkM3RDNCIC8qIFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lm1tICovOyB9Owog
CQlFMzJCNTQ5MjIyODEwQUM0MDA4QUQ3MDIgLyogUGFja2VkLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMkI1NDkxMjI4MTBBQzAwMDhBRDcwMiAv
KiBQYWNrZWQuY3BwICovOyB9OworCQlFMzVCOTA4MjIzRjYwREQwMDAwMDExRkYgLyogTG9jYWxp
emVkRGV2aWNlTW9kZWwubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMzVCOTA4MTIzRjYwREQwMDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwu
bW0gKi87IH07CiAJCUUzNUZDN0IyMjJCODJBNzMwMEYzMkY5OCAvKiBKU0xvY2tUYWtlc1dlYlRo
cmVhZExvY2subW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMzVGQzdCMTIyQjgyQTZEMDBGMzJGOTggLyogSlNMb2NrVGFrZXNXZWJUaHJlYWRMb2NrLm1t
ICovOyB9OwogCQlFMzczRDc5MTFGMkNGMzUyMDBDNkZBQUYgLyogU2lnbmFscy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk1M0Y5NTFGMkNGMzIx
MDBBNzZBMkUgLyogU2lnbmFscy5jcHAgKi87IH07CiAJCUUzOEEwRDM1MUZENTBDQzMwMEU5OEM4
QiAvKiBUaHJlYWRpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTM4QTBEMzQxRkQ1MENCQzAwRTk4QzhCIC8qIFRocmVhZGluZy5jcHAgKi87IH07
CkBAIC0yNTY3LDYgKzI1NjgsNyBAQAogCQlFMTk0RTFCQzE3N0U1MzRBMDA5QzRENEUgLyogU3Rv
cExvYWRpbmdGcm9tRGlkUmVjZWl2ZVJlc3BvbnNlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBTdG9wTG9hZGlu
Z0Zyb21EaWRSZWNlaXZlUmVzcG9uc2UuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTMyNUM5MDYyM0UzODcwMjAwQkM3RDNCIC8qIFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGljdHVyZUluUGljdHVyZVN1cHBvcnQubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMkI1NDkxMjI4MTBBQzAwMDhBRDcwMiAvKiBQYWNr
ZWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFja2VkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTM1QjkwODEyM0Y2MEREMDAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1v
ZGVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxpemVkRGV2aWNlTW9kZWwubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUZDN0IxMjJCODJBNkQwMEYzMkY5OCAvKiBK
U0xvY2tUYWtlc1dlYlRocmVhZExvY2subW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBKU0xvY2tUYWtlc1dlYlRocmVhZExvY2subW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzODg4ODcwMjBDOTA5ODEwMEU2MzJCQyAvKiBXb3JrZXJQb29sLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtlclBvb2wuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzhBMEQzNDFGRDUwQ0JDMDBFOThDOEIgLyogVGhy
ZWFkaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRocmVhZGlu
Zy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yODcyLDYgKzI4NzQsNyBAQAog
CQkJCUMxNUNCQjJGMjNGMUZGMUEwMDMwMENDNyAvKiBCYWNrbGlnaHRMZXZlbE5vdGlmaWNhdGlv
bi5tbSAqLywKIAkJCQlDMTY5MkRDOTIzRDEwREFFMDA2RTg4RjcgLyogQmF0dGVyeS5tbSAqLywK
IAkJCQlFMzk0QUU2RTIzRjIzMDNFMDA1QjQ5MzYgLyogR3JhbnRBY2Nlc3NUb01vYmlsZUFzc2V0
cy5tbSAqLywKKwkJCQlFMzVCOTA4MTIzRjYwREQwMDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNl
TW9kZWwubW0gKi8sCiAJCQkJQzE0NUNDMEIyM0RBNUEwRjAwM0E1RUVCIC8qIE1pbWVUeXBlcy5t
bSAqLywKIAkJCQlFMzI1QzkwNjIzRTM4NzAyMDBCQzdEM0IgLyogUGljdHVyZUluUGljdHVyZVN1
cHBvcnQubW0gKi8sCiAJCQkJMEYxMzlFNzUxQTQyM0E1MzAwRjU5MEY1IC8qIFdlYWtPYmpDUHRy
Lm1tICovLApAQCAtNDg1NCw2ICs0ODU3LDcgQEAKIAkJCQk3QzgzRTBDMDFEMEE2NTI3MDBGRUJD
RjMgLyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdG
MDAxQTQxMUFFNjAwNDQ3QzRDIC8qIExvYWRQYWdlT25DcmFzaC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1Nzc4RDA1NjIyMTEwQTI2MDA4OTlFM0IgLyogTG9hZFdlYkFyY2hpdmUubW0gaW4gU291
cmNlcyAqLywKKwkJCQlFMzVCOTA4MjIzRjYwREQwMDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNl
TW9kZWwubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUU2QTg5NDFEMkYxQzBBMDBDMDA0QjYgLyog
TG9jYWxTdG9yYWdlQ2xlYXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlDQTM4NDU5NjIwQUUxN0E5
MDA5OTBEM0IgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDZDNTE5REExRDM1NUFCMjAwREFBNTFBIC8qIExvY2FsU3RvcmFnZU51bGxFbnRyaWVz
Lm1tIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9Mb2NhbGl6ZWREZXZpY2VNb2RlbC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9Mb2NhbGl6ZWREZXZpY2VNb2RlbC5tbQkobm9uZXhpc3RlbnQpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Mb2NhbGl6ZWREZXZpY2VNb2RlbC5t
bQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2lmIFdLX0hBVkVfQ19T
UEkKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZp
ZXcuaCIKKyNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkRGV2aWNlTW9kZWwuaD4KKworVEVTVChX
ZWJLaXQsIExvY2FsaXplZERldmljZU1vZGVsKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgV0tS
ZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpV
dGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3Rl
ZEJ1bmRsZVRlc3QiKSk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCA9IChX
S1Byb2Nlc3NQb29sICopY29udGV4dC5nZXQoKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMw
MCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVT
XSk7CisKKyAgICBhdXRvIGxvY2FsaXplZERldmljZU1vZGVsID0gWyZdIHsKKyAgICAgICAgcmV0
dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cuaW50ZXJu
YWxzLmxvY2FsaXplZERldmljZU1vZGVsKCkiXS5ib29sVmFsdWU7CisgICAgfTsKKworICAgIE5T
U3RyaW5nICpsb2NhbGl6ZWREZXZpY2VNb2RlbE5hbWUgPSBXZWJDb3JlOjpsb2NhbGl6ZWREZXZp
Y2VNb2RlbCgpCisgICAgCisgICAgQVNTRVJUX1RSVUUobG9jYWxpemVkRGV2aWNlTW9kZWwoKSA9
PSBsb2NhbGl6ZWREZXZpY2VNb2RlbE5hbWUpOworfQorCisjZW5kaWYgLy8gV0tfSEFWRV9DX1NQ
SQorI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390943</attachid>
            <date>2020-02-17 11:12:24 -0800</date>
            <delta_ts>2020-02-17 13:28:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204320-20200217111224.patch</filename>
            <type>text/plain</type>
            <size>23548</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Njc0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAyLTE3ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFtVSURldmljZSBj
dXJyZW50RGV2aWNlXSBjYWxscyB0byBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYWxsaW5nIFtVSURldmljZSBjdXJyZW50RGV2aWNl
XSB3aWxsIGNhdXNlIHRoZSBydW5uaW5nYm9hcmQgZGFlbW9uIHRvIGJlIGFjY2Vzc2VkLiBTaW5j
ZSB0aGlzIHNlcnZpY2Ugd2lsbCBiZSByZW1vdmVkIGZyb20KKyAgICAgICAgdGhlIFdlYkNvbnRl
bnQgc2FuZGJveCwgdGhlc2UgY2FsbHMgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBVSSBwcm9jZXNz
LiBUaGUgZnVuY3Rpb24gZXhlcm5hbERldmljZURpc3BsYXlOYW1lRm9yUGxheWVyIGluCisgICAg
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gaXMgY2FsbGluZyBbW1BB
TDo6Z2V0VUlEZXZpY2VDbGFzcygpIGN1cnJlbnREZXZpY2VdIGxvY2FsaXplZE1vZGVsXSwgd2hp
Y2ggc2hvdWxkIGJlCisgICAgICAgIG1vdmVkIHRvIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAg
IEFQSSB0ZXN0OiBXZWJLaXQuTG9jYWxpemVkRGV2aWNlTmFtZQorCisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZXJuYWxE
ZXZpY2VEaXNwbGF5TmFtZUZvclBsYXllcik6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0xvY2Fs
aXplZERldmljZU1vZGVsLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9Mb2NhbGl6
ZWREZXZpY2VNb2RlbC5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRMb2NhbGl6
ZWREZXZpY2VNb2RlbCk6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWREZXZpY2VNb2RlbCk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRMb2NhbGl6ZWREZXZpY2VNb2RlbCk6CisKIDIwMjAtMDIt
MTcgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCAgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBhIGxvdCBnY2Mgd2FybmluZ3MgYmVjYXVzZSBvZiAle3B1YmxpY31zIGZvcm1hdCBz
cGVjaWZpZXIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAkocmV2aXNpb24gMjU2NzQ2KQor
KysgU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzk5
LDYgKzM5OSw3IEBAIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlR3JpZFRpbGUubW0KIHBsYXRmb3Jt
L2lvcy9MZWdhY3lUaWxlTGF5ZXIubW0KIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29s
Lm1tCiBwbGF0Zm9ybS9pb3MvTG9jYWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uLm1tCitwbGF0Zm9y
bS9pb3MvTG9jYWxpemVkRGV2aWNlTW9kZWwubW0KIHBsYXRmb3JtL2lvcy9Mb3dQb3dlck1vZGVO
b3RpZmllcklPUy5tbQogcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KIHBsYXRmb3JtL2lv
cy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBAbm8tdW5pZnkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1
Njc0NikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtNDc5NCw2ICs0Nzk0LDcgQEAKIAkJRTMyM0NGRkExRTVBRjZB
RjAwRjBCNEEwIC8qIEpTRE9NQ29udmVydFByb21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMjNDRkY5MUU1QUY2QTUwMEYwQjRBMCAvKiBKU0RP
TUNvbnZlcnRQcm9taXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTM1NjVCN0IxREMyRDZDOTAwMjE3REJEIC8qIEpTRXZlbnRDdXN0b20uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNEVFNDlGMURD
MkQ1NzUwMEVBQTlEMyAvKiBKU0V2ZW50Q3VzdG9tLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM1ODAyQjYxREM4NDM1RDAwQTk3NzNDIC8qIERP
TUpJVElETFR5cGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzNTgwMkI1MURDODQzNTgwMEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTM1
QjkwN0YyM0Y2MEE1MDAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzVCOTA3QzIzRjYwNjc3MDAw
MDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzc3RkU0RDFEQURFMTY1MDBDREQwMjUgLyogTm9k
ZUNvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTNEMDQ5OTMxREFEQzA0NTAwNzE4RjNDIC8qIE5vZGVDb25zdGFudHMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzdDODY1MDFFQjYzRTNG
MDA4N0M2Q0EgLyogSlNET01Qcm9taXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMzdDODY0RjFFQjYzRTJEMDA4N0M2Q0EgLyogSlNET01Qcm9taXNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM5
NjI4QkYyMzk1NzI4RjAwNjU4RUNEIC8qIERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOEJE
MjM5NTcyOEUwMDY1OEVDRCAvKiBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1MTA5LDYg
KzE1MTEwLDggQEAKIAkJRTMzNDgyNUUxREM5M0FBMDAwOUM5NTQ0IC8qIERPTUpJVEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRE9NSklU
QWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9E
T01KSVRBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCUUzNEVFNDlGMURDMkQ1NzUwMEVBQTlEMyAvKiBKU0V2ZW50Q3VzdG9tLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXZlbnRDdXN0b20uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1ODAyQjUxREM4NDM1ODAwQTk3NzNDIC8qIERPTUpJ
VElETFR5cGVGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklU
SURMVHlwZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzVCOTA3QzIz
RjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxpemVkRGV2aWNlTW9kZWwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTM1QjkwN0UyM0Y2MDY3NzAwMDAxMUZGIC8qIExvY2FsaXplZERldmlj
ZU1vZGVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxp
emVkRGV2aWNlTW9kZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzN0M4NjRG
MUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNET01Qcm9taXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUzODgzODk0MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8q
IFNjcmlwdE1vZHVsZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
Y3JpcHRNb2R1bGVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyODYx
LDYgKzIyODY0LDggQEAKIAkJCQlFNEUzOUFGQzEzMzBFRkM1MDAzQUIyNzQgLyogTGVnYWN5VGls
ZUxheWVyUG9vbC5tbSAqLywKIAkJCQkxQzQzREU2ODIyQUI0QjhBMDAxNTI3RDkgLyogTG9jYWxD
dXJyZW50VHJhaXRDb2xsZWN0aW9uLmggKi8sCiAJCQkJMUM0M0RFNkEyMkFCNEI4QTAwMTUyN0Q5
IC8qIExvY2FsQ3VycmVudFRyYWl0Q29sbGVjdGlvbi5tbSAqLywKKwkJCQlFMzVCOTA3QzIzRjYw
Njc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwuaCAqLywKKwkJCQlFMzVCOTA3RTIz
RjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwubW0gKi8sCiAJCQkJNDZFRkFG
MEQxRTVGQjlDMjAwRTdGMzRCIC8qIExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tICovLAogCQkJ
CUUzOTYyOEMwMjM5NTc0MzAwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2VyQ2xpZW50LmggKi8sCiAJ
CQkJRTQ1MzkwMTkwRUFGQ0FDQTAwMzY5NUM4IC8qIFBhc3RlYm9hcmRJT1MubW0gKi8sCkBAIC0z
MTM0Miw2ICszMTM0Nyw3IEBACiAJCQkJRjU5NzNERTAxNUNGQjIwMzAwMjdGODA0IC8qIExvY2Fs
ZUNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NjMzQTcyNjEzRDhCMzNBMDA4NTAxQjYgLyog
TG9jYWxlVG9TY3JpcHRNYXBwaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTE2RThCNzEzNkUw
NERCMDA3NkMzQzAgLyogTG9jYWxpemVkRGF0ZUNhY2hlLmggaW4gSGVhZGVycyAqLywKKwkJCQlF
MzVCOTA3RjIzRjYwQTUwMDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzNTIwN0JFMDlCRDQxMEEwMEYyMDM4RCAvKiBMb2NhbGl6ZWRTdHJpbmdz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUZDRDZCQjIzQ0UwMjc3MDBDNjI1NjcgLyogTG9jYWxT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTFDNDFCMEQ5
ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0JKHJldmlzaW9uIDI1Njc0NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbXBvcnQgIklu
YmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5oIgogI2ltcG9ydCAiSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUFWRk9iakMuaCIKICNpbXBvcnQgIkluYmFuZFRleHRUcmFja1ByaXZhdGVMZWdh
Y3lBVkZPYmpDLmgiCisjaW1wb3J0ICJMb2NhbGl6ZWREZXZpY2VNb2RlbC5oIgogI2ltcG9ydCAi
TG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFQbGF5YmFja1RhcmdldENvY29hLmgiCiAjaW1wb3J0
ICJNZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oIgpAQCAtMjcxOCw3ICsyNzE5LDcgQEAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICBicmVhazsKIAogICAgICAg
ICAvLyBUaGUgcm91dGUgaXMgYSBzcGVha2VyIG9yIEhETUkgb3V0LCBvdmVycmlkZSB0aGUgbmFt
ZSB0byBiZSB0aGUgbG9jYWxpemVkIGRldmljZSBtb2RlbC4KLSAgICAgICAgTlNTdHJpbmcgKmxv
Y2FsaXplZERldmljZU1vZGVsID0gW1tQQUw6OmdldFVJRGV2aWNlQ2xhc3MoKSBjdXJyZW50RGV2
aWNlXSBsb2NhbGl6ZWRNb2RlbF07CisgICAgICAgIE5TU3RyaW5nICpsb2NhbGl6ZWREZXZpY2VN
b2RlbE5hbWUgPSBsb2NhbGl6ZWREZXZpY2VNb2RlbCgpOwogCiAgICAgICAgIC8vIEluIGNhc2Vz
IHdoZXJlIGEgcm91dGUgd2l0aCB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMsIHByZWZpeCB0aGUg
bmFtZSB3aXRoIHRoZSBtb2RlbC4KICAgICAgICAgQk9PTCBpbmNsdWRlTG9jYWxpemVkRGV2aWNl
TW9kZWxOYW1lID0gTk87CkBAIC0yNzMzLDkgKzI3MzQsOSBAQCBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICAgICAgICAgfQogCiAgICAgICAgIGlmIChpbmNsdWRlTG9jYWxpemVk
RGV2aWNlTW9kZWxOYW1lKQotICAgICAgICAgICAgZGlzcGxheU5hbWUgPSAgW05TU3RyaW5nIHN0
cmluZ1dpdGhGb3JtYXQ6QCIlQCAlQCIsIGxvY2FsaXplZERldmljZU1vZGVsLCBkaXNwbGF5TmFt
ZV07CisgICAgICAgICAgICBkaXNwbGF5TmFtZSA9ICBbW05TU3RyaW5nIHN0cmluZ1dpdGhGb3Jt
YXQ6QCIlQCAlQCIsIGxvY2FsaXplZERldmljZU1vZGVsTmFtZSwgZGlzcGxheU5hbWVdIGF1dG9y
ZWxlYXNlXTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBsb2NhbGl6
ZWREZXZpY2VNb2RlbDsKKyAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gbG9jYWxpemVkRGV2aWNl
TW9kZWxOYW1lOwogCiAgICAgICAgIGJyZWFrOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9Mb2NhbGl6ZWREZXZpY2VNb2RlbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9Mb2NhbGl6ZWREZXZpY2VNb2RlbC5oCShub25leGlzdGVu
dCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9Mb2NhbGl6ZWREZXZpY2VNb2RlbC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorCisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTW9kZWwoKTsK
K1dFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TG9jYWxpemVkRGV2aWNlTW9kZWwoY29uc3QgU3RyaW5n
Jik7CisKK30KKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTG9j
YWxpemVkRGV2aWNlTW9kZWwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL0xvY2FsaXplZERldmljZU1vZGVsLm1tCShub25leGlzdGVudCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9Mb2NhbGl6ZWREZXZpY2VNb2RlbC5tbQkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDYwIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBt
ZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMb2NhbGl6ZWREZXZpY2VN
b2RlbC5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCA8cGFsL2lvcy9V
SUtpdFNvZnRMaW5rLmg+CisjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitzdGF0aWMgT3B0aW9uYWw8U3RyaW5nPiYgY2FjaGVkTG9jYWxpemVkRGV2aWNl
TW9kZWwoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxPcHRpb25hbDxTdHJpbmc+PiBk
ZXZpY2VNb2RlbDsKKyAgICByZXR1cm4gZGV2aWNlTW9kZWw7Cit9CisKK1N0cmluZyBsb2NhbGl6
ZWREZXZpY2VNb2RlbCgpCit7CisgICAgaWYgKGNhY2hlZExvY2FsaXplZERldmljZU1vZGVsKCku
aGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuICpjYWNoZWRMb2NhbGl6ZWREZXZpY2VNb2RlbCgp
OworCisgICAgYXV0byBsb2NhbGl6ZWRNb2RlbCA9IFN0cmluZyhbW1BBTDo6Z2V0VUlEZXZpY2VD
bGFzcygpIGN1cnJlbnREZXZpY2VdIGxvY2FsaXplZE1vZGVsXSk7CisgICAgY2FjaGVkTG9jYWxp
emVkRGV2aWNlTW9kZWwoKSA9IGxvY2FsaXplZE1vZGVsOworCisgICAgcmV0dXJuIGxvY2FsaXpl
ZE1vZGVsOworfQorCit2b2lkIHNldExvY2FsaXplZERldmljZU1vZGVsKGNvbnN0IFN0cmluZyYg
ZGV2aWNlTW9kZWwpCit7CisgICAgY2FjaGVkTG9jYWxpemVkRGV2aWNlTW9kZWwoKSA9IGRldmlj
ZU1vZGVsOworfQorCit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Njc0NikK
KysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMjAtMDItMTcgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisg
ICAgICAgIE1vdmUgW1VJRGV2aWNlIGN1cnJlbnREZXZpY2VdIGNhbGxzIHRvIFVJIHByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDMyMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdldCB0aGUg
bG9jYWxpemVkIGRldmljZSBuYW1lIGluIHRoZSBVSSBwcm9jZXNzLCBhbmQgc2VuZCBpdCB0byB0
aGUgV2ViQ29udGVudCBwcm9jZXNzIGFzIHBhcnQgb2YgdGhlCisgICAgICAgIHByb2Nlc3MgY3Jl
YXRpb24gcGFyYW1ldGVycy4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFs
aXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MpOgorCiAyMDIwLTAyLTE3ICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgIDx2
amFxdWV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgYSBsb3QgZ2NjIHdhcm5pbmdzIGJlY2F1c2Ug
b2YgJXtwdWJsaWN9cyBmb3JtYXQgc3BlY2lmaWVyCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24g
MjU2NzQ2KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw2ICsxNzUsNyBAQCB2b2lkIFdlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kCiAgICAgZW5jb2RlciA8PCBzdXBwb3J0c1BpY3R1
cmVJblBpY3R1cmU7CiAgICAgZW5jb2RlciA8PCBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CiAg
ICAgZW5jb2RlciA8PCBmb2N1c1JpbmdDb2xvcjsKKyAgICBlbmNvZGVyIDw8IGxvY2FsaXplZERl
dmljZU1vZGVsOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTQ3NCw2ICs0NzUs
OSBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kCiAgICAgaWYgKCFm
b2N1c1JpbmdDb2xvcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHBhcmFtZXRlcnMuZm9j
dXNSaW5nQ29sb3IgPSBXVEZNb3ZlKCpmb2N1c1JpbmdDb2xvcik7CisgICAgCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmxvY2FsaXplZERldmljZU1vZGVsKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJ
KHJldmlzaW9uIDI1Njc0NikKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjE3LDYgKzIxNyw3IEBAIHN0cnVj
dCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29sIHN1cHBvcnRzUGljdHVy
ZUluUGljdHVyZSB7IGZhbHNlIH07CiAgICAgV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OkNTU1Zh
bHVlVG9TeXN0ZW1Db2xvck1hcCBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CiAgICAgV2ViQ29y
ZTo6Q29sb3IgZm9jdXNSaW5nQ29sb3I7CisgICAgU3RyaW5nIGxvY2FsaXplZERldmljZU1vZGVs
OwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNpb24g
MjU2NzQ2KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xD
b2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBAQAogI2ltcG9ydCAiV2ViUHJv
Y2Vzc01lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLmgiCiAjaW1w
b3J0IDxXZWJDb3JlL0NvbG9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZERldmljZU1v
ZGVsLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdl
YkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CkBAIC00MDQsNiArNDA1LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZv
cm1Jbml0aWFsaXplVwogICAgIHBhcmFtZXRlcnMuc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlID0g
c3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCk7CiAgICAgcGFyYW1ldGVycy5jc3NWYWx1ZVRvU3lz
dGVtQ29sb3JNYXAgPSBSZW5kZXJUaGVtZUlPUzo6Y3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwKCk7
CiAgICAgcGFyYW1ldGVycy5mb2N1c1JpbmdDb2xvciA9IFJlbmRlclRoZW1lOjpzaW5nbGV0b24o
KS5mb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4oKSk7CisgICAg
cGFyYW1ldGVycy5sb2NhbGl6ZWREZXZpY2VNb2RlbCA9IGxvY2FsaXplZERldmljZU1vZGVsKCk7
CiAjZW5kaWYKIAogICAgIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShyZXZpc2lvbiAyNTY3NDYpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC01Nyw2ICs1Nyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRDYXNjYWRlLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0hpc3RvcnlDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpc3RvcnlJ
dGVtLmg+CisjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZERldmljZU1vZGVsLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9nSW5pdGlh
bGl6YXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgpAQCAtMjAy
LDYgKzIwMyw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIKIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgc2V0Q3VycmVudFVzZXJJbnRlcmZhY2VJZGlv
bUlzUGFkKHBhcmFtZXRlcnMuY3VycmVudFVzZXJJbnRlcmZhY2VJZGlvbUlzUGFkKTsKKyAgICBz
ZXRMb2NhbGl6ZWREZXZpY2VNb2RlbChwYXJhbWV0ZXJzLmxvY2FsaXplZERldmljZU1vZGVsKTsK
ICAgICBzZXRTdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUocGFyYW1ldGVycy5zdXBwb3J0c1BpY3R1
cmVJblBpY3R1cmUpOwogI2VuZGlmCiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Njc0NikKKysrIFRvb2xzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAyLTE3ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFtVSURldmljZSBjdXJy
ZW50RGV2aWNlXSBjYWxscyB0byBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0xvY2FsaXplZERldmljZU1vZGVsLm1tOiBBZGRlZC4KKyAgICAgICAgKFRFU1QpOgorCiAy
MDIwLTAyLTE3ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBFV1Mgc2hvdWxkIGJlIGFibGUgdG8gY29tbWVudCBvbiBCdWd6aWxsYQpJbmRleDogVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1Njc0NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC05OTIsNiArOTkyLDcgQEAKIAkJRTMyNEE2RjAyMDQxQzgyMDAwQTc2NTkzIC8qIFVuaXF1ZUFy
cmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
OThCQzBGMjA0MUM3NjMwMDM4NzEzNiAvKiBVbmlxdWVBcnJheS5jcHAgKi87IH07CiAJCUUzMjVD
OTA3MjNFMzg3MDIwMEJDN0QzQiAvKiBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMjVDOTA2MjNFMzg3MDIw
MEJDN0QzQiAvKiBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5tbSAqLzsgfTsKIAkJRTMyQjU0OTIy
MjgxMEFDNDAwOEFENzAyIC8qIFBhY2tlZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMzJCNTQ5MTIyODEwQUMwMDA4QUQ3MDIgLyogUGFja2VkLmNw
cCAqLzsgfTsKKwkJRTM1QjkwODIyM0Y2MEREMDAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1v
ZGVsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1
QjkwODEyM0Y2MEREMDAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLm1tICovOyB9Owog
CQlFMzVGQzdCMjIyQjgyQTczMDBGMzJGOTggLyogSlNMb2NrVGFrZXNXZWJUaHJlYWRMb2NrLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1RkM3QjEy
MkI4MkE2RDAwRjMyRjk4IC8qIEpTTG9ja1Rha2VzV2ViVGhyZWFkTG9jay5tbSAqLzsgfTsKIAkJ
RTM3M0Q3OTExRjJDRjM1MjAwQzZGQUFGIC8qIFNpZ25hbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NTNGOTUxRjJDRjMyMTAwQTc2QTJFIC8q
IFNpZ25hbHMuY3BwICovOyB9OwogCQlFMzhBMEQzNTFGRDUwQ0MzMDBFOThDOEIgLyogVGhyZWFk
aW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
OEEwRDM0MUZENTBDQkMwMEU5OEM4QiAvKiBUaHJlYWRpbmcuY3BwICovOyB9OwpAQCAtMjU2Nyw2
ICsyNTY4LDcgQEAKIAkJRTE5NEUxQkMxNzdFNTM0QTAwOUM0RDRFIC8qIFN0b3BMb2FkaW5nRnJv
bURpZFJlY2VpdmVSZXNwb25zZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gU3RvcExvYWRpbmdGcm9tRGlkUmVj
ZWl2ZVJlc3BvbnNlLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMjVDOTA2
MjNFMzg3MDIwMEJDN0QzQiAvKiBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFMzJCNTQ5MTIyODEwQUMwMDA4QUQ3MDIgLyogUGFja2VkLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFBhY2tlZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUzNUI5MDgxMjNGNjBERDAwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IExvY2FsaXplZERldmljZU1vZGVsLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMzVGQzdCMTIyQjgyQTZEMDBGMzJGOTggLyogSlNMb2NrVGFrZXNX
ZWJUaHJlYWRMb2NrLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
SlNMb2NrVGFrZXNXZWJUaHJlYWRMb2NrLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMzg4ODg3MDIwQzkwOTgxMDBFNjMyQkMgLyogV29ya2VyUG9vbC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrZXJQb29sLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTM4QTBEMzQxRkQ1MENCQzAwRTk4QzhCIC8qIFRocmVhZGluZy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaHJlYWRpbmcuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjg3Miw2ICsyODc0LDcgQEAKIAkJCQlDMTVDQkIy
RjIzRjFGRjFBMDAzMDBDQzcgLyogQmFja2xpZ2h0TGV2ZWxOb3RpZmljYXRpb24ubW0gKi8sCiAJ
CQkJQzE2OTJEQzkyM0QxMERBRTAwNkU4OEY3IC8qIEJhdHRlcnkubW0gKi8sCiAJCQkJRTM5NEFF
NkUyM0YyMzAzRTAwNUI0OTM2IC8qIEdyYW50QWNjZXNzVG9Nb2JpbGVBc3NldHMubW0gKi8sCisJ
CQkJRTM1QjkwODEyM0Y2MEREMDAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLm1tICov
LAogCQkJCUMxNDVDQzBCMjNEQTVBMEYwMDNBNUVFQiAvKiBNaW1lVHlwZXMubW0gKi8sCiAJCQkJ
RTMyNUM5MDYyM0UzODcwMjAwQkM3RDNCIC8qIFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lm1tICov
LAogCQkJCTBGMTM5RTc1MUE0MjNBNTMwMEY1OTBGNSAvKiBXZWFrT2JqQ1B0ci5tbSAqLywKQEAg
LTQ4NTQsNiArNDg1Nyw3IEBACiAJCQkJN0M4M0UwQzAxRDBBNjUyNzAwRkVCQ0YzIC8qIExvYWRJ
bnZhbGlkVVJMUmVxdWVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjAwMUE0MTFBRTYw
MDQ0N0M0QyAvKiBMb2FkUGFnZU9uQ3Jhc2guY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTc3OEQw
NTYyMjExMEEyNjAwODk5RTNCIC8qIExvYWRXZWJBcmNoaXZlLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJRTM1QjkwODIyM0Y2MEREMDAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTFFNkE4OTQxRDJGMUMwQTAwQzAwNEI2IC8qIExvY2FsU3RvcmFn
ZUNsZWFyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0EzODQ1OTYyMEFFMTdBOTAwOTkwRDNCIC8q
IExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ2QzUx
OURBMUQzNTVBQjIwMERBQTUxQSAvKiBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5tbSBpbiBTb3Vy
Y2VzICovLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTG9jYWxpemVk
RGV2aWNlTW9kZWwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvTG9jYWxpemVkRGV2aWNlTW9kZWwubW0JKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTG9jYWxpemVkRGV2aWNlTW9kZWwubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpZiBXS19IQVZFX0NfU1BJCisKKyNpbXBv
cnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1w
b3J0IDxXZWJDb3JlL0xvY2FsaXplZERldmljZU1vZGVsLmg+CisKK1RFU1QoV2ViS2l0LCBMb2Nh
bGl6ZWREZXZpY2VNb2RlbCkKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFdLUmV0YWluUHRyPFdL
Q29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRl
Q29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0
IikpOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2wgPSAoV0tQcm9jZXNzUG9v
bCAqKWNvbnRleHQuZ2V0KCk7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOworCisgICAg
YXV0byBsb2NhbGl6ZWREZXZpY2VNb2RlbCA9IFsmXSB7CisgICAgICAgIHJldHVybiBbd2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVybmFscy5sb2NhbGl6
ZWREZXZpY2VNb2RlbCgpIl0uYm9vbFZhbHVlOworICAgIH07CisKKyAgICBBU1NFUlRfVFJVRShs
b2NhbGl6ZWREZXZpY2VNb2RlbCgpID09IFdlYkNvcmU6OmxvY2FsaXplZERldmljZU1vZGVsKCkp
OworfQorCisjZW5kaWYgLy8gV0tfSEFWRV9DX1NQSQorI2VuZGlmIC8vIFBMQVRGT1JNKElPU19G
QU1JTFkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390964</attachid>
            <date>2020-02-17 13:28:34 -0800</date>
            <delta_ts>2020-02-18 10:27:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204320-20200217132833.patch</filename>
            <type>text/plain</type>
            <size>23446</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Njc0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAyLTE3ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFtVSURldmljZSBj
dXJyZW50RGV2aWNlXSBjYWxscyB0byBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYWxsaW5nIFtVSURldmljZSBjdXJyZW50RGV2aWNl
XSB3aWxsIGNhdXNlIHRoZSBydW5uaW5nYm9hcmQgZGFlbW9uIHRvIGJlIGFjY2Vzc2VkLiBTaW5j
ZSB0aGlzIHNlcnZpY2Ugd2lsbCBiZSByZW1vdmVkIGZyb20KKyAgICAgICAgdGhlIFdlYkNvbnRl
bnQgc2FuZGJveCwgdGhlc2UgY2FsbHMgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBVSSBwcm9jZXNz
LiBUaGUgZnVuY3Rpb24gZXhlcm5hbERldmljZURpc3BsYXlOYW1lRm9yUGxheWVyIGluCisgICAg
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gaXMgY2FsbGluZyBbW1BB
TDo6Z2V0VUlEZXZpY2VDbGFzcygpIGN1cnJlbnREZXZpY2VdIGxvY2FsaXplZE1vZGVsXSwgd2hp
Y2ggc2hvdWxkIGJlCisgICAgICAgIG1vdmVkIHRvIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAg
IEFQSSB0ZXN0OiBXZWJLaXQuTG9jYWxpemVkRGV2aWNlTmFtZQorCisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZXJuYWxE
ZXZpY2VEaXNwbGF5TmFtZUZvclBsYXllcik6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0xvY2Fs
aXplZERldmljZU1vZGVsLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9Mb2NhbGl6
ZWREZXZpY2VNb2RlbC5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRMb2NhbGl6
ZWREZXZpY2VNb2RlbCk6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWREZXZpY2VNb2RlbCk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRMb2NhbGl6ZWREZXZpY2VNb2RlbCk6CisKIDIwMjAtMDIt
MTcgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCAgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBhIGxvdCBnY2Mgd2FybmluZ3MgYmVjYXVzZSBvZiAle3B1YmxpY31zIGZvcm1hdCBz
cGVjaWZpZXIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAkocmV2aXNpb24gMjU2NzQ2KQor
KysgU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzk5
LDYgKzM5OSw3IEBAIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlR3JpZFRpbGUubW0KIHBsYXRmb3Jt
L2lvcy9MZWdhY3lUaWxlTGF5ZXIubW0KIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29s
Lm1tCiBwbGF0Zm9ybS9pb3MvTG9jYWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uLm1tCitwbGF0Zm9y
bS9pb3MvTG9jYWxpemVkRGV2aWNlTW9kZWwubW0KIHBsYXRmb3JtL2lvcy9Mb3dQb3dlck1vZGVO
b3RpZmllcklPUy5tbQogcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KIHBsYXRmb3JtL2lv
cy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBAbm8tdW5pZnkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1
Njc0NikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtNDc5NCw2ICs0Nzk0LDcgQEAKIAkJRTMyM0NGRkExRTVBRjZB
RjAwRjBCNEEwIC8qIEpTRE9NQ29udmVydFByb21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMjNDRkY5MUU1QUY2QTUwMEYwQjRBMCAvKiBKU0RP
TUNvbnZlcnRQcm9taXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTM1NjVCN0IxREMyRDZDOTAwMjE3REJEIC8qIEpTRXZlbnRDdXN0b20uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNEVFNDlGMURD
MkQ1NzUwMEVBQTlEMyAvKiBKU0V2ZW50Q3VzdG9tLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM1ODAyQjYxREM4NDM1RDAwQTk3NzNDIC8qIERP
TUpJVElETFR5cGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzNTgwMkI1MURDODQzNTgwMEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTM1
QjkwN0YyM0Y2MEE1MDAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzVCOTA3QzIzRjYwNjc3MDAw
MDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzc3RkU0RDFEQURFMTY1MDBDREQwMjUgLyogTm9k
ZUNvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTNEMDQ5OTMxREFEQzA0NTAwNzE4RjNDIC8qIE5vZGVDb25zdGFudHMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzdDODY1MDFFQjYzRTNG
MDA4N0M2Q0EgLyogSlNET01Qcm9taXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMzdDODY0RjFFQjYzRTJEMDA4N0M2Q0EgLyogSlNET01Qcm9taXNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM5
NjI4QkYyMzk1NzI4RjAwNjU4RUNEIC8qIERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOEJE
MjM5NTcyOEUwMDY1OEVDRCAvKiBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1MTA5LDYg
KzE1MTEwLDggQEAKIAkJRTMzNDgyNUUxREM5M0FBMDAwOUM5NTQ0IC8qIERPTUpJVEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRE9NSklU
QWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9E
T01KSVRBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCUUzNEVFNDlGMURDMkQ1NzUwMEVBQTlEMyAvKiBKU0V2ZW50Q3VzdG9tLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXZlbnRDdXN0b20uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1ODAyQjUxREM4NDM1ODAwQTk3NzNDIC8qIERPTUpJ
VElETFR5cGVGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklU
SURMVHlwZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzVCOTA3QzIz
RjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxpemVkRGV2aWNlTW9kZWwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTM1QjkwN0UyM0Y2MDY3NzAwMDAxMUZGIC8qIExvY2FsaXplZERldmlj
ZU1vZGVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxp
emVkRGV2aWNlTW9kZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzN0M4NjRG
MUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNET01Qcm9taXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUzODgzODk0MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8q
IFNjcmlwdE1vZHVsZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
Y3JpcHRNb2R1bGVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyODYx
LDYgKzIyODY0LDggQEAKIAkJCQlFNEUzOUFGQzEzMzBFRkM1MDAzQUIyNzQgLyogTGVnYWN5VGls
ZUxheWVyUG9vbC5tbSAqLywKIAkJCQkxQzQzREU2ODIyQUI0QjhBMDAxNTI3RDkgLyogTG9jYWxD
dXJyZW50VHJhaXRDb2xsZWN0aW9uLmggKi8sCiAJCQkJMUM0M0RFNkEyMkFCNEI4QTAwMTUyN0Q5
IC8qIExvY2FsQ3VycmVudFRyYWl0Q29sbGVjdGlvbi5tbSAqLywKKwkJCQlFMzVCOTA3QzIzRjYw
Njc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwuaCAqLywKKwkJCQlFMzVCOTA3RTIz
RjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwubW0gKi8sCiAJCQkJNDZFRkFG
MEQxRTVGQjlDMjAwRTdGMzRCIC8qIExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tICovLAogCQkJ
CUUzOTYyOEMwMjM5NTc0MzAwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2VyQ2xpZW50LmggKi8sCiAJ
CQkJRTQ1MzkwMTkwRUFGQ0FDQTAwMzY5NUM4IC8qIFBhc3RlYm9hcmRJT1MubW0gKi8sCkBAIC0z
MTM0Miw2ICszMTM0Nyw3IEBACiAJCQkJRjU5NzNERTAxNUNGQjIwMzAwMjdGODA0IC8qIExvY2Fs
ZUNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NjMzQTcyNjEzRDhCMzNBMDA4NTAxQjYgLyog
TG9jYWxlVG9TY3JpcHRNYXBwaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTE2RThCNzEzNkUw
NERCMDA3NkMzQzAgLyogTG9jYWxpemVkRGF0ZUNhY2hlLmggaW4gSGVhZGVycyAqLywKKwkJCQlF
MzVCOTA3RjIzRjYwQTUwMDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzNTIwN0JFMDlCRDQxMEEwMEYyMDM4RCAvKiBMb2NhbGl6ZWRTdHJpbmdz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUZDRDZCQjIzQ0UwMjc3MDBDNjI1NjcgLyogTG9jYWxT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTFDNDFCMEQ5
ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0JKHJldmlzaW9uIDI1Njc0NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbXBvcnQgIklu
YmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5oIgogI2ltcG9ydCAiSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUFWRk9iakMuaCIKICNpbXBvcnQgIkluYmFuZFRleHRUcmFja1ByaXZhdGVMZWdh
Y3lBVkZPYmpDLmgiCisjaW1wb3J0ICJMb2NhbGl6ZWREZXZpY2VNb2RlbC5oIgogI2ltcG9ydCAi
TG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFQbGF5YmFja1RhcmdldENvY29hLmgiCiAjaW1wb3J0
ICJNZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oIgpAQCAtMjcxOCw3ICsyNzE5LDcgQEAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICBicmVhazsKIAogICAgICAg
ICAvLyBUaGUgcm91dGUgaXMgYSBzcGVha2VyIG9yIEhETUkgb3V0LCBvdmVycmlkZSB0aGUgbmFt
ZSB0byBiZSB0aGUgbG9jYWxpemVkIGRldmljZSBtb2RlbC4KLSAgICAgICAgTlNTdHJpbmcgKmxv
Y2FsaXplZERldmljZU1vZGVsID0gW1tQQUw6OmdldFVJRGV2aWNlQ2xhc3MoKSBjdXJyZW50RGV2
aWNlXSBsb2NhbGl6ZWRNb2RlbF07CisgICAgICAgIE5TU3RyaW5nICpsb2NhbGl6ZWREZXZpY2VN
b2RlbE5hbWUgPSBsb2NhbGl6ZWREZXZpY2VNb2RlbCgpOwogCiAgICAgICAgIC8vIEluIGNhc2Vz
IHdoZXJlIGEgcm91dGUgd2l0aCB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMsIHByZWZpeCB0aGUg
bmFtZSB3aXRoIHRoZSBtb2RlbC4KICAgICAgICAgQk9PTCBpbmNsdWRlTG9jYWxpemVkRGV2aWNl
TW9kZWxOYW1lID0gTk87CkBAIC0yNzMzLDkgKzI3MzQsOSBAQCBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICAgICAgICAgfQogCiAgICAgICAgIGlmIChpbmNsdWRlTG9jYWxpemVk
RGV2aWNlTW9kZWxOYW1lKQotICAgICAgICAgICAgZGlzcGxheU5hbWUgPSAgW05TU3RyaW5nIHN0
cmluZ1dpdGhGb3JtYXQ6QCIlQCAlQCIsIGxvY2FsaXplZERldmljZU1vZGVsLCBkaXNwbGF5TmFt
ZV07CisgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0
OkAiJUAgJUAiLCBsb2NhbGl6ZWREZXZpY2VNb2RlbE5hbWUsIGRpc3BsYXlOYW1lXTsKICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBsb2NhbGl6ZWREZXZpY2VNb2RlbDsK
KyAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gbG9jYWxpemVkRGV2aWNlTW9kZWxOYW1lOwogCiAg
ICAgICAgIGJyZWFrOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9M
b2NhbGl6ZWREZXZpY2VNb2RlbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9Mb2NhbGl6ZWREZXZpY2VNb2RlbC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9Mb2NhbGl6ZWREZXZpY2VNb2RlbC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMzkgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1l
dDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXRUJDT1JFX0VY
UE9SVCBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTW9kZWwoKTsKK1dFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0TG9jYWxpemVkRGV2aWNlTW9kZWwoY29uc3QgU3RyaW5nJik7CisKK30KKworI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTG9jYWxpemVkRGV2aWNlTW9kZWwubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xvY2FsaXplZERldmlj
ZU1vZGVsLm1tCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9M
b2NhbGl6ZWREZXZpY2VNb2RlbC5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU3IEBACisv
KgorKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
KgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
KgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJMb2NhbGl6ZWREZXZpY2VNb2RlbC5oIgorCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCA8cGFsL2lvcy9VSUtpdFNvZnRMaW5rLmg+CisjaW1w
b3J0IDx3dGYvT3B0aW9uYWwuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgT3B0
aW9uYWw8U3RyaW5nPiYgY2FjaGVkTG9jYWxpemVkRGV2aWNlTW9kZWwoKQoreworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxPcHRpb25hbDxTdHJpbmc+PiBkZXZpY2VNb2RlbDsKKyAgICByZXR1
cm4gZGV2aWNlTW9kZWw7Cit9CisKK1N0cmluZyBsb2NhbGl6ZWREZXZpY2VNb2RlbCgpCit7Cisg
ICAgYXV0byYgZGV2aWNlTW9kZWwgPSBjYWNoZWRMb2NhbGl6ZWREZXZpY2VNb2RlbCgpOworICAg
IGlmICghZGV2aWNlTW9kZWwpCisgICAgICAgIGRldmljZU1vZGVsID0gU3RyaW5nKFtbUEFMOjpn
ZXRVSURldmljZUNsYXNzKCkgY3VycmVudERldmljZV0gbG9jYWxpemVkTW9kZWxdKTsKKyAgICBy
ZXR1cm4gKmRldmljZU1vZGVsOworfQorCit2b2lkIHNldExvY2FsaXplZERldmljZU1vZGVsKGNv
bnN0IFN0cmluZyYgZGV2aWNlTW9kZWwpCit7CisgICAgY2FjaGVkTG9jYWxpemVkRGV2aWNlTW9k
ZWwoKSA9IGRldmljZU1vZGVsOworfQorCit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlz
aW9uIDI1Njc0NikKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMjAtMDItMTcgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBw
bGUuY29tPgorCisgICAgICAgIE1vdmUgW1VJRGV2aWNlIGN1cnJlbnREZXZpY2VdIGNhbGxzIHRv
IFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNDMyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEdldCB0aGUgbG9jYWxpemVkIGRldmljZSBuYW1lIGluIHRoZSBVSSBwcm9jZXNzLCBhbmQg
c2VuZCBpdCB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGFzIHBhcnQgb2YgdGhlCisgICAgICAg
IHByb2Nlc3MgY3JlYXRpb24gcGFyYW1ldGVycy4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxh
dGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIwLTAyLTE3ICBWw61jdG9yIE1hbnVlbCBKw6Fx
dWV6IExlYWwgIDx2amFxdWV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgYSBsb3QgZ2NjIHdhcm5p
bmdzIGJlY2F1c2Ugb2YgJXtwdWJsaWN9cyBmb3JtYXQgc3BlY2lmaWVyCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cAkocmV2aXNpb24gMjU2NzQ2KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw2ICsxNzUsNyBAQCB2
b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kCiAgICAgZW5jb2RlciA8PCBz
dXBwb3J0c1BpY3R1cmVJblBpY3R1cmU7CiAgICAgZW5jb2RlciA8PCBjc3NWYWx1ZVRvU3lzdGVt
Q29sb3JNYXA7CiAgICAgZW5jb2RlciA8PCBmb2N1c1JpbmdDb2xvcjsKKyAgICBlbmNvZGVyIDw8
IGxvY2FsaXplZERldmljZU1vZGVsOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAg
LTQ3NCw2ICs0NzUsOSBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
CiAgICAgaWYgKCFmb2N1c1JpbmdDb2xvcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHBh
cmFtZXRlcnMuZm9jdXNSaW5nQ29sb3IgPSBXVEZNb3ZlKCpmb2N1c1JpbmdDb2xvcik7CisgICAg
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmxvY2FsaXplZERldmljZU1vZGVs
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1Njc0NikKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjE3LDYgKzIx
Nyw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29sIHN1
cHBvcnRzUGljdHVyZUluUGljdHVyZSB7IGZhbHNlIH07CiAgICAgV2ViQ29yZTo6UmVuZGVyVGhl
bWVJT1M6OkNTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7
CiAgICAgV2ViQ29yZTo6Q29sb3IgZm9jdXNSaW5nQ29sb3I7CisgICAgU3RyaW5nIGxvY2FsaXpl
ZERldmljZU1vZGVsOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bQkocmV2aXNpb24gMjU2NzQ2KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBAQAogI2lt
cG9ydCAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXaW5kb3dTZXJ2ZXJDb25uZWN0
aW9uLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL0xvY2Fs
aXplZERldmljZU1vZGVsLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL05vdEltcGxlbWVudGVkLmg+CkBAIC00MDQsNiArNDA1LDcgQEAgdm9pZCBXZWJQcm9jZXNz
UG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplVwogICAgIHBhcmFtZXRlcnMuc3VwcG9ydHNQaWN0dXJl
SW5QaWN0dXJlID0gc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCk7CiAgICAgcGFyYW1ldGVycy5j
c3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAgPSBSZW5kZXJUaGVtZUlPUzo6Y3NzVmFsdWVUb1N5c3Rl
bUNvbG9yTWFwKCk7CiAgICAgcGFyYW1ldGVycy5mb2N1c1JpbmdDb2xvciA9IFJlbmRlclRoZW1l
OjpzaW5nbGV0b24oKS5mb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4oKSk7CisgICAgcGFyYW1ldGVycy5sb2NhbGl6ZWREZXZpY2VNb2RlbCA9IGxvY2FsaXplZERl
dmljZU1vZGVsKCk7CiAjZW5kaWYKIAogICAgIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShyZXZpc2lvbiAyNTY3NDYpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRDYXNjYWRl
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpc3RvcnlDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0hpc3RvcnlJdGVtLmg+CisjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZERldmljZU1vZGVs
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3Ry
eS5oPgpAQCAtMjAyLDYgKzIwMyw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFs
aXplV2ViUHIKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgc2V0Q3VycmVudFVzZXJJ
bnRlcmZhY2VJZGlvbUlzUGFkKHBhcmFtZXRlcnMuY3VycmVudFVzZXJJbnRlcmZhY2VJZGlvbUlz
UGFkKTsKKyAgICBzZXRMb2NhbGl6ZWREZXZpY2VNb2RlbChwYXJhbWV0ZXJzLmxvY2FsaXplZERl
dmljZU1vZGVsKTsKICAgICBzZXRTdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUocGFyYW1ldGVycy5z
dXBwb3J0c1BpY3R1cmVJblBpY3R1cmUpOwogI2VuZGlmCiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Njc0NikKKysrIFRv
b2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAyLTE3
ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFtV
SURldmljZSBjdXJyZW50RGV2aWNlXSBjYWxscyB0byBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzMjAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L0xvY2FsaXplZERldmljZU1vZGVsLm1tOiBBZGRlZC4KKyAgICAgICAg
KFRFU1QpOgorCiAyMDIwLTAyLTE3ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KIAogICAgICAgICBFV1Mgc2hvdWxkIGJlIGFibGUgdG8gY29tbWVudCBvbiBCdWd6aWxsYQpJ
bmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1Njc0NikKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC05OTIsNiArOTkyLDcgQEAKIAkJRTMyNEE2RjAyMDQxQzgyMDAwQTc2NTkz
IC8qIFVuaXF1ZUFycmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzOThCQzBGMjA0MUM3NjMwMDM4NzEzNiAvKiBVbmlxdWVBcnJheS5jcHAgKi87
IH07CiAJCUUzMjVDOTA3MjNFMzg3MDIwMEJDN0QzQiAvKiBQaWN0dXJlSW5QaWN0dXJlU3VwcG9y
dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMjVD
OTA2MjNFMzg3MDIwMEJDN0QzQiAvKiBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5tbSAqLzsgfTsK
IAkJRTMyQjU0OTIyMjgxMEFDNDAwOEFENzAyIC8qIFBhY2tlZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzJCNTQ5MTIyODEwQUMwMDA4QUQ3MDIg
LyogUGFja2VkLmNwcCAqLzsgfTsKKwkJRTM1QjkwODIyM0Y2MEREMDAwMDAxMUZGIC8qIExvY2Fs
aXplZERldmljZU1vZGVsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTM1QjkwODEyM0Y2MEREMDAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVs
Lm1tICovOyB9OwogCQlFMzVGQzdCMjIyQjgyQTczMDBGMzJGOTggLyogSlNMb2NrVGFrZXNXZWJU
aHJlYWRMb2NrLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTM1RkM3QjEyMkI4MkE2RDAwRjMyRjk4IC8qIEpTTG9ja1Rha2VzV2ViVGhyZWFkTG9jay5t
bSAqLzsgfTsKIAkJRTM3M0Q3OTExRjJDRjM1MjAwQzZGQUFGIC8qIFNpZ25hbHMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NTNGOTUxRjJDRjMy
MTAwQTc2QTJFIC8qIFNpZ25hbHMuY3BwICovOyB9OwogCQlFMzhBMEQzNTFGRDUwQ0MzMDBFOThD
OEIgLyogVGhyZWFkaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzOEEwRDM0MUZENTBDQkMwMEU5OEM4QiAvKiBUaHJlYWRpbmcuY3BwICovOyB9
OwpAQCAtMjU2Nyw2ICsyNTY4LDcgQEAKIAkJRTE5NEUxQkMxNzdFNTM0QTAwOUM0RDRFIC8qIFN0
b3BMb2FkaW5nRnJvbURpZFJlY2VpdmVSZXNwb25zZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gU3RvcExvYWRp
bmdGcm9tRGlkUmVjZWl2ZVJlc3BvbnNlLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUzMjVDOTA2MjNFMzg3MDIwMEJDN0QzQiAvKiBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzJCNTQ5MTIyODEwQUMwMDA4QUQ3MDIgLyogUGFj
a2VkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhY2tlZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUzNUI5MDgxMjNGNjBERDAwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VN
b2RlbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsaXplZERldmljZU1vZGVsLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzVGQzdCMTIyQjgyQTZEMDBGMzJGOTggLyog
SlNMb2NrVGFrZXNXZWJUaHJlYWRMb2NrLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gSlNMb2NrVGFrZXNXZWJUaHJlYWRMb2NrLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFMzg4ODg3MDIwQzkwOTgxMDBFNjMyQkMgLyogV29ya2VyUG9vbC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrZXJQb29sLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4QTBEMzQxRkQ1MENCQzAwRTk4QzhCIC8qIFRo
cmVhZGluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaHJlYWRp
bmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjg3Miw2ICsyODc0LDcgQEAK
IAkJCQlDMTVDQkIyRjIzRjFGRjFBMDAzMDBDQzcgLyogQmFja2xpZ2h0TGV2ZWxOb3RpZmljYXRp
b24ubW0gKi8sCiAJCQkJQzE2OTJEQzkyM0QxMERBRTAwNkU4OEY3IC8qIEJhdHRlcnkubW0gKi8s
CiAJCQkJRTM5NEFFNkUyM0YyMzAzRTAwNUI0OTM2IC8qIEdyYW50QWNjZXNzVG9Nb2JpbGVBc3Nl
dHMubW0gKi8sCisJCQkJRTM1QjkwODEyM0Y2MEREMDAwMDAxMUZGIC8qIExvY2FsaXplZERldmlj
ZU1vZGVsLm1tICovLAogCQkJCUMxNDVDQzBCMjNEQTVBMEYwMDNBNUVFQiAvKiBNaW1lVHlwZXMu
bW0gKi8sCiAJCQkJRTMyNUM5MDYyM0UzODcwMjAwQkM3RDNCIC8qIFBpY3R1cmVJblBpY3R1cmVT
dXBwb3J0Lm1tICovLAogCQkJCTBGMTM5RTc1MUE0MjNBNTMwMEY1OTBGNSAvKiBXZWFrT2JqQ1B0
ci5tbSAqLywKQEAgLTQ4NTQsNiArNDg1Nyw3IEBACiAJCQkJN0M4M0UwQzAxRDBBNjUyNzAwRkVC
Q0YzIC8qIExvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3
RjAwMUE0MTFBRTYwMDQ0N0M0QyAvKiBMb2FkUGFnZU9uQ3Jhc2guY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTc3OEQwNTYyMjExMEEyNjAwODk5RTNCIC8qIExvYWRXZWJBcmNoaXZlLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJRTM1QjkwODIyM0Y2MEREMDAwMDAxMUZGIC8qIExvY2FsaXplZERldmlj
ZU1vZGVsLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFFNkE4OTQxRDJGMUMwQTAwQzAwNEI2IC8q
IExvY2FsU3RvcmFnZUNsZWFyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0EzODQ1OTYyMEFFMTdB
OTAwOTkwRDNCIC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTQ2QzUxOURBMUQzNTVBQjIwMERBQTUxQSAvKiBMb2NhbFN0b3JhZ2VOdWxsRW50cmll
cy5tbSBpbiBTb3VyY2VzICovLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvTG9jYWxpemVkRGV2aWNlTW9kZWwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvTG9jYWxpemVkRGV2aWNlTW9kZWwubW0JKG5vbmV4aXN0ZW50KQor
KysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTG9jYWxpemVkRGV2aWNlTW9kZWwu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpZiBXS19IQVZFX0Nf
U1BJCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJW
aWV3LmgiCisjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZERldmljZU1vZGVsLmg+CisKK1RFU1Qo
V2ViS2l0LCBMb2NhbGl6ZWREZXZpY2VNb2RlbCkKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFdL
UmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVGVzdFdlYktpdEFQSTo6
VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW50ZXJuYWxzSW5qZWN0
ZWRCdW5kbGVUZXN0IikpOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2wgPSAo
V0tQcm9jZXNzUG9vbCAqKWNvbnRleHQuZ2V0KCk7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAz
MDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllF
U10pOworCisgICAgYXV0byBsb2NhbGl6ZWREZXZpY2VNb2RlbCA9IFsmXSB7CisgICAgICAgIHJl
dHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVy
bmFscy5sb2NhbGl6ZWREZXZpY2VNb2RlbCgpIl0uYm9vbFZhbHVlOworICAgIH07CisKKyAgICBB
U1NFUlRfVFJVRShsb2NhbGl6ZWREZXZpY2VNb2RlbCgpID09IFdlYkNvcmU6OmxvY2FsaXplZERl
dmljZU1vZGVsKCkpOworfQorCisjZW5kaWYgLy8gV0tfSEFWRV9DX1NQSQorI2VuZGlmIC8vIFBM
QVRGT1JNKElPU19GQU1JTFkpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>